wbfy 1.78.0 → 1.79.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.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/options.ts","../src/logger.ts","../src/utils/promisePool.ts","../src/fixers/abbreviations.ts","../src/fixers/testDirectory.ts","../src/fixers/typeDefinition.ts","../src/utils/spawnUtil.ts","../src/generators/asdf.ts","../src/utils/extensions.ts","../src/utils/fsUtil.ts","../src/generators/editorconfig.ts","../src/utils/ignoreFileUtil.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 { 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 { 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 });\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 await fs.promises.writeFile(filePath, newContent);\n });\n }\n\n const tsFiles = await globby('**/*.(ts|tsx)', { dot: true, cwd: dirPath });\n for (const tsFile of tsFiles) {\n const filePath = path.join(dirPath, tsFile);\n const content = await fs.promises.readFile(filePath, 'utf8');\n const newContent = content\n .replaceAll(/\\/\\/(.*)c\\.f\\./g, '//$1cf.')\n .replaceAll(/\\/\\/(.*)eg\\./g, '//$1e.g.')\n .replaceAll(/\\/\\/(.*)ie\\./g, '//$1i.e.');\n await fs.promises.writeFile(filePath, newContent);\n }\n\n await promisePool.promiseAll();\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 packageJsonText = await fs.promises.readFile(path.join(packageDirPath, 'package.json'), 'utf8');\n const newPackageJsonText = packageJsonText.replace(/__tests__/g, 'tests');\n await fs.promises.writeFile(path.join(packageDirPath, 'package.json'), newPackageJsonText);\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","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';\n\nexport async function generateVersionConfigs(config: PackageConfig): Promise<void> {\n return logger.function('generateVersionConfigs', async () => {\n await core(config);\n });\n}\n\nconst POETRY_VERSION = '1.3.1';\nconst PYTHON_VERSION = '3.9.16';\nconst JAVA_VERSION = 'adoptopenjdk-11.0.17+8';\n\nasync function core(config: PackageConfig): Promise<void> {\n if (!config.versionsText) return;\n\n const lines: string[] = [];\n for (const versionText of config.versionsText.trim().split('\\n')) {\n const line = versionText.trim();\n const [name, version] = line.split(/\\s+/);\n if (!name || !version) continue;\n if (name === 'nodejs') {\n await promisePool.run(() => fs.promises.writeFile(path.resolve(config.dirPath, '.node-version'), version + '\\n'));\n } else if (name === 'python') {\n await promisePool.run(() =>\n fs.promises.writeFile(path.resolve(config.dirPath, '.python-version'), version + '\\n')\n );\n } else {\n lines.push(line);\n }\n }\n\n if (config.containingPoetryLock) {\n updateVersion(lines, 'poetry', POETRY_VERSION);\n // Don't update python in .python-version automatically\n if (!fs.existsSync(path.resolve(config.dirPath, '.python-version'))) {\n updateVersion(lines, 'python', PYTHON_VERSION, true);\n }\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 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\nfunction 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 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 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 ${filePath}`);\n },\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 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 .replace(userContentHeaderRegex, '')\n .replace(/# Generated by [^\\n]*\\n/gm, '')\n .replace(/\\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 .replace(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 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) + commonContent;\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 // TODO: support Blitz v2\n if (rootConfig.depending.blitz === '2') return;\n\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, '@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 (rootConfig.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 (rootConfig.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 (rootConfig.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 .replace(/^# .idea\\/artifacts$/gm, '.idea/artifacts')\n .replace(/^# .idea\\/compiler.xml$/gm, '.idea/compiler.xml')\n .replace(/^# .idea\\/jarRepositories.xml$/gm, '.idea/jarRepositories.xml')\n .replace(/^# .idea\\/modules.xml$/gm, '.idea/modules.xml')\n .replace(/^# .idea\\/*.iml$/gm, '.idea/*.iml')\n .replace(/^# .idea\\/modules$/gm, '.idea/modules')\n .replace(/^# *.iml$/gm, '*.iml')\n .replace(/^# *.ipr$/gm, '*.ipr');\n if (config.containingPubspecYaml) {\n generated = generated.replace(/^.idea\\/modules.xml$/gm, '# .idea/modules.xml');\n }\n }\n generated = generated.replace(/^.idea\\/?$/gm, '# .idea');\n if (rootConfig.depending.reactNative || config.depending.reactNative || config.containingPubspecYaml) {\n generated = generated.replace(/^(.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';\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 '../../.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 poetryDependencies: 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.containingSubPackageJsons) {\n jsonObj.workspaces = ['packages/*'];\n } else {\n delete jsonObj.workspaces;\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\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 jsonObj.scripts.lint = `poetry run flake8 ${dirNamesStr}`;\n jsonObj.scripts['lint-fix'] = 'yarn lint';\n jsonObj.scripts.format += ` && yarn format-code`;\n poetryDependencies.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 }\n if (!jsonObj.scripts['gen-code']?.startsWith('blitz codegen')) {\n jsonObj.scripts['gen-code'] = 'blitz codegen';\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 dependencies = dependencies.filter((dep) => !jsonObj.devDependencies?.[dep]);\n if (dependencies.length > 0) {\n spawnSync('yarn', ['add', ...new Set(dependencies)], config.dirPath);\n }\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 (poetryDependencies.length > 0) {\n spawnSync('poetry', ['add', ...new Set(poetryDependencies)], 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: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 test: '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.blitz) {\n scripts.typecheck += ' || yarn run typecheck/warn';\n scripts['typecheck/warn'] = `echo 'Please try \"yarn gen-code\" if you face unknown type errors.' && exit 1`;\n scripts['typecheck:gen-code'] = 'yarn gen-code && tsc --noEmit --Pretty';\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.replace('tsc', 'node node_modules/.bin/tsc').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 postMergeCommands.push('run_if_changed \"package\\\\.json\" \"yarn\"');\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 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) + commonContent;\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 = `[](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 '[](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 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: null,\n push: {\n branches: ['main', 'wbfy', 'renovate/**'],\n },\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 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 fileNames = entries\n .filter((dirent) => dirent.isFile() && dirent.name.endsWith('.yml'))\n .map((dirent) => dirent.name);\n if (rootConfig.depending.semanticRelease) {\n fileNames.push('release.yml');\n }\n if (rootConfig.publicRepo || rootConfig.repository?.startsWith('github:WillBoosterLab/')) {\n fileNames.push('notify-ready.yml');\n }\n fileNames.push(\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 );\n\n for (const fileName of fileNames) {\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 if (kind === 'wbfy' || kind === 'wbfy-merge') {\n console.log('writeWorkflowYaml:', kind);\n console.dir(oldSettings, { depth: null });\n }\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n if (kind === 'wbfy' || kind === 'wbfy-merge') {\n console.dir(newSettings, { depth: null });\n }\n } catch {\n // do nothing\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 if (job.with['dot_env_path'] === '.env') {\n delete job.with['dot_env_path'];\n }\n\n if (config.containingDockerfile && kind.startsWith('deploy')) {\n job.with['cpu_arch'] = 'X64';\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 console.log(\n 'setSchedule:',\n newSettings,\n minuteUtc,\n hourUtc,\n inRange,\n hourJst,\n inclusiveMinHourJst,\n exclusiveMaxHourJst\n );\n } else {\n console.log('setSchedule:', newSettings, minuteUtc, hourUtc);\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 delete newSettings.jobs['add-to-project'];\n}\n\nfunction migrateJob(job: any): void {\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}\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 // c.f. 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 const plugins = (settings.plugins ?? []).map((p: any) => p.spec);\n const requireTypeScript = config.containingTypeScript || config.containingTypeScriptInPackages;\n importOrRemovePlugin(config, plugins, requireTypeScript, '@yarnpkg/plugin-typescript');\n importOrRemovePlugin(config, plugins, config.containingSubPackageJsons, '@yarnpkg/plugin-workspace-tools');\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[versions.length - 1];\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 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 ['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(\n 'packages/**/@(app|src|tests|scripts)/**/*.{cjs,mjs,js,jsx}',\n dirPath\n ),\n containingTypeScriptInPackages: containsAny(\n 'packages/**/@(app|src|tests|scripts)/**/*.{cts,mts,ts,tsx}',\n dirPath\n ),\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'],\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 },\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.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 { fixTestDirectories } from './fixers/testDirectory.js';\nimport { fixTypeDefinitions } from './fixers/typeDefinition.js';\nimport { generateVersionConfigs } from './generators/asdf.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 await 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 generateEditorconfig(rootConfig),\n generateGitattributes(rootConfig),\n generateHuskyrc(rootConfig),\n generateIdeaSettings(rootConfig),\n generateLintstagedrc(rootConfig),\n generateReadme(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","_classCallCheck","this","_defineProperty","isVerbose","logger","Logger","_function2","_createClass","key","value","_asyncToGenerator","_regeneratorRuntime","mark","_callee","name","func","wrap","_context","prev","next","console","info","stop","_x","_x2","apply","arguments","promisePool","PromisePool","fixAbbreviations","_fixAbbreviations","dirPath","_context4","abrupt","_callee2","mdFiles","_iterator","_step","_loop","tsFiles","_iterator2","_step2","tsFile","filePath","content","newContent","_context3","globby","dot","cwd","sent","_createForOfIteratorHelper","mdFile","_context2","path","join","run","fs","promises","readFile","replaceAll","writeFile","s","n","done","delegateYield","t1","e","f","finish","t2","promiseAll","_callee3","fixTestDirectories","_fixTestDirectories","packageDirPaths","Promise","all","map","_ref2","packageDirPath","oldTestDirPath","newTestDirPath","packageJsonText","newPackageJsonText","rename","replace","t0","fixTypeDefinitions","_fixTypeDefinitions","config","configsIncludingChildren","libTypeDirPath","srcTypeDirPath","dirents","resolve","root","containingSubPackageJsons","undefined","ignoreEnoentAsync","readdir","withFileTypes","dirent","dirName","hasTypeDeclarationExtension","packageName","hasLibrary","slice","endsWith","includes","concat","some","_config$packageJson","_config$packageJson$d","_config$packageJson2","_config$packageJson2$","packageJson","dependencies","devDependencies","isFile","mkdir","recursive","isDirectory","spawnSync","command","args","retry","_getSpawnSyncArgs","getSpawnSyncArgs","_getSpawnSyncArgs2","_slicedToArray","newCmd","newArgs","log","ret","child_process","status","spawnSyncWithStringResult","_getSpawnSyncArgs4","stdio","proc","error","stderr","toString","trim","stdout","env","_objectSpread","process","PATH","BERRY_BIN_FOLDER","ASDF_DIR","shell","generateVersionConfigs","_generateVersionConfigs","core","POETRY_VERSION","PYTHON_VERSION","JAVA_VERSION","_core","lines","version","toolVersionsPath","versionsText","split","versionText","line","_line$split","_line$split2","push","containingPoetryLock","updateVersion","existsSync","depending","firebase","containingPackageJson","length","rm","force","toolName","newVersion","head","index","findIndex","l","newLine","_lines$index$split2","_lines$index$split","convertVersionIntoNumber","splice","versionNumber","divisor","Number","filter","isNaN","err","extensions","codeWith2IndentSize","sort","codeWith4IndentSize","codeWith8IndentSize","markdownLike","eslint","prettier","fsUtil","fsp","generateExtensions","generateEditorconfig","_generateEditorconfig","userContentHeader","userContentHeaderRegex","separator","defaultHeadUserContent","defaultTailUserContent","ignoreFileUtil","separatorPrefix","readGitignoreWithoutSeparators","lastHeaderIndex","getIndexOfTailUserContentHeader","getHeadUserContent","indexOf","getTailUserContent","isBerryZeroInstallEnabled","lastIndex","lastIndexOf","commonContent","generateEslintignore","_generateEslintignore","_yield$fsUtil$readFil","headUserContent","tailUserContent","gitignoreFilePath","gitignoreContent","t3","overwriteMerge","destinationArray","sourceArray","combineMerge","target","source","destination","entries","_step$value","item","cloneUnlessOtherwiseSpecified","isMergeableObject","merge","generateEslintrc","_generateEslintrc","rootConfig","bases","newSettings","oldContent","oldSettings","newExtends","blitz","eslintBase","extends","JSON","parse","ext","startsWith","arrayMerge","addExtensionToHead","stringify","extension","_toConsumableArray","generateGitattributes","_generateGitattributes","defaultNames","generateGitignore","_generateGitignore","names","generated","_ret","containingGemfile","containingGoMod","basename","containingPomXml","containingPubspecYaml","containingTemplateYaml","prisma","playwright","reactNative","storybook","_yield$readCache","url","response","responseText","readCache","fetch","text","v","writeCache","_typeof","t4","os","homedir","_x3","_x4","_writeCache","_x5","_readCache","stat","_context5","Date","now","mtimeMs","_callee4","EslintUtil","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","poetryDependencies","_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","containingJavaScript","containingJavaScriptInPackages","containingTypeScript","containingTypeScriptInPackages","willBoosterConfigs","dep","license","publishConfig","access","getOrgAndName","repository","author","release","npm","esmPackage","resolutions","lint","cleanup","dir","format","postinstall","gitignore","ignore","Set","add","size","d","_jsonObj$devDependenc","_jsonObj$dependencies","_x7","_removeDeprecatedStuff","_i2","_Object$values","deps","values","typecheck","test","pyright","_x8","_generatePrettierSuffix","existingContent","originalContent","_callee5","DEFAULT_COMMAND","settings","preCommit","prePush","prePushForLab","postMerge","generateHuskyrc","_generateHuskyrc","_config$versionsText","packageJsonPath","preCommitFilePath","_generateScripts","postMergeCommands","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","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","jobs","uses","wbfy","workflow_dispatch","pull_request_target","types","issues","secrets","DISCORD_WEBHOOK_URL","GH_PROJECT_URL","generateWorkflows","_generateWorkflows","_rootConfig$repositor","workflowsPath","semanticYmlPath","kind","writeWorkflowYaml","_writeWorkflowYaml","_arr","_job$uses","_job$uses$includes","_job$uses2","job","params","yaml","load","depth","normalizeJob","schedule","setSchedule","migrateWorkflow","writeYaml","sync","sync_params_without_dest","server_url","_job$with","migrateJob","containingDockerfile","newSecrets","inclusiveMinHourJst","exclusiveMaxHourJst","_newSettings$on$sched","_newSettings$on$sched2","_split$map2","cron","minuteUtc","hourUtc","isInteger","hourJst","inRange","minJst","Math","floor","random","_writeYaml","yamlText","dump","lineWidth","noCompatMode","styles","generateYarnrcYml","_generateYarnrcYml","_settings$plugins$len","_settings$plugins","_settings$plugins$fil","_settings$plugins2","_settings$plugins3","currentVersion","latestVersion","releasesPath","yarnrcPath","yarnrcYmlPath","originalLength","pluginPath","requireTypeScript","getLatestVersion","getMajorNumber","file","t5","defaultSemverRangePrefix","nodeLinker","nmMode","enableGlobalCache","p","spec","importOrRemovePlugin","versionsJson","versions","requirePlugin","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","releaseBranches","releasePlugins","_json$plugins","releasercJsonPath","json","isRoot","repoInfo","_arr$_i","prefix","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","assign","_main","argv","yargs","positional","describe","array","default","skipDeps","description","alias","verbose","_yield$ignoreErrorAsy","rootDirPath","packagesDirPath","subDirPaths","nullableSubPackageConfigs","subPackageConfigs","allPackageConfigs","_config","ignoreErrorAsync","subDirPath","paths","main"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/options.ts","../src/logger.ts","../src/utils/promisePool.ts","../src/fixers/abbreviations.ts","../src/utils/version.ts","../src/fixers/dockerfile.ts","../src/fixers/testDirectory.ts","../src/fixers/typeDefinition.ts","../src/utils/spawnUtil.ts","../src/generators/asdf.ts","../src/utils/extensions.ts","../src/utils/fsUtil.ts","../src/generators/editorconfig.ts","../src/utils/ignoreFileUtil.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 { 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 { 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 });\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 await fs.promises.writeFile(filePath, newContent);\n });\n }\n\n const tsFiles = await globby('**/*.(ts|tsx)', { dot: true, cwd: dirPath });\n for (const tsFile of tsFiles) {\n const filePath = path.join(dirPath, tsFile);\n const content = await fs.promises.readFile(filePath, 'utf8');\n const newContent = content\n .replaceAll(/\\/\\/(.*)c\\.f\\./g, '//$1cf.')\n .replaceAll(/\\/\\/(.*)eg\\./g, '//$1e.g.')\n .replaceAll(/\\/\\/(.*)ie\\./g, '//$1i.e.');\n await fs.promises.writeFile(filePath, newContent);\n }\n\n await promisePool.promiseAll();\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","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { convertVersionIntoNumber } from '../utils/version.js';\n\nconst ASDF_VERSION = '0.11.0';\n\nexport async function fixDockerfiles(packageDirPaths: string[]): Promise<void> {\n return logger.function('fixDockerfiles', async () => {\n await Promise.all(\n packageDirPaths.map(async (packageDirPath) => {\n try {\n const filePath = path.join(packageDirPath, 'Dockerfile');\n const content = await fs.promises.readFile(filePath, 'utf8');\n const newContent = content.replace(/ENV\\s+ASDF_VERSION\\s+([\\d.]+)/, (substring, version) => {\n if (convertVersionIntoNumber(version) < convertVersionIntoNumber(ASDF_VERSION)) {\n return `ENV ASDF_VERSION ${ASDF_VERSION}`;\n }\n return substring;\n });\n await fs.promises.writeFile(filePath, newContent);\n } catch {\n // do nothing\n }\n })\n );\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 packageJsonText = await fs.promises.readFile(path.join(packageDirPath, 'package.json'), 'utf8');\n const newPackageJsonText = packageJsonText.replace(/__tests__/g, 'tests');\n await fs.promises.writeFile(path.join(packageDirPath, 'package.json'), newPackageJsonText);\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","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';\n\nexport async function generateVersionConfigs(config: PackageConfig): Promise<void> {\n return logger.function('generateVersionConfigs', async () => {\n await core(config);\n });\n}\n\nconst POETRY_VERSION = '1.3.1';\nconst PYTHON_VERSION = '3.9.16';\nconst JAVA_VERSION = 'adoptopenjdk-11.0.17+8';\n\nasync function core(config: PackageConfig): Promise<void> {\n if (!config.versionsText) return;\n\n const lines: string[] = [];\n for (const versionText of config.versionsText.trim().split('\\n')) {\n const line = versionText.trim();\n const [name, version] = line.split(/\\s+/);\n if (!name || !version) continue;\n if (name === 'nodejs') {\n await promisePool.run(() => fs.promises.writeFile(path.resolve(config.dirPath, '.node-version'), version + '\\n'));\n } else if (name === 'python') {\n await promisePool.run(() =>\n fs.promises.writeFile(path.resolve(config.dirPath, '.python-version'), version + '\\n')\n );\n } else {\n lines.push(line);\n }\n }\n\n if (config.containingPoetryLock) {\n updateVersion(lines, 'poetry', POETRY_VERSION);\n // Don't update python in .python-version automatically\n if (!fs.existsSync(path.resolve(config.dirPath, '.python-version'))) {\n updateVersion(lines, 'python', PYTHON_VERSION, true);\n }\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 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","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 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 ${filePath}`);\n },\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 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 .replace(userContentHeaderRegex, '')\n .replace(/# Generated by [^\\n]*\\n/gm, '')\n .replace(/\\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 .replace(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 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) + commonContent;\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 // TODO: support Blitz v2\n if (rootConfig.depending.blitz === '2') return;\n\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, '@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 (rootConfig.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 (rootConfig.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 (rootConfig.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 .replace(/^# .idea\\/artifacts$/gm, '.idea/artifacts')\n .replace(/^# .idea\\/compiler.xml$/gm, '.idea/compiler.xml')\n .replace(/^# .idea\\/jarRepositories.xml$/gm, '.idea/jarRepositories.xml')\n .replace(/^# .idea\\/modules.xml$/gm, '.idea/modules.xml')\n .replace(/^# .idea\\/*.iml$/gm, '.idea/*.iml')\n .replace(/^# .idea\\/modules$/gm, '.idea/modules')\n .replace(/^# *.iml$/gm, '*.iml')\n .replace(/^# *.ipr$/gm, '*.ipr');\n if (config.containingPubspecYaml) {\n generated = generated.replace(/^.idea\\/modules.xml$/gm, '# .idea/modules.xml');\n }\n }\n generated = generated.replace(/^.idea\\/?$/gm, '# .idea');\n if (rootConfig.depending.reactNative || config.depending.reactNative || config.containingPubspecYaml) {\n generated = generated.replace(/^(.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';\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 '../../.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 poetryDependencies: 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.containingSubPackageJsons) {\n jsonObj.workspaces = ['packages/*'];\n } else {\n delete jsonObj.workspaces;\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\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 jsonObj.scripts.lint = `poetry run flake8 ${dirNamesStr}`;\n jsonObj.scripts['lint-fix'] = 'yarn lint';\n jsonObj.scripts.format += ` && yarn format-code`;\n poetryDependencies.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 }\n if (!jsonObj.scripts['gen-code']?.startsWith('blitz codegen')) {\n jsonObj.scripts['gen-code'] = 'blitz codegen';\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 dependencies = dependencies.filter((dep) => !jsonObj.devDependencies?.[dep]);\n if (dependencies.length > 0) {\n spawnSync('yarn', ['add', ...new Set(dependencies)], config.dirPath);\n }\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 (poetryDependencies.length > 0) {\n spawnSync('poetry', ['add', ...new Set(poetryDependencies)], 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: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 test: '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.blitz) {\n scripts.typecheck += ' || yarn run typecheck/warn';\n scripts['typecheck/warn'] = `echo 'Please try \"yarn gen-code\" if you face unknown type errors.' && exit 1`;\n scripts['typecheck:gen-code'] = 'yarn gen-code && tsc --noEmit --Pretty';\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.replace('tsc', 'node node_modules/.bin/tsc').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 postMergeCommands.push('run_if_changed \"package\\\\.json\" \"yarn\"');\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 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) + commonContent;\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 = `[](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 '[](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 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: null,\n push: {\n branches: ['main', 'wbfy', 'renovate/**'],\n },\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 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 fileNames = entries\n .filter((dirent) => dirent.isFile() && dirent.name.endsWith('.yml'))\n .map((dirent) => dirent.name);\n if (rootConfig.depending.semanticRelease) {\n fileNames.push('release.yml');\n }\n if (rootConfig.publicRepo || rootConfig.repository?.startsWith('github:WillBoosterLab/')) {\n fileNames.push('notify-ready.yml');\n }\n fileNames.push(\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 );\n\n for (const fileName of fileNames) {\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 if (kind === 'wbfy' || kind === 'wbfy-merge') {\n console.log('writeWorkflowYaml:', kind);\n console.dir(oldSettings, { depth: null });\n }\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n if (kind === 'wbfy' || kind === 'wbfy-merge') {\n console.dir(newSettings, { depth: null });\n }\n } catch {\n // do nothing\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 if (job.with['dot_env_path'] === '.env') {\n delete job.with['dot_env_path'];\n }\n\n if (config.containingDockerfile && kind.startsWith('deploy')) {\n job.with['cpu_arch'] = 'X64';\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 console.log(\n 'setSchedule:',\n newSettings,\n minuteUtc,\n hourUtc,\n inRange,\n hourJst,\n inclusiveMinHourJst,\n exclusiveMaxHourJst\n );\n } else {\n console.log('setSchedule:', newSettings, minuteUtc, hourUtc);\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 delete newSettings.jobs['add-to-project'];\n}\n\nfunction migrateJob(job: any): void {\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}\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 // c.f. 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 const plugins = (settings.plugins ?? []).map((p: any) => p.spec);\n const requireTypeScript = config.containingTypeScript || config.containingTypeScriptInPackages;\n importOrRemovePlugin(config, plugins, requireTypeScript, '@yarnpkg/plugin-typescript');\n importOrRemovePlugin(config, plugins, config.containingSubPackageJsons, '@yarnpkg/plugin-workspace-tools');\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[versions.length - 1];\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 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 ['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(\n 'packages/**/@(app|src|tests|scripts)/**/*.{cjs,mjs,js,jsx}',\n dirPath\n ),\n containingTypeScriptInPackages: containsAny(\n 'packages/**/@(app|src|tests|scripts)/**/*.{cts,mts,ts,tsx}',\n dirPath\n ),\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'],\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 },\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.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 { fixDockerfiles } from './fixers/dockerfile.js';\nimport { fixTestDirectories } from './fixers/testDirectory.js';\nimport { fixTypeDefinitions } from './fixers/typeDefinition.js';\nimport { generateVersionConfigs } from './generators/asdf.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 await Promise.all([fixAbbreviations(rootDirPath), fixDockerfiles([rootDirPath, ...subDirPaths])]);\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 generateEditorconfig(rootConfig),\n generateGitattributes(rootConfig),\n generateHuskyrc(rootConfig),\n generateIdeaSettings(rootConfig),\n generateLintstagedrc(rootConfig),\n generateReadme(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","_classCallCheck","this","_defineProperty","isVerbose","logger","Logger","_function2","_createClass","key","value","_asyncToGenerator","_regeneratorRuntime","mark","_callee","name","func","wrap","_context","prev","next","console","info","stop","_x","_x2","apply","arguments","promisePool","PromisePool","fixAbbreviations","_fixAbbreviations","dirPath","_context4","abrupt","_callee2","mdFiles","_iterator","_step","_loop","tsFiles","_iterator2","_step2","tsFile","filePath","content","newContent","_context3","globby","dot","cwd","sent","_createForOfIteratorHelper","mdFile","_context2","path","join","run","fs","promises","readFile","replaceAll","writeFile","s","n","done","delegateYield","t1","e","f","finish","t2","promiseAll","_callee3","convertVersionIntoNumber","version","versionNumber","divisor","split","map","Number","filter","isNaN","err","ASDF_VERSION","fixDockerfiles","_fixDockerfiles","packageDirPaths","Promise","all","_ref2","packageDirPath","replace","substring","concat","t0","fixTestDirectories","_fixTestDirectories","oldTestDirPath","newTestDirPath","packageJsonText","newPackageJsonText","rename","fixTypeDefinitions","_fixTypeDefinitions","config","configsIncludingChildren","libTypeDirPath","srcTypeDirPath","dirents","resolve","root","containingSubPackageJsons","undefined","ignoreEnoentAsync","readdir","withFileTypes","dirent","dirName","hasTypeDeclarationExtension","packageName","hasLibrary","slice","endsWith","includes","some","_config$packageJson","_config$packageJson$d","_config$packageJson2","_config$packageJson2$","packageJson","dependencies","devDependencies","isFile","mkdir","recursive","isDirectory","spawnSync","command","args","retry","_getSpawnSyncArgs","getSpawnSyncArgs","_getSpawnSyncArgs2","_slicedToArray","newCmd","newArgs","log","ret","child_process","status","spawnSyncWithStringResult","_getSpawnSyncArgs4","stdio","proc","error","stderr","toString","trim","stdout","env","_objectSpread","process","PATH","BERRY_BIN_FOLDER","ASDF_DIR","shell","generateVersionConfigs","_generateVersionConfigs","core","POETRY_VERSION","PYTHON_VERSION","JAVA_VERSION","_core","lines","toolVersionsPath","versionsText","versionText","line","_line$split","_line$split2","push","containingPoetryLock","updateVersion","existsSync","depending","firebase","containingPackageJson","length","rm","force","toolName","newVersion","head","index","findIndex","l","newLine","_lines$index$split2","_lines$index$split","splice","extensions","codeWith2IndentSize","sort","codeWith4IndentSize","codeWith8IndentSize","markdownLike","eslint","prettier","fsUtil","fsp","generateExtensions","generateEditorconfig","_generateEditorconfig","userContentHeader","userContentHeaderRegex","separator","defaultHeadUserContent","defaultTailUserContent","ignoreFileUtil","separatorPrefix","readGitignoreWithoutSeparators","lastHeaderIndex","getIndexOfTailUserContentHeader","getHeadUserContent","indexOf","getTailUserContent","isBerryZeroInstallEnabled","lastIndex","lastIndexOf","commonContent","generateEslintignore","_generateEslintignore","_yield$fsUtil$readFil","headUserContent","tailUserContent","gitignoreFilePath","gitignoreContent","t3","overwriteMerge","destinationArray","sourceArray","combineMerge","target","source","destination","entries","_step$value","item","cloneUnlessOtherwiseSpecified","isMergeableObject","merge","generateEslintrc","_generateEslintrc","rootConfig","bases","newSettings","oldContent","oldSettings","newExtends","blitz","eslintBase","extends","JSON","parse","ext","startsWith","arrayMerge","addExtensionToHead","stringify","extension","_toConsumableArray","generateGitattributes","_generateGitattributes","defaultNames","generateGitignore","_generateGitignore","names","generated","_ret","containingGemfile","containingGoMod","basename","containingPomXml","containingPubspecYaml","containingTemplateYaml","prisma","playwright","reactNative","storybook","_yield$readCache","url","response","responseText","readCache","fetch","text","v","writeCache","_typeof","t4","os","homedir","_x3","_x4","_writeCache","_x5","_readCache","stat","_context5","Date","now","mtimeMs","_callee4","EslintUtil","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","poetryDependencies","_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","containingJavaScript","containingJavaScriptInPackages","containingTypeScript","containingTypeScriptInPackages","willBoosterConfigs","dep","license","publishConfig","access","getOrgAndName","repository","author","release","npm","esmPackage","resolutions","lint","cleanup","dir","format","postinstall","gitignore","ignore","Set","add","size","d","_jsonObj$devDependenc","_jsonObj$dependencies","_x7","_removeDeprecatedStuff","_i2","_Object$values","deps","values","typecheck","test","pyright","_x8","_generatePrettierSuffix","existingContent","originalContent","_callee5","DEFAULT_COMMAND","settings","preCommit","prePush","prePushForLab","postMerge","generateHuskyrc","_generateHuskyrc","_config$versionsText","packageJsonPath","preCommitFilePath","_generateScripts","postMergeCommands","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","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","jobs","uses","wbfy","workflow_dispatch","pull_request_target","types","issues","secrets","DISCORD_WEBHOOK_URL","GH_PROJECT_URL","generateWorkflows","_generateWorkflows","_rootConfig$repositor","workflowsPath","semanticYmlPath","kind","writeWorkflowYaml","_writeWorkflowYaml","_arr","_job$uses","_job$uses$includes","_job$uses2","job","params","yaml","load","depth","normalizeJob","schedule","setSchedule","migrateWorkflow","writeYaml","sync","sync_params_without_dest","server_url","_job$with","migrateJob","containingDockerfile","newSecrets","inclusiveMinHourJst","exclusiveMaxHourJst","_newSettings$on$sched","_newSettings$on$sched2","_split$map2","cron","minuteUtc","hourUtc","isInteger","hourJst","inRange","minJst","Math","floor","random","_writeYaml","yamlText","dump","lineWidth","noCompatMode","styles","generateYarnrcYml","_generateYarnrcYml","_settings$plugins$len","_settings$plugins","_settings$plugins$fil","_settings$plugins2","_settings$plugins3","currentVersion","latestVersion","releasesPath","yarnrcPath","yarnrcYmlPath","originalLength","pluginPath","requireTypeScript","getLatestVersion","getMajorNumber","file","t5","defaultSemverRangePrefix","nodeLinker","nmMode","enableGlobalCache","p","spec","importOrRemovePlugin","versionsJson","versions","requirePlugin","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","releaseBranches","releasePlugins","_json$plugins","releasercJsonPath","json","isRoot","repoInfo","_arr$_i","prefix","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","assign","_main","argv","yargs","positional","describe","array","default","skipDeps","description","alias","verbose","_yield$ignoreErrorAsy","rootDirPath","packagesDirPath","subDirPaths","nullableSubPackageConfigs","subPackageConfigs","allPackageConfigs","_config","ignoreErrorAsync","subDirPath","paths","main"],"mappings":"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"}
|