wbfy 1.92.1 → 1.92.3

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