@solvro/config 1.13.1 → 1.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +5 -6
- package/dist/cli/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
@@ -151,13 +151,12 @@ var installHusky = async () => {
|
|
151
151
|
if (!await packageJson.hasPackage("husky")) {
|
152
152
|
await packageJson.install("husky", { dev: true });
|
153
153
|
await $$`npx husky init`;
|
154
|
-
await packageJson.load();
|
155
|
-
assert2(packageJson.json !== null);
|
156
|
-
if (packageJson.json.scripts?.husky !== void 0) {
|
157
|
-
packageJson.json.scripts.husky = `husky || true`;
|
158
|
-
}
|
159
|
-
await packageJson.save();
|
160
154
|
}
|
155
|
+
await packageJson.load();
|
156
|
+
assert2(packageJson.json !== null);
|
157
|
+
packageJson.json.scripts = packageJson.json.scripts ?? {};
|
158
|
+
packageJson.json.scripts.prepare = `husky || true`;
|
159
|
+
await packageJson.save();
|
161
160
|
};
|
162
161
|
|
163
162
|
// src/cli/templates/commitlint.ts
|
package/dist/cli/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/cli/index.ts","../../src/utils/is-git-clean.ts","../../src/utils/package-json.ts","../../src/utils/$$.ts","../../src/utils/git-root.ts","../../src/utils/polish-confirm.ts","../../src/cli/install-commitlint.ts","../../src/cli/install-husky.ts","../../src/cli/templates/commitlint.ts","../../src/cli/install-eslint.ts","../../src/cli/install-ga.ts","../../src/cli/templates/commit-lint-ci.ts","../../src/cli/templates/adonis-ci.ts","../../src/cli/templates/adonis-ci-migrations.ts","../../src/cli/templates/dependabot.ts","../../src/cli/templates/next-ci.ts","../../src/cli/install-lint-staged.ts","../../src/cli/install-prettier.ts"],"sourcesContent":["import * as p from \"@clack/prompts\";\nimport c from \"picocolors\";\n\nimport { isGitClean } from \"../utils/is-git-clean\";\nimport { PackageJson } from \"../utils/package-json\";\nimport { polishConfirm } from \"../utils/polish-confirm\";\nimport { installCommitLint } from \"./install-commitlint\";\nimport { installEslint } from \"./install-eslint\";\nimport { installGithubActions } from \"./install-ga\";\nimport { installLintStaged } from \"./install-lint-staged\";\nimport { installPrettier } from \"./install-prettier\";\n\np.intro(c.bold(c.bgBlue(\" @solvro/config \")));\n\nif (!isGitClean()) {\n const isConfirmed = await polishConfirm({\n message: `Masz niezapisane zmiany w Git. Czy chcesz kontynuować?`,\n });\n\n if (p.isCancel(isConfirmed) || !isConfirmed) {\n p.cancel(\"Zapisz zmiany w Git i spróbuj ponownie.\");\n process.exit(1);\n }\n}\n\nconst packageJson = new PackageJson();\n\nawait packageJson.ensureESM();\n\nconst projectType = await packageJson.getProjectType();\n\nif (projectType === \"adonis\") {\n const isConfirmed = await polishConfirm({\n message: `Wygląda jakbyś używał Adonisa. Czy to się zgadza?`,\n });\n\n if (p.isCancel(isConfirmed) || !isConfirmed) {\n p.cancel(\"Zgłoś błąd na GitHubie :(, a my spróbujemy pomóc.\");\n process.exit(1);\n }\n}\n\nif (projectType === \"next\") {\n const isConfirmed = await polishConfirm({\n message: `Wygląda jakbyś używał Next.js. Czy to się zgadza?`,\n });\n\n if (p.isCancel(isConfirmed)) {\n p.cancel(\"😡\");\n process.exit(1);\n }\n\n if (!isConfirmed) {\n p.cancel(\"Zgłoś błąd na GitHubie :(, a my spróbujemy pomóc.\");\n process.exit(1);\n }\n}\n\nif (projectType === \"node\") {\n p.cancel(\n \"Nie znaleziono ani Adonisa, ani Next.js. Musisz ręcznie konfigurować projekt.\",\n );\n process.exit(1);\n}\n\nconst additionalTools = await p.multiselect({\n message: `Które rzeczy Cię interesują? ${c.gray(\"zaznacz spacją, potwierdź enterem\")}`,\n initialValues: [\"eslint\", \"prettier\", \"gh-action\", \"commitlint\"],\n options: [\n {\n value: \"eslint\",\n label: c.bold(c.blueBright(\"ESLint\")),\n hint: \"sprawdzanie jakości kodu\",\n },\n {\n value: \"prettier\",\n label: c.bold(c.yellowBright(\"Prettier\")),\n hint: \"formatowanie\",\n },\n {\n value: \"gh-action\",\n label: c.bold(\"GitHub Actions\"),\n hint: \"automatyczne testy na Githubie\",\n },\n {\n value: \"commitlint\",\n label: c.bold(\"Commitlint\"),\n hint: \"walidacja treści commitów\",\n },\n ],\n required: false,\n});\n\nif (p.isCancel(additionalTools) || additionalTools.length === 0) {\n p.cancel(\"Nie wybrano żadnych narzędzi.\");\n process.exit(1);\n}\n\nawait packageJson.install(\"@solvro/config\", { dev: true, alwaysUpdate: true });\n\nif (additionalTools.includes(\"eslint\")) {\n await installEslint();\n}\n\nif (additionalTools.includes(\"prettier\")) {\n await installPrettier();\n\n await installLintStaged();\n}\n\nif (additionalTools.includes(\"commitlint\")) {\n await installCommitLint();\n}\n\nif (additionalTools.includes(\"gh-action\")) {\n await installGithubActions();\n}\n","import { execSync } from \"node:child_process\";\n\nexport function isGitClean(): boolean {\n try {\n execSync(\"git diff-index --quiet HEAD --\");\n return true;\n } catch {\n return false;\n }\n}\n","import * as p from \"@clack/prompts\";\nimport { getPackageInfo, isPackageListed, loadPackageJSON } from \"local-pkg\";\nimport assert from \"node:assert\";\nimport { writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport semver from \"semver\";\n\nimport { $$ } from \"./$$\";\nimport { gitRoot } from \"./git-root\";\nimport { polishConfirm } from \"./polish-confirm\";\n\nexport class PackageJson {\n public json: Awaited<ReturnType<typeof loadPackageJSON>> = null;\n\n async load() {\n const json = await loadPackageJSON(gitRoot());\n\n if (json === null) {\n p.cancel(\n \"Nie znaleziono package.json. Upewnij się, że jesteś w katalogu projektu.\",\n );\n process.exit(1);\n }\n\n this.json = json;\n }\n\n hasPackage(pkg: string) {\n return isPackageListed(pkg);\n }\n\n async doesSatisfies(pkg: string, version: string) {\n await this.load();\n\n assert(this.json !== null);\n\n const packageInfo = await getPackageInfo(pkg);\n\n if (packageInfo?.version === undefined) {\n return false;\n }\n\n return semver.satisfies(packageInfo.version, version);\n }\n\n async ensureESM() {\n await this.load();\n\n assert(this.json !== null);\n\n if (this.json.type === \"module\") {\n return;\n }\n\n const isConfirmed = await polishConfirm({\n message: `Twój projekt nie używa ESM (brak type: \"module\" w package.json). Czy chcesz to dodać? (Wymagane by kontynuować)`,\n });\n\n if (p.isCancel(isConfirmed) || !isConfirmed) {\n p.cancel(\"Zmień projekt na ESM i spróbuj ponownie.\");\n process.exit(1);\n }\n\n this.json.type = \"module\";\n\n await this.save();\n }\n\n async getProjectType() {\n const isAdonis = await isPackageListed(\"@adonisjs/core\");\n const isNext = await isPackageListed(\"next\");\n\n if (isNext && isAdonis) {\n throw new Error(\n \"You can't use both Adonis and Next.js in the same project\",\n );\n }\n\n if (isAdonis) {\n return \"adonis\";\n }\n\n if (isNext) {\n return \"next\";\n }\n\n return \"node\";\n }\n\n async save() {\n await writeFile(\n path.join(gitRoot(), \"package.json\"),\n JSON.stringify(this.json, null, 2),\n );\n }\n\n async addScriptIfNotExists(name: string, script: string) {\n await this.load();\n\n assert(this.json !== null);\n\n if (this.json.scripts?.[name] !== undefined) {\n return;\n }\n\n this.json.scripts = this.json.scripts ?? {};\n this.json.scripts[name] = script;\n\n await this.save();\n }\n\n async install(\n pkg: string,\n options?: { minVersion?: string; dev?: boolean; alwaysUpdate?: boolean },\n ) {\n const isInstalled = await this.hasPackage(pkg);\n\n if (!isInstalled) {\n const spinner = p.spinner();\n spinner.start(`Instalowanie ${pkg}`);\n await $$`npm i ${options?.dev === true ? \"-D\" : \"\"} ${pkg}@latest`;\n spinner.stop(`${pkg} zainstalowany 😍`);\n\n await this.load();\n\n return;\n }\n\n const info = await getPackageInfo(pkg);\n\n if (\n (info?.version !== undefined &&\n options?.minVersion !== undefined &&\n !semver.satisfies(info.version, options.minVersion)) ||\n options?.alwaysUpdate === true\n ) {\n const spinner = p.spinner();\n spinner.start(`Aktualizowanie ${pkg}`);\n await $$`npm i ${options.dev === true ? \"-D\" : \"\"} ${pkg}@latest`;\n spinner.stop(`${pkg} zaktualizowany 😍`);\n\n await this.load();\n }\n }\n}\n","import { $ } from \"execa\";\n\nimport { gitRoot } from \"./git-root\";\n\nexport const $$ = $({\n cwd: gitRoot(),\n});\n","import { execSync } from \"node:child_process\";\n\nexport const gitRoot = () => {\n const root = execSync(\"git rev-parse --show-toplevel\").toString().trim();\n return root;\n};\n","import * as p from \"@clack/prompts\";\n\nexport const polishConfirm = async (props: p.ConfirmOptions) => {\n return p.confirm({\n active: \"Tak\",\n inactive: \"Nie\",\n ...props,\n });\n};\n","import { writeFile } from \"fs/promises\";\nimport path from \"path\";\n\nimport { gitRoot } from \"../utils/git-root\";\nimport { PackageJson } from \"../utils/package-json\";\nimport { installHusky } from \"./install-husky\";\nimport { commitlint } from \"./templates/commitlint\";\n\nconst root = gitRoot();\n\nconst packageJson = new PackageJson();\n\nexport const installCommitLint = async () => {\n await installHusky();\n\n await packageJson.install(\"@commitlint/cli\", { dev: true });\n\n await writeFile(\n path.join(root, \".husky/commit-msg\"),\n 'npx commitlint --edit \"$1\"\\n',\n );\n\n await writeFile(path.join(root, \".commitlintrc.js\"), commitlint());\n};\n","import assert from \"assert\";\n\nimport { $$ } from \"../utils/$$\";\nimport { PackageJson } from \"../utils/package-json\";\n\nconst packageJson = new PackageJson();\n\nexport const installHusky = async () => {\n if (!(await packageJson.hasPackage(\"husky\"))) {\n await packageJson.install(\"husky\", { dev: true });\n await $$`npx husky init`;\n\n await packageJson.load();\n\n assert(packageJson.json !== null);\n\n if (packageJson.json.scripts?.husky !== undefined) {\n packageJson.json.scripts.husky = `husky || true`;\n }\n\n await packageJson.save();\n }\n};\n","export const commitlint = () => `export default {\n extends: [\"@solvro/config/commitlint\"],\n};\n`;\n","import * as p from \"@clack/prompts\";\nimport { existsSync } from \"node:fs\";\nimport * as fs from \"node:fs/promises\";\nimport path from \"node:path\";\n\nimport { gitRoot } from \"../utils/git-root\";\nimport { PackageJson } from \"../utils/package-json\";\nimport { polishConfirm } from \"../utils/polish-confirm\";\n\nconst eslintConfigNames = [\n \".eslintrc.js\",\n \".eslintrc.cjs\",\n \".eslintrc.yaml\",\n \".eslintrc.yml\",\n \".eslintrc.json\",\n \".eslintrc\",\n \"eslint.config.js\",\n \"eslint.config.mjs\",\n \"eslint.config.cjs\",\n \"eslint.config.ts\",\n \"eslint.config.mts\",\n \"eslint.config.cts\",\n];\n\nconst packageJson = new PackageJson();\n\nexport const installEslint = async () => {\n const root = gitRoot();\n\n await packageJson.load();\n\n await packageJson.install(\"eslint\", { dev: true, minVersion: \">=9\" });\n\n const type = await packageJson.getProjectType();\n\n if (type === \"next\") {\n const is15 = await packageJson.doesSatisfies(\"next\", \">=15\");\n\n if (!is15) {\n p.cancel(\n \"Next.js musi być w conajmniej wersji 15. Zaktualizuj Next.js i spróbuj ponownie.\\nWięcej informacji tutaj: https://nextjs.org/docs/app/building-your-application/upgrading/version-15\",\n );\n process.exit(1);\n }\n\n await packageJson.install(\"@next/eslint-plugin-next\", { dev: true });\n }\n\n const eslintConfig = eslintConfigNames.find((configName) =>\n existsSync(path.join(root, configName)),\n );\n\n if (eslintConfig !== undefined) {\n const eslintContent = await fs.readFile(\n path.join(root, eslintConfig),\n \"utf-8\",\n );\n\n if (eslintContent.includes(\"export default solvro(\")) {\n p.note(\"Eslint jest już skonfigurowany. Pomijam.\");\n\n return;\n } else {\n const isConfirmed = await polishConfirm({\n message: `Znaleziono plik konfiguracyjny Eslint. Czy chcesz go nadpisać?`,\n });\n\n if (p.isCancel(isConfirmed) || !isConfirmed) {\n p.cancel(\"Nadpisz plik konfiguracyjny Eslint i spróbuj ponownie.\");\n process.exit(1);\n }\n\n await fs.rm(path.join(root, eslintConfig));\n }\n }\n\n await fs.writeFile(\n path.join(gitRoot(), \"eslint.config.js\"),\n `import { solvro } from \"@solvro/config/eslint\";\n\nexport default solvro();\n`,\n );\n\n p.note(\"Plik konfiguracyjny Eslint został utworzony.\");\n};\n","import * as p from \"@clack/prompts\";\nimport { existsSync } from \"node:fs\";\nimport * as fs from \"node:fs/promises\";\nimport path from \"node:path\";\n\nimport { gitRoot } from \"../utils/git-root\";\nimport { PackageJson } from \"../utils/package-json\";\nimport { adonisCi } from \"./templates/adonis-ci\";\nimport { adonisMigrationsCi } from \"./templates/adonis-ci-migrations\";\nimport { dependabot } from \"./templates/dependabot\";\nimport { nextCi } from \"./templates/next-ci\";\n\nconst packageJson = new PackageJson();\n\nexport const installGithubActions = async () => {\n const root = gitRoot();\n await packageJson.load();\n\n const ghWorkflowsDir = path.join(root, \".github/workflows\");\n await fs.mkdir(ghWorkflowsDir, { recursive: true });\n\n const type = await packageJson.getProjectType();\n\n const withCommitlint = await packageJson.hasPackage(\"@commitlint/cli\");\n\n if (type === \"adonis\") {\n if (!existsSync(path.join(root, \".env.example\"))) {\n p.cancel(\n \"Nie znaleziono pliku .env.example. Upewnij się, że jesteś w katalogu projektu Adonisa.\",\n );\n process.exit(1);\n }\n\n await fs.writeFile(\n path.join(ghWorkflowsDir, \"ci.yml\"),\n adonisCi({\n nodeVersion: \"22\",\n withCommitlint,\n }),\n );\n\n await fs.writeFile(\n path.join(ghWorkflowsDir, \"db.yml\"),\n adonisMigrationsCi(),\n );\n }\n\n if (type === \"next\") {\n await fs.writeFile(\n path.join(ghWorkflowsDir, \"ci.yml\"),\n nextCi({\n nodeVersion: \"22\",\n withCommitlint,\n }),\n );\n }\n\n if (!existsSync(path.join(root, \".github/dependabot.yml\"))) {\n await fs.writeFile(path.join(root, \".github/dependabot.yml\"), dependabot());\n }\n\n await packageJson.addScriptIfNotExists(\"format:check\", \"prettier --check .\");\n await packageJson.addScriptIfNotExists(\"lint\", \"eslint . --max-warnings=0\");\n await packageJson.addScriptIfNotExists(\"format\", \"prettier --write .\");\n await packageJson.addScriptIfNotExists(\"typecheck\", \"tsc --noEmit\");\n\n p.note(\"Dodano konfigurację CI i skrypty.\");\n};\n","export const commitLintCi = () => `\n - name: Check commit name\n if: github.event_name == 'pull_request'\n run: npx commitlint --from \\${{ github.event.pull_request.base.sha }} --to \\${{ github.event.pull_request.head.sha }} --verbose\n`;\n","import { commitLintCi } from \"./commit-lint-ci\";\n\nexport const adonisCi = ({\n nodeVersion,\n withCommitlint,\n}: {\n nodeVersion: string;\n withCommitlint: boolean;\n}) => `name: CI\n\non:\n push:\n branches: [\"main\"]\n pull_request:\n\njobs:\n lint:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout\n uses: actions/checkout@v4\n with:\n fetch-depth: 0\n\n - name: Setup node\n uses: actions/setup-node@v4\n with:\n node-version: ${nodeVersion}\n cache: \"npm\"\n\n - name: Install dependencies\n run: npm ci\n\n - name: Set up AdonisJS environment\n run: |\n cp .env.example .env\n node ace generate:key\n${withCommitlint ? commitLintCi() : \"\"}\n - name: Run prettier\n run: npm run format:check\n if: always()\n\n - name: Run Lint\n run: npm run lint\n if: always()\n\n - name: Check types\n run: npm run typecheck\n if: always()\n\n - name: Run tests\n run: npm test\n if: always()\n\n - name: Build\n run: npm run build\n if: always()`;\n","export const adonisMigrationsCi = () => `name: Migration check\n\non:\n pull_request:\n branches: [\"*\"]\n push:\n branches: [\"main\"]\n\njobs:\n migration-check:\n runs-on: ubuntu-latest\n env:\n DB_HOST: 127.0.0.1\n DB_PORT: 5432\n DB_USER: postgres\n DB_PASSWORD: postgres\n DB_DATABASE: postgres\n\n services:\n postgres:\n image: postgres\n env:\n POSTGRES_PASSWORD: postgres\n options: >-\n --health-cmd pg_isready\n --health-interval 10s\n --health-timeout 5s\n --health-retries 5\n ports:\n - 5432:5432\n\n steps:\n - name: Check out repository code\n uses: actions/checkout@v4\n\n - name: Install dependencies\n run: npm ci\n\n - name: Set up AdonisJS environment\n run: |\n cp .env.example .env\n node ace generate:key\n\n - name: Run AdonisJS migrations\n run: node ace migration:run\n\n - name: Rollback and rerun AdonisJS migrations\n run: node ace migration:refresh\n`;\n","export const dependabot = () => `version: 2\nupdates:\n - package-ecosystem: \"npm\"\n directory: \"/\"\n schedule:\n interval: \"daily\"\n allow:\n - dependency-name: \"@solvro/config\"\n`;\n","import { commitLintCi } from \"./commit-lint-ci\";\n\nexport const nextCi = ({\n nodeVersion,\n withCommitlint,\n}: {\n nodeVersion: string;\n withCommitlint: boolean;\n}) => `name: CI\n\non:\n push:\n branches: [\"main\"]\n pull_request:\n\njobs:\n lint:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout\n uses: actions/checkout@v4\n with:\n fetch-depth: 0\n\n - name: Setup node\n uses: actions/setup-node@v4\n with:\n node-version: ${nodeVersion}\n cache: 'npm'\n\n - name: Install dependencies\n run: npm ci\n${withCommitlint ? commitLintCi() : \"\"}\n - name: Format check\n run: npm run format:check\n if: always()\n\n - name: Build\n run: npm run build\n if: always()`;\n","import assert from \"assert\";\nimport { writeFile } from \"fs/promises\";\n\nimport { PackageJson } from \"../utils/package-json\";\nimport { installHusky } from \"./install-husky\";\n\nconst packageJson = new PackageJson();\n\nexport const installLintStaged = async () => {\n await packageJson.load();\n\n assert(packageJson.json !== null);\n\n await installHusky();\n\n await packageJson.install(\"lint-staged\", { dev: true });\n\n await writeFile(\".husky/pre-commit\", \"npx lint-staged\\n\");\n\n packageJson.json[\"lint-staged\"] = {\n \"*\": \"prettier -w --ignore-unknown\",\n };\n\n await packageJson.save();\n};\n","import * as p from \"@clack/prompts\";\nimport assert from \"node:assert\";\nimport { existsSync } from \"node:fs\";\nimport * as fs from \"node:fs/promises\";\nimport path from \"node:path\";\n\nimport { gitRoot } from \"../utils/git-root\";\nimport { PackageJson } from \"../utils/package-json\";\nimport { polishConfirm } from \"../utils/polish-confirm\";\n\nconst prettierConfigNames = [\n \".prettierrc.js\",\n \".prettierrc.cjs\",\n \".prettierrc.yaml\",\n \".prettierrc.yml\",\n \".prettierrc.json\",\n \".prettierrc\",\n \"prettier.config.js\",\n \"prettier.config.mjs\",\n \"prettier.config.cjs\",\n \"prettier.config.ts\",\n \"prettier.config.mts\",\n \"prettier.config.cts\",\n];\n\nconst packageJson = new PackageJson();\n\nexport const installPrettier = async () => {\n const root = gitRoot();\n\n await packageJson.load();\n assert(packageJson.json !== null);\n\n await packageJson.install(\"prettier\", { dev: true, minVersion: \">=3\" });\n\n const prettierConfig = prettierConfigNames.find((configName) =>\n existsSync(path.join(root, configName)),\n );\n\n const solvroPrettierPath = \"@solvro/config/prettier\";\n\n if (prettierConfig !== undefined || packageJson.json.prettier !== undefined) {\n if (packageJson.json.prettier === solvroPrettierPath) {\n p.note(\"Konfiguracja Prettiera jest już ustawiona. Pomijam.\");\n return;\n }\n\n const isConfirmed = await polishConfirm({\n message: `Znaleziono konfigurację Prettiera. Czy chcesz ją nadpisać?`,\n });\n\n if (p.isCancel(isConfirmed) || !isConfirmed) {\n p.cancel(\"Usuń konfiguracje Prettiera i spróbuj ponownie.\");\n process.exit(1);\n }\n\n for (const configName of prettierConfigNames) {\n await fs.rm(path.join(root, configName)).catch(() => null);\n }\n }\n\n packageJson.json.prettier = solvroPrettierPath;\n\n await packageJson.save();\n\n p.note(\"Konfiguracja Prettiera została dodana.\");\n};\n"],"mappings":"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","names":["p","p","execSync","root","spinner","writeFile","path","assert","assert","packageJson","writeFile","path","p","path","packageJson","root","path","p","existsSync","fs","path","packageJson","root","path","existsSync","assert","writeFile","packageJson","assert","writeFile","p","assert","existsSync","fs","path","packageJson","root","assert","existsSync","path","packageJson"]}
|
1
|
+
{"version":3,"sources":["../../src/cli/index.ts","../../src/utils/is-git-clean.ts","../../src/utils/package-json.ts","../../src/utils/$$.ts","../../src/utils/git-root.ts","../../src/utils/polish-confirm.ts","../../src/cli/install-commitlint.ts","../../src/cli/install-husky.ts","../../src/cli/templates/commitlint.ts","../../src/cli/install-eslint.ts","../../src/cli/install-ga.ts","../../src/cli/templates/commit-lint-ci.ts","../../src/cli/templates/adonis-ci.ts","../../src/cli/templates/adonis-ci-migrations.ts","../../src/cli/templates/dependabot.ts","../../src/cli/templates/next-ci.ts","../../src/cli/install-lint-staged.ts","../../src/cli/install-prettier.ts"],"sourcesContent":["import * as p from \"@clack/prompts\";\nimport c from \"picocolors\";\n\nimport { isGitClean } from \"../utils/is-git-clean\";\nimport { PackageJson } from \"../utils/package-json\";\nimport { polishConfirm } from \"../utils/polish-confirm\";\nimport { installCommitLint } from \"./install-commitlint\";\nimport { installEslint } from \"./install-eslint\";\nimport { installGithubActions } from \"./install-ga\";\nimport { installLintStaged } from \"./install-lint-staged\";\nimport { installPrettier } from \"./install-prettier\";\n\np.intro(c.bold(c.bgBlue(\" @solvro/config \")));\n\nif (!isGitClean()) {\n const isConfirmed = await polishConfirm({\n message: `Masz niezapisane zmiany w Git. Czy chcesz kontynuować?`,\n });\n\n if (p.isCancel(isConfirmed) || !isConfirmed) {\n p.cancel(\"Zapisz zmiany w Git i spróbuj ponownie.\");\n process.exit(1);\n }\n}\n\nconst packageJson = new PackageJson();\n\nawait packageJson.ensureESM();\n\nconst projectType = await packageJson.getProjectType();\n\nif (projectType === \"adonis\") {\n const isConfirmed = await polishConfirm({\n message: `Wygląda jakbyś używał Adonisa. Czy to się zgadza?`,\n });\n\n if (p.isCancel(isConfirmed) || !isConfirmed) {\n p.cancel(\"Zgłoś błąd na GitHubie :(, a my spróbujemy pomóc.\");\n process.exit(1);\n }\n}\n\nif (projectType === \"next\") {\n const isConfirmed = await polishConfirm({\n message: `Wygląda jakbyś używał Next.js. Czy to się zgadza?`,\n });\n\n if (p.isCancel(isConfirmed)) {\n p.cancel(\"😡\");\n process.exit(1);\n }\n\n if (!isConfirmed) {\n p.cancel(\"Zgłoś błąd na GitHubie :(, a my spróbujemy pomóc.\");\n process.exit(1);\n }\n}\n\nif (projectType === \"node\") {\n p.cancel(\n \"Nie znaleziono ani Adonisa, ani Next.js. Musisz ręcznie konfigurować projekt.\",\n );\n process.exit(1);\n}\n\nconst additionalTools = await p.multiselect({\n message: `Które rzeczy Cię interesują? ${c.gray(\"zaznacz spacją, potwierdź enterem\")}`,\n initialValues: [\"eslint\", \"prettier\", \"gh-action\", \"commitlint\"],\n options: [\n {\n value: \"eslint\",\n label: c.bold(c.blueBright(\"ESLint\")),\n hint: \"sprawdzanie jakości kodu\",\n },\n {\n value: \"prettier\",\n label: c.bold(c.yellowBright(\"Prettier\")),\n hint: \"formatowanie\",\n },\n {\n value: \"gh-action\",\n label: c.bold(\"GitHub Actions\"),\n hint: \"automatyczne testy na Githubie\",\n },\n {\n value: \"commitlint\",\n label: c.bold(\"Commitlint\"),\n hint: \"walidacja treści commitów\",\n },\n ],\n required: false,\n});\n\nif (p.isCancel(additionalTools) || additionalTools.length === 0) {\n p.cancel(\"Nie wybrano żadnych narzędzi.\");\n process.exit(1);\n}\n\nawait packageJson.install(\"@solvro/config\", { dev: true, alwaysUpdate: true });\n\nif (additionalTools.includes(\"eslint\")) {\n await installEslint();\n}\n\nif (additionalTools.includes(\"prettier\")) {\n await installPrettier();\n\n await installLintStaged();\n}\n\nif (additionalTools.includes(\"commitlint\")) {\n await installCommitLint();\n}\n\nif (additionalTools.includes(\"gh-action\")) {\n await installGithubActions();\n}\n","import { execSync } from \"node:child_process\";\n\nexport function isGitClean(): boolean {\n try {\n execSync(\"git diff-index --quiet HEAD --\");\n return true;\n } catch {\n return false;\n }\n}\n","import * as p from \"@clack/prompts\";\nimport { getPackageInfo, isPackageListed, loadPackageJSON } from \"local-pkg\";\nimport assert from \"node:assert\";\nimport { writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport semver from \"semver\";\n\nimport { $$ } from \"./$$\";\nimport { gitRoot } from \"./git-root\";\nimport { polishConfirm } from \"./polish-confirm\";\n\nexport class PackageJson {\n public json: Awaited<ReturnType<typeof loadPackageJSON>> = null;\n\n async load() {\n const json = await loadPackageJSON(gitRoot());\n\n if (json === null) {\n p.cancel(\n \"Nie znaleziono package.json. Upewnij się, że jesteś w katalogu projektu.\",\n );\n process.exit(1);\n }\n\n this.json = json;\n }\n\n hasPackage(pkg: string) {\n return isPackageListed(pkg);\n }\n\n async doesSatisfies(pkg: string, version: string) {\n await this.load();\n\n assert(this.json !== null);\n\n const packageInfo = await getPackageInfo(pkg);\n\n if (packageInfo?.version === undefined) {\n return false;\n }\n\n return semver.satisfies(packageInfo.version, version);\n }\n\n async ensureESM() {\n await this.load();\n\n assert(this.json !== null);\n\n if (this.json.type === \"module\") {\n return;\n }\n\n const isConfirmed = await polishConfirm({\n message: `Twój projekt nie używa ESM (brak type: \"module\" w package.json). Czy chcesz to dodać? (Wymagane by kontynuować)`,\n });\n\n if (p.isCancel(isConfirmed) || !isConfirmed) {\n p.cancel(\"Zmień projekt na ESM i spróbuj ponownie.\");\n process.exit(1);\n }\n\n this.json.type = \"module\";\n\n await this.save();\n }\n\n async getProjectType() {\n const isAdonis = await isPackageListed(\"@adonisjs/core\");\n const isNext = await isPackageListed(\"next\");\n\n if (isNext && isAdonis) {\n throw new Error(\n \"You can't use both Adonis and Next.js in the same project\",\n );\n }\n\n if (isAdonis) {\n return \"adonis\";\n }\n\n if (isNext) {\n return \"next\";\n }\n\n return \"node\";\n }\n\n async save() {\n await writeFile(\n path.join(gitRoot(), \"package.json\"),\n JSON.stringify(this.json, null, 2),\n );\n }\n\n async addScriptIfNotExists(name: string, script: string) {\n await this.load();\n\n assert(this.json !== null);\n\n if (this.json.scripts?.[name] !== undefined) {\n return;\n }\n\n this.json.scripts = this.json.scripts ?? {};\n this.json.scripts[name] = script;\n\n await this.save();\n }\n\n async install(\n pkg: string,\n options?: { minVersion?: string; dev?: boolean; alwaysUpdate?: boolean },\n ) {\n const isInstalled = await this.hasPackage(pkg);\n\n if (!isInstalled) {\n const spinner = p.spinner();\n spinner.start(`Instalowanie ${pkg}`);\n await $$`npm i ${options?.dev === true ? \"-D\" : \"\"} ${pkg}@latest`;\n spinner.stop(`${pkg} zainstalowany 😍`);\n\n await this.load();\n\n return;\n }\n\n const info = await getPackageInfo(pkg);\n\n if (\n (info?.version !== undefined &&\n options?.minVersion !== undefined &&\n !semver.satisfies(info.version, options.minVersion)) ||\n options?.alwaysUpdate === true\n ) {\n const spinner = p.spinner();\n spinner.start(`Aktualizowanie ${pkg}`);\n await $$`npm i ${options.dev === true ? \"-D\" : \"\"} ${pkg}@latest`;\n spinner.stop(`${pkg} zaktualizowany 😍`);\n\n await this.load();\n }\n }\n}\n","import { $ } from \"execa\";\n\nimport { gitRoot } from \"./git-root\";\n\nexport const $$ = $({\n cwd: gitRoot(),\n});\n","import { execSync } from \"node:child_process\";\n\nexport const gitRoot = () => {\n const root = execSync(\"git rev-parse --show-toplevel\").toString().trim();\n return root;\n};\n","import * as p from \"@clack/prompts\";\n\nexport const polishConfirm = async (props: p.ConfirmOptions) => {\n return p.confirm({\n active: \"Tak\",\n inactive: \"Nie\",\n ...props,\n });\n};\n","import { writeFile } from \"fs/promises\";\nimport path from \"path\";\n\nimport { gitRoot } from \"../utils/git-root\";\nimport { PackageJson } from \"../utils/package-json\";\nimport { installHusky } from \"./install-husky\";\nimport { commitlint } from \"./templates/commitlint\";\n\nconst root = gitRoot();\n\nconst packageJson = new PackageJson();\n\nexport const installCommitLint = async () => {\n await installHusky();\n\n await packageJson.install(\"@commitlint/cli\", { dev: true });\n\n await writeFile(\n path.join(root, \".husky/commit-msg\"),\n 'npx commitlint --edit \"$1\"\\n',\n );\n\n await writeFile(path.join(root, \".commitlintrc.js\"), commitlint());\n};\n","import assert from \"assert\";\n\nimport { $$ } from \"../utils/$$\";\nimport { PackageJson } from \"../utils/package-json\";\n\nconst packageJson = new PackageJson();\n\nexport const installHusky = async () => {\n if (!(await packageJson.hasPackage(\"husky\"))) {\n await packageJson.install(\"husky\", { dev: true });\n await $$`npx husky init`;\n }\n\n await packageJson.load();\n\n assert(packageJson.json !== null);\n\n packageJson.json.scripts = packageJson.json.scripts ?? {};\n packageJson.json.scripts.prepare = `husky || true`;\n\n await packageJson.save();\n};\n","export const commitlint = () => `export default {\n extends: [\"@solvro/config/commitlint\"],\n};\n`;\n","import * as p from \"@clack/prompts\";\nimport { existsSync } from \"node:fs\";\nimport * as fs from \"node:fs/promises\";\nimport path from \"node:path\";\n\nimport { gitRoot } from \"../utils/git-root\";\nimport { PackageJson } from \"../utils/package-json\";\nimport { polishConfirm } from \"../utils/polish-confirm\";\n\nconst eslintConfigNames = [\n \".eslintrc.js\",\n \".eslintrc.cjs\",\n \".eslintrc.yaml\",\n \".eslintrc.yml\",\n \".eslintrc.json\",\n \".eslintrc\",\n \"eslint.config.js\",\n \"eslint.config.mjs\",\n \"eslint.config.cjs\",\n \"eslint.config.ts\",\n \"eslint.config.mts\",\n \"eslint.config.cts\",\n];\n\nconst packageJson = new PackageJson();\n\nexport const installEslint = async () => {\n const root = gitRoot();\n\n await packageJson.load();\n\n await packageJson.install(\"eslint\", { dev: true, minVersion: \">=9\" });\n\n const type = await packageJson.getProjectType();\n\n if (type === \"next\") {\n const is15 = await packageJson.doesSatisfies(\"next\", \">=15\");\n\n if (!is15) {\n p.cancel(\n \"Next.js musi być w conajmniej wersji 15. Zaktualizuj Next.js i spróbuj ponownie.\\nWięcej informacji tutaj: https://nextjs.org/docs/app/building-your-application/upgrading/version-15\",\n );\n process.exit(1);\n }\n\n await packageJson.install(\"@next/eslint-plugin-next\", { dev: true });\n }\n\n const eslintConfig = eslintConfigNames.find((configName) =>\n existsSync(path.join(root, configName)),\n );\n\n if (eslintConfig !== undefined) {\n const eslintContent = await fs.readFile(\n path.join(root, eslintConfig),\n \"utf-8\",\n );\n\n if (eslintContent.includes(\"export default solvro(\")) {\n p.note(\"Eslint jest już skonfigurowany. Pomijam.\");\n\n return;\n } else {\n const isConfirmed = await polishConfirm({\n message: `Znaleziono plik konfiguracyjny Eslint. Czy chcesz go nadpisać?`,\n });\n\n if (p.isCancel(isConfirmed) || !isConfirmed) {\n p.cancel(\"Nadpisz plik konfiguracyjny Eslint i spróbuj ponownie.\");\n process.exit(1);\n }\n\n await fs.rm(path.join(root, eslintConfig));\n }\n }\n\n await fs.writeFile(\n path.join(gitRoot(), \"eslint.config.js\"),\n `import { solvro } from \"@solvro/config/eslint\";\n\nexport default solvro();\n`,\n );\n\n p.note(\"Plik konfiguracyjny Eslint został utworzony.\");\n};\n","import * as p from \"@clack/prompts\";\nimport { existsSync } from \"node:fs\";\nimport * as fs from \"node:fs/promises\";\nimport path from \"node:path\";\n\nimport { gitRoot } from \"../utils/git-root\";\nimport { PackageJson } from \"../utils/package-json\";\nimport { adonisCi } from \"./templates/adonis-ci\";\nimport { adonisMigrationsCi } from \"./templates/adonis-ci-migrations\";\nimport { dependabot } from \"./templates/dependabot\";\nimport { nextCi } from \"./templates/next-ci\";\n\nconst packageJson = new PackageJson();\n\nexport const installGithubActions = async () => {\n const root = gitRoot();\n await packageJson.load();\n\n const ghWorkflowsDir = path.join(root, \".github/workflows\");\n await fs.mkdir(ghWorkflowsDir, { recursive: true });\n\n const type = await packageJson.getProjectType();\n\n const withCommitlint = await packageJson.hasPackage(\"@commitlint/cli\");\n\n if (type === \"adonis\") {\n if (!existsSync(path.join(root, \".env.example\"))) {\n p.cancel(\n \"Nie znaleziono pliku .env.example. Upewnij się, że jesteś w katalogu projektu Adonisa.\",\n );\n process.exit(1);\n }\n\n await fs.writeFile(\n path.join(ghWorkflowsDir, \"ci.yml\"),\n adonisCi({\n nodeVersion: \"22\",\n withCommitlint,\n }),\n );\n\n await fs.writeFile(\n path.join(ghWorkflowsDir, \"db.yml\"),\n adonisMigrationsCi(),\n );\n }\n\n if (type === \"next\") {\n await fs.writeFile(\n path.join(ghWorkflowsDir, \"ci.yml\"),\n nextCi({\n nodeVersion: \"22\",\n withCommitlint,\n }),\n );\n }\n\n if (!existsSync(path.join(root, \".github/dependabot.yml\"))) {\n await fs.writeFile(path.join(root, \".github/dependabot.yml\"), dependabot());\n }\n\n await packageJson.addScriptIfNotExists(\"format:check\", \"prettier --check .\");\n await packageJson.addScriptIfNotExists(\"lint\", \"eslint . --max-warnings=0\");\n await packageJson.addScriptIfNotExists(\"format\", \"prettier --write .\");\n await packageJson.addScriptIfNotExists(\"typecheck\", \"tsc --noEmit\");\n\n p.note(\"Dodano konfigurację CI i skrypty.\");\n};\n","export const commitLintCi = () => `\n - name: Check commit name\n if: github.event_name == 'pull_request'\n run: npx commitlint --from \\${{ github.event.pull_request.base.sha }} --to \\${{ github.event.pull_request.head.sha }} --verbose\n`;\n","import { commitLintCi } from \"./commit-lint-ci\";\n\nexport const adonisCi = ({\n nodeVersion,\n withCommitlint,\n}: {\n nodeVersion: string;\n withCommitlint: boolean;\n}) => `name: CI\n\non:\n push:\n branches: [\"main\"]\n pull_request:\n\njobs:\n lint:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout\n uses: actions/checkout@v4\n with:\n fetch-depth: 0\n\n - name: Setup node\n uses: actions/setup-node@v4\n with:\n node-version: ${nodeVersion}\n cache: \"npm\"\n\n - name: Install dependencies\n run: npm ci\n\n - name: Set up AdonisJS environment\n run: |\n cp .env.example .env\n node ace generate:key\n${withCommitlint ? commitLintCi() : \"\"}\n - name: Run prettier\n run: npm run format:check\n if: always()\n\n - name: Run Lint\n run: npm run lint\n if: always()\n\n - name: Check types\n run: npm run typecheck\n if: always()\n\n - name: Run tests\n run: npm test\n if: always()\n\n - name: Build\n run: npm run build\n if: always()`;\n","export const adonisMigrationsCi = () => `name: Migration check\n\non:\n pull_request:\n branches: [\"*\"]\n push:\n branches: [\"main\"]\n\njobs:\n migration-check:\n runs-on: ubuntu-latest\n env:\n DB_HOST: 127.0.0.1\n DB_PORT: 5432\n DB_USER: postgres\n DB_PASSWORD: postgres\n DB_DATABASE: postgres\n\n services:\n postgres:\n image: postgres\n env:\n POSTGRES_PASSWORD: postgres\n options: >-\n --health-cmd pg_isready\n --health-interval 10s\n --health-timeout 5s\n --health-retries 5\n ports:\n - 5432:5432\n\n steps:\n - name: Check out repository code\n uses: actions/checkout@v4\n\n - name: Install dependencies\n run: npm ci\n\n - name: Set up AdonisJS environment\n run: |\n cp .env.example .env\n node ace generate:key\n\n - name: Run AdonisJS migrations\n run: node ace migration:run\n\n - name: Rollback and rerun AdonisJS migrations\n run: node ace migration:refresh\n`;\n","export const dependabot = () => `version: 2\nupdates:\n - package-ecosystem: \"npm\"\n directory: \"/\"\n schedule:\n interval: \"daily\"\n allow:\n - dependency-name: \"@solvro/config\"\n`;\n","import { commitLintCi } from \"./commit-lint-ci\";\n\nexport const nextCi = ({\n nodeVersion,\n withCommitlint,\n}: {\n nodeVersion: string;\n withCommitlint: boolean;\n}) => `name: CI\n\non:\n push:\n branches: [\"main\"]\n pull_request:\n\njobs:\n lint:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout\n uses: actions/checkout@v4\n with:\n fetch-depth: 0\n\n - name: Setup node\n uses: actions/setup-node@v4\n with:\n node-version: ${nodeVersion}\n cache: 'npm'\n\n - name: Install dependencies\n run: npm ci\n${withCommitlint ? commitLintCi() : \"\"}\n - name: Format check\n run: npm run format:check\n if: always()\n\n - name: Build\n run: npm run build\n if: always()`;\n","import assert from \"assert\";\nimport { writeFile } from \"fs/promises\";\n\nimport { PackageJson } from \"../utils/package-json\";\nimport { installHusky } from \"./install-husky\";\n\nconst packageJson = new PackageJson();\n\nexport const installLintStaged = async () => {\n await packageJson.load();\n\n assert(packageJson.json !== null);\n\n await installHusky();\n\n await packageJson.install(\"lint-staged\", { dev: true });\n\n await writeFile(\".husky/pre-commit\", \"npx lint-staged\\n\");\n\n packageJson.json[\"lint-staged\"] = {\n \"*\": \"prettier -w --ignore-unknown\",\n };\n\n await packageJson.save();\n};\n","import * as p from \"@clack/prompts\";\nimport assert from \"node:assert\";\nimport { existsSync } from \"node:fs\";\nimport * as fs from \"node:fs/promises\";\nimport path from \"node:path\";\n\nimport { gitRoot } from \"../utils/git-root\";\nimport { PackageJson } from \"../utils/package-json\";\nimport { polishConfirm } from \"../utils/polish-confirm\";\n\nconst prettierConfigNames = [\n \".prettierrc.js\",\n \".prettierrc.cjs\",\n \".prettierrc.yaml\",\n \".prettierrc.yml\",\n \".prettierrc.json\",\n \".prettierrc\",\n \"prettier.config.js\",\n \"prettier.config.mjs\",\n \"prettier.config.cjs\",\n \"prettier.config.ts\",\n \"prettier.config.mts\",\n \"prettier.config.cts\",\n];\n\nconst packageJson = new PackageJson();\n\nexport const installPrettier = async () => {\n const root = gitRoot();\n\n await packageJson.load();\n assert(packageJson.json !== null);\n\n await packageJson.install(\"prettier\", { dev: true, minVersion: \">=3\" });\n\n const prettierConfig = prettierConfigNames.find((configName) =>\n existsSync(path.join(root, configName)),\n );\n\n const solvroPrettierPath = \"@solvro/config/prettier\";\n\n if (prettierConfig !== undefined || packageJson.json.prettier !== undefined) {\n if (packageJson.json.prettier === solvroPrettierPath) {\n p.note(\"Konfiguracja Prettiera jest już ustawiona. Pomijam.\");\n return;\n }\n\n const isConfirmed = await polishConfirm({\n message: `Znaleziono konfigurację Prettiera. Czy chcesz ją nadpisać?`,\n });\n\n if (p.isCancel(isConfirmed) || !isConfirmed) {\n p.cancel(\"Usuń konfiguracje Prettiera i spróbuj ponownie.\");\n process.exit(1);\n }\n\n for (const configName of prettierConfigNames) {\n await fs.rm(path.join(root, configName)).catch(() => null);\n }\n }\n\n packageJson.json.prettier = solvroPrettierPath;\n\n await packageJson.save();\n\n p.note(\"Konfiguracja Prettiera została dodana.\");\n};\n"],"mappings":"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","names":["p","p","execSync","root","spinner","writeFile","path","assert","assert","packageJson","writeFile","path","p","path","packageJson","root","path","p","existsSync","fs","path","packageJson","root","path","existsSync","assert","writeFile","packageJson","assert","writeFile","p","assert","existsSync","fs","path","packageJson","root","assert","existsSync","path","packageJson"]}
|