diff --git a/package-lock.json b/package-lock.json index b848d25..83cc499 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,6 @@ "@guyplusplus/turndown-plugin-gfm": "^1.0.7", "@inquirer/prompts": "^7.2.3", "axios": "^1.7.9", - "camelcase": "^8.0.0", "chalk": "^5.4.1", "commander": "^13.0.0", "luxon": "^3.5.0", @@ -132,13 +131,13 @@ "dev": true }, "node_modules/@inquirer/checkbox": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.0.7.tgz", - "integrity": "sha512-lyoF4uYdBBTnqeB1gjPdYkiQ++fz/iYKaP9DON1ZGlldkvAEJsjaOBRdbl5UW1pOSslBRd701jxhAG0MlhHd2w==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.1.1.tgz", + "integrity": "sha512-os5kFd/52gZTl/W6xqMfhaKVJHQM8V/U1P8jcSaQJ/C4Qhdrf2jEXdA/HaxfQs9iiUA/0yzYhk5d3oRHTxGDDQ==", "dependencies": { - "@inquirer/core": "^10.1.5", + "@inquirer/core": "^10.1.6", "@inquirer/figures": "^1.0.10", - "@inquirer/type": "^3.0.3", + "@inquirer/type": "^3.0.4", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -147,30 +146,40 @@ }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/confirm": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.4.tgz", - "integrity": "sha512-EsiT7K4beM5fN5Mz6j866EFA9+v9d5o9VUra3hrg8zY4GHmCS8b616FErbdo5eyKoVotBQkHzMIeeKYsKDStDw==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.5.tgz", + "integrity": "sha512-ZB2Cz8KeMINUvoeDi7IrvghaVkYT2RB0Zb31EaLWOE87u276w4wnApv0SH2qWaJ3r0VSUa3BIuz7qAV2ZvsZlg==", "dependencies": { - "@inquirer/core": "^10.1.5", - "@inquirer/type": "^3.0.3" + "@inquirer/core": "^10.1.6", + "@inquirer/type": "^3.0.4" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/core": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.5.tgz", - "integrity": "sha512-/vyCWhET0ktav/mUeBqJRYTwmjFPIKPRYb3COAw7qORULgipGSUO2vL32lQKki3UxDKJ8BvuEbokaoyCA6YlWw==", + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.6.tgz", + "integrity": "sha512-Bwh/Zk6URrHwZnSSzAZAKH7YgGYi0xICIBDFOqBQoXNNAzBHw/bgXgLmChfp+GyR3PnChcTbiCTZGC6YJNJkMA==", "dependencies": { "@inquirer/figures": "^1.0.10", - "@inquirer/type": "^3.0.3", + "@inquirer/type": "^3.0.4", "ansi-escapes": "^4.3.2", "cli-width": "^4.1.0", "mute-stream": "^2.0.0", @@ -180,15 +189,23 @@ }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/editor": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.4.tgz", - "integrity": "sha512-S8b6+K9PLzxiFGGc02m4syhEu5JsH0BukzRsuZ+tpjJ5aDsDX1WfNfOil2fmsO36Y1RMcpJGxlfQ1yh4WfU28Q==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.6.tgz", + "integrity": "sha512-l0smvr8g/KAVdXx4I92sFxZiaTG4kFc06cFZw+qqwTirwdUHMFLnouXBB9OafWhpO3cfEkEz2CdPoCmor3059A==", "dependencies": { - "@inquirer/core": "^10.1.5", - "@inquirer/type": "^3.0.3", + "@inquirer/core": "^10.1.6", + "@inquirer/type": "^3.0.4", "external-editor": "^3.1.0" }, "engines": { @@ -196,15 +213,20 @@ }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/expand": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.7.tgz", - "integrity": "sha512-PsUQ5t7r+DPjW0VVEHzssOTBM2UPHnvBNse7hzuki7f6ekRL94drjjfBLrGEDe7cgj3pguufy/cuFwMeWUWHXw==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.8.tgz", + "integrity": "sha512-k0ouAC6L+0Yoj/j0ys2bat0fYcyFVtItDB7h+pDFKaDDSFJey/C/YY1rmIOqkmFVZ5rZySeAQuS8zLcKkKRLmg==", "dependencies": { - "@inquirer/core": "^10.1.5", - "@inquirer/type": "^3.0.3", + "@inquirer/core": "^10.1.6", + "@inquirer/type": "^3.0.4", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -212,6 +234,11 @@ }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/figures": { @@ -223,42 +250,52 @@ } }, "node_modules/@inquirer/input": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.4.tgz", - "integrity": "sha512-CKKF8otRBdIaVnRxkFLs00VNA9HWlEh3x4SqUfC3A8819TeOZpTYG/p+4Nqu3hh97G+A0lxkOZNYE7KISgU8BA==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.5.tgz", + "integrity": "sha512-bB6wR5wBCz5zbIVBPnhp94BHv/G4eKbUEjlpCw676pI2chcvzTx1MuwZSCZ/fgNOdqDlAxkhQ4wagL8BI1D3Zg==", "dependencies": { - "@inquirer/core": "^10.1.5", - "@inquirer/type": "^3.0.3" + "@inquirer/core": "^10.1.6", + "@inquirer/type": "^3.0.4" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/number": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.7.tgz", - "integrity": "sha512-uU2nmXGC0kD8+BLgwZqcgBD1jcw2XFww2GmtP6b4504DkOp+fFAhydt7JzRR1TAI2dmj175p4SZB0lxVssNreA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.8.tgz", + "integrity": "sha512-CTKs+dT1gw8dILVWATn8Ugik1OHLkkfY82J+Musb57KpmF6EKyskv8zmMiEJPzOnLTZLo05X/QdMd8VH9oulXw==", "dependencies": { - "@inquirer/core": "^10.1.5", - "@inquirer/type": "^3.0.3" + "@inquirer/core": "^10.1.6", + "@inquirer/type": "^3.0.4" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/password": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.7.tgz", - "integrity": "sha512-DFpqWLx+C5GV5zeFWuxwDYaeYnTWYphO07pQ2VnP403RIqRIpwBG0ATWf7pF+3IDbaXEtWatCJWxyDrJ+rkj2A==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.8.tgz", + "integrity": "sha512-MgA+Z7o3K1df2lGY649fyOBowHGfrKRz64dx3+b6c1w+h2W7AwBoOkHhhF/vfhbs5S4vsKNCuDzS3s9r5DpK1g==", "dependencies": { - "@inquirer/core": "^10.1.5", - "@inquirer/type": "^3.0.3", + "@inquirer/core": "^10.1.6", + "@inquirer/type": "^3.0.4", "ansi-escapes": "^4.3.2" }, "engines": { @@ -266,38 +303,48 @@ }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/prompts": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.2.4.tgz", - "integrity": "sha512-Zn2XZL2VZl76pllUjeDnS6Poz2Oiv9kmAZdSZw1oFya985+/JXZ3GZ2JUWDokAPDhvuhkv9qz0Z7z/U80G8ztA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.3.1.tgz", + "integrity": "sha512-r1CiKuDV86BDpvj9DRFR+V+nIjsVBOsa2++dqdPqLYAef8kgHYvmQ8ySdP/ZeAIOWa27YGJZRkENdP3dK0H3gg==", "dependencies": { - "@inquirer/checkbox": "^4.0.7", - "@inquirer/confirm": "^5.1.4", - "@inquirer/editor": "^4.2.4", - "@inquirer/expand": "^4.0.7", - "@inquirer/input": "^4.1.4", - "@inquirer/number": "^3.0.7", - "@inquirer/password": "^4.0.7", - "@inquirer/rawlist": "^4.0.7", - "@inquirer/search": "^3.0.7", - "@inquirer/select": "^4.0.7" + "@inquirer/checkbox": "^4.1.1", + "@inquirer/confirm": "^5.1.5", + "@inquirer/editor": "^4.2.6", + "@inquirer/expand": "^4.0.8", + "@inquirer/input": "^4.1.5", + "@inquirer/number": "^3.0.8", + "@inquirer/password": "^4.0.8", + "@inquirer/rawlist": "^4.0.8", + "@inquirer/search": "^3.0.8", + "@inquirer/select": "^4.0.8" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/rawlist": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.7.tgz", - "integrity": "sha512-ZeBca+JCCtEIwQMvhuROT6rgFQWWvAImdQmIIP3XoyDFjrp2E0gZlEn65sWIoR6pP2EatYK96pvx0887OATWQQ==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.8.tgz", + "integrity": "sha512-hl7rvYW7Xl4un8uohQRUgO6uc2hpn7PKqfcGkCOWC0AA4waBxAv6MpGOFCEDrUaBCP+pXPVqp4LmnpWmn1E1+g==", "dependencies": { - "@inquirer/core": "^10.1.5", - "@inquirer/type": "^3.0.3", + "@inquirer/core": "^10.1.6", + "@inquirer/type": "^3.0.4", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -305,16 +352,21 @@ }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/search": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.7.tgz", - "integrity": "sha512-Krq925SDoLh9AWSNee8mbSIysgyWtcPnSAp5YtPBGCQ+OCO+5KGC8FwLpyxl8wZ2YAov/8Tp21stTRK/fw5SGg==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.8.tgz", + "integrity": "sha512-ihSE9D3xQAupNg/aGDZaukqoUSXG2KfstWosVmFCG7jbMQPaj2ivxWtsB+CnYY/T4D6LX1GHKixwJLunNCffww==", "dependencies": { - "@inquirer/core": "^10.1.5", + "@inquirer/core": "^10.1.6", "@inquirer/figures": "^1.0.10", - "@inquirer/type": "^3.0.3", + "@inquirer/type": "^3.0.4", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -322,16 +374,21 @@ }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/select": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.0.7.tgz", - "integrity": "sha512-ejGBMDSD+Iqk60u5t0Zf2UQhGlJWDM78Ep70XpNufIfc+f4VOTeybYKXu9pDjz87FkRzLiVsGpQG2SzuGlhaJw==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.0.8.tgz", + "integrity": "sha512-Io2prxFyN2jOCcu4qJbVoilo19caiD3kqkD3WR0q3yDA5HUCo83v4LrRtg55ZwniYACW64z36eV7gyVbOfORjA==", "dependencies": { - "@inquirer/core": "^10.1.5", + "@inquirer/core": "^10.1.6", "@inquirer/figures": "^1.0.10", - "@inquirer/type": "^3.0.3", + "@inquirer/type": "^3.0.4", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -340,17 +397,27 @@ }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/type": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.3.tgz", - "integrity": "sha512-I4VIHFxUuY1bshGbXZTxCmhwaaEst9s/lll3ekok+o1Z26/ZUKdx8y1b7lsoG6rtsBDwEGfiBJ2SfirjoISLpg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.4.tgz", + "integrity": "sha512-2MNFrDY8jkFYc9Il9DgLsHhMzuHnOYM1+CUYVWbzu9oT0hC7V7EcYvdCKeoll/Fcci04A+ERZ9wcc7cQ8lTkIA==", "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@mixmark-io/domino": { @@ -393,15 +460,6 @@ "node": ">= 8" } }, - "node_modules/@types/node": { - "version": "22.12.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", - "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", - "peer": true, - "dependencies": { - "undici-types": "~6.20.0" - } - }, "node_modules/@ungap/structured-clone": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", @@ -527,17 +585,6 @@ "node": ">=6" } }, - "node_modules/camelcase": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", - "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/chalk": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", @@ -868,9 +915,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", - "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -1058,9 +1105,9 @@ } }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, "dependencies": { "parent-module": "^1.0.0", @@ -1617,12 +1664,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "peer": true - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index 5f6ab0c..f498857 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,6 @@ "@guyplusplus/turndown-plugin-gfm": "^1.0.7", "@inquirer/prompts": "^7.2.3", "axios": "^1.7.9", - "camelcase": "^8.0.0", "chalk": "^5.4.1", "commander": "^13.0.0", "luxon": "^3.5.0", diff --git a/src/intake.js b/src/intake.js index ea2dfa8..aec05f0 100644 --- a/src/intake.js +++ b/src/intake.js @@ -1,4 +1,3 @@ -import camelcase from 'camelcase'; import chalk from 'chalk'; import * as commander from 'commander'; import * as luxon from 'luxon'; @@ -29,7 +28,7 @@ export async function getConfig() { // run wizard for questions with prompts that were not answered via the command line const wizardQuestions = questions.all.filter((question) => { - return question.prompt && !(camelcase(question.name) in commandLineAnswers); + return question.prompt && !(shared.camelCase(question.name) in commandLineAnswers); }); wizardAnswers = await getWizardAnswers(wizardQuestions, commandLineAnswers); } else { @@ -74,7 +73,7 @@ function getCommandLineAnswers(questions) { continue; } - const question = questions.find((question) => camelcase(question.name) === key); + const question = questions.find((question) => shared.camelCase(question.name) === key); if (answers.wizard && question.prompt) { // remove this default answer, allowing the wizard to ask about it later delete answers[key]; @@ -93,7 +92,7 @@ function getCommandLineAnswers(questions) { export async function getWizardAnswers(questions, commandLineAnswers) { const answers = {}; for (const question of questions) { - let answerKey = camelcase(question.name); + let answerKey = shared.camelCase(question.name); let normalizedAnswer; // holds normalized answer value potentially returned during validation const promptConfig = { @@ -143,7 +142,7 @@ export async function getWizardAnswers(questions, commandLineAnswers) { } function normalize(value, type, onError) { - const normalizer = normalizers[camelcase(type)]; + const normalizer = normalizers[shared.camelCase(type)]; if (!normalizer) { return value; } diff --git a/src/shared.js b/src/shared.js index ecade32..af467f0 100644 --- a/src/shared.js +++ b/src/shared.js @@ -1,5 +1,9 @@ import path from 'path'; +export function camelCase(str) { + return str.replace(/-(.)/g, (match) => match[1].toUpperCase()); +} + export function buildPostPath(outputDir, type, date, slug, config) { // start with base output dir and post type const pathSegments = [outputDir, type];