wbfy 1.82.0 → 1.83.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/options.ts","../src/logger.ts","../src/utils/fsUtil.ts","../src/utils/promisePool.ts","../src/fixers/abbreviations.ts","../src/utils/version.ts","../src/fixers/dockerfile.ts","../src/fixers/testDirectory.ts","../src/fixers/typeDefinition.ts","../src/utils/spawnUtil.ts","../src/generators/asdf.ts","../src/utils/extensions.ts","../src/generators/editorconfig.ts","../src/utils/ignoreFileUtil.ts","../src/generators/eslintignore.ts","../src/utils/mergeUtil.ts","../src/generators/eslintrc.ts","../src/generators/gitattributes.ts","../src/generators/gitignore.ts","../src/utils/eslintUtil.ts","../src/utils/githubUtil.ts","../src/utils/srcDirectories.ts","../src/generators/packageJson.ts","../src/generators/huskyrc.ts","../src/generators/idea.ts","../src/generators/lintstagedrc.ts","../src/generators/prettierignore.ts","../src/generators/pyrightconfig.ts","../src/generators/readme.ts","../src/generators/releaserc.ts","../src/generators/renovaterc.ts","../src/utils/objectUtil.ts","../src/generators/tsconfig.ts","../src/generators/workflow.ts","../src/generators/yarnrc.ts","../src/github/label.ts","../src/github/secret.ts","../src/github/settings.ts","../src/packageConfig.ts","../src/index.ts"],"sourcesContent":["class Options {\n isVerbose: boolean;\n\n constructor() {\n this.isVerbose = false;\n }\n}\n\nexport const options = new Options();\n","import { options } from './options.js';\n\nclass Logger {\n async function(name: string, func: () => Promise<void>): Promise<void> {\n if (options.isVerbose) {\n console.info(`--------- ${name} start ---------`);\n }\n await func();\n if (options.isVerbose) {\n console.info(`---------- ${name} end ----------`);\n }\n }\n}\n\nexport const logger = new Logger();\n","import 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","export function convertVersionIntoNumber(version: string): number {\n // e.g. java adoptopenjdk-11.0.17+8\n const numbers = version.split(/[+.-]/).map(Number).filter(Number.isNaN);\n let versionNumber = 0;\n let divisor = 1;\n for (const num of numbers) {\n versionNumber += num * divisor;\n divisor /= 1000;\n }\n return versionNumber;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { convertVersionIntoNumber } from '../utils/version.js';\n\nconst ASDF_VERSION = '0.11.0';\n\nexport async function fixDockerfiles(packageDirPaths: string[]): Promise<void> {\n return logger.function('fixDockerfiles', async () => {\n await Promise.all(\n packageDirPaths.map(async (packageDirPath) => {\n try {\n const filePath = path.join(packageDirPath, 'Dockerfile');\n const content = await fs.promises.readFile(filePath, 'utf8');\n const newContent = content.replace(/ENV\\s+ASDF_VERSION\\s+([\\d.]+)/, (substring, version) => {\n if (convertVersionIntoNumber(version) < convertVersionIntoNumber(ASDF_VERSION)) {\n return `ENV ASDF_VERSION ${ASDF_VERSION}`;\n }\n return substring;\n });\n await fs.promises.writeFile(filePath, newContent);\n } catch {\n // do nothing\n }\n })\n );\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\n\nexport async function fixTestDirectories(packageDirPaths: string[]): Promise<void> {\n return logger.function('fixTestDirectories', async () => {\n await Promise.all(\n packageDirPaths.map(async (packageDirPath) => {\n const oldTestDirPath = path.join(packageDirPath, '__tests__');\n const newTestDirPath = path.join(packageDirPath, 'tests');\n try {\n await fs.promises.rename(oldTestDirPath, newTestDirPath);\n const packageJsonText = await fs.promises.readFile(path.join(packageDirPath, 'package.json'), 'utf8');\n const newPackageJsonText = packageJsonText.replace(/__tests__/g, 'tests');\n await fs.promises.writeFile(path.join(packageDirPath, 'package.json'), newPackageJsonText);\n } catch {\n // do nothing\n }\n })\n );\n });\n}\n","import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { ignoreEnoentAsync } from '@willbooster/shared-lib';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function fixTypeDefinitions(\n config: PackageConfig,\n configsIncludingChildren: PackageConfig[]\n): Promise<void> {\n return logger.function('fixTypeDefinitions', async () => {\n const libTypeDirPath = path.resolve(config.dirPath, '@types');\n const srcTypeDirPath =\n config.root && config.containingSubPackageJsons ? undefined : path.resolve(config.dirPath, 'src', 'types');\n\n const dirents = await ignoreEnoentAsync(() => fs.readdir(libTypeDirPath, { withFileTypes: true }));\n if (!dirents) return;\n\n for (const dirent of dirents) {\n const dirName = dirent.name.slice(0, -5);\n const hasTypeDeclarationExtension = dirent.name.endsWith('.d.ts');\n let packageName = hasTypeDeclarationExtension ? dirName : dirent.name;\n if (packageName.includes('__')) {\n packageName = `@${packageName.replace('__', '/')}`;\n }\n const hasLibrary = configsIncludingChildren.some(\n (config) =>\n config.packageJson?.dependencies?.[packageName] || config.packageJson?.devDependencies?.[packageName]\n );\n\n if (dirent.isFile() && hasTypeDeclarationExtension) {\n if (hasLibrary) {\n // Move @types/<name>/index.d.ts if installed\n await fs.mkdir(path.join(libTypeDirPath, dirName));\n await promisePool.run(() =>\n fs.rename(path.join(libTypeDirPath, dirent.name), path.join(libTypeDirPath, dirName, 'index.d.ts'))\n );\n } else if (srcTypeDirPath) {\n // Move src/types/<name> if not installed\n await fs.mkdir(srcTypeDirPath, { recursive: true });\n await promisePool.run(() =>\n fs.rename(path.join(libTypeDirPath, dirent.name), path.join(srcTypeDirPath, dirent.name))\n );\n }\n } else if (dirent.isDirectory() && srcTypeDirPath && !hasLibrary) {\n // Move src/types/<name>.d.ts if not installed\n await fs.mkdir(srcTypeDirPath, { recursive: true });\n await promisePool.run(() =>\n ignoreEnoentAsync(() =>\n fs.rename(\n path.join(libTypeDirPath, dirent.name, 'index.d.ts'),\n path.join(srcTypeDirPath, `${dirent.name}.d.ts`)\n )\n )\n );\n }\n }\n });\n}\n","import child_process, { SpawnSyncOptions } from 'node:child_process';\n\nexport function spawnSync(command: string, args: string[], cwd: string, retry = 0): void {\n do {\n const [newCmd, newArgs, options] = getSpawnSyncArgs(command, args, cwd);\n console.log(`$ ${newCmd} ${newArgs.join(' ')} at ${options.cwd}`);\n const ret = child_process.spawnSync(newCmd, newArgs, options);\n if (ret.status === 0) break;\n } while (--retry >= 0);\n}\n\nexport function spawnSyncWithStringResult(command: string, args: string[], cwd: string): string {\n const [newCmd, newArgs, options] = getSpawnSyncArgs(command, args, cwd);\n options.stdio = 'pipe';\n const proc = child_process.spawnSync(newCmd, newArgs, options);\n const error = proc.stderr.toString().trim();\n if (error) {\n console.error(`${newCmd} [${newArgs.map((s) => `\"${s}\"`)}] caused the following error:\\n ${error}`);\n }\n return proc.stdout.toString().trim();\n}\n\nexport function getSpawnSyncArgs(command: string, args: string[], cwd: string): [string, string[], SpawnSyncOptions] {\n const env = { ...process.env };\n // Remove berry from PATH\n if (env.PATH && env.BERRY_BIN_FOLDER) {\n env.PATH = env.PATH.replace(`${env.BERRY_BIN_FOLDER}:`, '');\n }\n\n if (env.ASDF_DIR) {\n args = ['-l', '-c', `. ${env.ASDF_DIR}/asdf.sh && ${command} ${args.join(' ')}`];\n command = 'bash';\n }\n return [\n command,\n args,\n {\n cwd,\n env,\n shell: false,\n stdio: 'inherit',\n },\n ];\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync, spawnSyncWithStringResult } from '../utils/spawnUtil.js';\nimport { convertVersionIntoNumber } from '../utils/version.js';\n\nexport async function generateVersionConfigs(config: PackageConfig): Promise<void> {\n return logger.function('generateVersionConfigs', async () => {\n await core(config);\n });\n}\n\nconst POETRY_VERSION = '1.3.2';\nconst PYTHON_VERSION = '3.9.16';\nconst JAVA_VERSION = 'adoptopenjdk-11.0.17+8';\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","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 fs from 'node:fs';\n\nconst userContentHeader = '# Project-specific settings';\nconst userContentHeaderRegex = /# Project-specific settings[^\\n]*\\n/gm;\nconst separator = '# Generated by wbfy';\nconst separatorPrefix = '# Generated by ';\nconst defaultHeadUserContent = `${userContentHeader} (head)\n\n\n${separator}\n`;\nconst defaultTailUserContent = `\n${userContentHeader} (tail)\n`;\n\nexport const ignoreFileUtil = {\n separator,\n separatorPrefix,\n defaultHeadUserContent,\n defaultTailUserContent,\n async readGitignoreWithoutSeparators(filePath: string): Promise<string | undefined> {\n try {\n let content = await fs.promises.readFile(filePath, 'utf8');\n const lastHeaderIndex = getIndexOfTailUserContentHeader(content);\n if (lastHeaderIndex > 0) {\n content = content.slice(0, lastHeaderIndex - 1);\n }\n return (\n content\n .replace(userContentHeaderRegex, '')\n .replace(/# Generated by [^\\n]*\\n/gm, '')\n .replace(/\\r?\\n\\r?\\n(\\r?\\n)+/gm, '\\n\\n')\n .trim() + '\\n'\n );\n } catch {\n // do nothing\n }\n },\n getHeadUserContent(content: string): string {\n const index = content.indexOf(this.separatorPrefix);\n if (index >= 0) {\n return content\n .slice(0, content.indexOf('\\n', index) + 1)\n .replace(userContentHeaderRegex, `${userContentHeader} (head)\\n`);\n }\n return defaultHeadUserContent;\n },\n getTailUserContent(content: string): string | undefined {\n const lastHeaderIndex = getIndexOfTailUserContentHeader(content);\n if (lastHeaderIndex > 0) {\n return content.slice(lastHeaderIndex - 1);\n }\n return defaultTailUserContent;\n },\n async isBerryZeroInstallEnabled(filePath: string): Promise<boolean> {\n try {\n const content = await fs.promises.readFile(filePath, 'utf8');\n return content.includes('\\n!.yarn/cache');\n } catch {\n return false;\n }\n },\n};\n\nfunction getIndexOfTailUserContentHeader(content: string): number {\n const index = content.indexOf(userContentHeader);\n const lastIndex = content.lastIndexOf(userContentHeader);\n return lastIndex > index ? lastIndex : -1;\n}\n","import path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst commonContent = `\n3rd-party/\n@types/\n__generated__/\nandroid/\nios/\nno-format/\ntest-fixtures/\n*.config.*js\n*.d.ts\n*.min.*js\n.yarn/\n.pnp.js\n`;\n\nexport async function generateEslintignore(config: PackageConfig): Promise<void> {\n return logger.function('generateEslintignore', async () => {\n const filePath = path.resolve(config.dirPath, '.eslintignore');\n const content = (await fsUtil.readFileIgnoringError(filePath)) ?? '';\n const headUserContent = ignoreFileUtil.getHeadUserContent(content) + commonContent;\n const tailUserContent = ignoreFileUtil.getTailUserContent(content);\n\n const gitignoreFilePath = path.resolve(config.dirPath, '.gitignore');\n const gitignoreContent = (await ignoreFileUtil.readGitignoreWithoutSeparators(gitignoreFilePath)) || '';\n\n const newContent = headUserContent + commonContent + gitignoreContent + tailUserContent;\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import merge from 'deepmerge';\n\nexport function overwriteMerge(destinationArray: any[], sourceArray: any[]): any[] {\n return sourceArray;\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function combineMerge(target: any[], source: any[], options: any): any[] {\n const destination = [...target];\n\n for (const [index, item] of source.entries()) {\n if (destination[index] === undefined) {\n destination[index] = options.cloneUnlessOtherwiseSpecified(item, options);\n } else if (options.isMergeableObject(item)) {\n destination[index] = merge(target[index], item, options);\n } else if (!target.includes(item)) {\n destination.push(item);\n }\n }\n return destination;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { combineMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function generateEslintrc(config: PackageConfig, rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateEslintrc', async () => {\n // TODO: support Blitz v2\n if (rootConfig.depending.blitz === '2') return;\n\n const bases = [];\n if (config.eslintBase) {\n bases.push(config.eslintBase);\n }\n if (config !== rootConfig) {\n bases.push('../../.eslintrc.json');\n }\n let newSettings: any = { root: true, extends: bases };\n\n const filePath = path.resolve(config.dirPath, '.eslintrc.json');\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(oldContent);\n if (oldSettings.extends) {\n oldSettings.extends = oldSettings.extends.filter(\n (ext: string) => !ext.startsWith('@willbooster/') && ext !== '../../.eslintrc.json'\n );\n }\n if (bases.length === 0) {\n oldSettings.extends = [];\n }\n const newExtends = newSettings.extends;\n newSettings.extends = oldSettings.extends;\n oldSettings.extends = newExtends;\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n if (config.depending.blitz === '0') {\n addExtensionToHead(newSettings, 'blitz');\n } else if (config.depending.blitz === '2') {\n addExtensionToHead(newSettings, '@blitzjs/next/eslint');\n }\n } catch {\n // do nothing\n }\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nfunction addExtensionToHead(newSettings: any, extension: string): void {\n newSettings.extends = [extension, ...newSettings.extends.filter((e: string) => e !== extension)];\n}\n","import path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { extensions } from '../utils/extensions.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst newContent = `* text=auto\n\n*.vcproj text eol=crlf\n\n${[...extensions.codeWith2IndentSize, ...extensions.codeWith4IndentSize, ...extensions.markdownLike]\n .map((ext) => `*.${ext} text eol=lf`)\n .join('\\n')}\n`;\n\nexport async function generateGitattributes(config: PackageConfig): Promise<void> {\n return logger.function('generateGitattributes', async () => {\n const filePath = path.resolve(config.dirPath, '.gitattributes');\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { options } from '../options.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst defaultNames = ['windows', 'macos', 'linux', 'jetbrains', 'visualstudiocode', 'emacs', 'vim', 'yarn'];\n\nconst commonContent = `\n.devcontainer/\ndist/\ntemp/\nIcon[\\r]\n!.keep\n`;\n\nexport async function generateGitignore(config: PackageConfig, rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateGitignore', async () => {\n const filePath = path.resolve(config.dirPath, '.gitignore');\n const content = (await fsUtil.readFileIgnoringError(filePath)) ?? '';\n let headUserContent = ignoreFileUtil.getHeadUserContent(content) + commonContent;\n const tailUserContent = ignoreFileUtil.getTailUserContent(content);\n\n const names = [...defaultNames];\n if (config.containingGemfile) {\n names.push('ruby');\n }\n if (config.containingGoMod) {\n names.push('go');\n headUserContent += `${path.basename(config.dirPath)}\n`;\n }\n if (config.containingPackageJson) {\n names.push('node');\n }\n if (config.containingPomXml) {\n names.push('maven');\n headUserContent += `.idea/google-java-format.xml\n`;\n }\n if (config.containingPubspecYaml) {\n names.push('flutter', 'AndroidStudio', 'ruby');\n headUserContent += `.flutter-plugins-dependencies\nandroid/key.properties\nios/.bundle\n.idea/runConfigurations.xml\n`;\n }\n if (config.containingTemplateYaml) {\n headUserContent += `.aws-sam/\npackaged.yaml\n`;\n }\n // Because .venv should be ignored on root directory\n if (config.containingPoetryLock) {\n names.push('python');\n headUserContent += `.venv/\n`;\n }\n\n if (rootConfig.depending.blitz) {\n names.push('nextjs');\n headUserContent += `.blitz/\n.blitz**\n`;\n }\n if (rootConfig.depending.firebase || config.depending.firebase) {\n names.push('firebase');\n }\n if (rootConfig.depending.prisma) {\n headUserContent += `*.sqlite3\n*.sqlite3-journal\n`;\n }\n if (rootConfig.depending.playwright) {\n headUserContent += `test-results/\n`;\n }\n if (rootConfig.depending.reactNative || config.depending.reactNative) {\n names.push('reactnative');\n headUserContent += `google-services.json\nandroid/app/src/main/assets/\n`;\n }\n if (rootConfig.depending.storybook) {\n names.push('storybookjs');\n }\n\n let generated = '';\n for (const name of names) {\n let content = (await readCache(name)) ?? '';\n if (!content) {\n const url = `https://www.toptal.com/developers/gitignore/api/${name}`;\n const response = await fetch(url);\n const responseText = await response.text();\n if (responseText.includes('Attention Required!')) {\n console.error(`Failed to fetch ${url}`);\n return;\n }\n content = responseText.trim();\n await promisePool.run(() => writeCache(name, content));\n if (options.isVerbose) {\n console.info(`Fetched ${url}`);\n }\n }\n if (generated) generated += '\\n';\n generated += content + '\\n';\n }\n if (!(await ignoreFileUtil.isBerryZeroInstallEnabled(filePath))) {\n generated = generated.replace('!.yarn/cache', '# !.yarn/cache').replace('# .pnp.*', '.pnp.*');\n }\n if (config.containingPomXml || config.containingPubspecYaml) {\n generated = generated\n .replace(/^# .idea\\/artifacts$/gm, '.idea/artifacts')\n .replace(/^# .idea\\/compiler.xml$/gm, '.idea/compiler.xml')\n .replace(/^# .idea\\/jarRepositories.xml$/gm, '.idea/jarRepositories.xml')\n .replace(/^# .idea\\/modules.xml$/gm, '.idea/modules.xml')\n .replace(/^# .idea\\/*.iml$/gm, '.idea/*.iml')\n .replace(/^# .idea\\/modules$/gm, '.idea/modules')\n .replace(/^# *.iml$/gm, '*.iml')\n .replace(/^# *.ipr$/gm, '*.ipr');\n if (config.containingPubspecYaml) {\n generated = generated.replace(/^.idea\\/modules.xml$/gm, '# .idea/modules.xml');\n }\n }\n generated = generated.replace(/^.idea\\/?$/gm, '# .idea');\n if (rootConfig.depending.reactNative || config.depending.reactNative || config.containingPubspecYaml) {\n generated = generated.replace(/^(.idea\\/.+)$/gm, '$1\\nandroid/$1');\n }\n const newContent = headUserContent + generated + tailUserContent;\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nconst dirPath = path.join(os.homedir(), '.cache', 'wbfy', 'gitignore');\n\nasync function writeCache(name: string, content: string): Promise<void> {\n await fs.promises.mkdir(dirPath, { recursive: true });\n await fs.promises.writeFile(path.join(dirPath, name), content);\n}\n\nasync function readCache(name: string): Promise<string | undefined> {\n try {\n const stat = await fs.promises.stat(path.join(dirPath, name));\n if (Date.now() - stat.mtimeMs > 6 * 60 * 60 * 1000) {\n return;\n }\n return await fs.promises.readFile(path.join(dirPath, name), 'utf8');\n } catch {\n // do nothing\n }\n}\n","import { PackageConfig } from '../packageConfig.js';\n\nexport const EslintUtil = {\n getLintFixSuffix(config: PackageConfig): string {\n return config.containingJsxOrTsx ? ' --rule \"{ react-hooks/exhaustive-deps: 0 }\"' : '';\n },\n};\n","import { Octokit } from '@octokit/core';\n\nconst token =\n process.env.GH_BOT_PAT || process.env.PUBLIC_GH_BOT_PAT || process.env.GH_TOKEN || process.env.GITHUB_TOKEN;\nexport const hasGitHubToken = !!token;\nexport const octokit = new Octokit({\n auth: token,\n});\n\nclass GitHubUtil {\n getOrgAndName(urlOrFullName: string): [string, string] {\n const urlWithoutProtocol = urlOrFullName.split(':').at(-1);\n const names = urlWithoutProtocol?.split('/');\n const org = names?.at(-2) ?? '';\n const name = names?.at(-1)?.replace(/.git$/, '') ?? '';\n return [org, name];\n }\n}\n\nexport const gitHubUtil = new GitHubUtil();\n","import { PackageConfig } from '../packageConfig.js';\n\nconst srcDirectories = {\n node: ['src', 'tests', 'scripts'].sort(),\n blitz0: ['tests', 'scripts', 'app', 'db', 'integrations', 'mailers', 'test'].sort(),\n // We rename 'test' directory to 'tests'\n blitz2: ['src', 'tests', 'scripts', 'db', 'integrations', 'mailers'].sort(),\n};\n\nexport function getSrcDirs(config: PackageConfig): string[] {\n if (config.depending.blitz) {\n return config.depending.blitz === '0' ? srcDirectories.blitz0 : srcDirectories.blitz2;\n }\n return srcDirectories.node;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport { globby } from 'globby';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { EslintUtil } from '../utils/eslintUtil.js';\nimport { extensions } from '../utils/extensions.js';\nimport { gitHubUtil } from '../utils/githubUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync } from '../utils/spawnUtil.js';\nimport { getSrcDirs } from '../utils/srcDirectories.js';\n\nconst jsCommonDeps = [\n 'eslint',\n 'eslint-config-prettier',\n 'eslint-plugin-import',\n 'eslint-plugin-sort-class-members',\n 'eslint-plugin-sort-destructure-keys',\n 'eslint-plugin-unicorn',\n];\n\nconst tsCommonDeps = [\n ...jsCommonDeps,\n '@typescript-eslint/eslint-plugin',\n '@typescript-eslint/parser',\n 'eslint-import-resolver-typescript',\n];\n\nconst reactCommonDeps = ['eslint-plugin-react', 'eslint-plugin-react-hooks'];\n\nconst devDeps: { [prop: string]: string[] } = {\n '@willbooster/eslint-config-js': ['@willbooster/eslint-config-js', ...jsCommonDeps],\n '@willbooster/eslint-config-js-react': ['@willbooster/eslint-config-js-react', ...jsCommonDeps, ...reactCommonDeps],\n '@willbooster/eslint-config-ts': ['@willbooster/eslint-config-ts', ...tsCommonDeps],\n '@willbooster/eslint-config-ts-react': ['@willbooster/eslint-config-ts-react', ...tsCommonDeps, ...reactCommonDeps],\n '../../.eslintrc.json': [],\n};\n\nexport async function generatePackageJson(\n config: PackageConfig,\n rootConfig: PackageConfig,\n skipAddingDeps: boolean\n): Promise<void> {\n return logger.function('generatePackageJson', async () => {\n await core(config, rootConfig, skipAddingDeps);\n });\n}\n\nasync function core(config: PackageConfig, rootConfig: PackageConfig, skipAddingDeps: boolean): Promise<void> {\n const filePath = path.resolve(config.dirPath, 'package.json');\n const jsonText = await fs.promises.readFile(filePath, 'utf8');\n const jsonObj = JSON.parse(jsonText);\n jsonObj.scripts = jsonObj.scripts || {};\n jsonObj.dependencies = jsonObj.dependencies || {};\n jsonObj.devDependencies = jsonObj.devDependencies || {};\n jsonObj.peerDependencies = jsonObj.peerDependencies || {};\n\n await removeDeprecatedStuff(jsonObj);\n\n if (jsonObj.name !== '@willbooster/prettier-config') {\n jsonObj.prettier = '@willbooster/prettier-config';\n }\n\n for (const scriptKey of Object.keys(jsonObj.scripts)) {\n // Fresh repo still requires 'yarn install'\n if (!jsonObj.scripts[scriptKey].includes('git clone')) {\n jsonObj.scripts[scriptKey] = jsonObj.scripts[scriptKey]\n .replace(/yarn\\s*&&\\s*/, '')\n .replace(/yarn\\s*install\\s*&&\\s*/, '');\n }\n }\n\n jsonObj.scripts = merge(jsonObj.scripts, generateScripts(config));\n jsonObj.scripts.prettify += await generatePrettierSuffix(config.dirPath);\n\n let dependencies: string[] = [];\n let devDependencies = ['lint-staged', 'prettier', 'sort-package-json', '@willbooster/prettier-config'];\n const 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\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) {\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 dependencies = dependencies.filter((dep) => !jsonObj.devDependencies?.[dep]);\n if (dependencies.length > 0) {\n spawnSync('yarn', ['add', ...new Set(dependencies)], config.dirPath);\n }\n devDependencies = devDependencies.filter((dep) => !jsonObj.dependencies?.[dep]);\n if (devDependencies.length > 0) {\n spawnSync('yarn', ['add', '-D', ...new Set(devDependencies)], config.dirPath);\n }\n if (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:codegen'];\n delete jsonObj.dependencies['tslib'];\n delete jsonObj.devDependencies['@willbooster/eslint-config'];\n delete jsonObj.devDependencies['@willbooster/eslint-config-react'];\n delete jsonObj.devDependencies['@willbooster/tsconfig'];\n delete jsonObj.devDependencies['eslint-import-resolver-node'];\n delete jsonObj.devDependencies['eslint-plugin-prettier'];\n delete jsonObj.devDependencies['lerna'];\n // To install the latest pinst\n delete jsonObj.devDependencies['pinst'];\n delete jsonObj.scripts['flutter-format'];\n delete jsonObj.scripts['format-flutter'];\n delete jsonObj.scripts['python-format'];\n delete jsonObj.scripts['format-python'];\n delete jsonObj.scripts['prettier'];\n for (const deps of Object.values(devDeps)) {\n for (const dep of deps) {\n delete jsonObj.devDependencies[dep];\n }\n }\n await promisePool.run(() => fs.promises.rm('lerna.json', { force: true }));\n}\n\nexport function generateScripts(config: PackageConfig): Record<string, string> {\n let scripts: Record<string, string> = {\n cleanup: 'yarn format && yarn lint-fix',\n format: `sort-package-json && yarn prettify`,\n lint: `eslint --color \"./{${getSrcDirs(config)}}/**/*.{${extensions.eslint.join(',')}}\"`,\n 'lint-fix': 'yarn lint --fix',\n prettify: `prettier --cache --color --write \"**/{.*/,}*.{${extensions.prettier.join(',')}}\" \"!**/test-fixtures/**\"`,\n typecheck: 'tsc --noEmit --Pretty',\n };\n if (config.containingSubPackageJsons) {\n scripts = merge(\n { ...scripts },\n {\n format: `sort-package-json && yarn prettify && yarn workspaces foreach --parallel --verbose run format`,\n lint: `yarn workspaces foreach --parallel --verbose run lint`,\n 'lint-fix': 'yarn workspaces foreach --parallel --verbose run lint-fix',\n prettify: `prettier --cache --color --write \"**/{.*/,}*.{${extensions.prettier.join(\n ','\n )}}\" \"!**/packages/**\" \"!**/test-fixtures/**\"`,\n test: 'yarn workspaces foreach --verbose run test',\n typecheck: 'yarn workspaces foreach --parallel --verbose run typecheck',\n }\n );\n if (!config.containingTypeScript && !config.containingTypeScriptInPackages) {\n delete scripts.typecheck;\n }\n } else {\n if (config.depending.blitz) {\n scripts.typecheck += ' || yarn run typecheck/warn';\n scripts['typecheck/warn'] = `echo 'Please try \"yarn gen-code\" if you face unknown type errors.' && exit 1`;\n scripts['typecheck:gen-code'] = 'yarn gen-code && tsc --noEmit --Pretty';\n }\n if (!config.containingTypeScript && !config.containingTypeScriptInPackages) {\n delete scripts.typecheck;\n }\n if (config.depending.pyright) {\n scripts.typecheck = scripts.typecheck ? `${scripts.typecheck} && ` : '';\n scripts.typecheck += 'pyright';\n }\n }\n return scripts;\n}\n\nasync function generatePrettierSuffix(dirPath: string): Promise<string> {\n const filePath = path.resolve(dirPath, '.prettierignore');\n const existingContent = await fs.promises.readFile(filePath, 'utf8');\n const index = existingContent.indexOf(ignoreFileUtil.separatorPrefix);\n if (index < 0) return '';\n\n const originalContent = existingContent.slice(0, index);\n const lines = originalContent\n .split('\\n')\n .map((line) => {\n const newLine = line.trim();\n return newLine.endsWith('/') ? newLine.slice(0, -1) : newLine;\n })\n .filter((l) => l && !l.startsWith('#') && !l.includes('/'));\n\n return lines.map((line) => ` \"!**/${line}/**\"`).join('');\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync } from '../utils/spawnUtil.js';\n\nimport { generateScripts } from './packageJson.js';\n\nconst DEFAULT_COMMAND = 'npm test';\n\nconst settings = {\n preCommit: 'node node_modules/.bin/lint-staged',\n prePush: `yarn typecheck`,\n prePushForLab: `\nif [ $(git branch --show-current) = \"main\" ] && [ $(git config user.email) != \"exkazuu@gmail.com\" ]; then\n echo \"************************************************\"\n echo \"*** Don't push main branch directly. Use PR! ***\"\n echo \"************************************************\"\n exit 1\nfi\n\nyarn typecheck\n`.trim(),\n postMerge: `\nchanged_files=\"$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)\"\n\nrun_if_changed() {\n if echo \"$changed_files\" | grep --quiet -E \"$1\"; then\n eval \"$2\"\n fi\n}\n`.trim(),\n};\n\nexport async function generateHuskyrc(config: PackageConfig): Promise<void> {\n return logger.function('generateHuskyrc', async () => {\n await core(config);\n });\n}\n\nasync function core(config: PackageConfig): Promise<void> {\n const packageJsonPath = path.resolve(config.dirPath, 'package.json');\n const jsonText = await fs.promises.readFile(packageJsonPath, 'utf8');\n const packageJson = JSON.parse(jsonText);\n packageJson.scripts ||= {};\n delete packageJson.scripts['postinstall'];\n delete packageJson.scripts['postpublish'];\n delete packageJson.scripts['prepare'];\n delete packageJson.scripts['prepublishOnly'];\n delete packageJson.scripts['prepack'];\n delete packageJson.scripts['postpack'];\n\n const dirPath = path.resolve(config.dirPath, '.husky');\n await Promise.all([\n fs.promises.writeFile(packageJsonPath, JSON.stringify(packageJson, undefined, 2)),\n fs.promises.rm(dirPath, { force: true, recursive: true }),\n ]);\n spawnSync('yarn', ['dlx', 'husky-init', '--yarn2'], config.dirPath);\n\n const preCommitFilePath = path.resolve(dirPath, 'pre-commit');\n const content = await fs.promises.readFile(preCommitFilePath, 'utf8');\n\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.huskyrc.json'), { force: true }));\n await promisePool.run(() =>\n fs.promises.writeFile(preCommitFilePath, content.replace(DEFAULT_COMMAND, settings.preCommit))\n );\n\n const { typecheck } = generateScripts(config);\n if (typecheck) {\n let prePush = config.repository?.startsWith('github:WillBoosterLab/') ? settings.prePushForLab : settings.prePush;\n prePush = prePush.replace(\n 'yarn typecheck',\n typecheck.replace('tsc', 'node node_modules/.bin/tsc').replace('pyright', 'node node_modules/.bin/pyright')\n );\n await promisePool.run(() =>\n fs.promises.writeFile(path.resolve(dirPath, 'pre-push'), content.replace(DEFAULT_COMMAND, prePush), {\n mode: 0o755,\n })\n );\n }\n\n const postMergeCommands: string[] = [];\n if (config.versionsText) {\n postMergeCommands.push('run_if_changed \"\\\\..+-version\" \"asdf plugin update --all\"');\n }\n // Pythonがないとインストールできない処理系が存在するため、強制的に最初にインストールする。\n if (config.versionsText?.includes('python ')) {\n postMergeCommands.push('run_if_changed \"\\\\..+-version\" \"asdf install python\"');\n }\n if (config.versionsText) {\n postMergeCommands.push('run_if_changed \"\\\\..+-version\" \"asdf install\"');\n }\n postMergeCommands.push('run_if_changed \"package\\\\.json\" \"yarn\"');\n if (config.containingPoetryLock) {\n postMergeCommands.push('run_if_changed \"poetry\\\\.lock\" \"poetry install\"');\n }\n if (config.depending.blitz) {\n postMergeCommands.push(\n 'run_if_changed \"db/schema.prisma\" \"node node_modules/.bin/blitz prisma migrate deploy\"',\n 'run_if_changed \"db/schema.prisma\" \"node node_modules/.bin/blitz blitz codegen\"'\n );\n } else if (config.depending.prisma) {\n postMergeCommands.push(\n 'run_if_changed \"prisma/schema.prisma\" \"node node_modules/.bin/prisma migrate deploy\"',\n 'run_if_changed \"prisma/schema.prisma\" \"node node_modules/.bin/prisma generate\"'\n );\n }\n const postMergeCommand = content.replace(DEFAULT_COMMAND, `${settings.postMerge}\\n\\n${postMergeCommands.join('\\n')}`);\n await promisePool.run(() =>\n fs.promises.writeFile(path.resolve(dirPath, 'post-merge'), postMergeCommand, {\n mode: 0o755,\n })\n );\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst newContent = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"ProjectTasksOptions\">\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"ts\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.ts)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"tsx\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.tsx)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"js\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.js)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"json\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.json)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"md\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.md)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"html\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.html)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n </component>\n</project>\n`;\n\nexport async function generateIdeaSettings(config: PackageConfig): Promise<void> {\n return logger.function('generateIdeaSettings', async () => {\n const dirPath = path.resolve(config.dirPath, '.idea');\n if (fs.existsSync(dirPath)) {\n const filePath = path.resolve(dirPath, 'watcherTasks.xml');\n await (config.containingJavaScript ||\n config.containingJavaScriptInPackages ||\n config.containingTypeScript ||\n config.containingTypeScriptInPackages ||\n (config.containingPackageJson &&\n !config.containingPubspecYaml &&\n !config.containingGemfile &&\n !config.containingGoMod &&\n !config.containingPomXml)\n ? promisePool.run(() => fsUtil.generateFile(filePath, newContent))\n : promisePool.run(() => fs.promises.rm(filePath, { force: true })));\n }\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { EslintUtil } from '../utils/eslintUtil.js';\nimport { extensions } from '../utils/extensions.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { getSrcDirs } from '../utils/srcDirectories.js';\n\nexport async function generateLintstagedrc(config: PackageConfig): Promise<void> {\n return logger.function('generateLintstagedrc', async () => {\n await core(config);\n });\n}\n\nasync function core(config: PackageConfig): Promise<void> {\n const packagePrefix = config.root ? 'node node_modules/.bin/' : 'node ../../node_modules/.bin/';\n const lines: string[] = [];\n if (config.containingJavaScript || config.containingTypeScript) {\n const eslint = `\n '${getEslintKey(config)}': [${JSON.stringify(\n `${packagePrefix}eslint --fix${EslintUtil.getLintFixSuffix(config)}`\n )}, '${packagePrefix}prettier --cache --write'],`;\n lines.push(eslint);\n }\n const packagesFilter = config.root ? \" && !file.includes('/packages/')\" : '';\n lines.push(`\n './**/*.{${extensions.prettier.join(',')}}': files => {\n ${config.containingJavaScript || config.containingTypeScript ? getEslintFilterForPrettier(config) : ''}\n const filteredFiles = files.filter(file => !file.includes('/test-fixtures/')${packagesFilter});\n if (filteredFiles.length === 0) return [];\n const commands = [\\`${packagePrefix}prettier --cache --write \\${filteredFiles.join(' ')}\\`];\n if (filteredFiles.some(file => file.endsWith('package.json'))) {\n commands.push('${packagePrefix}sort-package-json');\n }\n return commands;\n },`);\n if (config.containingPubspecYaml) {\n lines.push(`\n './{lib,test,test_driver}/**/*.dart': files => {\n const filteredFiles = files.filter(file => !file.includes('generated'))\n .filter(file => !file.endsWith('.freezed.dart') && !file.endsWith('.g.dart'));\n if (filteredFiles.length === 0) return [];\n return [\\`flutter format \\${filteredFiles.join(' ')}\\`];\n },`);\n }\n if (config.containingPoetryLock) {\n lines.push(`\n './**/*.py': [\n 'poetry run isort --profile black --filter-files',\n 'poetry run black',\n 'poetry run flake8'\n ],`);\n }\n\n const newContent = `${\n config.containingJavaScript || config.containingTypeScript ? \"const micromatch = require('micromatch');\" : ''\n }\n\nmodule.exports = {${lines.join('')}\n};\n`;\n\n const filePath = path.resolve(config.dirPath, '.lintstagedrc.cjs');\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.lintstagedrc.js'), { force: true }));\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.lintstagedrc.json'), { force: true }));\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n}\n\nfunction getEslintKey(config: PackageConfig): string {\n const dirs = getSrcDirs(config);\n return `./{${dirs.join(',')}}/**/*.{${extensions.eslint.join(',')}}`;\n}\n\nfunction getEslintFilterForPrettier(config: PackageConfig): string {\n return `files = micromatch.not(files, '${getEslintKey(config)}');`;\n}\n","import path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst commonContent = `\n3rd-party/\nandroid/\nios/\nno-format/\ntest-fixtures/\n*.d.ts\n*.min.js\n.yarn/\n.pnp.js\n`;\n\nexport async function generatePrettierignore(config: PackageConfig): Promise<void> {\n return logger.function('generatePrettierignore', async () => {\n const filePath = path.resolve(config.dirPath, '.prettierignore');\n const content = (await fsUtil.readFileIgnoringError(filePath)) ?? '';\n const headUserContent = ignoreFileUtil.getHeadUserContent(content) + commonContent;\n const tailUserContent = ignoreFileUtil.getTailUserContent(content);\n\n const gitignoreFilePath = path.resolve(config.dirPath, '.gitignore');\n const gitignoreContent = (await ignoreFileUtil.readGitignoreWithoutSeparators(gitignoreFilePath)) || '';\n\n let additionalContent = '';\n if (config.containingPubspecYaml) {\n additionalContent = `\nandroid/app/\nios/Runner/Assets.xcassets/\npubspec.yaml\n`;\n }\n\n const newContent = headUserContent + commonContent + additionalContent + gitignoreContent + tailUserContent;\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport cloneDeep from 'lodash.clonedeep';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { overwriteMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst jsonObj = {\n venvPath: '.',\n venv: '.venv',\n};\n\nexport async function generatePyrightConfigJson(config: PackageConfig): Promise<void> {\n return logger.function('generatePyrightConfigJson', async () => {\n let newSettings: unknown = cloneDeep(jsonObj);\n const filePath = path.resolve(config.dirPath, 'pyrightconfig.json');\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(oldContent);\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: overwriteMerge });\n } catch {\n // do nothing\n }\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function generateReadme(config: PackageConfig): Promise<void> {\n return logger.function('generateReadme', async () => {\n const filePath = path.resolve(config.dirPath, 'README.md');\n let newContent = await fs.promises.readFile(filePath, 'utf8');\n\n newContent = insertBadge(config, newContent, semanticReleaseBadge, '.releaserc.json');\n\n const repository = config.repository?.slice(config.repository?.indexOf(':') + 1);\n const fileNames = fs.readdirSync(`${config.dirPath}/.github/workflows`);\n for (const fileName of fileNames) {\n if (!fileName.startsWith('test') && !fileName.startsWith('deploy')) continue;\n\n let badgeName = fileName;\n badgeName = badgeName.charAt(0).toUpperCase() + badgeName.slice(1, badgeName.indexOf('.'));\n badgeName = badgeName.replace('-', ' ');\n const badge = `[](https://github.com/${repository}/actions/workflows/${fileName})`;\n newContent = insertBadge(config, newContent, badge, `.github/workflows/${fileName}`);\n }\n\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nconst semanticReleaseBadge =\n '[](https://github.com/semantic-release/semantic-release)';\n\nfunction insertBadge(config: PackageConfig, newContent: string, badge: string, fileName: string): string {\n if (!fs.existsSync(path.resolve(config.dirPath, fileName))) {\n return newContent;\n }\n\n // 既にbadgeがある場合は削除\n const badgePos = newContent.indexOf(badge);\n if (badgePos >= 0) {\n newContent = newContent.slice(0, badgePos) + newContent.slice(badgePos + badge.length);\n }\n let inserted = false;\n for (let i = 0; i < newContent.length; i++) {\n if (newContent[i] === '\\n') {\n inserted = true;\n newContent = `${newContent.slice(0, i + 1)}${badge}\\n${newContent.slice(i + 1)}`;\n break;\n }\n }\n if (!inserted) newContent = `${newContent}\\n${badge}\\n`;\n return newContent;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { overwriteMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function generateReleaserc(rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateReleaserc', async () => {\n const filePath = path.resolve(rootConfig.dirPath, '.releaserc.json');\n try {\n const settings = JSON.parse(await fs.promises.readFile(filePath, 'utf8'));\n const plugins = settings?.plugins || [];\n for (let i = 0; i < plugins.length; i++) {\n const plugin = Array.isArray(plugins[i]) ? plugins[i][0] : plugins[i];\n const oldConfig = (Array.isArray(plugins[i]) && plugins[i][1]) || {};\n if (plugin === '@semantic-release/commit-analyzer') {\n plugins[i] = [\n '@semantic-release/commit-analyzer',\n merge.all(\n [\n oldConfig,\n {\n preset: 'conventionalcommits',\n },\n ],\n { arrayMerge: overwriteMerge }\n ),\n ];\n } else if (plugin === '@semantic-release/github') {\n plugins[i] = [\n '@semantic-release/github',\n merge.all(\n [\n oldConfig,\n {\n successComment: false,\n labels: ['r: semantic-release'],\n releasedLabels: ['released :bookmark:'],\n },\n ],\n { arrayMerge: overwriteMerge }\n ),\n ];\n }\n }\n const newContent = JSON.stringify(settings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n } catch {\n // do nothing\n }\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport cloneDeep from 'lodash.clonedeep';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { overwriteMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst jsonObj = {\n extends: ['@willbooster'],\n};\n\nexport async function generateRenovateJson(config: PackageConfig): Promise<void> {\n return logger.function('generateRenovateJson', async () => {\n let newSettings: any = cloneDeep(jsonObj);\n const filePath = path.resolve(config.dirPath, '.renovaterc.json');\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(oldContent) as any;\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: overwriteMerge });\n } catch {\n // do nothing\n }\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.dependabot'), { force: true }));\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, 'renovate.json'), { force: true }));\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","export function sortKeys<T extends Record<string, unknown>>(obj: T): T {\n const keyAndValues = Object.entries(obj).sort(([key1], [key2]) => key1.localeCompare(key2));\n for (const [key, value] of keyAndValues) {\n delete obj[key];\n (obj as Record<string, unknown>)[key] = value;\n }\n return obj;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport cloneDeep from 'lodash.clonedeep';\nimport { TsConfigJson } from 'type-fest';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { combineMerge } from '../utils/mergeUtil.js';\nimport { sortKeys } from '../utils/objectUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst rootJsonObj = {\n compilerOptions: {\n target: 'ESNext',\n module: 'ESNext',\n moduleResolution: 'Node',\n jsx: 'react-jsx',\n alwaysStrict: true,\n strict: true,\n skipLibCheck: true,\n allowSyntheticDefaultImports: true,\n esModuleInterop: true,\n resolveJsonModule: true,\n declaration: true,\n sourceMap: true,\n importHelpers: false,\n outDir: 'dist',\n typeRoots: ['./node_modules/@types', './@types'],\n },\n include: [\n 'src/**/*',\n 'tests/**/*',\n 'scripts/**/*',\n 'packages/*/src/**/*',\n 'packages/*/tests/**/*',\n 'packages/*/scripts/**/*',\n ],\n};\n\nconst subJsonObj = {\n compilerOptions: {\n target: 'ESNext',\n module: 'ESNext',\n moduleResolution: 'Node',\n jsx: 'react-jsx',\n alwaysStrict: true,\n strict: true,\n skipLibCheck: true,\n allowSyntheticDefaultImports: true,\n esModuleInterop: true,\n resolveJsonModule: true,\n declaration: true,\n sourceMap: true,\n importHelpers: false,\n outDir: 'dist',\n typeRoots: ['../../node_modules/@types', '../../@types', './@types'],\n },\n include: ['src/**/*', 'tests/**/*', 'scripts/**/*'],\n};\n\nexport async function generateTsconfig(config: PackageConfig, rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateTsconfig', async () => {\n if (rootConfig.depending.blitz) return;\n\n let newSettings = cloneDeep(config.root ? rootJsonObj : subJsonObj) as TsConfigJson;\n if (!config.containingJsxOrTsx && !config.containingJsxOrTsxInPackages) {\n delete newSettings.compilerOptions?.jsx;\n }\n if (config.root && !config.containingSubPackageJsons) {\n newSettings.include = newSettings.include?.filter((dirPath: string) => !dirPath.startsWith('packages/*/'));\n }\n if (config.esmPackage) {\n newSettings.compilerOptions = { ...newSettings.compilerOptions, moduleResolution: 'NodeNext' };\n }\n\n const filePath = path.resolve(config.dirPath, 'tsconfig.json');\n try {\n const existingContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(existingContent) as TsConfigJson;\n if (oldSettings.extends === './node_modules/@willbooster/tsconfig/tsconfig.json') {\n delete oldSettings.extends;\n }\n // Don't modify \"target\", \"module\" and \"moduleResolution\".\n delete newSettings.compilerOptions?.target;\n delete newSettings.compilerOptions?.module;\n delete newSettings.compilerOptions?.moduleResolution;\n if (oldSettings.compilerOptions?.jsx) {\n delete newSettings.compilerOptions?.jsx;\n }\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n newSettings.include = newSettings.include?.filter(\n (dirPath: string) => !dirPath.includes('@types') && !dirPath.includes('__tests__')\n );\n } catch {\n // do nothing\n }\n sortKeys(newSettings.compilerOptions ?? {});\n newSettings.include?.sort();\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","/* eslint-disable unicorn/no-null */\n\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport yaml from 'js-yaml';\nimport cloneDeep from 'lodash.clonedeep';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { combineMerge } from '../utils/mergeUtil.js';\nimport { sortKeys } from '../utils/objectUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst workflows = {\n test: {\n name: 'Test',\n on: {\n pull_request: null,\n push: {\n branches: ['main', 'wbfy', 'renovate/**'],\n },\n },\n jobs: {\n test: {\n uses: 'WillBooster/reusable-workflows/.github/workflows/test.yml@main',\n },\n },\n },\n release: {\n name: 'Release',\n on: {\n push: {\n branches: [],\n },\n },\n jobs: {\n release: {\n uses: 'WillBooster/reusable-workflows/.github/workflows/release.yml@main',\n },\n },\n },\n wbfy: {\n name: 'Willboosterify',\n on: {\n workflow_dispatch: null,\n },\n jobs: {\n wbfy: {\n uses: 'WillBooster/reusable-workflows/.github/workflows/wbfy.yml@main',\n },\n },\n },\n 'wbfy-merge': {\n name: 'Merge wbfy',\n on: {\n workflow_dispatch: null,\n },\n jobs: {\n 'wbfy-merge': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/wbfy-merge.yml@main',\n },\n },\n },\n 'semantic-pr': {\n name: 'Lint PR title',\n on: {\n pull_request_target: {\n types: ['opened', 'edited', 'synchronize'],\n },\n },\n jobs: {\n 'semantic-pr': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/semantic-pr.yml@main',\n },\n },\n },\n 'notify-ready': {\n name: 'Notify ready',\n on: {\n issues: {\n types: ['labeled'],\n },\n },\n jobs: {\n 'notify-ready': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/notify-ready.yml@main',\n secrets: {\n DISCORD_WEBHOOK_URL: '${{ secrets.DISCORD_WEBHOOK_URL_FOR_READY }}',\n },\n },\n },\n },\n 'close-comment': {\n name: 'Add close comment',\n on: {\n pull_request: {\n types: ['opened'],\n },\n },\n jobs: {\n 'close-comment': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/close-comment.yml@main',\n },\n },\n },\n 'add-issue-to-project': {\n name: 'Add issue to github project',\n on: {\n issues: {\n types: ['labeled'],\n },\n },\n jobs: {\n 'add-issue-to-project': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/add-issue-to-project.yml@main',\n secrets: {\n GH_PROJECT_URL: '${{ secrets.GH_PROJECT_URL }}',\n },\n },\n },\n },\n} as Record<KnownKind, any>;\n\ntype KnownKind =\n | 'test'\n | 'release'\n | 'sync'\n | 'wbfy'\n | 'wbfy-merge'\n | 'semantic-pr'\n | 'notify-ready'\n | 'close-comment'\n | 'add-issue-to-project';\n\nexport async function generateWorkflows(rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateWorkflow', async () => {\n const workflowsPath = path.resolve(rootConfig.dirPath, '.github', 'workflows');\n await fs.promises.mkdir(workflowsPath, { recursive: true });\n\n // Remove config of semantic pull request\n const semanticYmlPath = path.resolve(rootConfig.dirPath, '.github', 'semantic.yml');\n await promisePool.run(() => fs.promises.rm(semanticYmlPath, { force: true, recursive: true }));\n\n const entries = await fs.promises.readdir(workflowsPath, { withFileTypes: true });\n const fileNames = entries\n .filter((dirent) => dirent.isFile() && dirent.name.endsWith('.yml'))\n .map((dirent) => dirent.name);\n if (rootConfig.depending.semanticRelease) {\n fileNames.push('release.yml');\n }\n if (rootConfig.publicRepo || rootConfig.repository?.startsWith('github:WillBoosterLab/')) {\n fileNames.push('notify-ready.yml');\n }\n fileNames.push(\n 'test.yml',\n 'wbfy.yml',\n 'wbfy-merge.yml',\n 'semantic-pr.yml',\n 'close-comment.yml',\n 'add-issue-to-project.yml'\n );\n\n for (const fileName of fileNames) {\n // 実際はKnownKind以外の値も代入されることに注意\n const kind = path.basename(fileName, '.yml') as KnownKind;\n await promisePool.run(() => writeWorkflowYaml(rootConfig, workflowsPath, kind));\n }\n });\n}\n\nasync function writeWorkflowYaml(config: PackageConfig, workflowsPath: string, kind: KnownKind): Promise<void> {\n let newSettings = cloneDeep(workflows[kind] || {});\n const filePath = path.join(workflowsPath, `${kind}.yml`);\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = yaml.load(oldContent);\n if (kind === 'wbfy' || kind === 'wbfy-merge') {\n console.log('writeWorkflowYaml:', kind);\n console.dir(oldSettings, { depth: null });\n }\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n if (kind === 'wbfy' || kind === 'wbfy-merge') {\n console.dir(newSettings, { depth: null });\n }\n } catch {\n // do nothing\n }\n for (const job of Object.values(newSettings.jobs) as any[]) {\n // Ignore non-reusable workflows\n if (!job.uses?.includes?.('/reusable-workflows/')) return;\n\n normalizeJob(config, job, kind);\n }\n\n switch (kind) {\n case 'release': {\n if (newSettings.on.schedule) {\n delete newSettings.on.push;\n } else if (config.release.branches.length > 0) {\n newSettings.on.push.branches = config.release.branches;\n } else {\n // Don't use release.yml if release branch is not specified\n await fs.promises.rm(path.join(workflowsPath, 'release.yml'), { force: true });\n return;\n }\n break;\n }\n case 'wbfy': {\n setSchedule(newSettings, 20, 24);\n break;\n }\n case 'wbfy-merge': {\n setSchedule(newSettings, 1, 4);\n break;\n }\n // No default\n }\n migrateWorkflow(newSettings);\n await writeYaml(newSettings, filePath);\n\n if (kind === 'release') {\n await fs.promises.rm(path.join(workflowsPath, 'semantic-release.yml'), { force: true });\n } else if (kind === 'sync') {\n await fs.promises.rm(path.join(workflowsPath, 'sync-init.yml'), { force: true });\n if (!newSettings.jobs.sync) return;\n\n newSettings.jobs['sync-force'] = newSettings.jobs.sync;\n const params = newSettings.jobs.sync.with.sync_params_without_dest;\n if (!params) return;\n\n newSettings.jobs.sync.with.sync_params_without_dest = `--force ${params}`;\n newSettings.name = 'Force to Sync';\n newSettings.on = { workflow_dispatch: null };\n delete newSettings.jobs.sync;\n await writeYaml(newSettings, path.join(workflowsPath, 'sync-force.yml'));\n }\n}\n\nfunction normalizeJob(config: PackageConfig, job: any, kind: KnownKind): void {\n job.with ||= {};\n job.secrets ||= {};\n\n if (\n kind === 'test' ||\n kind === 'release' ||\n kind === 'wbfy' ||\n kind === 'wbfy-merge' ||\n kind === 'add-issue-to-project'\n ) {\n job.secrets['GH_TOKEN'] = config.publicRepo ? '${{ secrets.PUBLIC_GH_BOT_PAT }}' : '${{ secrets.GH_BOT_PAT }}';\n }\n if (config.release.npm && (kind === 'release' || kind === 'test')) {\n job.secrets['NPM_TOKEN'] = '${{ secrets.NPM_TOKEN }}';\n }\n if (job.secrets['FIREBASE_TOKEN']) {\n job.secrets['GCP_SA_KEY_JSON_FOR_FIREBASE'] = '${{ secrets.GCP_SA_KEY_JSON_FOR_FIREBASE }}';\n delete job.secrets['FIREBASE_TOKEN'];\n }\n if (\n (job.secrets['DISCORD_WEBHOOK_URL'] && (kind === 'release' || kind.startsWith('deploy'))) ||\n (job.with.server_url && kind.startsWith('deploy'))\n ) {\n job.secrets['DISCORD_WEBHOOK_URL'] = '${{ secrets.DISCORD_WEBHOOK_URL_FOR_RELEASE }}';\n }\n\n if (kind === 'sync') {\n const params = job.with?.sync_params_without_dest;\n if (params) {\n job.with.sync_params_without_dest = params.replace('sync ', '');\n }\n }\n\n if (config.repository?.startsWith('github:WillBooster/')) {\n job.uses = job.uses.replace('WillBoosterLab/', 'WillBooster/');\n } else if (config.repository?.startsWith('github:WillBoosterLab/')) {\n job.uses = job.uses.replace('WillBooster/', 'WillBoosterLab/');\n }\n\n // Remove deprecated parameters\n migrateJob(job);\n if (job.with['dot_env_path'] === '.env') {\n delete job.with['dot_env_path'];\n }\n\n if (config.containingDockerfile && kind.startsWith('deploy')) {\n job.with['cpu_arch'] = 'X64';\n }\n // Because github.event.repository.private is always true if job is scheduled\n if (kind === 'release' || kind === 'test' || kind === 'wbfy' || kind === 'wbfy-merge' || kind.startsWith('deploy')) {\n if (config.publicRepo) {\n job.with['github_hosted_runner'] = true;\n }\n } else {\n delete job.with['github_hosted_runner'];\n }\n\n if (Object.keys(job.with).length > 0) {\n sortKeys(job.with);\n } else {\n delete job.with;\n }\n if (Object.keys(job.secrets).length > 0) {\n // Move secrets prop after with prop\n const newSecrets = sortKeys(job.secrets);\n delete job.secrets;\n job.secrets = newSecrets;\n } else {\n delete job.secrets;\n }\n}\n\nfunction setSchedule(newSettings: any, inclusiveMinHourJst: number, exclusiveMaxHourJst: number): void {\n const [minuteUtc, hourUtc] = ((newSettings.on.schedule?.[0]?.cron as string) ?? '').split(' ').map(Number);\n if (minuteUtc !== 0 && Number.isInteger(hourUtc)) {\n const hourJst = (hourUtc + 9) % 24;\n const inRange =\n inclusiveMinHourJst < exclusiveMaxHourJst\n ? inclusiveMinHourJst <= hourJst && hourJst < exclusiveMaxHourJst\n : inclusiveMinHourJst <= hourJst || hourJst < exclusiveMaxHourJst;\n if (inRange) return;\n console.log(\n 'setSchedule:',\n newSettings,\n minuteUtc,\n hourUtc,\n inRange,\n hourJst,\n inclusiveMinHourJst,\n exclusiveMaxHourJst\n );\n } else {\n console.log('setSchedule:', newSettings, minuteUtc, hourUtc);\n }\n\n const minJst = 1 + Math.floor(Math.random() * 59);\n const hourJst = inclusiveMinHourJst + Math.floor(Math.random() * (exclusiveMaxHourJst - inclusiveMinHourJst));\n const cron = `${minJst} ${(hourJst - 9 + 24) % 24} * * *`;\n newSettings.on.schedule = [{ cron }];\n}\n\nasync function writeYaml(newSettings: any, filePath: string): Promise<void> {\n const yamlText = yaml.dump(newSettings, {\n lineWidth: -1,\n noCompatMode: true,\n styles: {\n '!!null': 'empty',\n },\n });\n await fs.promises.writeFile(filePath, yamlText);\n}\n\nfunction migrateWorkflow(newSettings: any): void {\n delete newSettings.jobs['add-to-project'];\n}\n\nfunction migrateJob(job: any): void {\n delete job.with['non_self_hosted'];\n delete job.with['notify_discord'];\n delete job.with['require_fly'];\n delete job.with['require_gcloud'];\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport yaml from 'js-yaml';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync, spawnSyncWithStringResult } from '../utils/spawnUtil.js';\n\nexport async function generateYarnrcYml(config: PackageConfig): Promise<void> {\n return logger.function('generateYarnrcYml', async () => {\n const currentVersion = spawnSyncWithStringResult('yarn', ['--version'], config.dirPath);\n const latestVersion = getLatestVersion('@yarnpkg/cli', config.dirPath);\n if (getMajorNumber(currentVersion) <= getMajorNumber(latestVersion) && currentVersion !== latestVersion) {\n spawnSync('yarn', ['set', 'version', latestVersion], config.dirPath, 1);\n }\n\n const releasesPath = path.join(config.dirPath, '.yarn', 'releases');\n await fs.promises.mkdir(releasesPath, { recursive: true });\n for (const file of await fs.promises.readdir(releasesPath)) {\n if (file.startsWith('yarn-') && !file.startsWith(`yarn-${latestVersion}.`)) {\n await promisePool.run(() => fs.promises.rm(path.join(releasesPath, file)));\n console.log('Removed', path.join(releasesPath, file));\n }\n }\n\n const yarnrcPath = path.resolve(config.dirPath, '.yarnrc');\n await promisePool.run(() => fs.promises.rm(yarnrcPath, { force: true }));\n\n const yarnrcYmlPath = path.resolve(config.dirPath, '.yarnrc.yml');\n const settings = yaml.load(await fs.promises.readFile(yarnrcYmlPath, 'utf8')) as any;\n settings.defaultSemverRangePrefix = '';\n settings.nodeLinker = 'node-modules';\n settings.nmMode = 'hardlinks-global';\n // 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 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 storybook: !!devDependencies['@storybook/react'],\n },\n release: {\n branches: releaseBranches,\n github: releasePlugins.includes('@semantic-release/github'),\n npm: releasePlugins.includes('@semantic-release/npm'),\n },\n versionsText,\n packageJson,\n };\n config.eslintBase = getEslintExtensionBase(config);\n if (\n config.containingGemfile ||\n config.containingGoMod ||\n config.containingPackageJson ||\n config.containingPoetryLock ||\n config.containingPomXml ||\n config.containingPubspecYaml ||\n config.containingTemplateYaml\n ) {\n return config;\n }\n } catch {\n // do nothing\n }\n}\n\nfunction containsAny(pattern: string, dirPath: string): boolean {\n return globbySync(pattern, { dot: true, cwd: dirPath }).length > 0;\n}\n\nfunction getEslintExtensionBase(config: PackageConfig): string | undefined {\n if (config.containingTypeScript) {\n return config.containingJsxOrTsx ? '@willbooster/eslint-config-ts-react' : '@willbooster/eslint-config-ts';\n } else {\n if (config.containingJsxOrTsx) {\n return '@willbooster/eslint-config-js-react';\n } else if (config.containingJavaScript) {\n return '@willbooster/eslint-config-js';\n }\n }\n}\n\nasync function fetchRepoInfo(dirPath: string, packageJson: PackageJson): Promise<Record<string, any> | undefined> {\n const git = simpleGit(dirPath);\n const remotes = await git.getRemotes(true);\n const origin = remotes.find((r) => r.name === 'origin');\n const remoteUrl = origin?.refs?.fetch ?? origin?.refs?.push;\n if (typeof remoteUrl === 'string') {\n const json = await requestRepoInfo(remoteUrl);\n if (json) return json;\n }\n\n const url = typeof packageJson.repository === 'string' ? packageJson.repository : packageJson.repository?.url;\n if (url) {\n const json = await requestRepoInfo(url);\n if (json && json.message !== 'Not Found') return json;\n }\n}\n\nasync function requestRepoInfo(urlOrFullName: string): Promise<Record<string, any> | undefined> {\n const [org, name] = gitHubUtil.getOrgAndName(urlOrFullName);\n if (!org || !name) return;\n\n const ret = { full_name: `${org}/${name}` };\n try {\n const response = await octokit.request('GET /repos/{owner}/{repo}', {\n owner: org,\n repo: name,\n });\n Object.assign(ret, response.data);\n } catch {\n // do nothing\n }\n return ret;\n}\n","import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { ignoreErrorAsync } from '@willbooster/shared-lib';\nimport yargs from 'yargs';\n\nimport { fixAbbreviations } from './fixers/abbreviations.js';\nimport { fixDockerfiles } from './fixers/dockerfile.js';\nimport { fixTestDirectories } from './fixers/testDirectory.js';\nimport { fixTypeDefinitions } from './fixers/typeDefinition.js';\nimport { generateVersionConfigs } from './generators/asdf.js';\nimport { generateEditorconfig } from './generators/editorconfig.js';\nimport { generateEslintignore } from './generators/eslintignore.js';\nimport { generateEslintrc } from './generators/eslintrc.js';\nimport { generateGitattributes } from './generators/gitattributes.js';\nimport { generateGitignore } from './generators/gitignore.js';\nimport { generateHuskyrc } from './generators/huskyrc.js';\nimport { generateIdeaSettings } from './generators/idea.js';\nimport { generateLintstagedrc } from './generators/lintstagedrc.js';\nimport { generatePackageJson } from './generators/packageJson.js';\nimport { generatePrettierignore } from './generators/prettierignore.js';\nimport { generatePyrightConfigJson } from './generators/pyrightconfig.js';\nimport { generateReadme } from './generators/readme.js';\nimport { generateReleaserc } from './generators/releaserc.js';\nimport { generateRenovateJson } from './generators/renovaterc.js';\nimport { generateTsconfig } from './generators/tsconfig.js';\nimport { generateWorkflows } from './generators/workflow.js';\nimport { generateYarnrcYml } from './generators/yarnrc.js';\nimport { setupLabels } from './github/label.js';\nimport { setupSecrets } from './github/secret.js';\nimport { setupSettings } from './github/settings.js';\nimport { options } from './options.js';\nimport { getPackageConfig, PackageConfig } from './packageConfig.js';\nimport { promisePool } from './utils/promisePool.js';\nimport { spawnSync } from './utils/spawnUtil.js';\n\nasync function main(): Promise<void> {\n const argv = await yargs(process.argv.slice(2))\n .command('$0 [paths..]', 'Make a given project follow the WillBooster standard', (yargs) => {\n yargs.positional('paths', {\n describe: 'project paths to be wbfied',\n array: true,\n type: 'string',\n default: ['.'],\n });\n })\n .options({\n skipDeps: {\n description: 'Skip dependency installation',\n type: 'boolean',\n default: false,\n alias: 'd',\n },\n verbose: {\n description: 'Whether or not to enable verbose mode',\n type: 'boolean',\n default: false,\n alias: 'v',\n },\n })\n .strict().argv;\n options.isVerbose = argv.verbose;\n\n for (const rootDirPath of argv.paths as string[]) {\n const packagesDirPath = path.join(rootDirPath, 'packages');\n const dirents = (await ignoreErrorAsync(() => fs.readdir(packagesDirPath, { withFileTypes: true }))) ?? [];\n const subDirPaths = dirents.filter((d) => d.isDirectory()).map((d) => path.join(packagesDirPath, d.name));\n\n await fixTestDirectories([rootDirPath, ...subDirPaths]);\n const abbreviationPromise = fixAbbreviations(rootDirPath);\n const dockerfilePromise = fixDockerfiles([rootDirPath, ...subDirPaths]);\n\n const rootConfig = await getPackageConfig(rootDirPath);\n if (!rootConfig) {\n console.error(`there is no valid package.json in ${rootDirPath}`);\n continue;\n }\n\n const nullableSubPackageConfigs = await Promise.all(subDirPaths.map((subDirPath) => getPackageConfig(subDirPath)));\n const subPackageConfigs = nullableSubPackageConfigs.filter((config) => !!config) as PackageConfig[];\n const allPackageConfigs = [rootConfig, ...subPackageConfigs];\n\n if (options.isVerbose) {\n for (const config of allPackageConfigs) {\n console.info(config);\n }\n }\n\n // Install tools via asdf at first\n await generateVersionConfigs(rootConfig);\n // Install yarn berry\n await generateYarnrcYml(rootConfig);\n await Promise.all([\n abbreviationPromise.then(() => generateReadme(rootConfig)),\n dockerfilePromise,\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","_classCallCheck","this","_defineProperty","isVerbose","logger","Logger","_function2","_createClass","key","value","_asyncToGenerator","_regeneratorRuntime","mark","_callee","name","func","wrap","_context","prev","next","console","info","stop","_x","_x2","apply","arguments","fsUtil","readFileIgnoringError","filePath","fsp","readFile","abrupt","sent","t0","generateFile","content","_callee2","_context2","writeFile","log","promisePool","PromisePool","fixAbbreviations","_fixAbbreviations","dirPath","_context4","mdFiles","_iterator","_step","_loop","tsFiles","_iterator2","_step2","tsFile","newContent","_context3","globby","dot","cwd","gitignore","length","concat","_createForOfIteratorHelper","mdFile","path","join","run","fs","promises","replaceAll","s","n","done","delegateYield","t1","e","f","finish","t2","promiseAll","_callee3","convertVersionIntoNumber","version","versionNumber","divisor","split","map","Number","filter","isNaN","err","ASDF_VERSION","fixDockerfiles","_fixDockerfiles","packageDirPaths","Promise","all","_ref2","packageDirPath","replace","substring","fixTestDirectories","_fixTestDirectories","oldTestDirPath","newTestDirPath","packageJsonText","newPackageJsonText","rename","fixTypeDefinitions","_fixTypeDefinitions","config","configsIncludingChildren","libTypeDirPath","srcTypeDirPath","dirents","resolve","root","containingSubPackageJsons","undefined","ignoreEnoentAsync","readdir","withFileTypes","dirent","dirName","hasTypeDeclarationExtension","packageName","hasLibrary","slice","endsWith","includes","some","_config$packageJson","_config$packageJson$d","_config$packageJson2","_config$packageJson2$","packageJson","dependencies","devDependencies","isFile","mkdir","recursive","isDirectory","spawnSync","command","args","retry","_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","generateVersionConfigs","_generateVersionConfigs","core","POETRY_VERSION","PYTHON_VERSION","JAVA_VERSION","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","extensions","codeWith2IndentSize","codeWith4IndentSize","codeWith8IndentSize","markdownLike","eslint","prettier","generateExtensions","generateEditorconfig","_generateEditorconfig","userContentHeader","userContentHeaderRegex","separator","defaultHeadUserContent","defaultTailUserContent","ignoreFileUtil","separatorPrefix","readGitignoreWithoutSeparators","lastHeaderIndex","getIndexOfTailUserContentHeader","getHeadUserContent","indexOf","getTailUserContent","isBerryZeroInstallEnabled","lastIndex","lastIndexOf","commonContent","generateEslintignore","_generateEslintignore","_yield$fsUtil$readFil","headUserContent","tailUserContent","gitignoreFilePath","gitignoreContent","t3","overwriteMerge","destinationArray","sourceArray","combineMerge","target","source","destination","entries","_step$value","item","cloneUnlessOtherwiseSpecified","isMergeableObject","merge","push","generateEslintrc","_generateEslintrc","rootConfig","bases","newSettings","oldContent","oldSettings","newExtends","blitz","eslintBase","extends","JSON","parse","ext","startsWith","arrayMerge","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","stat","_context5","Date","now","mtimeMs","_callee4","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","containingJavaScript","containingJavaScriptInPackages","containingTypeScript","containingTypeScriptInPackages","willBoosterConfigs","dep","license","publishConfig","access","getOrgAndName","repository","author","main","release","npm","esmPackage","resolutions","lint","cleanup","dir","existsSync","format","postinstall","ignore","add","size","d","_jsonObj$devDependenc","_jsonObj$dependencies","_x7","_removeDeprecatedStuff","_i2","_Object$values","deps","values","typecheck","test","pyright","_x8","_generatePrettierSuffix","existingContent","originalContent","_callee5","DEFAULT_COMMAND","settings","preCommit","prePush","prePushForLab","postMerge","generateHuskyrc","_generateHuskyrc","_config$versionsText","packageJsonPath","preCommitFilePath","_generateScripts","postMergeCommands","postMergeCommand","mode","generateIdeaSettings","_generateIdeaSettings","generateLintstagedrc","_generateLintstagedrc","packagePrefix","packagesFilter","getEslintKey","getEslintFilterForPrettier","generatePrettierignore","_generatePrettierignore","additionalContent","venvPath","venv","generatePyrightConfigJson","_generatePyrightConfigJson","cloneDeep","generateReadme","_generateReadme","_config$repository2","fileNames","fileName","badgeName","badge","insertBadge","semanticReleaseBadge","readdirSync","charAt","toUpperCase","badgePos","inserted","i","generateReleaserc","_generateReleaserc","plugins","plugin","oldConfig","call","Array","isArray","preset","successComment","labels","releasedLabels","generateRenovateJson","_generateRenovateJson","sortKeys","obj","_ref","key1","key2","localeCompare","rootJsonObj","compilerOptions","module","moduleResolution","jsx","alwaysStrict","strict","skipLibCheck","allowSyntheticDefaultImports","esModuleInterop","resolveJsonModule","declaration","sourceMap","importHelpers","outDir","typeRoots","include","subJsonObj","generateTsconfig","_generateTsconfig","_newSettings$compiler6","_newSettings$include3","_newSettings$compiler","_newSettings$include","_newSettings$compiler2","_newSettings$compiler3","_newSettings$compiler4","_oldSettings$compiler","_newSettings$include2","_newSettings$compiler5","containingJsxOrTsxInPackages","workflows","on","pull_request","branches","jobs","uses","wbfy","workflow_dispatch","pull_request_target","types","issues","secrets","DISCORD_WEBHOOK_URL","GH_PROJECT_URL","generateWorkflows","_generateWorkflows","_rootConfig$repositor","workflowsPath","semanticYmlPath","kind","writeWorkflowYaml","_writeWorkflowYaml","_arr","_job$uses","_job$uses$includes","_job$uses2","job","params","yaml","load","depth","normalizeJob","schedule","setSchedule","migrateWorkflow","writeYaml","sync","sync_params_without_dest","server_url","_job$with","migrateJob","containingDockerfile","newSecrets","inclusiveMinHourJst","exclusiveMaxHourJst","_newSettings$on$sched","_newSettings$on$sched2","_split$map2","cron","minuteUtc","hourUtc","isInteger","hourJst","inRange","minJst","Math","floor","random","_writeYaml","yamlText","dump","lineWidth","noCompatMode","styles","generateYarnrcYml","_generateYarnrcYml","_settings$plugins$len","_settings$plugins","_settings$plugins$fil","_settings$plugins2","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","dockerfilePromise","nullableSubPackageConfigs","subPackageConfigs","allPackageConfigs","_config","ignoreErrorAsync","subDirPath","then","paths"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/options.ts","../src/logger.ts","../src/utils/fsUtil.ts","../src/utils/promisePool.ts","../src/fixers/abbreviations.ts","../src/utils/version.ts","../src/fixers/dockerfile.ts","../src/fixers/testDirectory.ts","../src/fixers/typeDefinition.ts","../src/utils/spawnUtil.ts","../src/generators/asdf.ts","../src/utils/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","export function convertVersionIntoNumber(version: string): number {\n // e.g. java adoptopenjdk-11.0.17+8\n const numbers = version.split(/[+.-]/).map(Number).filter(Number.isNaN);\n let versionNumber = 0;\n let divisor = 1;\n for (const num of numbers) {\n versionNumber += num * divisor;\n divisor /= 1000;\n }\n return versionNumber;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { convertVersionIntoNumber } from '../utils/version.js';\n\nconst ASDF_VERSION = '0.11.0';\n\nexport async function fixDockerfiles(packageDirPaths: string[]): Promise<void> {\n return logger.function('fixDockerfiles', async () => {\n await Promise.all(\n packageDirPaths.map(async (packageDirPath) => {\n try {\n const filePath = path.join(packageDirPath, 'Dockerfile');\n const content = await fs.promises.readFile(filePath, 'utf8');\n const newContent = content.replace(/ENV\\s+ASDF_VERSION\\s+([\\d.]+)/, (substring, version) => {\n if (convertVersionIntoNumber(version) < convertVersionIntoNumber(ASDF_VERSION)) {\n return `ENV ASDF_VERSION ${ASDF_VERSION}`;\n }\n return substring;\n });\n await fs.promises.writeFile(filePath, newContent);\n } catch {\n // do nothing\n }\n })\n );\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\n\nexport async function fixTestDirectories(packageDirPaths: string[]): Promise<void> {\n return logger.function('fixTestDirectories', async () => {\n await Promise.all(\n packageDirPaths.map(async (packageDirPath) => {\n const oldTestDirPath = path.join(packageDirPath, '__tests__');\n const newTestDirPath = path.join(packageDirPath, 'tests');\n try {\n await fs.promises.rename(oldTestDirPath, newTestDirPath);\n const packageJsonText = await fs.promises.readFile(path.join(packageDirPath, 'package.json'), 'utf8');\n const newPackageJsonText = packageJsonText.replace(/__tests__/g, 'tests');\n await fs.promises.writeFile(path.join(packageDirPath, 'package.json'), newPackageJsonText);\n } catch {\n // do nothing\n }\n })\n );\n });\n}\n","import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { ignoreEnoentAsync } from '@willbooster/shared-lib';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function fixTypeDefinitions(\n config: PackageConfig,\n configsIncludingChildren: PackageConfig[]\n): Promise<void> {\n return logger.function('fixTypeDefinitions', async () => {\n const libTypeDirPath = path.resolve(config.dirPath, '@types');\n const srcTypeDirPath =\n config.root && config.containingSubPackageJsons ? undefined : path.resolve(config.dirPath, 'src', 'types');\n\n const dirents = await ignoreEnoentAsync(() => fs.readdir(libTypeDirPath, { withFileTypes: true }));\n if (!dirents) return;\n\n for (const dirent of dirents) {\n const dirName = dirent.name.slice(0, -5);\n const hasTypeDeclarationExtension = dirent.name.endsWith('.d.ts');\n let packageName = hasTypeDeclarationExtension ? dirName : dirent.name;\n if (packageName.includes('__')) {\n packageName = `@${packageName.replace('__', '/')}`;\n }\n const hasLibrary = configsIncludingChildren.some(\n (config) =>\n config.packageJson?.dependencies?.[packageName] || config.packageJson?.devDependencies?.[packageName]\n );\n\n if (dirent.isFile() && hasTypeDeclarationExtension) {\n if (hasLibrary) {\n // Move @types/<name>/index.d.ts if installed\n await fs.mkdir(path.join(libTypeDirPath, dirName));\n await promisePool.run(() =>\n fs.rename(path.join(libTypeDirPath, dirent.name), path.join(libTypeDirPath, dirName, 'index.d.ts'))\n );\n } else if (srcTypeDirPath) {\n // Move src/types/<name> if not installed\n await fs.mkdir(srcTypeDirPath, { recursive: true });\n await promisePool.run(() =>\n fs.rename(path.join(libTypeDirPath, dirent.name), path.join(srcTypeDirPath, dirent.name))\n );\n }\n } else if (dirent.isDirectory() && srcTypeDirPath && !hasLibrary) {\n // Move src/types/<name>.d.ts if not installed\n await fs.mkdir(srcTypeDirPath, { recursive: true });\n await promisePool.run(() =>\n ignoreEnoentAsync(() =>\n fs.rename(\n path.join(libTypeDirPath, dirent.name, 'index.d.ts'),\n path.join(srcTypeDirPath, `${dirent.name}.d.ts`)\n )\n )\n );\n }\n }\n });\n}\n","import child_process, { SpawnSyncOptions } from 'node:child_process';\n\nexport function spawnSync(command: string, args: string[], cwd: string, retry = 0): void {\n do {\n const [newCmd, newArgs, options] = getSpawnSyncArgs(command, args, cwd);\n console.log(`$ ${newCmd} ${newArgs.join(' ')} at ${options.cwd}`);\n const ret = child_process.spawnSync(newCmd, newArgs, options);\n if (ret.status === 0) break;\n } while (--retry >= 0);\n}\n\nexport function spawnSyncWithStringResult(command: string, args: string[], cwd: string): string {\n const [newCmd, newArgs, options] = getSpawnSyncArgs(command, args, cwd);\n options.stdio = 'pipe';\n const proc = child_process.spawnSync(newCmd, newArgs, options);\n const error = proc.stderr.toString().trim();\n if (error) {\n console.error(`${newCmd} [${newArgs.map((s) => `\"${s}\"`)}] caused the following error:\\n ${error}`);\n }\n return proc.stdout.toString().trim();\n}\n\nexport function getSpawnSyncArgs(command: string, args: string[], cwd: string): [string, string[], SpawnSyncOptions] {\n const env = { ...process.env };\n // Remove berry from PATH\n if (env.PATH && env.BERRY_BIN_FOLDER) {\n env.PATH = env.PATH.replace(`${env.BERRY_BIN_FOLDER}:`, '');\n }\n\n if (env.ASDF_DIR) {\n args = ['-l', '-c', `. ${env.ASDF_DIR}/asdf.sh && ${command} ${args.join(' ')}`];\n command = 'bash';\n }\n return [\n command,\n args,\n {\n cwd,\n env,\n shell: false,\n stdio: 'inherit',\n },\n ];\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync, spawnSyncWithStringResult } from '../utils/spawnUtil.js';\nimport { convertVersionIntoNumber } from '../utils/version.js';\n\nexport async function generateVersionConfigs(config: PackageConfig): Promise<void> {\n return logger.function('generateVersionConfigs', async () => {\n await core(config);\n });\n}\n\nconst POETRY_VERSION = '1.3.2';\nconst PYTHON_VERSION = '3.9.16';\nconst JAVA_VERSION = 'adoptopenjdk-11.0.17+8';\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 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`;\n\nexport async function generateDockerignore(config: PackageConfig): Promise<void> {\n return logger.function('generateDockerignore', async () => {\n const filePath = path.resolve(config.dirPath, '.dockerignore');\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 });\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 // TODO: support Blitz v2\n if (rootConfig.depending.blitz === '2') return;\n\n const bases = [];\n if (config.eslintBase) {\n bases.push(config.eslintBase);\n }\n if (config !== rootConfig) {\n bases.push('../../.eslintrc.json');\n }\n let newSettings: any = { root: true, extends: bases };\n\n const filePath = path.resolve(config.dirPath, '.eslintrc.json');\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(oldContent);\n if (oldSettings.extends) {\n oldSettings.extends = oldSettings.extends.filter(\n (ext: string) => !ext.startsWith('@willbooster/') && ext !== '../../.eslintrc.json'\n );\n }\n if (bases.length === 0) {\n oldSettings.extends = [];\n }\n const newExtends = newSettings.extends;\n newSettings.extends = oldSettings.extends;\n oldSettings.extends = newExtends;\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n if (config.depending.blitz === '0') {\n addExtensionToHead(newSettings, 'blitz');\n } else if (config.depending.blitz === '2') {\n addExtensionToHead(newSettings, '@blitzjs/next/eslint');\n }\n } catch {\n // do nothing\n }\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nfunction addExtensionToHead(newSettings: any, extension: string): void {\n newSettings.extends = [extension, ...newSettings.extends.filter((e: string) => e !== extension)];\n}\n","import path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { extensions } from '../utils/extensions.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst newContent = `* text=auto\n\n*.vcproj text eol=crlf\n\n${[...extensions.codeWith2IndentSize, ...extensions.codeWith4IndentSize, ...extensions.markdownLike]\n .map((ext) => `*.${ext} text eol=lf`)\n .join('\\n')}\n`;\n\nexport async function generateGitattributes(config: PackageConfig): Promise<void> {\n return logger.function('generateGitattributes', async () => {\n const filePath = path.resolve(config.dirPath, '.gitattributes');\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { options } from '../options.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst defaultNames = ['windows', 'macos', 'linux', 'jetbrains', 'visualstudiocode', 'emacs', 'vim', 'yarn'];\n\nconst commonContent = `\n.devcontainer/\ndist/\ntemp/\nIcon[\\r]\n!.keep\n`;\n\nexport async function generateGitignore(config: PackageConfig, rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateGitignore', async () => {\n const filePath = path.resolve(config.dirPath, '.gitignore');\n const content = (await fsUtil.readFileIgnoringError(filePath)) ?? '';\n let headUserContent = ignoreFileUtil.getHeadUserContent(content) + commonContent;\n const tailUserContent = ignoreFileUtil.getTailUserContent(content);\n\n const names = [...defaultNames];\n if (config.containingGemfile) {\n names.push('ruby');\n }\n if (config.containingGoMod) {\n names.push('go');\n headUserContent += `${path.basename(config.dirPath)}\n`;\n }\n if (config.containingPackageJson) {\n names.push('node');\n }\n if (config.containingPomXml) {\n names.push('maven');\n headUserContent += `.idea/google-java-format.xml\n`;\n }\n if (config.containingPubspecYaml) {\n names.push('flutter', 'AndroidStudio', 'ruby');\n headUserContent += `.flutter-plugins-dependencies\nandroid/key.properties\nios/.bundle\n.idea/runConfigurations.xml\n`;\n }\n if (config.containingTemplateYaml) {\n headUserContent += `.aws-sam/\npackaged.yaml\n`;\n }\n // Because .venv should be ignored on root directory\n if (config.containingPoetryLock) {\n names.push('python');\n headUserContent += `.venv/\n`;\n }\n\n if (rootConfig.depending.blitz) {\n names.push('nextjs');\n headUserContent += `.blitz/\n.blitz**\n`;\n }\n if (rootConfig.depending.firebase || config.depending.firebase) {\n names.push('firebase');\n }\n if (rootConfig.depending.prisma) {\n headUserContent += `*.sqlite3\n*.sqlite3-journal\n`;\n }\n if (rootConfig.depending.playwright) {\n headUserContent += `test-results/\n`;\n }\n if (rootConfig.depending.reactNative || config.depending.reactNative) {\n names.push('reactnative');\n headUserContent += `google-services.json\nandroid/app/src/main/assets/\n`;\n }\n if (rootConfig.depending.storybook) {\n names.push('storybookjs');\n }\n\n let generated = '';\n for (const name of names) {\n let content = (await readCache(name)) ?? '';\n if (!content) {\n const url = `https://www.toptal.com/developers/gitignore/api/${name}`;\n const response = await fetch(url);\n const responseText = await response.text();\n if (responseText.includes('Attention Required!')) {\n console.error(`Failed to fetch ${url}`);\n return;\n }\n content = responseText.trim();\n await promisePool.run(() => writeCache(name, content));\n if (options.isVerbose) {\n console.info(`Fetched ${url}`);\n }\n }\n if (generated) generated += '\\n';\n generated += content + '\\n';\n }\n if (!(await ignoreFileUtil.isBerryZeroInstallEnabled(filePath))) {\n generated = generated.replace('!.yarn/cache', '# !.yarn/cache').replace('# .pnp.*', '.pnp.*');\n }\n if (config.containingPomXml || config.containingPubspecYaml) {\n generated = generated\n .replace(/^# .idea\\/artifacts$/gm, '.idea/artifacts')\n .replace(/^# .idea\\/compiler.xml$/gm, '.idea/compiler.xml')\n .replace(/^# .idea\\/jarRepositories.xml$/gm, '.idea/jarRepositories.xml')\n .replace(/^# .idea\\/modules.xml$/gm, '.idea/modules.xml')\n .replace(/^# .idea\\/*.iml$/gm, '.idea/*.iml')\n .replace(/^# .idea\\/modules$/gm, '.idea/modules')\n .replace(/^# *.iml$/gm, '*.iml')\n .replace(/^# *.ipr$/gm, '*.ipr');\n if (config.containingPubspecYaml) {\n generated = generated.replace(/^.idea\\/modules.xml$/gm, '# .idea/modules.xml');\n }\n }\n generated = generated.replace(/^.idea\\/?$/gm, '# .idea');\n if (rootConfig.depending.reactNative || config.depending.reactNative || config.containingPubspecYaml) {\n generated = generated.replace(/^(.idea\\/.+)$/gm, '$1\\nandroid/$1');\n }\n const newContent = headUserContent + generated + tailUserContent;\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nconst dirPath = path.join(os.homedir(), '.cache', 'wbfy', 'gitignore');\n\nasync function writeCache(name: string, content: string): Promise<void> {\n await fs.promises.mkdir(dirPath, { recursive: true });\n await fs.promises.writeFile(path.join(dirPath, name), content);\n}\n\nasync function readCache(name: string): Promise<string | undefined> {\n try {\n const stat = await fs.promises.stat(path.join(dirPath, name));\n if (Date.now() - stat.mtimeMs > 6 * 60 * 60 * 1000) {\n return;\n }\n return await fs.promises.readFile(path.join(dirPath, name), 'utf8');\n } catch {\n // do nothing\n }\n}\n","import { PackageConfig } from '../packageConfig.js';\n\nexport const EslintUtil = {\n getLintFixSuffix(config: PackageConfig): string {\n return config.containingJsxOrTsx ? ' --rule \"{ react-hooks/exhaustive-deps: 0 }\"' : '';\n },\n};\n","import { Octokit } from '@octokit/core';\n\nconst token =\n process.env.GH_BOT_PAT || process.env.PUBLIC_GH_BOT_PAT || process.env.GH_TOKEN || process.env.GITHUB_TOKEN;\nexport const hasGitHubToken = !!token;\nexport const octokit = new Octokit({\n auth: token,\n});\n\nclass GitHubUtil {\n getOrgAndName(urlOrFullName: string): [string, string] {\n const urlWithoutProtocol = urlOrFullName.split(':').at(-1);\n const names = urlWithoutProtocol?.split('/');\n const org = names?.at(-2) ?? '';\n const name = names?.at(-1)?.replace(/.git$/, '') ?? '';\n return [org, name];\n }\n}\n\nexport const gitHubUtil = new GitHubUtil();\n","import { PackageConfig } from '../packageConfig.js';\n\nconst srcDirectories = {\n node: ['src', 'tests', 'scripts'].sort(),\n blitz0: ['tests', 'scripts', 'app', 'db', 'integrations', 'mailers', 'test'].sort(),\n // We rename 'test' directory to 'tests'\n blitz2: ['src', 'tests', 'scripts', 'db', 'integrations', 'mailers'].sort(),\n};\n\nexport function getSrcDirs(config: PackageConfig): string[] {\n if (config.depending.blitz) {\n return config.depending.blitz === '0' ? srcDirectories.blitz0 : srcDirectories.blitz2;\n }\n return srcDirectories.node;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport { globby } from 'globby';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { EslintUtil } from '../utils/eslintUtil.js';\nimport { extensions } from '../utils/extensions.js';\nimport { gitHubUtil } from '../utils/githubUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync } from '../utils/spawnUtil.js';\nimport { getSrcDirs } from '../utils/srcDirectories.js';\n\nconst jsCommonDeps = [\n 'eslint',\n 'eslint-config-prettier',\n 'eslint-plugin-import',\n 'eslint-plugin-sort-class-members',\n 'eslint-plugin-sort-destructure-keys',\n 'eslint-plugin-unicorn',\n];\n\nconst tsCommonDeps = [\n ...jsCommonDeps,\n '@typescript-eslint/eslint-plugin',\n '@typescript-eslint/parser',\n 'eslint-import-resolver-typescript',\n];\n\nconst reactCommonDeps = ['eslint-plugin-react', 'eslint-plugin-react-hooks'];\n\nconst devDeps: { [prop: string]: string[] } = {\n '@willbooster/eslint-config-js': ['@willbooster/eslint-config-js', ...jsCommonDeps],\n '@willbooster/eslint-config-js-react': ['@willbooster/eslint-config-js-react', ...jsCommonDeps, ...reactCommonDeps],\n '@willbooster/eslint-config-ts': ['@willbooster/eslint-config-ts', ...tsCommonDeps],\n '@willbooster/eslint-config-ts-react': ['@willbooster/eslint-config-ts-react', ...tsCommonDeps, ...reactCommonDeps],\n '../../.eslintrc.json': [],\n};\n\nexport async function generatePackageJson(\n config: PackageConfig,\n rootConfig: PackageConfig,\n skipAddingDeps: boolean\n): Promise<void> {\n return logger.function('generatePackageJson', async () => {\n await core(config, rootConfig, skipAddingDeps);\n });\n}\n\nasync function core(config: PackageConfig, rootConfig: PackageConfig, skipAddingDeps: boolean): Promise<void> {\n const filePath = path.resolve(config.dirPath, 'package.json');\n const jsonText = await fs.promises.readFile(filePath, 'utf8');\n const jsonObj = JSON.parse(jsonText);\n jsonObj.scripts = jsonObj.scripts || {};\n jsonObj.dependencies = jsonObj.dependencies || {};\n jsonObj.devDependencies = jsonObj.devDependencies || {};\n jsonObj.peerDependencies = jsonObj.peerDependencies || {};\n\n await removeDeprecatedStuff(jsonObj);\n\n if (jsonObj.name !== '@willbooster/prettier-config') {\n jsonObj.prettier = '@willbooster/prettier-config';\n }\n\n for (const scriptKey of Object.keys(jsonObj.scripts)) {\n // Fresh repo still requires 'yarn install'\n if (!jsonObj.scripts[scriptKey].includes('git clone')) {\n jsonObj.scripts[scriptKey] = jsonObj.scripts[scriptKey]\n .replace(/yarn\\s*&&\\s*/, '')\n .replace(/yarn\\s*install\\s*&&\\s*/, '');\n }\n }\n\n jsonObj.scripts = merge(jsonObj.scripts, generateScripts(config));\n jsonObj.scripts.prettify += await generatePrettierSuffix(config.dirPath);\n\n let dependencies: string[] = [];\n let devDependencies = ['lint-staged', 'prettier', 'sort-package-json', '@willbooster/prettier-config'];\n const 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\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) {\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 dependencies = dependencies.filter((dep) => !jsonObj.devDependencies?.[dep]);\n if (dependencies.length > 0) {\n spawnSync('yarn', ['add', ...new Set(dependencies)], config.dirPath);\n }\n devDependencies = devDependencies.filter((dep) => !jsonObj.dependencies?.[dep]);\n if (devDependencies.length > 0) {\n spawnSync('yarn', ['add', '-D', ...new Set(devDependencies)], config.dirPath);\n }\n if (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:codegen'];\n delete jsonObj.dependencies['tslib'];\n delete jsonObj.devDependencies['@willbooster/eslint-config'];\n delete jsonObj.devDependencies['@willbooster/eslint-config-react'];\n delete jsonObj.devDependencies['@willbooster/tsconfig'];\n delete jsonObj.devDependencies['eslint-import-resolver-node'];\n delete jsonObj.devDependencies['eslint-plugin-prettier'];\n delete jsonObj.devDependencies['lerna'];\n // To install the latest pinst\n delete jsonObj.devDependencies['pinst'];\n delete jsonObj.scripts['flutter-format'];\n delete jsonObj.scripts['format-flutter'];\n delete jsonObj.scripts['python-format'];\n delete jsonObj.scripts['format-python'];\n delete jsonObj.scripts['prettier'];\n for (const deps of Object.values(devDeps)) {\n for (const dep of deps) {\n delete jsonObj.devDependencies[dep];\n }\n }\n await promisePool.run(() => fs.promises.rm('lerna.json', { force: true }));\n}\n\nexport function generateScripts(config: PackageConfig): Record<string, string> {\n let scripts: Record<string, string> = {\n cleanup: 'yarn format && yarn lint-fix',\n format: `sort-package-json && yarn prettify`,\n lint: `eslint --color \"./{${getSrcDirs(config)}}/**/*.{${extensions.eslint.join(',')}}\"`,\n 'lint-fix': 'yarn lint --fix',\n prettify: `prettier --cache --color --write \"**/{.*/,}*.{${extensions.prettier.join(',')}}\" \"!**/test-fixtures/**\"`,\n typecheck: 'tsc --noEmit --Pretty',\n };\n if (config.containingSubPackageJsons) {\n scripts = merge(\n { ...scripts },\n {\n format: `sort-package-json && yarn prettify && yarn workspaces foreach --parallel --verbose run format`,\n lint: `yarn workspaces foreach --parallel --verbose run lint`,\n 'lint-fix': 'yarn workspaces foreach --parallel --verbose run lint-fix',\n prettify: `prettier --cache --color --write \"**/{.*/,}*.{${extensions.prettier.join(\n ','\n )}}\" \"!**/packages/**\" \"!**/test-fixtures/**\"`,\n test: 'yarn workspaces foreach --verbose run test',\n typecheck: 'yarn workspaces foreach --parallel --verbose run typecheck',\n }\n );\n if (!config.containingTypeScript && !config.containingTypeScriptInPackages) {\n delete scripts.typecheck;\n }\n } else {\n if (config.depending.blitz) {\n scripts.typecheck += ' || yarn run typecheck/warn';\n scripts['typecheck/warn'] = `echo 'Please try \"yarn gen-code\" if you face unknown type errors.' && exit 1`;\n scripts['typecheck:gen-code'] = 'yarn gen-code && tsc --noEmit --Pretty';\n }\n if (!config.containingTypeScript && !config.containingTypeScriptInPackages) {\n delete scripts.typecheck;\n }\n if (config.depending.pyright) {\n scripts.typecheck = scripts.typecheck ? `${scripts.typecheck} && ` : '';\n scripts.typecheck += 'pyright';\n }\n }\n return scripts;\n}\n\nasync function generatePrettierSuffix(dirPath: string): Promise<string> {\n const filePath = path.resolve(dirPath, '.prettierignore');\n const existingContent = await fs.promises.readFile(filePath, 'utf8');\n const index = existingContent.indexOf(ignoreFileUtil.separatorPrefix);\n if (index < 0) return '';\n\n const originalContent = existingContent.slice(0, index);\n const lines = originalContent\n .split('\\n')\n .map((line) => {\n const newLine = line.trim();\n return newLine.endsWith('/') ? newLine.slice(0, -1) : newLine;\n })\n .filter((l) => l && !l.startsWith('#') && !l.includes('/'));\n\n return lines.map((line) => ` \"!**/${line}/**\"`).join('');\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync } from '../utils/spawnUtil.js';\n\nimport { generateScripts } from './packageJson.js';\n\nconst DEFAULT_COMMAND = 'npm test';\n\nconst settings = {\n preCommit: 'node node_modules/.bin/lint-staged',\n prePush: `yarn typecheck`,\n prePushForLab: `\nif [ $(git branch --show-current) = \"main\" ] && [ $(git config user.email) != \"exkazuu@gmail.com\" ]; then\n echo \"************************************************\"\n echo \"*** Don't push main branch directly. Use PR! ***\"\n echo \"************************************************\"\n exit 1\nfi\n\nyarn typecheck\n`.trim(),\n postMerge: `\nchanged_files=\"$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)\"\n\nrun_if_changed() {\n if echo \"$changed_files\" | grep --quiet -E \"$1\"; then\n eval \"$2\"\n fi\n}\n`.trim(),\n};\n\nexport async function generateHuskyrc(config: PackageConfig): Promise<void> {\n return logger.function('generateHuskyrc', async () => {\n await core(config);\n });\n}\n\nasync function core(config: PackageConfig): Promise<void> {\n const packageJsonPath = path.resolve(config.dirPath, 'package.json');\n const jsonText = await fs.promises.readFile(packageJsonPath, 'utf8');\n const packageJson = JSON.parse(jsonText);\n packageJson.scripts ||= {};\n delete packageJson.scripts['postinstall'];\n delete packageJson.scripts['postpublish'];\n delete packageJson.scripts['prepare'];\n delete packageJson.scripts['prepublishOnly'];\n delete packageJson.scripts['prepack'];\n delete packageJson.scripts['postpack'];\n\n const dirPath = path.resolve(config.dirPath, '.husky');\n await Promise.all([\n fs.promises.writeFile(packageJsonPath, JSON.stringify(packageJson, undefined, 2)),\n fs.promises.rm(dirPath, { force: true, recursive: true }),\n ]);\n spawnSync('yarn', ['dlx', 'husky-init', '--yarn2'], config.dirPath);\n\n const preCommitFilePath = path.resolve(dirPath, 'pre-commit');\n const content = await fs.promises.readFile(preCommitFilePath, 'utf8');\n\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.huskyrc.json'), { force: true }));\n await promisePool.run(() =>\n fs.promises.writeFile(preCommitFilePath, content.replace(DEFAULT_COMMAND, settings.preCommit))\n );\n\n const { typecheck } = generateScripts(config);\n if (typecheck) {\n let prePush = config.repository?.startsWith('github:WillBoosterLab/') ? settings.prePushForLab : settings.prePush;\n prePush = prePush.replace(\n 'yarn typecheck',\n typecheck.replace('tsc', 'node node_modules/.bin/tsc').replace('pyright', 'node node_modules/.bin/pyright')\n );\n await promisePool.run(() =>\n fs.promises.writeFile(path.resolve(dirPath, 'pre-push'), content.replace(DEFAULT_COMMAND, prePush), {\n mode: 0o755,\n })\n );\n }\n\n const postMergeCommands: string[] = [];\n if (config.versionsText) {\n postMergeCommands.push('run_if_changed \"\\\\..+-version\" \"asdf plugin update --all\"');\n }\n // Pythonがないとインストールできない処理系が存在するため、強制的に最初にインストールする。\n if (config.versionsText?.includes('python ')) {\n postMergeCommands.push('run_if_changed \"\\\\..+-version\" \"asdf install python\"');\n }\n if (config.versionsText) {\n postMergeCommands.push('run_if_changed \"\\\\..+-version\" \"asdf install\"');\n }\n postMergeCommands.push('run_if_changed \"package\\\\.json\" \"yarn\"');\n if (config.containingPoetryLock) {\n postMergeCommands.push('run_if_changed \"poetry\\\\.lock\" \"poetry install\"');\n }\n if (config.depending.blitz) {\n postMergeCommands.push(\n 'run_if_changed \"db/schema.prisma\" \"node node_modules/.bin/blitz prisma migrate deploy\"',\n 'run_if_changed \"db/schema.prisma\" \"node node_modules/.bin/blitz blitz codegen\"'\n );\n } else if (config.depending.prisma) {\n postMergeCommands.push(\n 'run_if_changed \"prisma/schema.prisma\" \"node node_modules/.bin/prisma migrate deploy\"',\n 'run_if_changed \"prisma/schema.prisma\" \"node node_modules/.bin/prisma generate\"'\n );\n }\n const postMergeCommand = content.replace(DEFAULT_COMMAND, `${settings.postMerge}\\n\\n${postMergeCommands.join('\\n')}`);\n await promisePool.run(() =>\n fs.promises.writeFile(path.resolve(dirPath, 'post-merge'), postMergeCommand, {\n mode: 0o755,\n })\n );\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst newContent = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"ProjectTasksOptions\">\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"ts\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.ts)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"tsx\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.tsx)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"js\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.js)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"json\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.json)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"md\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.md)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"html\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.html)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n </component>\n</project>\n`;\n\nexport async function generateIdeaSettings(config: PackageConfig): Promise<void> {\n return logger.function('generateIdeaSettings', async () => {\n const dirPath = path.resolve(config.dirPath, '.idea');\n if (fs.existsSync(dirPath)) {\n const filePath = path.resolve(dirPath, 'watcherTasks.xml');\n await (config.containingJavaScript ||\n config.containingJavaScriptInPackages ||\n config.containingTypeScript ||\n config.containingTypeScriptInPackages ||\n (config.containingPackageJson &&\n !config.containingPubspecYaml &&\n !config.containingGemfile &&\n !config.containingGoMod &&\n !config.containingPomXml)\n ? promisePool.run(() => fsUtil.generateFile(filePath, newContent))\n : promisePool.run(() => fs.promises.rm(filePath, { force: true })));\n }\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { EslintUtil } from '../utils/eslintUtil.js';\nimport { extensions } from '../utils/extensions.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { getSrcDirs } from '../utils/srcDirectories.js';\n\nexport async function generateLintstagedrc(config: PackageConfig): Promise<void> {\n return logger.function('generateLintstagedrc', async () => {\n await core(config);\n });\n}\n\nasync function core(config: PackageConfig): Promise<void> {\n const packagePrefix = config.root ? 'node node_modules/.bin/' : 'node ../../node_modules/.bin/';\n const lines: string[] = [];\n if (config.containingJavaScript || config.containingTypeScript) {\n const eslint = `\n '${getEslintKey(config)}': [${JSON.stringify(\n `${packagePrefix}eslint --fix${EslintUtil.getLintFixSuffix(config)}`\n )}, '${packagePrefix}prettier --cache --write'],`;\n lines.push(eslint);\n }\n const packagesFilter = config.root ? \" && !file.includes('/packages/')\" : '';\n lines.push(`\n './**/*.{${extensions.prettier.join(',')}}': files => {\n ${config.containingJavaScript || config.containingTypeScript ? getEslintFilterForPrettier(config) : ''}\n const filteredFiles = files.filter(file => !file.includes('/test-fixtures/')${packagesFilter});\n if (filteredFiles.length === 0) return [];\n const commands = [\\`${packagePrefix}prettier --cache --write \\${filteredFiles.join(' ')}\\`];\n if (filteredFiles.some(file => file.endsWith('package.json'))) {\n commands.push('${packagePrefix}sort-package-json');\n }\n return commands;\n },`);\n if (config.containingPubspecYaml) {\n lines.push(`\n './{lib,test,test_driver}/**/*.dart': files => {\n const filteredFiles = files.filter(file => !file.includes('generated'))\n .filter(file => !file.endsWith('.freezed.dart') && !file.endsWith('.g.dart'));\n if (filteredFiles.length === 0) return [];\n return [\\`flutter format \\${filteredFiles.join(' ')}\\`];\n },`);\n }\n if (config.containingPoetryLock) {\n lines.push(`\n './**/*.py': [\n 'poetry run isort --profile black --filter-files',\n 'poetry run black',\n 'poetry run flake8'\n ],`);\n }\n\n const newContent = `${\n config.containingJavaScript || config.containingTypeScript ? \"const micromatch = require('micromatch');\" : ''\n }\n\nmodule.exports = {${lines.join('')}\n};\n`;\n\n const filePath = path.resolve(config.dirPath, '.lintstagedrc.cjs');\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.lintstagedrc.js'), { force: true }));\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.lintstagedrc.json'), { force: true }));\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n}\n\nfunction getEslintKey(config: PackageConfig): string {\n const dirs = getSrcDirs(config);\n return `./{${dirs.join(',')}}/**/*.{${extensions.eslint.join(',')}}`;\n}\n\nfunction getEslintFilterForPrettier(config: PackageConfig): string {\n return `files = micromatch.not(files, '${getEslintKey(config)}');`;\n}\n","import path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst commonContent = `\n3rd-party/\nandroid/\nios/\nno-format/\ntest-fixtures/\n*.d.ts\n*.min.js\n.yarn/\n.pnp.js\n`;\n\nexport async function generatePrettierignore(config: PackageConfig): Promise<void> {\n return logger.function('generatePrettierignore', async () => {\n const filePath = path.resolve(config.dirPath, '.prettierignore');\n const content = (await fsUtil.readFileIgnoringError(filePath)) ?? '';\n const headUserContent = ignoreFileUtil.getHeadUserContent(content);\n const tailUserContent = ignoreFileUtil.getTailUserContent(content);\n\n const gitignoreFilePath = path.resolve(config.dirPath, '.gitignore');\n const gitignoreContent = (await ignoreFileUtil.readGitignoreWithoutSeparators(gitignoreFilePath)) || '';\n\n let additionalContent = '';\n if (config.containingPubspecYaml) {\n additionalContent = `\nandroid/app/\nios/Runner/Assets.xcassets/\npubspec.yaml\n`;\n }\n\n const newContent = headUserContent + commonContent + additionalContent + gitignoreContent + tailUserContent;\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport cloneDeep from 'lodash.clonedeep';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { overwriteMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst jsonObj = {\n venvPath: '.',\n venv: '.venv',\n};\n\nexport async function generatePyrightConfigJson(config: PackageConfig): Promise<void> {\n return logger.function('generatePyrightConfigJson', async () => {\n let newSettings: unknown = cloneDeep(jsonObj);\n const filePath = path.resolve(config.dirPath, 'pyrightconfig.json');\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(oldContent);\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: overwriteMerge });\n } catch {\n // do nothing\n }\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function generateReadme(config: PackageConfig): Promise<void> {\n return logger.function('generateReadme', async () => {\n const filePath = path.resolve(config.dirPath, 'README.md');\n let newContent = await fs.promises.readFile(filePath, 'utf8');\n\n newContent = insertBadge(config, newContent, semanticReleaseBadge, '.releaserc.json');\n\n const repository = config.repository?.slice(config.repository?.indexOf(':') + 1);\n const fileNames = fs.readdirSync(`${config.dirPath}/.github/workflows`);\n for (const fileName of fileNames) {\n if (!fileName.startsWith('test') && !fileName.startsWith('deploy')) continue;\n\n let badgeName = fileName;\n badgeName = badgeName.charAt(0).toUpperCase() + badgeName.slice(1, badgeName.indexOf('.'));\n badgeName = badgeName.replace('-', ' ');\n const badge = `[](https://github.com/${repository}/actions/workflows/${fileName})`;\n newContent = insertBadge(config, newContent, badge, `.github/workflows/${fileName}`);\n }\n\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nconst semanticReleaseBadge =\n '[](https://github.com/semantic-release/semantic-release)';\n\nfunction insertBadge(config: PackageConfig, newContent: string, badge: string, fileName: string): string {\n if (!fs.existsSync(path.resolve(config.dirPath, fileName))) {\n return newContent;\n }\n\n // 既にbadgeがある場合は削除\n const badgePos = newContent.indexOf(badge);\n if (badgePos >= 0) {\n newContent = newContent.slice(0, badgePos) + newContent.slice(badgePos + badge.length);\n }\n let inserted = false;\n for (let i = 0; i < newContent.length; i++) {\n if (newContent[i] === '\\n') {\n inserted = true;\n newContent = `${newContent.slice(0, i + 1)}${badge}\\n${newContent.slice(i + 1)}`;\n break;\n }\n }\n if (!inserted) newContent = `${newContent}\\n${badge}\\n`;\n return newContent;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { overwriteMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function generateReleaserc(rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateReleaserc', async () => {\n const filePath = path.resolve(rootConfig.dirPath, '.releaserc.json');\n try {\n const settings = JSON.parse(await fs.promises.readFile(filePath, 'utf8'));\n const plugins = settings?.plugins || [];\n for (let i = 0; i < plugins.length; i++) {\n const plugin = Array.isArray(plugins[i]) ? plugins[i][0] : plugins[i];\n const oldConfig = (Array.isArray(plugins[i]) && plugins[i][1]) || {};\n if (plugin === '@semantic-release/commit-analyzer') {\n plugins[i] = [\n '@semantic-release/commit-analyzer',\n merge.all(\n [\n oldConfig,\n {\n preset: 'conventionalcommits',\n },\n ],\n { arrayMerge: overwriteMerge }\n ),\n ];\n } else if (plugin === '@semantic-release/github') {\n plugins[i] = [\n '@semantic-release/github',\n merge.all(\n [\n oldConfig,\n {\n successComment: false,\n labels: ['r: semantic-release'],\n releasedLabels: ['released :bookmark:'],\n },\n ],\n { arrayMerge: overwriteMerge }\n ),\n ];\n }\n }\n const newContent = JSON.stringify(settings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n } catch {\n // do nothing\n }\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport cloneDeep from 'lodash.clonedeep';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { overwriteMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst jsonObj = {\n extends: ['@willbooster'],\n};\n\nexport async function generateRenovateJson(config: PackageConfig): Promise<void> {\n return logger.function('generateRenovateJson', async () => {\n let newSettings: any = cloneDeep(jsonObj);\n const filePath = path.resolve(config.dirPath, '.renovaterc.json');\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(oldContent) as any;\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: overwriteMerge });\n } catch {\n // do nothing\n }\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.dependabot'), { force: true }));\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, 'renovate.json'), { force: true }));\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","export function sortKeys<T extends Record<string, unknown>>(obj: T): T {\n const keyAndValues = Object.entries(obj).sort(([key1], [key2]) => key1.localeCompare(key2));\n for (const [key, value] of keyAndValues) {\n delete obj[key];\n (obj as Record<string, unknown>)[key] = value;\n }\n return obj;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport cloneDeep from 'lodash.clonedeep';\nimport { TsConfigJson } from 'type-fest';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { combineMerge } from '../utils/mergeUtil.js';\nimport { sortKeys } from '../utils/objectUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst rootJsonObj = {\n compilerOptions: {\n target: 'ESNext',\n module: 'ESNext',\n moduleResolution: 'Node',\n jsx: 'react-jsx',\n alwaysStrict: true,\n strict: true,\n skipLibCheck: true,\n allowSyntheticDefaultImports: true,\n esModuleInterop: true,\n resolveJsonModule: true,\n declaration: true,\n sourceMap: true,\n importHelpers: false,\n outDir: 'dist',\n typeRoots: ['./node_modules/@types', './@types'],\n },\n include: [\n 'src/**/*',\n 'tests/**/*',\n 'scripts/**/*',\n 'packages/*/src/**/*',\n 'packages/*/tests/**/*',\n 'packages/*/scripts/**/*',\n ],\n};\n\nconst subJsonObj = {\n compilerOptions: {\n target: 'ESNext',\n module: 'ESNext',\n moduleResolution: 'Node',\n jsx: 'react-jsx',\n alwaysStrict: true,\n strict: true,\n skipLibCheck: true,\n allowSyntheticDefaultImports: true,\n esModuleInterop: true,\n resolveJsonModule: true,\n declaration: true,\n sourceMap: true,\n importHelpers: false,\n outDir: 'dist',\n typeRoots: ['../../node_modules/@types', '../../@types', './@types'],\n },\n include: ['src/**/*', 'tests/**/*', 'scripts/**/*'],\n};\n\nexport async function generateTsconfig(config: PackageConfig, rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateTsconfig', async () => {\n if (rootConfig.depending.blitz) return;\n\n let newSettings = cloneDeep(config.root ? rootJsonObj : subJsonObj) as TsConfigJson;\n if (!config.containingJsxOrTsx && !config.containingJsxOrTsxInPackages) {\n delete newSettings.compilerOptions?.jsx;\n }\n if (config.root && !config.containingSubPackageJsons) {\n newSettings.include = newSettings.include?.filter((dirPath: string) => !dirPath.startsWith('packages/*/'));\n }\n if (config.esmPackage) {\n newSettings.compilerOptions = { ...newSettings.compilerOptions, moduleResolution: 'NodeNext' };\n }\n\n const filePath = path.resolve(config.dirPath, 'tsconfig.json');\n try {\n const existingContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(existingContent) as TsConfigJson;\n if (oldSettings.extends === './node_modules/@willbooster/tsconfig/tsconfig.json') {\n delete oldSettings.extends;\n }\n // Don't modify \"target\", \"module\" and \"moduleResolution\".\n delete newSettings.compilerOptions?.target;\n delete newSettings.compilerOptions?.module;\n delete newSettings.compilerOptions?.moduleResolution;\n if (oldSettings.compilerOptions?.jsx) {\n delete newSettings.compilerOptions?.jsx;\n }\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n newSettings.include = newSettings.include?.filter(\n (dirPath: string) => !dirPath.includes('@types') && !dirPath.includes('__tests__')\n );\n } catch {\n // do nothing\n }\n sortKeys(newSettings.compilerOptions ?? {});\n newSettings.include?.sort();\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","/* eslint-disable unicorn/no-null */\n\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport yaml from 'js-yaml';\nimport cloneDeep from 'lodash.clonedeep';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { combineMerge } from '../utils/mergeUtil.js';\nimport { sortKeys } from '../utils/objectUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst workflows = {\n test: {\n name: 'Test',\n on: {\n pull_request: null,\n push: {\n branches: ['main', 'wbfy', 'renovate/**'],\n },\n },\n jobs: {\n test: {\n uses: 'WillBooster/reusable-workflows/.github/workflows/test.yml@main',\n },\n },\n },\n release: {\n name: 'Release',\n on: {\n push: {\n branches: [],\n },\n },\n jobs: {\n release: {\n uses: 'WillBooster/reusable-workflows/.github/workflows/release.yml@main',\n },\n },\n },\n wbfy: {\n name: 'Willboosterify',\n on: {\n workflow_dispatch: null,\n },\n jobs: {\n wbfy: {\n uses: 'WillBooster/reusable-workflows/.github/workflows/wbfy.yml@main',\n },\n },\n },\n 'wbfy-merge': {\n name: 'Merge wbfy',\n on: {\n workflow_dispatch: null,\n },\n jobs: {\n 'wbfy-merge': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/wbfy-merge.yml@main',\n },\n },\n },\n 'semantic-pr': {\n name: 'Lint PR title',\n on: {\n pull_request_target: {\n types: ['opened', 'edited', 'synchronize'],\n },\n },\n jobs: {\n 'semantic-pr': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/semantic-pr.yml@main',\n },\n },\n },\n 'notify-ready': {\n name: 'Notify ready',\n on: {\n issues: {\n types: ['labeled'],\n },\n },\n jobs: {\n 'notify-ready': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/notify-ready.yml@main',\n secrets: {\n DISCORD_WEBHOOK_URL: '${{ secrets.DISCORD_WEBHOOK_URL_FOR_READY }}',\n },\n },\n },\n },\n 'close-comment': {\n name: 'Add close comment',\n on: {\n pull_request: {\n types: ['opened'],\n },\n },\n jobs: {\n 'close-comment': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/close-comment.yml@main',\n },\n },\n },\n 'add-issue-to-project': {\n name: 'Add issue to github project',\n on: {\n issues: {\n types: ['labeled'],\n },\n },\n jobs: {\n 'add-issue-to-project': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/add-issue-to-project.yml@main',\n secrets: {\n GH_PROJECT_URL: '${{ secrets.GH_PROJECT_URL }}',\n },\n },\n },\n },\n} as Record<KnownKind, any>;\n\ntype KnownKind =\n | 'test'\n | 'release'\n | 'sync'\n | 'wbfy'\n | 'wbfy-merge'\n | 'semantic-pr'\n | 'notify-ready'\n | 'close-comment'\n | 'add-issue-to-project';\n\nexport async function generateWorkflows(rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateWorkflow', async () => {\n const workflowsPath = path.resolve(rootConfig.dirPath, '.github', 'workflows');\n await fs.promises.mkdir(workflowsPath, { recursive: true });\n\n // Remove config of semantic pull request\n const semanticYmlPath = path.resolve(rootConfig.dirPath, '.github', 'semantic.yml');\n await promisePool.run(() => fs.promises.rm(semanticYmlPath, { force: true, recursive: true }));\n\n const entries = await fs.promises.readdir(workflowsPath, { withFileTypes: true });\n const fileNames = entries\n .filter((dirent) => dirent.isFile() && dirent.name.endsWith('.yml'))\n .map((dirent) => dirent.name);\n if (rootConfig.depending.semanticRelease) {\n fileNames.push('release.yml');\n }\n if (rootConfig.publicRepo || rootConfig.repository?.startsWith('github:WillBoosterLab/')) {\n fileNames.push('notify-ready.yml');\n }\n fileNames.push(\n 'test.yml',\n 'wbfy.yml',\n 'wbfy-merge.yml',\n 'semantic-pr.yml',\n 'close-comment.yml',\n 'add-issue-to-project.yml'\n );\n\n for (const fileName of fileNames) {\n // 実際はKnownKind以外の値も代入されることに注意\n const kind = path.basename(fileName, '.yml') as KnownKind;\n await promisePool.run(() => writeWorkflowYaml(rootConfig, workflowsPath, kind));\n }\n });\n}\n\nasync function writeWorkflowYaml(config: PackageConfig, workflowsPath: string, kind: KnownKind): Promise<void> {\n let newSettings = cloneDeep(workflows[kind] || {});\n const filePath = path.join(workflowsPath, `${kind}.yml`);\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = yaml.load(oldContent);\n if (kind === 'wbfy' || kind === 'wbfy-merge') {\n console.log('writeWorkflowYaml:', kind);\n console.dir(oldSettings, { depth: null });\n }\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n if (kind === 'wbfy' || kind === 'wbfy-merge') {\n console.dir(newSettings, { depth: null });\n }\n } catch {\n // do nothing\n }\n for (const job of Object.values(newSettings.jobs) as any[]) {\n // Ignore non-reusable workflows\n if (!job.uses?.includes?.('/reusable-workflows/')) return;\n\n normalizeJob(config, job, kind);\n }\n\n switch (kind) {\n case 'release': {\n if (newSettings.on.schedule) {\n delete newSettings.on.push;\n } else if (config.release.branches.length > 0) {\n newSettings.on.push.branches = config.release.branches;\n } else {\n // Don't use release.yml if release branch is not specified\n await fs.promises.rm(path.join(workflowsPath, 'release.yml'), { force: true });\n return;\n }\n break;\n }\n case 'wbfy': {\n setSchedule(newSettings, 20, 24);\n break;\n }\n case 'wbfy-merge': {\n setSchedule(newSettings, 1, 4);\n break;\n }\n // No default\n }\n migrateWorkflow(newSettings);\n await writeYaml(newSettings, filePath);\n\n if (kind === 'release') {\n await fs.promises.rm(path.join(workflowsPath, 'semantic-release.yml'), { force: true });\n } else if (kind === 'sync') {\n await fs.promises.rm(path.join(workflowsPath, 'sync-init.yml'), { force: true });\n if (!newSettings.jobs.sync) return;\n\n newSettings.jobs['sync-force'] = newSettings.jobs.sync;\n const params = newSettings.jobs.sync.with.sync_params_without_dest;\n if (!params) return;\n\n newSettings.jobs.sync.with.sync_params_without_dest = `--force ${params}`;\n newSettings.name = 'Force to Sync';\n newSettings.on = { workflow_dispatch: null };\n delete newSettings.jobs.sync;\n await writeYaml(newSettings, path.join(workflowsPath, 'sync-force.yml'));\n }\n}\n\nfunction normalizeJob(config: PackageConfig, job: any, kind: KnownKind): void {\n job.with ||= {};\n job.secrets ||= {};\n\n if (\n kind === 'test' ||\n kind === 'release' ||\n kind === 'wbfy' ||\n kind === 'wbfy-merge' ||\n kind === 'add-issue-to-project'\n ) {\n job.secrets['GH_TOKEN'] = config.publicRepo ? '${{ secrets.PUBLIC_GH_BOT_PAT }}' : '${{ secrets.GH_BOT_PAT }}';\n }\n if (config.release.npm && (kind === 'release' || kind === 'test')) {\n job.secrets['NPM_TOKEN'] = '${{ secrets.NPM_TOKEN }}';\n }\n if (job.secrets['FIREBASE_TOKEN']) {\n job.secrets['GCP_SA_KEY_JSON_FOR_FIREBASE'] = '${{ secrets.GCP_SA_KEY_JSON_FOR_FIREBASE }}';\n delete job.secrets['FIREBASE_TOKEN'];\n }\n if (\n (job.secrets['DISCORD_WEBHOOK_URL'] && (kind === 'release' || kind.startsWith('deploy'))) ||\n (job.with.server_url && kind.startsWith('deploy'))\n ) {\n job.secrets['DISCORD_WEBHOOK_URL'] = '${{ secrets.DISCORD_WEBHOOK_URL_FOR_RELEASE }}';\n }\n\n if (kind === 'sync') {\n const params = job.with?.sync_params_without_dest;\n if (params) {\n job.with.sync_params_without_dest = params.replace('sync ', '');\n }\n }\n\n if (config.repository?.startsWith('github:WillBooster/')) {\n job.uses = job.uses.replace('WillBoosterLab/', 'WillBooster/');\n } else if (config.repository?.startsWith('github:WillBoosterLab/')) {\n job.uses = job.uses.replace('WillBooster/', 'WillBoosterLab/');\n }\n\n // Remove deprecated parameters\n migrateJob(job);\n if (job.with['dot_env_path'] === '.env') {\n delete job.with['dot_env_path'];\n }\n\n if (config.containingDockerfile && kind.startsWith('deploy')) {\n job.with['cpu_arch'] = 'X64';\n }\n // Because github.event.repository.private is always true if job is scheduled\n if (kind === 'release' || kind === 'test' || kind === 'wbfy' || kind === 'wbfy-merge' || kind.startsWith('deploy')) {\n if (config.publicRepo) {\n job.with['github_hosted_runner'] = true;\n }\n } else {\n delete job.with['github_hosted_runner'];\n }\n\n if (Object.keys(job.with).length > 0) {\n sortKeys(job.with);\n } else {\n delete job.with;\n }\n if (Object.keys(job.secrets).length > 0) {\n // Move secrets prop after with prop\n const newSecrets = sortKeys(job.secrets);\n delete job.secrets;\n job.secrets = newSecrets;\n } else {\n delete job.secrets;\n }\n}\n\nfunction setSchedule(newSettings: any, inclusiveMinHourJst: number, exclusiveMaxHourJst: number): void {\n const [minuteUtc, hourUtc] = ((newSettings.on.schedule?.[0]?.cron as string) ?? '').split(' ').map(Number);\n if (minuteUtc !== 0 && Number.isInteger(hourUtc)) {\n const hourJst = (hourUtc + 9) % 24;\n const inRange =\n inclusiveMinHourJst < exclusiveMaxHourJst\n ? inclusiveMinHourJst <= hourJst && hourJst < exclusiveMaxHourJst\n : inclusiveMinHourJst <= hourJst || hourJst < exclusiveMaxHourJst;\n if (inRange) return;\n console.log(\n 'setSchedule:',\n newSettings,\n minuteUtc,\n hourUtc,\n inRange,\n hourJst,\n inclusiveMinHourJst,\n exclusiveMaxHourJst\n );\n } else {\n console.log('setSchedule:', newSettings, minuteUtc, hourUtc);\n }\n\n const minJst = 1 + Math.floor(Math.random() * 59);\n const hourJst = inclusiveMinHourJst + Math.floor(Math.random() * (exclusiveMaxHourJst - inclusiveMinHourJst));\n const cron = `${minJst} ${(hourJst - 9 + 24) % 24} * * *`;\n newSettings.on.schedule = [{ cron }];\n}\n\nasync function writeYaml(newSettings: any, filePath: string): Promise<void> {\n const yamlText = yaml.dump(newSettings, {\n lineWidth: -1,\n noCompatMode: true,\n styles: {\n '!!null': 'empty',\n },\n });\n await fs.promises.writeFile(filePath, yamlText);\n}\n\nfunction migrateWorkflow(newSettings: any): void {\n delete newSettings.jobs['add-to-project'];\n}\n\nfunction migrateJob(job: any): void {\n delete job.with['non_self_hosted'];\n delete job.with['notify_discord'];\n delete job.with['require_fly'];\n delete job.with['require_gcloud'];\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport yaml from 'js-yaml';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync, spawnSyncWithStringResult } from '../utils/spawnUtil.js';\n\nexport async function generateYarnrcYml(config: PackageConfig): Promise<void> {\n return logger.function('generateYarnrcYml', async () => {\n const currentVersion = spawnSyncWithStringResult('yarn', ['--version'], config.dirPath);\n const latestVersion = getLatestVersion('@yarnpkg/cli', config.dirPath);\n if (getMajorNumber(currentVersion) <= getMajorNumber(latestVersion) && currentVersion !== latestVersion) {\n spawnSync('yarn', ['set', 'version', latestVersion], config.dirPath, 1);\n }\n\n const releasesPath = path.join(config.dirPath, '.yarn', 'releases');\n await fs.promises.mkdir(releasesPath, { recursive: true });\n for (const file of await fs.promises.readdir(releasesPath)) {\n if (file.startsWith('yarn-') && !file.startsWith(`yarn-${latestVersion}.`)) {\n await promisePool.run(() => fs.promises.rm(path.join(releasesPath, file)));\n console.log('Removed', path.join(releasesPath, file));\n }\n }\n\n const yarnrcPath = path.resolve(config.dirPath, '.yarnrc');\n await promisePool.run(() => fs.promises.rm(yarnrcPath, { force: true }));\n\n const yarnrcYmlPath = path.resolve(config.dirPath, '.yarnrc.yml');\n const settings = yaml.load(await fs.promises.readFile(yarnrcYmlPath, 'utf8')) as any;\n settings.defaultSemverRangePrefix = '';\n settings.nodeLinker = 'node-modules';\n settings.nmMode = 'hardlinks-global';\n // 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 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 storybook: !!devDependencies['@storybook/react'],\n },\n release: {\n branches: releaseBranches,\n github: releasePlugins.includes('@semantic-release/github'),\n npm: releasePlugins.includes('@semantic-release/npm'),\n },\n versionsText,\n packageJson,\n };\n config.eslintBase = getEslintExtensionBase(config);\n if (\n config.containingGemfile ||\n config.containingGoMod ||\n config.containingPackageJson ||\n config.containingPoetryLock ||\n config.containingPomXml ||\n config.containingPubspecYaml ||\n config.containingTemplateYaml\n ) {\n return config;\n }\n } catch {\n // do nothing\n }\n}\n\nfunction containsAny(pattern: string, dirPath: string): boolean {\n return globbySync(pattern, { dot: true, cwd: dirPath }).length > 0;\n}\n\nfunction getEslintExtensionBase(config: PackageConfig): string | undefined {\n if (config.containingTypeScript) {\n return config.containingJsxOrTsx ? '@willbooster/eslint-config-ts-react' : '@willbooster/eslint-config-ts';\n } else {\n if (config.containingJsxOrTsx) {\n return '@willbooster/eslint-config-js-react';\n } else if (config.containingJavaScript) {\n return '@willbooster/eslint-config-js';\n }\n }\n}\n\nasync function fetchRepoInfo(dirPath: string, packageJson: PackageJson): Promise<Record<string, any> | undefined> {\n const git = simpleGit(dirPath);\n const remotes = await git.getRemotes(true);\n const origin = remotes.find((r) => r.name === 'origin');\n const remoteUrl = origin?.refs?.fetch ?? origin?.refs?.push;\n if (typeof remoteUrl === 'string') {\n const json = await requestRepoInfo(remoteUrl);\n if (json) return json;\n }\n\n const url = typeof packageJson.repository === 'string' ? packageJson.repository : packageJson.repository?.url;\n if (url) {\n const json = await requestRepoInfo(url);\n if (json && json.message !== 'Not Found') return json;\n }\n}\n\nasync function requestRepoInfo(urlOrFullName: string): Promise<Record<string, any> | undefined> {\n const [org, name] = gitHubUtil.getOrgAndName(urlOrFullName);\n if (!org || !name) return;\n\n const ret = { full_name: `${org}/${name}` };\n try {\n const response = await octokit.request('GET /repos/{owner}/{repo}', {\n owner: org,\n repo: name,\n });\n Object.assign(ret, response.data);\n } catch {\n // do nothing\n }\n return ret;\n}\n","import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { ignoreErrorAsync } from '@willbooster/shared-lib';\nimport yargs from 'yargs';\n\nimport { fixAbbreviations } from './fixers/abbreviations.js';\nimport { fixDockerfiles } from './fixers/dockerfile.js';\nimport { fixTestDirectories } from './fixers/testDirectory.js';\nimport { fixTypeDefinitions } from './fixers/typeDefinition.js';\nimport { generateVersionConfigs } from './generators/asdf.js';\nimport { 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 const dockerfilePromise = fixDockerfiles([rootDirPath, ...subDirPaths]);\n\n const rootConfig = await getPackageConfig(rootDirPath);\n if (!rootConfig) {\n console.error(`there is no valid package.json in ${rootDirPath}`);\n continue;\n }\n\n const nullableSubPackageConfigs = await Promise.all(subDirPaths.map((subDirPath) => getPackageConfig(subDirPath)));\n const subPackageConfigs = nullableSubPackageConfigs.filter((config) => !!config) as PackageConfig[];\n const allPackageConfigs = [rootConfig, ...subPackageConfigs];\n\n if (options.isVerbose) {\n for (const config of allPackageConfigs) {\n console.info(config);\n }\n }\n\n // Install tools via asdf at first\n await generateVersionConfigs(rootConfig);\n // Install yarn berry\n await generateYarnrcYml(rootConfig);\n await Promise.all([\n abbreviationPromise.then(() => generateReadme(rootConfig)),\n dockerfilePromise,\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","_classCallCheck","this","_defineProperty","isVerbose","logger","Logger","_function2","_createClass","key","value","_asyncToGenerator","_regeneratorRuntime","mark","_callee","name","func","wrap","_context","prev","next","console","info","stop","_x","_x2","apply","arguments","fsUtil","readFileIgnoringError","filePath","fsp","readFile","abrupt","sent","t0","generateFile","content","_callee2","_context2","writeFile","log","promisePool","PromisePool","fixAbbreviations","_fixAbbreviations","dirPath","_context4","mdFiles","_iterator","_step","_loop","tsFiles","_iterator2","_step2","tsFile","newContent","_context3","globby","dot","cwd","gitignore","length","concat","_createForOfIteratorHelper","mdFile","path","join","run","fs","promises","replaceAll","s","n","done","delegateYield","t1","e","f","finish","t2","promiseAll","_callee3","convertVersionIntoNumber","version","versionNumber","divisor","split","map","Number","filter","isNaN","err","ASDF_VERSION","fixDockerfiles","_fixDockerfiles","packageDirPaths","Promise","all","_ref2","packageDirPath","replace","substring","fixTestDirectories","_fixTestDirectories","oldTestDirPath","newTestDirPath","packageJsonText","newPackageJsonText","rename","fixTypeDefinitions","_fixTypeDefinitions","config","configsIncludingChildren","libTypeDirPath","srcTypeDirPath","dirents","resolve","root","containingSubPackageJsons","undefined","ignoreEnoentAsync","readdir","withFileTypes","dirent","dirName","hasTypeDeclarationExtension","packageName","hasLibrary","slice","endsWith","includes","some","_config$packageJson","_config$packageJson$d","_config$packageJson2","_config$packageJson2$","packageJson","dependencies","devDependencies","isFile","mkdir","recursive","isDirectory","spawnSync","command","args","retry","_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","generateVersionConfigs","_generateVersionConfigs","core","POETRY_VERSION","PYTHON_VERSION","JAVA_VERSION","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","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","blitz","eslintBase","extends","JSON","parse","ext","startsWith","arrayMerge","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","stat","_context5","Date","now","mtimeMs","_callee4","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","containingJavaScript","containingJavaScriptInPackages","containingTypeScript","containingTypeScriptInPackages","willBoosterConfigs","dep","license","publishConfig","access","getOrgAndName","repository","author","main","release","npm","esmPackage","resolutions","lint","cleanup","dir","existsSync","format","postinstall","ignore","add","size","d","_jsonObj$devDependenc","_jsonObj$dependencies","_x7","_removeDeprecatedStuff","_i2","_Object$values","deps","values","typecheck","test","pyright","_x8","_generatePrettierSuffix","existingContent","originalContent","_callee5","DEFAULT_COMMAND","settings","preCommit","prePush","prePushForLab","postMerge","generateHuskyrc","_generateHuskyrc","_config$versionsText","packageJsonPath","preCommitFilePath","_generateScripts","postMergeCommands","postMergeCommand","mode","generateIdeaSettings","_generateIdeaSettings","generateLintstagedrc","_generateLintstagedrc","packagePrefix","packagesFilter","getEslintKey","getEslintFilterForPrettier","generatePrettierignore","_generatePrettierignore","additionalContent","venvPath","venv","generatePyrightConfigJson","_generatePyrightConfigJson","cloneDeep","generateReadme","_generateReadme","_config$repository2","fileNames","fileName","badgeName","badge","insertBadge","semanticReleaseBadge","readdirSync","charAt","toUpperCase","badgePos","inserted","i","generateReleaserc","_generateReleaserc","plugins","plugin","oldConfig","call","Array","isArray","preset","successComment","labels","releasedLabels","generateRenovateJson","_generateRenovateJson","sortKeys","obj","_ref","key1","key2","localeCompare","rootJsonObj","compilerOptions","module","moduleResolution","jsx","alwaysStrict","strict","skipLibCheck","allowSyntheticDefaultImports","esModuleInterop","resolveJsonModule","declaration","sourceMap","importHelpers","outDir","typeRoots","include","subJsonObj","generateTsconfig","_generateTsconfig","_newSettings$compiler6","_newSettings$include3","_newSettings$compiler","_newSettings$include","_newSettings$compiler2","_newSettings$compiler3","_newSettings$compiler4","_oldSettings$compiler","_newSettings$include2","_newSettings$compiler5","containingJsxOrTsxInPackages","workflows","on","pull_request","branches","jobs","uses","wbfy","workflow_dispatch","pull_request_target","types","issues","secrets","DISCORD_WEBHOOK_URL","GH_PROJECT_URL","generateWorkflows","_generateWorkflows","_rootConfig$repositor","workflowsPath","semanticYmlPath","kind","writeWorkflowYaml","_writeWorkflowYaml","_arr","_job$uses","_job$uses$includes","_job$uses2","job","params","yaml","load","depth","normalizeJob","schedule","setSchedule","migrateWorkflow","writeYaml","sync","sync_params_without_dest","server_url","_job$with","migrateJob","containingDockerfile","newSecrets","inclusiveMinHourJst","exclusiveMaxHourJst","_newSettings$on$sched","_newSettings$on$sched2","_split$map2","cron","minuteUtc","hourUtc","isInteger","hourJst","inRange","minJst","Math","floor","random","_writeYaml","yamlText","dump","lineWidth","noCompatMode","styles","generateYarnrcYml","_generateYarnrcYml","_settings$plugins$len","_settings$plugins","_settings$plugins$fil","_settings$plugins2","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","dockerfilePromise","nullableSubPackageConfigs","subPackageConfigs","allPackageConfigs","_config","ignoreErrorAsync","subDirPath","then","paths"],"mappings":"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"}
|