alex-c-line 1.26.2 → 1.27.1
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/configs/internal/index.d.cts +9 -3
- package/dist/configs/internal/index.d.ts +9 -3
- package/dist/index.cjs +191 -127
- package/dist/index.js +191 -127
- package/package.json +6 -6
|
@@ -92,10 +92,16 @@ declare const alexCLineConfig: AlexCLineConfig<keyof typeof scripts>;
|
|
|
92
92
|
//#region src/configs/internal/infrastructureConfig.d.ts
|
|
93
93
|
declare const infrastructureConfig: AlexCLineConfig<"format" | "lint">;
|
|
94
94
|
//#endregion
|
|
95
|
-
//#region src/configs/internal/
|
|
96
|
-
|
|
95
|
+
//#region src/configs/internal/PreCommitStep.d.ts
|
|
96
|
+
declare const PreCommitStep: {
|
|
97
|
+
readonly BUILD: "build";
|
|
98
|
+
readonly FORMAT: "format";
|
|
99
|
+
readonly LINT: "lint";
|
|
100
|
+
readonly TEST: "test";
|
|
101
|
+
};
|
|
102
|
+
type PreCommitStep = "build" | "format" | "lint" | "test";
|
|
97
103
|
//#endregion
|
|
98
104
|
//#region src/configs/internal/packageConfig.d.ts
|
|
99
|
-
declare function packageConfig(steps?:
|
|
105
|
+
declare function packageConfig<ScriptName extends string = PreCommitStep>(steps?: (StepFunction | ScriptName | PreCommitStep | [ScriptName | PreCommitStep, PreCommitStepOptions])[]): AlexCLineConfig<PreCommitStep>;
|
|
100
106
|
//#endregion
|
|
101
107
|
export { alexCLineConfig, infrastructureConfig, packageConfig };
|
|
@@ -92,10 +92,16 @@ declare const alexCLineConfig: AlexCLineConfig<keyof typeof scripts>;
|
|
|
92
92
|
//#region src/configs/internal/infrastructureConfig.d.ts
|
|
93
93
|
declare const infrastructureConfig: AlexCLineConfig<"format" | "lint">;
|
|
94
94
|
//#endregion
|
|
95
|
-
//#region src/configs/internal/
|
|
96
|
-
|
|
95
|
+
//#region src/configs/internal/PreCommitStep.d.ts
|
|
96
|
+
declare const PreCommitStep: {
|
|
97
|
+
readonly BUILD: "build";
|
|
98
|
+
readonly FORMAT: "format";
|
|
99
|
+
readonly LINT: "lint";
|
|
100
|
+
readonly TEST: "test";
|
|
101
|
+
};
|
|
102
|
+
type PreCommitStep = "build" | "format" | "lint" | "test";
|
|
97
103
|
//#endregion
|
|
98
104
|
//#region src/configs/internal/packageConfig.d.ts
|
|
99
|
-
declare function packageConfig(steps?:
|
|
105
|
+
declare function packageConfig<ScriptName extends string = PreCommitStep>(steps?: (StepFunction | ScriptName | PreCommitStep | [ScriptName | PreCommitStep, PreCommitStepOptions])[]): AlexCLineConfig<PreCommitStep>;
|
|
100
106
|
//#endregion
|
|
101
107
|
export { alexCLineConfig, infrastructureConfig, packageConfig };
|
package/dist/index.cjs
CHANGED
|
@@ -98,12 +98,12 @@ function centerLine(text, width) {
|
|
|
98
98
|
//#endregion
|
|
99
99
|
//#region src/utility/miscellaneous/createAlexCLineArtwork.ts
|
|
100
100
|
async function createAlexCLineArtwork(options) {
|
|
101
|
-
const { includeColors = true } = options ?? {};
|
|
101
|
+
const { includeColors = true, subtitleColor = chalk.default.green, subtitleText = "say my name and I'll assist ✓" } = options ?? {};
|
|
102
102
|
const title = await (0, figlet.default)("alex-c-line");
|
|
103
|
-
const subtitle = centerLine(
|
|
103
|
+
const subtitle = centerLine(subtitleText, Math.max(...title.split("\n").map((line) => {
|
|
104
104
|
return line.length;
|
|
105
105
|
})));
|
|
106
|
-
return (0, boxen.default)(includeColors ? [chalk.default.yellow(title),
|
|
106
|
+
return (0, boxen.default)(includeColors ? [chalk.default.yellow(title), subtitleColor(subtitle)].join("\n") : [title, subtitle].join("\n"), {
|
|
107
107
|
padding: {
|
|
108
108
|
top: 1,
|
|
109
109
|
bottom: 1,
|
|
@@ -1250,32 +1250,207 @@ function setReleaseStatus2(program) {
|
|
|
1250
1250
|
}
|
|
1251
1251
|
|
|
1252
1252
|
//#endregion
|
|
1253
|
-
//#region
|
|
1254
|
-
|
|
1253
|
+
//#region package.json
|
|
1254
|
+
var name = "alex-c-line";
|
|
1255
|
+
var version = "1.27.1";
|
|
1256
|
+
var description = "Command-line tool with commands to streamline the developer workflow.";
|
|
1257
|
+
var package_default = {
|
|
1258
|
+
name,
|
|
1259
|
+
version,
|
|
1260
|
+
description,
|
|
1261
|
+
repository: {
|
|
1262
|
+
"type": "git",
|
|
1263
|
+
"url": "git+https://github.com/alextheman231/alex-c-line.git"
|
|
1264
|
+
},
|
|
1265
|
+
license: "MIT",
|
|
1266
|
+
author: "alextheman",
|
|
1267
|
+
type: "module",
|
|
1268
|
+
exports: {
|
|
1269
|
+
"./configs": {
|
|
1270
|
+
"types": "./dist/configs/index.d.ts",
|
|
1271
|
+
"require": "./dist/configs/index.cjs",
|
|
1272
|
+
"import": "./dist/configs/index.js",
|
|
1273
|
+
"default": "./dist/configs/index.js"
|
|
1274
|
+
},
|
|
1275
|
+
"./configs/internal": {
|
|
1276
|
+
"types": "./dist/configs/internal/index.d.ts",
|
|
1277
|
+
"require": "./dist/configs/internal/index.cjs",
|
|
1278
|
+
"import": "./dist/configs/internal/index.js",
|
|
1279
|
+
"default": "./dist/configs/internal/index.js"
|
|
1280
|
+
}
|
|
1281
|
+
},
|
|
1282
|
+
main: "dist/index.js",
|
|
1283
|
+
module: "dist/index.cjs",
|
|
1284
|
+
types: "dist/index.d.ts",
|
|
1285
|
+
bin: { "alex-c-line": "dist/index.js" },
|
|
1286
|
+
files: ["dist", "templates"],
|
|
1287
|
+
scripts: {
|
|
1288
|
+
"build": "tsdown",
|
|
1289
|
+
"command": "bash -c 'pnpm run build && echo && echo \"Command output:\" && node dist/index.js $@' --",
|
|
1290
|
+
"create-local-package": "pnpm run build && rm -f alex-c-line-*.tgz && pnpm pack",
|
|
1291
|
+
"create-release-note": "bash -c 'git pull origin main && pnpm run command create-release-note-2 $@' --",
|
|
1292
|
+
"format": "pnpm run format-prettier && pnpm run format-eslint",
|
|
1293
|
+
"format-eslint": "eslint --fix --suppress-all \"package.json\" \"src/**/*.ts\" \"tests/**/*.ts\" && rm -f eslint-suppressions.json",
|
|
1294
|
+
"format-prettier": "pnpm run format-prettier-typescript && pnpm run format-prettier-javascript && pnpm run format-prettier-yml",
|
|
1295
|
+
"format-prettier-javascript": "prettier --write \"./**/*.js\"",
|
|
1296
|
+
"format-prettier-typescript": "prettier --write --parser typescript \"./**/*.ts\"",
|
|
1297
|
+
"format-prettier-yml": "prettier --write \"./**/*.{yml,yaml}\"",
|
|
1298
|
+
"lint": "pnpm run lint-tsc && pnpm run lint-eslint && pnpm run lint-prettier",
|
|
1299
|
+
"lint-eslint": "eslint \"package.json\" \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
1300
|
+
"lint-prettier": "pnpm run lint-prettier-typescript && pnpm run lint-prettier-javascript && pnpm run lint-prettier-yml",
|
|
1301
|
+
"lint-prettier-javascript": "prettier --check \"./**.js\"",
|
|
1302
|
+
"lint-prettier-typescript": "prettier --check --parser typescript \"./**/*.ts\"",
|
|
1303
|
+
"lint-prettier-yml": "prettier --check \"./**/*.{yml,yaml}\"",
|
|
1304
|
+
"lint-tsc": "tsc --noEmit",
|
|
1305
|
+
"pre-commit": "pnpm run command pre-commit-2",
|
|
1306
|
+
"prepare": "husky",
|
|
1307
|
+
"prepare-live-eslint-plugin": "pnpm uninstall @alextheman/eslint-plugin && pnpm install --save-dev @alextheman/eslint-plugin",
|
|
1308
|
+
"prepare-live-utility": "pnpm uninstall @alextheman/utility && pnpm install @alextheman/utility",
|
|
1309
|
+
"prepare-local-eslint-plugin": "dotenv -e .env -- sh -c 'ESLINT_PLUGIN_PATH=${LOCAL_ESLINT_PLUGIN_PATH:-../eslint-plugin}; pnpm --prefix \"$ESLINT_PLUGIN_PATH\" run build && pnpm uninstall @alextheman/eslint-plugin && pnpm install --save-dev file:\"$ESLINT_PLUGIN_PATH\"'",
|
|
1310
|
+
"prepare-local-utility": "dotenv -e .env -- sh -c 'UTILITY_PATH=${LOCAL_UTILITY_PATH:-../utility}; pnpm --prefix \"$UTILITY_PATH\" run build && pnpm uninstall @alextheman/utility && pnpm install file:\"$UTILITY_PATH\"'",
|
|
1311
|
+
"test": "vitest run",
|
|
1312
|
+
"test-watch": "vitest",
|
|
1313
|
+
"update-dependencies": "pnpm update --latest && pnpm update",
|
|
1314
|
+
"use-live-eslint-plugin": "pnpm run prepare-live-eslint-plugin && pnpm run lint",
|
|
1315
|
+
"use-live-utility": "pnpm run prepare-live-utility",
|
|
1316
|
+
"use-local-eslint-plugin": "pnpm run prepare-local-eslint-plugin && pnpm run lint",
|
|
1317
|
+
"use-local-utility": "pnpm run prepare-local-utility"
|
|
1318
|
+
},
|
|
1319
|
+
dependencies: {
|
|
1320
|
+
"@alextheman/utility": "^4.16.2",
|
|
1321
|
+
"@inquirer/prompts": "^8.2.0",
|
|
1322
|
+
"boxen": "^8.0.1",
|
|
1323
|
+
"canvas": "^3.2.1",
|
|
1324
|
+
"chalk": "^5.6.2",
|
|
1325
|
+
"commander": "^14.0.3",
|
|
1326
|
+
"dotenv": "^17.3.1",
|
|
1327
|
+
"dotenv-stringify": "^3.0.1",
|
|
1328
|
+
"execa": "^9.6.1",
|
|
1329
|
+
"figlet": "^1.10.0",
|
|
1330
|
+
"gray-matter": "^4.0.3",
|
|
1331
|
+
"libsodium-wrappers": "^0.8.2",
|
|
1332
|
+
"supports-color": "^10.2.2",
|
|
1333
|
+
"update-notifier": "^7.3.1",
|
|
1334
|
+
"zod": "^4.3.6"
|
|
1335
|
+
},
|
|
1336
|
+
devDependencies: {
|
|
1337
|
+
"@alextheman/eslint-plugin": "^5.7.0",
|
|
1338
|
+
"@commander-js/extra-typings": "^14.0.0",
|
|
1339
|
+
"@types/eslint": "^9.6.1",
|
|
1340
|
+
"@types/node": "^25.2.3",
|
|
1341
|
+
"@types/update-notifier": "^6.0.8",
|
|
1342
|
+
"dotenv-cli": "^11.0.0",
|
|
1343
|
+
"eslint": "^10.0.0",
|
|
1344
|
+
"husky": "^9.1.7",
|
|
1345
|
+
"prettier": "^3.8.1",
|
|
1346
|
+
"tempy": "^3.2.0",
|
|
1347
|
+
"ts-node": "^10.9.2",
|
|
1348
|
+
"tsdown": "^0.20.3",
|
|
1349
|
+
"typescript": "^5.9.3",
|
|
1350
|
+
"vite-tsconfig-paths": "^6.1.1",
|
|
1351
|
+
"vitest": "^4.0.18"
|
|
1352
|
+
},
|
|
1353
|
+
packageManager: "pnpm@10.29.3+sha512.498e1fb4cca5aa06c1dcf2611e6fafc50972ffe7189998c409e90de74566444298ffe43e6cd2acdc775ba1aa7cc5e092a8b7054c811ba8c5770f84693d33d2dc",
|
|
1354
|
+
engines: { "node": ">=22.0.0" },
|
|
1355
|
+
pnpm: { "onlyBuiltDependencies": [
|
|
1356
|
+
"canvas",
|
|
1357
|
+
"core-js",
|
|
1358
|
+
"esbuild",
|
|
1359
|
+
"fsevents",
|
|
1360
|
+
"unrs-resolver"
|
|
1361
|
+
] }
|
|
1362
|
+
};
|
|
1363
|
+
|
|
1364
|
+
//#endregion
|
|
1365
|
+
//#region src/commands/update/checkUpdate.ts
|
|
1366
|
+
async function checkUpdate(program) {
|
|
1367
|
+
const currentVersion = new _alextheman_utility.VersionNumber(version);
|
|
1368
|
+
const { stdout: npmViewResult } = await execa.execa`npm view alex-c-line version`;
|
|
1369
|
+
const latestVersion = new _alextheman_utility.VersionNumber(npmViewResult.trim());
|
|
1370
|
+
if (!_alextheman_utility.VersionNumber.isEqual(currentVersion, latestVersion)) {
|
|
1371
|
+
const message = _alextheman_utility.normaliseIndents`
|
|
1372
|
+
A new update of \`alex-c-line\` is available!
|
|
1373
|
+
${currentVersion.toString()} → ${latestVersion.toString()}
|
|
1374
|
+
Run \`npm install -g alex-c-line@latest\` to update.
|
|
1375
|
+
`;
|
|
1376
|
+
const width = Math.max(...message.split("\n").map((line) => {
|
|
1377
|
+
return line.length;
|
|
1378
|
+
}));
|
|
1379
|
+
const messageWithArtwork = await createAlexCLineArtwork({
|
|
1380
|
+
includeColors: Boolean(supports_color.default.stdout),
|
|
1381
|
+
subtitleColor: chalk.default.white,
|
|
1382
|
+
subtitleText: message.split("\n").map((line) => {
|
|
1383
|
+
return centerLine(line, width);
|
|
1384
|
+
}).join("\n")
|
|
1385
|
+
});
|
|
1386
|
+
if (program) program.error(messageWithArtwork, {
|
|
1387
|
+
exitCode: 2,
|
|
1388
|
+
code: "OUTDATED_VERSION"
|
|
1389
|
+
});
|
|
1390
|
+
else console.info(messageWithArtwork);
|
|
1391
|
+
} else console.info(`alex-c-line is up to date (${currentVersion}).`);
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1394
|
+
//#endregion
|
|
1395
|
+
//#region src/utility/errors/convertDataErrorToProgramError.ts
|
|
1396
|
+
function convertDataErrorToProgramError(dataError, programError, options) {
|
|
1397
|
+
programError(dataError.message, {
|
|
1398
|
+
exitCode: options?.exitCode ?? 1,
|
|
1399
|
+
code: dataError.code
|
|
1400
|
+
});
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1403
|
+
//#endregion
|
|
1404
|
+
//#region src/utility/miscellaneous/parseZodSchemaForProgram.ts
|
|
1405
|
+
function parseZodSchemaForProgram(programError, schema, data) {
|
|
1406
|
+
try {
|
|
1407
|
+
return (0, _alextheman_utility.parseZodSchema)(schema, data);
|
|
1408
|
+
} catch (error) {
|
|
1409
|
+
if (_alextheman_utility.DataError.check(error)) convertDataErrorToProgramError(error, programError);
|
|
1410
|
+
throw error;
|
|
1411
|
+
}
|
|
1412
|
+
}
|
|
1413
|
+
|
|
1414
|
+
//#endregion
|
|
1415
|
+
//#region src/commands/update/index.ts
|
|
1416
|
+
const optionsSchema = zod.default.object({ check: zod.default.boolean().optional() });
|
|
1417
|
+
function update(program) {
|
|
1418
|
+
program.command("update").description("Handle updates of the currently installed alex-c-line").option("--check", "Check for available updates").action(async (rawOptions) => {
|
|
1419
|
+
if (parseZodSchemaForProgram(program.error, optionsSchema, rawOptions).check) await checkUpdate(program);
|
|
1420
|
+
else console.info("Unsupported option. Expected `--check`.");
|
|
1421
|
+
});
|
|
1422
|
+
}
|
|
1423
|
+
|
|
1424
|
+
//#endregion
|
|
1425
|
+
//#region src/cache/project/createAlexCLineProjectCache.ts
|
|
1426
|
+
async function createAlexCLineProjectCache(cacheContents) {
|
|
1255
1427
|
const cacheFilePath = node_path.default.join(process.cwd(), ".alex-c-line", "cache.json");
|
|
1256
1428
|
await (0, node_fs_promises.mkdir)(node_path.default.dirname(cacheFilePath), { recursive: true });
|
|
1257
1429
|
await (0, node_fs_promises.writeFile)(cacheFilePath, JSON.stringify(cacheContents, void 0, 2));
|
|
1258
1430
|
}
|
|
1259
1431
|
|
|
1260
1432
|
//#endregion
|
|
1261
|
-
//#region src/
|
|
1262
|
-
const
|
|
1433
|
+
//#region src/cache/project/types/AlexCLineProjectCache.ts
|
|
1434
|
+
const alexCLineProjectCacheSchema = zod.default.object({ useLocalPackage: zod.default.object({ dependencies: zod.default.record(zod.default.string(), zod.default.object({
|
|
1263
1435
|
currentVersion: zod.default.string(),
|
|
1264
1436
|
previousVersion: zod.default.union([zod.default.instanceof(_alextheman_utility.VersionNumber), zod.default.string()]).transform((value) => {
|
|
1265
1437
|
return value instanceof _alextheman_utility.VersionNumber ? value.toString({ omitPrefix: true }) : value;
|
|
1266
1438
|
}),
|
|
1267
1439
|
dependencyGroup: zod.default.enum(DependencyGroup)
|
|
1268
1440
|
})) }).partial() }).partial();
|
|
1269
|
-
|
|
1270
|
-
|
|
1441
|
+
|
|
1442
|
+
//#endregion
|
|
1443
|
+
//#region src/cache/project/parseAlexCLineCache.ts
|
|
1444
|
+
function parseAlexCLineProjectCache(data) {
|
|
1445
|
+
return (0, _alextheman_utility.parseZodSchema)(alexCLineProjectCacheSchema, data);
|
|
1271
1446
|
}
|
|
1272
1447
|
|
|
1273
1448
|
//#endregion
|
|
1274
|
-
//#region src/
|
|
1275
|
-
async function
|
|
1449
|
+
//#region src/cache/project/loadAlexCLineProjectCache.ts
|
|
1450
|
+
async function loadAlexCLineProjectCache(cachePath = node_path.default.join(".alex-c-line", "cache.json")) {
|
|
1276
1451
|
const fullCachePath = node_path.default.join(process.cwd(), cachePath);
|
|
1277
1452
|
try {
|
|
1278
|
-
return
|
|
1453
|
+
return parseAlexCLineProjectCache(JSON.parse(await (0, node_fs_promises.readFile)(fullCachePath, "utf-8")));
|
|
1279
1454
|
} catch (error) {
|
|
1280
1455
|
if (error instanceof Error && "code" in error && error.code === "ENOENT") return null;
|
|
1281
1456
|
throw error;
|
|
@@ -1417,7 +1592,7 @@ function useLocalPackage(program) {
|
|
|
1417
1592
|
code: "LOCAL_ALEX_C_LINE_ERROR"
|
|
1418
1593
|
});
|
|
1419
1594
|
} else {
|
|
1420
|
-
const cacheContents = await
|
|
1595
|
+
const cacheContents = await loadAlexCLineProjectCache();
|
|
1421
1596
|
if (!reverse) {
|
|
1422
1597
|
if (prepareScript) await (0, execa.execa)({ cwd: localPackagePath })`${packageManager} run ${prepareScript}`;
|
|
1423
1598
|
if (!keepOldTarballs) await removeAllTarballs(localPackagePath, packageName);
|
|
@@ -1446,7 +1621,7 @@ function useLocalPackage(program) {
|
|
|
1446
1621
|
dependencyGroup,
|
|
1447
1622
|
currentVersion: getDependenciesFromGroup(await getPackageJsonContents(process.cwd()) ?? {}, dependencyGroup)[packageName]
|
|
1448
1623
|
};
|
|
1449
|
-
await
|
|
1624
|
+
await createAlexCLineProjectCache({
|
|
1450
1625
|
...cacheContents ?? {},
|
|
1451
1626
|
useLocalPackage: {
|
|
1452
1627
|
...cacheContents?.useLocalPackage,
|
|
@@ -1456,7 +1631,7 @@ function useLocalPackage(program) {
|
|
|
1456
1631
|
}
|
|
1457
1632
|
}
|
|
1458
1633
|
});
|
|
1459
|
-
} else await
|
|
1634
|
+
} else await createAlexCLineProjectCache({
|
|
1460
1635
|
...cacheContents ?? {},
|
|
1461
1636
|
useLocalPackage: {
|
|
1462
1637
|
...cacheContents?.useLocalPackage,
|
|
@@ -1546,6 +1721,7 @@ function createCommands(program) {
|
|
|
1546
1721
|
sayHello,
|
|
1547
1722
|
setReleaseStatus,
|
|
1548
1723
|
setReleaseStatus2,
|
|
1724
|
+
update,
|
|
1549
1725
|
useLocalPackage
|
|
1550
1726
|
});
|
|
1551
1727
|
}
|
|
@@ -1573,118 +1749,6 @@ function formatError(error) {
|
|
|
1573
1749
|
throw error;
|
|
1574
1750
|
}
|
|
1575
1751
|
|
|
1576
|
-
//#endregion
|
|
1577
|
-
//#region package.json
|
|
1578
|
-
var name = "alex-c-line";
|
|
1579
|
-
var version = "1.26.2";
|
|
1580
|
-
var description = "Command-line tool with commands to streamline the developer workflow.";
|
|
1581
|
-
var package_default = {
|
|
1582
|
-
name,
|
|
1583
|
-
version,
|
|
1584
|
-
description,
|
|
1585
|
-
repository: {
|
|
1586
|
-
"type": "git",
|
|
1587
|
-
"url": "git+https://github.com/alextheman231/alex-c-line.git"
|
|
1588
|
-
},
|
|
1589
|
-
license: "MIT",
|
|
1590
|
-
author: "alextheman",
|
|
1591
|
-
type: "module",
|
|
1592
|
-
exports: {
|
|
1593
|
-
"./configs": {
|
|
1594
|
-
"types": "./dist/configs/index.d.ts",
|
|
1595
|
-
"require": "./dist/configs/index.cjs",
|
|
1596
|
-
"import": "./dist/configs/index.js",
|
|
1597
|
-
"default": "./dist/configs/index.js"
|
|
1598
|
-
},
|
|
1599
|
-
"./configs/internal": {
|
|
1600
|
-
"types": "./dist/configs/internal/index.d.ts",
|
|
1601
|
-
"require": "./dist/configs/internal/index.cjs",
|
|
1602
|
-
"import": "./dist/configs/internal/index.js",
|
|
1603
|
-
"default": "./dist/configs/internal/index.js"
|
|
1604
|
-
}
|
|
1605
|
-
},
|
|
1606
|
-
main: "dist/index.js",
|
|
1607
|
-
module: "dist/index.cjs",
|
|
1608
|
-
types: "dist/index.d.ts",
|
|
1609
|
-
bin: { "alex-c-line": "dist/index.js" },
|
|
1610
|
-
files: ["dist", "templates"],
|
|
1611
|
-
scripts: {
|
|
1612
|
-
"build": "tsdown",
|
|
1613
|
-
"command": "bash -c 'pnpm run build && echo && echo \"Command output:\" && node dist/index.js $@' --",
|
|
1614
|
-
"create-local-package": "pnpm run build && rm -f alex-c-line-*.tgz && pnpm pack",
|
|
1615
|
-
"create-release-note": "bash -c 'git pull origin main && pnpm run command create-release-note-2 $@' --",
|
|
1616
|
-
"format": "pnpm run format-prettier && pnpm run format-eslint",
|
|
1617
|
-
"format-eslint": "eslint --fix --suppress-all \"package.json\" \"src/**/*.ts\" \"tests/**/*.ts\" && rm -f eslint-suppressions.json",
|
|
1618
|
-
"format-prettier": "pnpm run format-prettier-typescript && pnpm run format-prettier-javascript && pnpm run format-prettier-yml",
|
|
1619
|
-
"format-prettier-javascript": "prettier --write \"./**/*.js\"",
|
|
1620
|
-
"format-prettier-typescript": "prettier --write --parser typescript \"./**/*.ts\"",
|
|
1621
|
-
"format-prettier-yml": "prettier --write \"./**/*.{yml,yaml}\"",
|
|
1622
|
-
"lint": "pnpm run lint-tsc && pnpm run lint-eslint && pnpm run lint-prettier",
|
|
1623
|
-
"lint-eslint": "eslint \"package.json\" \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
1624
|
-
"lint-prettier": "pnpm run lint-prettier-typescript && pnpm run lint-prettier-javascript && pnpm run lint-prettier-yml",
|
|
1625
|
-
"lint-prettier-javascript": "prettier --check \"./**.js\"",
|
|
1626
|
-
"lint-prettier-typescript": "prettier --check --parser typescript \"./**/*.ts\"",
|
|
1627
|
-
"lint-prettier-yml": "prettier --check \"./**/*.{yml,yaml}\"",
|
|
1628
|
-
"lint-tsc": "tsc --noEmit",
|
|
1629
|
-
"pre-commit": "pnpm run command pre-commit-2",
|
|
1630
|
-
"prepare": "husky",
|
|
1631
|
-
"prepare-live-eslint-plugin": "pnpm uninstall @alextheman/eslint-plugin && pnpm install --save-dev @alextheman/eslint-plugin",
|
|
1632
|
-
"prepare-live-utility": "pnpm uninstall @alextheman/utility && pnpm install @alextheman/utility",
|
|
1633
|
-
"prepare-local-eslint-plugin": "dotenv -e .env -- sh -c 'ESLINT_PLUGIN_PATH=${LOCAL_ESLINT_PLUGIN_PATH:-../eslint-plugin}; pnpm --prefix \"$ESLINT_PLUGIN_PATH\" run build && pnpm uninstall @alextheman/eslint-plugin && pnpm install --save-dev file:\"$ESLINT_PLUGIN_PATH\"'",
|
|
1634
|
-
"prepare-local-utility": "dotenv -e .env -- sh -c 'UTILITY_PATH=${LOCAL_UTILITY_PATH:-../utility}; pnpm --prefix \"$UTILITY_PATH\" run build && pnpm uninstall @alextheman/utility && pnpm install file:\"$UTILITY_PATH\"'",
|
|
1635
|
-
"test": "vitest run",
|
|
1636
|
-
"test-watch": "vitest",
|
|
1637
|
-
"update-dependencies": "pnpm update --latest && pnpm update",
|
|
1638
|
-
"use-live-eslint-plugin": "pnpm run prepare-live-eslint-plugin && pnpm run lint",
|
|
1639
|
-
"use-live-utility": "pnpm run prepare-live-utility",
|
|
1640
|
-
"use-local-eslint-plugin": "pnpm run prepare-local-eslint-plugin && pnpm run lint",
|
|
1641
|
-
"use-local-utility": "pnpm run prepare-local-utility"
|
|
1642
|
-
},
|
|
1643
|
-
dependencies: {
|
|
1644
|
-
"@alextheman/utility": "^4.15.0",
|
|
1645
|
-
"@inquirer/prompts": "^8.2.0",
|
|
1646
|
-
"boxen": "^8.0.1",
|
|
1647
|
-
"canvas": "^3.2.1",
|
|
1648
|
-
"chalk": "^5.6.2",
|
|
1649
|
-
"commander": "^14.0.3",
|
|
1650
|
-
"dotenv": "^17.2.4",
|
|
1651
|
-
"dotenv-stringify": "^3.0.1",
|
|
1652
|
-
"execa": "^9.6.1",
|
|
1653
|
-
"figlet": "^1.10.0",
|
|
1654
|
-
"gray-matter": "^4.0.3",
|
|
1655
|
-
"libsodium-wrappers": "^0.8.2",
|
|
1656
|
-
"supports-color": "^10.2.2",
|
|
1657
|
-
"update-notifier": "^7.3.1",
|
|
1658
|
-
"zod": "^4.3.6"
|
|
1659
|
-
},
|
|
1660
|
-
devDependencies: {
|
|
1661
|
-
"@alextheman/eslint-plugin": "^5.6.2",
|
|
1662
|
-
"@commander-js/extra-typings": "^14.0.0",
|
|
1663
|
-
"@types/eslint": "^9.6.1",
|
|
1664
|
-
"@types/node": "^25.2.1",
|
|
1665
|
-
"@types/update-notifier": "^6.0.8",
|
|
1666
|
-
"dotenv-cli": "^11.0.0",
|
|
1667
|
-
"eslint": "^10.0.0",
|
|
1668
|
-
"husky": "^9.1.7",
|
|
1669
|
-
"prettier": "^3.8.1",
|
|
1670
|
-
"tempy": "^3.2.0",
|
|
1671
|
-
"ts-node": "^10.9.2",
|
|
1672
|
-
"tsdown": "^0.20.3",
|
|
1673
|
-
"typescript": "^5.9.3",
|
|
1674
|
-
"vite-tsconfig-paths": "^6.0.5",
|
|
1675
|
-
"vitest": "^4.0.18"
|
|
1676
|
-
},
|
|
1677
|
-
packageManager: "pnpm@10.29.2+sha512.bef43fa759d91fd2da4b319a5a0d13ef7a45bb985a3d7342058470f9d2051a3ba8674e629672654686ef9443ad13a82da2beb9eeb3e0221c87b8154fff9d74b8",
|
|
1678
|
-
engines: { "node": ">=22.0.0" },
|
|
1679
|
-
pnpm: { "onlyBuiltDependencies": [
|
|
1680
|
-
"canvas",
|
|
1681
|
-
"core-js",
|
|
1682
|
-
"esbuild",
|
|
1683
|
-
"fsevents",
|
|
1684
|
-
"unrs-resolver"
|
|
1685
|
-
] }
|
|
1686
|
-
};
|
|
1687
|
-
|
|
1688
1752
|
//#endregion
|
|
1689
1753
|
//#region src/index.ts
|
|
1690
1754
|
(async () => {
|
package/dist/index.js
CHANGED
|
@@ -60,12 +60,12 @@ function centerLine(text, width) {
|
|
|
60
60
|
//#endregion
|
|
61
61
|
//#region src/utility/miscellaneous/createAlexCLineArtwork.ts
|
|
62
62
|
async function createAlexCLineArtwork(options) {
|
|
63
|
-
const { includeColors = true } = options ?? {};
|
|
63
|
+
const { includeColors = true, subtitleColor = chalk.green, subtitleText = "say my name and I'll assist ✓" } = options ?? {};
|
|
64
64
|
const title = await figlet("alex-c-line");
|
|
65
|
-
const subtitle = centerLine(
|
|
65
|
+
const subtitle = centerLine(subtitleText, Math.max(...title.split("\n").map((line) => {
|
|
66
66
|
return line.length;
|
|
67
67
|
})));
|
|
68
|
-
return boxen(includeColors ? [chalk.yellow(title),
|
|
68
|
+
return boxen(includeColors ? [chalk.yellow(title), subtitleColor(subtitle)].join("\n") : [title, subtitle].join("\n"), {
|
|
69
69
|
padding: {
|
|
70
70
|
top: 1,
|
|
71
71
|
bottom: 1,
|
|
@@ -1212,32 +1212,207 @@ function setReleaseStatus2(program) {
|
|
|
1212
1212
|
}
|
|
1213
1213
|
|
|
1214
1214
|
//#endregion
|
|
1215
|
-
//#region
|
|
1216
|
-
|
|
1215
|
+
//#region package.json
|
|
1216
|
+
var name = "alex-c-line";
|
|
1217
|
+
var version = "1.27.1";
|
|
1218
|
+
var description = "Command-line tool with commands to streamline the developer workflow.";
|
|
1219
|
+
var package_default = {
|
|
1220
|
+
name,
|
|
1221
|
+
version,
|
|
1222
|
+
description,
|
|
1223
|
+
repository: {
|
|
1224
|
+
"type": "git",
|
|
1225
|
+
"url": "git+https://github.com/alextheman231/alex-c-line.git"
|
|
1226
|
+
},
|
|
1227
|
+
license: "MIT",
|
|
1228
|
+
author: "alextheman",
|
|
1229
|
+
type: "module",
|
|
1230
|
+
exports: {
|
|
1231
|
+
"./configs": {
|
|
1232
|
+
"types": "./dist/configs/index.d.ts",
|
|
1233
|
+
"require": "./dist/configs/index.cjs",
|
|
1234
|
+
"import": "./dist/configs/index.js",
|
|
1235
|
+
"default": "./dist/configs/index.js"
|
|
1236
|
+
},
|
|
1237
|
+
"./configs/internal": {
|
|
1238
|
+
"types": "./dist/configs/internal/index.d.ts",
|
|
1239
|
+
"require": "./dist/configs/internal/index.cjs",
|
|
1240
|
+
"import": "./dist/configs/internal/index.js",
|
|
1241
|
+
"default": "./dist/configs/internal/index.js"
|
|
1242
|
+
}
|
|
1243
|
+
},
|
|
1244
|
+
main: "dist/index.js",
|
|
1245
|
+
module: "dist/index.cjs",
|
|
1246
|
+
types: "dist/index.d.ts",
|
|
1247
|
+
bin: { "alex-c-line": "dist/index.js" },
|
|
1248
|
+
files: ["dist", "templates"],
|
|
1249
|
+
scripts: {
|
|
1250
|
+
"build": "tsdown",
|
|
1251
|
+
"command": "bash -c 'pnpm run build && echo && echo \"Command output:\" && node dist/index.js $@' --",
|
|
1252
|
+
"create-local-package": "pnpm run build && rm -f alex-c-line-*.tgz && pnpm pack",
|
|
1253
|
+
"create-release-note": "bash -c 'git pull origin main && pnpm run command create-release-note-2 $@' --",
|
|
1254
|
+
"format": "pnpm run format-prettier && pnpm run format-eslint",
|
|
1255
|
+
"format-eslint": "eslint --fix --suppress-all \"package.json\" \"src/**/*.ts\" \"tests/**/*.ts\" && rm -f eslint-suppressions.json",
|
|
1256
|
+
"format-prettier": "pnpm run format-prettier-typescript && pnpm run format-prettier-javascript && pnpm run format-prettier-yml",
|
|
1257
|
+
"format-prettier-javascript": "prettier --write \"./**/*.js\"",
|
|
1258
|
+
"format-prettier-typescript": "prettier --write --parser typescript \"./**/*.ts\"",
|
|
1259
|
+
"format-prettier-yml": "prettier --write \"./**/*.{yml,yaml}\"",
|
|
1260
|
+
"lint": "pnpm run lint-tsc && pnpm run lint-eslint && pnpm run lint-prettier",
|
|
1261
|
+
"lint-eslint": "eslint \"package.json\" \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
1262
|
+
"lint-prettier": "pnpm run lint-prettier-typescript && pnpm run lint-prettier-javascript && pnpm run lint-prettier-yml",
|
|
1263
|
+
"lint-prettier-javascript": "prettier --check \"./**.js\"",
|
|
1264
|
+
"lint-prettier-typescript": "prettier --check --parser typescript \"./**/*.ts\"",
|
|
1265
|
+
"lint-prettier-yml": "prettier --check \"./**/*.{yml,yaml}\"",
|
|
1266
|
+
"lint-tsc": "tsc --noEmit",
|
|
1267
|
+
"pre-commit": "pnpm run command pre-commit-2",
|
|
1268
|
+
"prepare": "husky",
|
|
1269
|
+
"prepare-live-eslint-plugin": "pnpm uninstall @alextheman/eslint-plugin && pnpm install --save-dev @alextheman/eslint-plugin",
|
|
1270
|
+
"prepare-live-utility": "pnpm uninstall @alextheman/utility && pnpm install @alextheman/utility",
|
|
1271
|
+
"prepare-local-eslint-plugin": "dotenv -e .env -- sh -c 'ESLINT_PLUGIN_PATH=${LOCAL_ESLINT_PLUGIN_PATH:-../eslint-plugin}; pnpm --prefix \"$ESLINT_PLUGIN_PATH\" run build && pnpm uninstall @alextheman/eslint-plugin && pnpm install --save-dev file:\"$ESLINT_PLUGIN_PATH\"'",
|
|
1272
|
+
"prepare-local-utility": "dotenv -e .env -- sh -c 'UTILITY_PATH=${LOCAL_UTILITY_PATH:-../utility}; pnpm --prefix \"$UTILITY_PATH\" run build && pnpm uninstall @alextheman/utility && pnpm install file:\"$UTILITY_PATH\"'",
|
|
1273
|
+
"test": "vitest run",
|
|
1274
|
+
"test-watch": "vitest",
|
|
1275
|
+
"update-dependencies": "pnpm update --latest && pnpm update",
|
|
1276
|
+
"use-live-eslint-plugin": "pnpm run prepare-live-eslint-plugin && pnpm run lint",
|
|
1277
|
+
"use-live-utility": "pnpm run prepare-live-utility",
|
|
1278
|
+
"use-local-eslint-plugin": "pnpm run prepare-local-eslint-plugin && pnpm run lint",
|
|
1279
|
+
"use-local-utility": "pnpm run prepare-local-utility"
|
|
1280
|
+
},
|
|
1281
|
+
dependencies: {
|
|
1282
|
+
"@alextheman/utility": "^4.16.2",
|
|
1283
|
+
"@inquirer/prompts": "^8.2.0",
|
|
1284
|
+
"boxen": "^8.0.1",
|
|
1285
|
+
"canvas": "^3.2.1",
|
|
1286
|
+
"chalk": "^5.6.2",
|
|
1287
|
+
"commander": "^14.0.3",
|
|
1288
|
+
"dotenv": "^17.3.1",
|
|
1289
|
+
"dotenv-stringify": "^3.0.1",
|
|
1290
|
+
"execa": "^9.6.1",
|
|
1291
|
+
"figlet": "^1.10.0",
|
|
1292
|
+
"gray-matter": "^4.0.3",
|
|
1293
|
+
"libsodium-wrappers": "^0.8.2",
|
|
1294
|
+
"supports-color": "^10.2.2",
|
|
1295
|
+
"update-notifier": "^7.3.1",
|
|
1296
|
+
"zod": "^4.3.6"
|
|
1297
|
+
},
|
|
1298
|
+
devDependencies: {
|
|
1299
|
+
"@alextheman/eslint-plugin": "^5.7.0",
|
|
1300
|
+
"@commander-js/extra-typings": "^14.0.0",
|
|
1301
|
+
"@types/eslint": "^9.6.1",
|
|
1302
|
+
"@types/node": "^25.2.3",
|
|
1303
|
+
"@types/update-notifier": "^6.0.8",
|
|
1304
|
+
"dotenv-cli": "^11.0.0",
|
|
1305
|
+
"eslint": "^10.0.0",
|
|
1306
|
+
"husky": "^9.1.7",
|
|
1307
|
+
"prettier": "^3.8.1",
|
|
1308
|
+
"tempy": "^3.2.0",
|
|
1309
|
+
"ts-node": "^10.9.2",
|
|
1310
|
+
"tsdown": "^0.20.3",
|
|
1311
|
+
"typescript": "^5.9.3",
|
|
1312
|
+
"vite-tsconfig-paths": "^6.1.1",
|
|
1313
|
+
"vitest": "^4.0.18"
|
|
1314
|
+
},
|
|
1315
|
+
packageManager: "pnpm@10.29.3+sha512.498e1fb4cca5aa06c1dcf2611e6fafc50972ffe7189998c409e90de74566444298ffe43e6cd2acdc775ba1aa7cc5e092a8b7054c811ba8c5770f84693d33d2dc",
|
|
1316
|
+
engines: { "node": ">=22.0.0" },
|
|
1317
|
+
pnpm: { "onlyBuiltDependencies": [
|
|
1318
|
+
"canvas",
|
|
1319
|
+
"core-js",
|
|
1320
|
+
"esbuild",
|
|
1321
|
+
"fsevents",
|
|
1322
|
+
"unrs-resolver"
|
|
1323
|
+
] }
|
|
1324
|
+
};
|
|
1325
|
+
|
|
1326
|
+
//#endregion
|
|
1327
|
+
//#region src/commands/update/checkUpdate.ts
|
|
1328
|
+
async function checkUpdate(program) {
|
|
1329
|
+
const currentVersion = new VersionNumber(version);
|
|
1330
|
+
const { stdout: npmViewResult } = await execa`npm view alex-c-line version`;
|
|
1331
|
+
const latestVersion = new VersionNumber(npmViewResult.trim());
|
|
1332
|
+
if (!VersionNumber.isEqual(currentVersion, latestVersion)) {
|
|
1333
|
+
const message = normaliseIndents`
|
|
1334
|
+
A new update of \`alex-c-line\` is available!
|
|
1335
|
+
${currentVersion.toString()} → ${latestVersion.toString()}
|
|
1336
|
+
Run \`npm install -g alex-c-line@latest\` to update.
|
|
1337
|
+
`;
|
|
1338
|
+
const width = Math.max(...message.split("\n").map((line) => {
|
|
1339
|
+
return line.length;
|
|
1340
|
+
}));
|
|
1341
|
+
const messageWithArtwork = await createAlexCLineArtwork({
|
|
1342
|
+
includeColors: Boolean(supportsColor.stdout),
|
|
1343
|
+
subtitleColor: chalk.white,
|
|
1344
|
+
subtitleText: message.split("\n").map((line) => {
|
|
1345
|
+
return centerLine(line, width);
|
|
1346
|
+
}).join("\n")
|
|
1347
|
+
});
|
|
1348
|
+
if (program) program.error(messageWithArtwork, {
|
|
1349
|
+
exitCode: 2,
|
|
1350
|
+
code: "OUTDATED_VERSION"
|
|
1351
|
+
});
|
|
1352
|
+
else console.info(messageWithArtwork);
|
|
1353
|
+
} else console.info(`alex-c-line is up to date (${currentVersion}).`);
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1356
|
+
//#endregion
|
|
1357
|
+
//#region src/utility/errors/convertDataErrorToProgramError.ts
|
|
1358
|
+
function convertDataErrorToProgramError(dataError, programError, options) {
|
|
1359
|
+
programError(dataError.message, {
|
|
1360
|
+
exitCode: options?.exitCode ?? 1,
|
|
1361
|
+
code: dataError.code
|
|
1362
|
+
});
|
|
1363
|
+
}
|
|
1364
|
+
|
|
1365
|
+
//#endregion
|
|
1366
|
+
//#region src/utility/miscellaneous/parseZodSchemaForProgram.ts
|
|
1367
|
+
function parseZodSchemaForProgram(programError, schema, data) {
|
|
1368
|
+
try {
|
|
1369
|
+
return parseZodSchema(schema, data);
|
|
1370
|
+
} catch (error) {
|
|
1371
|
+
if (DataError.check(error)) convertDataErrorToProgramError(error, programError);
|
|
1372
|
+
throw error;
|
|
1373
|
+
}
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
//#endregion
|
|
1377
|
+
//#region src/commands/update/index.ts
|
|
1378
|
+
const optionsSchema = z.object({ check: z.boolean().optional() });
|
|
1379
|
+
function update(program) {
|
|
1380
|
+
program.command("update").description("Handle updates of the currently installed alex-c-line").option("--check", "Check for available updates").action(async (rawOptions) => {
|
|
1381
|
+
if (parseZodSchemaForProgram(program.error, optionsSchema, rawOptions).check) await checkUpdate(program);
|
|
1382
|
+
else console.info("Unsupported option. Expected `--check`.");
|
|
1383
|
+
});
|
|
1384
|
+
}
|
|
1385
|
+
|
|
1386
|
+
//#endregion
|
|
1387
|
+
//#region src/cache/project/createAlexCLineProjectCache.ts
|
|
1388
|
+
async function createAlexCLineProjectCache(cacheContents) {
|
|
1217
1389
|
const cacheFilePath = path.join(process.cwd(), ".alex-c-line", "cache.json");
|
|
1218
1390
|
await mkdir(path.dirname(cacheFilePath), { recursive: true });
|
|
1219
1391
|
await writeFile(cacheFilePath, JSON.stringify(cacheContents, void 0, 2));
|
|
1220
1392
|
}
|
|
1221
1393
|
|
|
1222
1394
|
//#endregion
|
|
1223
|
-
//#region src/
|
|
1224
|
-
const
|
|
1395
|
+
//#region src/cache/project/types/AlexCLineProjectCache.ts
|
|
1396
|
+
const alexCLineProjectCacheSchema = z.object({ useLocalPackage: z.object({ dependencies: z.record(z.string(), z.object({
|
|
1225
1397
|
currentVersion: z.string(),
|
|
1226
1398
|
previousVersion: z.union([z.instanceof(VersionNumber), z.string()]).transform((value) => {
|
|
1227
1399
|
return value instanceof VersionNumber ? value.toString({ omitPrefix: true }) : value;
|
|
1228
1400
|
}),
|
|
1229
1401
|
dependencyGroup: z.enum(DependencyGroup)
|
|
1230
1402
|
})) }).partial() }).partial();
|
|
1231
|
-
|
|
1232
|
-
|
|
1403
|
+
|
|
1404
|
+
//#endregion
|
|
1405
|
+
//#region src/cache/project/parseAlexCLineCache.ts
|
|
1406
|
+
function parseAlexCLineProjectCache(data) {
|
|
1407
|
+
return parseZodSchema(alexCLineProjectCacheSchema, data);
|
|
1233
1408
|
}
|
|
1234
1409
|
|
|
1235
1410
|
//#endregion
|
|
1236
|
-
//#region src/
|
|
1237
|
-
async function
|
|
1411
|
+
//#region src/cache/project/loadAlexCLineProjectCache.ts
|
|
1412
|
+
async function loadAlexCLineProjectCache(cachePath = path.join(".alex-c-line", "cache.json")) {
|
|
1238
1413
|
const fullCachePath = path.join(process.cwd(), cachePath);
|
|
1239
1414
|
try {
|
|
1240
|
-
return
|
|
1415
|
+
return parseAlexCLineProjectCache(JSON.parse(await readFile(fullCachePath, "utf-8")));
|
|
1241
1416
|
} catch (error) {
|
|
1242
1417
|
if (error instanceof Error && "code" in error && error.code === "ENOENT") return null;
|
|
1243
1418
|
throw error;
|
|
@@ -1379,7 +1554,7 @@ function useLocalPackage(program) {
|
|
|
1379
1554
|
code: "LOCAL_ALEX_C_LINE_ERROR"
|
|
1380
1555
|
});
|
|
1381
1556
|
} else {
|
|
1382
|
-
const cacheContents = await
|
|
1557
|
+
const cacheContents = await loadAlexCLineProjectCache();
|
|
1383
1558
|
if (!reverse) {
|
|
1384
1559
|
if (prepareScript) await execa({ cwd: localPackagePath })`${packageManager} run ${prepareScript}`;
|
|
1385
1560
|
if (!keepOldTarballs) await removeAllTarballs(localPackagePath, packageName);
|
|
@@ -1408,7 +1583,7 @@ function useLocalPackage(program) {
|
|
|
1408
1583
|
dependencyGroup,
|
|
1409
1584
|
currentVersion: getDependenciesFromGroup(await getPackageJsonContents(process.cwd()) ?? {}, dependencyGroup)[packageName]
|
|
1410
1585
|
};
|
|
1411
|
-
await
|
|
1586
|
+
await createAlexCLineProjectCache({
|
|
1412
1587
|
...cacheContents ?? {},
|
|
1413
1588
|
useLocalPackage: {
|
|
1414
1589
|
...cacheContents?.useLocalPackage,
|
|
@@ -1418,7 +1593,7 @@ function useLocalPackage(program) {
|
|
|
1418
1593
|
}
|
|
1419
1594
|
}
|
|
1420
1595
|
});
|
|
1421
|
-
} else await
|
|
1596
|
+
} else await createAlexCLineProjectCache({
|
|
1422
1597
|
...cacheContents ?? {},
|
|
1423
1598
|
useLocalPackage: {
|
|
1424
1599
|
...cacheContents?.useLocalPackage,
|
|
@@ -1508,6 +1683,7 @@ function createCommands(program) {
|
|
|
1508
1683
|
sayHello,
|
|
1509
1684
|
setReleaseStatus,
|
|
1510
1685
|
setReleaseStatus2,
|
|
1686
|
+
update,
|
|
1511
1687
|
useLocalPackage
|
|
1512
1688
|
});
|
|
1513
1689
|
}
|
|
@@ -1535,118 +1711,6 @@ function formatError(error) {
|
|
|
1535
1711
|
throw error;
|
|
1536
1712
|
}
|
|
1537
1713
|
|
|
1538
|
-
//#endregion
|
|
1539
|
-
//#region package.json
|
|
1540
|
-
var name = "alex-c-line";
|
|
1541
|
-
var version = "1.26.2";
|
|
1542
|
-
var description = "Command-line tool with commands to streamline the developer workflow.";
|
|
1543
|
-
var package_default = {
|
|
1544
|
-
name,
|
|
1545
|
-
version,
|
|
1546
|
-
description,
|
|
1547
|
-
repository: {
|
|
1548
|
-
"type": "git",
|
|
1549
|
-
"url": "git+https://github.com/alextheman231/alex-c-line.git"
|
|
1550
|
-
},
|
|
1551
|
-
license: "MIT",
|
|
1552
|
-
author: "alextheman",
|
|
1553
|
-
type: "module",
|
|
1554
|
-
exports: {
|
|
1555
|
-
"./configs": {
|
|
1556
|
-
"types": "./dist/configs/index.d.ts",
|
|
1557
|
-
"require": "./dist/configs/index.cjs",
|
|
1558
|
-
"import": "./dist/configs/index.js",
|
|
1559
|
-
"default": "./dist/configs/index.js"
|
|
1560
|
-
},
|
|
1561
|
-
"./configs/internal": {
|
|
1562
|
-
"types": "./dist/configs/internal/index.d.ts",
|
|
1563
|
-
"require": "./dist/configs/internal/index.cjs",
|
|
1564
|
-
"import": "./dist/configs/internal/index.js",
|
|
1565
|
-
"default": "./dist/configs/internal/index.js"
|
|
1566
|
-
}
|
|
1567
|
-
},
|
|
1568
|
-
main: "dist/index.js",
|
|
1569
|
-
module: "dist/index.cjs",
|
|
1570
|
-
types: "dist/index.d.ts",
|
|
1571
|
-
bin: { "alex-c-line": "dist/index.js" },
|
|
1572
|
-
files: ["dist", "templates"],
|
|
1573
|
-
scripts: {
|
|
1574
|
-
"build": "tsdown",
|
|
1575
|
-
"command": "bash -c 'pnpm run build && echo && echo \"Command output:\" && node dist/index.js $@' --",
|
|
1576
|
-
"create-local-package": "pnpm run build && rm -f alex-c-line-*.tgz && pnpm pack",
|
|
1577
|
-
"create-release-note": "bash -c 'git pull origin main && pnpm run command create-release-note-2 $@' --",
|
|
1578
|
-
"format": "pnpm run format-prettier && pnpm run format-eslint",
|
|
1579
|
-
"format-eslint": "eslint --fix --suppress-all \"package.json\" \"src/**/*.ts\" \"tests/**/*.ts\" && rm -f eslint-suppressions.json",
|
|
1580
|
-
"format-prettier": "pnpm run format-prettier-typescript && pnpm run format-prettier-javascript && pnpm run format-prettier-yml",
|
|
1581
|
-
"format-prettier-javascript": "prettier --write \"./**/*.js\"",
|
|
1582
|
-
"format-prettier-typescript": "prettier --write --parser typescript \"./**/*.ts\"",
|
|
1583
|
-
"format-prettier-yml": "prettier --write \"./**/*.{yml,yaml}\"",
|
|
1584
|
-
"lint": "pnpm run lint-tsc && pnpm run lint-eslint && pnpm run lint-prettier",
|
|
1585
|
-
"lint-eslint": "eslint \"package.json\" \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
1586
|
-
"lint-prettier": "pnpm run lint-prettier-typescript && pnpm run lint-prettier-javascript && pnpm run lint-prettier-yml",
|
|
1587
|
-
"lint-prettier-javascript": "prettier --check \"./**.js\"",
|
|
1588
|
-
"lint-prettier-typescript": "prettier --check --parser typescript \"./**/*.ts\"",
|
|
1589
|
-
"lint-prettier-yml": "prettier --check \"./**/*.{yml,yaml}\"",
|
|
1590
|
-
"lint-tsc": "tsc --noEmit",
|
|
1591
|
-
"pre-commit": "pnpm run command pre-commit-2",
|
|
1592
|
-
"prepare": "husky",
|
|
1593
|
-
"prepare-live-eslint-plugin": "pnpm uninstall @alextheman/eslint-plugin && pnpm install --save-dev @alextheman/eslint-plugin",
|
|
1594
|
-
"prepare-live-utility": "pnpm uninstall @alextheman/utility && pnpm install @alextheman/utility",
|
|
1595
|
-
"prepare-local-eslint-plugin": "dotenv -e .env -- sh -c 'ESLINT_PLUGIN_PATH=${LOCAL_ESLINT_PLUGIN_PATH:-../eslint-plugin}; pnpm --prefix \"$ESLINT_PLUGIN_PATH\" run build && pnpm uninstall @alextheman/eslint-plugin && pnpm install --save-dev file:\"$ESLINT_PLUGIN_PATH\"'",
|
|
1596
|
-
"prepare-local-utility": "dotenv -e .env -- sh -c 'UTILITY_PATH=${LOCAL_UTILITY_PATH:-../utility}; pnpm --prefix \"$UTILITY_PATH\" run build && pnpm uninstall @alextheman/utility && pnpm install file:\"$UTILITY_PATH\"'",
|
|
1597
|
-
"test": "vitest run",
|
|
1598
|
-
"test-watch": "vitest",
|
|
1599
|
-
"update-dependencies": "pnpm update --latest && pnpm update",
|
|
1600
|
-
"use-live-eslint-plugin": "pnpm run prepare-live-eslint-plugin && pnpm run lint",
|
|
1601
|
-
"use-live-utility": "pnpm run prepare-live-utility",
|
|
1602
|
-
"use-local-eslint-plugin": "pnpm run prepare-local-eslint-plugin && pnpm run lint",
|
|
1603
|
-
"use-local-utility": "pnpm run prepare-local-utility"
|
|
1604
|
-
},
|
|
1605
|
-
dependencies: {
|
|
1606
|
-
"@alextheman/utility": "^4.15.0",
|
|
1607
|
-
"@inquirer/prompts": "^8.2.0",
|
|
1608
|
-
"boxen": "^8.0.1",
|
|
1609
|
-
"canvas": "^3.2.1",
|
|
1610
|
-
"chalk": "^5.6.2",
|
|
1611
|
-
"commander": "^14.0.3",
|
|
1612
|
-
"dotenv": "^17.2.4",
|
|
1613
|
-
"dotenv-stringify": "^3.0.1",
|
|
1614
|
-
"execa": "^9.6.1",
|
|
1615
|
-
"figlet": "^1.10.0",
|
|
1616
|
-
"gray-matter": "^4.0.3",
|
|
1617
|
-
"libsodium-wrappers": "^0.8.2",
|
|
1618
|
-
"supports-color": "^10.2.2",
|
|
1619
|
-
"update-notifier": "^7.3.1",
|
|
1620
|
-
"zod": "^4.3.6"
|
|
1621
|
-
},
|
|
1622
|
-
devDependencies: {
|
|
1623
|
-
"@alextheman/eslint-plugin": "^5.6.2",
|
|
1624
|
-
"@commander-js/extra-typings": "^14.0.0",
|
|
1625
|
-
"@types/eslint": "^9.6.1",
|
|
1626
|
-
"@types/node": "^25.2.1",
|
|
1627
|
-
"@types/update-notifier": "^6.0.8",
|
|
1628
|
-
"dotenv-cli": "^11.0.0",
|
|
1629
|
-
"eslint": "^10.0.0",
|
|
1630
|
-
"husky": "^9.1.7",
|
|
1631
|
-
"prettier": "^3.8.1",
|
|
1632
|
-
"tempy": "^3.2.0",
|
|
1633
|
-
"ts-node": "^10.9.2",
|
|
1634
|
-
"tsdown": "^0.20.3",
|
|
1635
|
-
"typescript": "^5.9.3",
|
|
1636
|
-
"vite-tsconfig-paths": "^6.0.5",
|
|
1637
|
-
"vitest": "^4.0.18"
|
|
1638
|
-
},
|
|
1639
|
-
packageManager: "pnpm@10.29.2+sha512.bef43fa759d91fd2da4b319a5a0d13ef7a45bb985a3d7342058470f9d2051a3ba8674e629672654686ef9443ad13a82da2beb9eeb3e0221c87b8154fff9d74b8",
|
|
1640
|
-
engines: { "node": ">=22.0.0" },
|
|
1641
|
-
pnpm: { "onlyBuiltDependencies": [
|
|
1642
|
-
"canvas",
|
|
1643
|
-
"core-js",
|
|
1644
|
-
"esbuild",
|
|
1645
|
-
"fsevents",
|
|
1646
|
-
"unrs-resolver"
|
|
1647
|
-
] }
|
|
1648
|
-
};
|
|
1649
|
-
|
|
1650
1714
|
//#endregion
|
|
1651
1715
|
//#region src/index.ts
|
|
1652
1716
|
(async () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "alex-c-line",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.27.1",
|
|
4
4
|
"description": "Command-line tool with commands to streamline the developer workflow.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
"templates"
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@alextheman/utility": "^4.
|
|
37
|
+
"@alextheman/utility": "^4.16.2",
|
|
38
38
|
"@inquirer/prompts": "^8.2.0",
|
|
39
39
|
"boxen": "^8.0.1",
|
|
40
40
|
"canvas": "^3.2.1",
|
|
41
41
|
"chalk": "^5.6.2",
|
|
42
42
|
"commander": "^14.0.3",
|
|
43
|
-
"dotenv": "^17.
|
|
43
|
+
"dotenv": "^17.3.1",
|
|
44
44
|
"dotenv-stringify": "^3.0.1",
|
|
45
45
|
"execa": "^9.6.1",
|
|
46
46
|
"figlet": "^1.10.0",
|
|
@@ -51,10 +51,10 @@
|
|
|
51
51
|
"zod": "^4.3.6"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@alextheman/eslint-plugin": "^5.
|
|
54
|
+
"@alextheman/eslint-plugin": "^5.7.0",
|
|
55
55
|
"@commander-js/extra-typings": "^14.0.0",
|
|
56
56
|
"@types/eslint": "^9.6.1",
|
|
57
|
-
"@types/node": "^25.2.
|
|
57
|
+
"@types/node": "^25.2.3",
|
|
58
58
|
"@types/update-notifier": "^6.0.8",
|
|
59
59
|
"dotenv-cli": "^11.0.0",
|
|
60
60
|
"eslint": "^10.0.0",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"ts-node": "^10.9.2",
|
|
65
65
|
"tsdown": "^0.20.3",
|
|
66
66
|
"typescript": "^5.9.3",
|
|
67
|
-
"vite-tsconfig-paths": "^6.
|
|
67
|
+
"vite-tsconfig-paths": "^6.1.1",
|
|
68
68
|
"vitest": "^4.0.18"
|
|
69
69
|
},
|
|
70
70
|
"engines": {
|