Repository: JoshuaKGoldberg/create-typescript-app (ts)

Issue:
🐛 Bug: `blockTypeScript` should print `compilerOptions` in alphabetical order
### Bug Report Checklist

- [x] I have tried restarting my IDE and the issue persists.
- [x] I have pulled the latest `main` branch of the repository.
- [x] I have [searched for related issues](https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=is%3Aissue) and found none that matched my issue.

### Expected

If a user provides explicit `compilerOption` Addons to `blockTypeScript`, then they should be merged in with existing compiler options in alphabetical order.

### Actual

https://github.com/JoshuaKGoldberg/package-json-validator/pull/178/files#diff-b55cdbef4907b7045f32cc5360d48d262cca5f94062e353089f189f4460039e0 shows that a provided `rewriteRelativeImportExtensions` is being placed at the end - after `t*` options.

### Additional Info

🎁 

Pull request description:
fix: sort compilerOptions in tsconfig.json
## PR Checklist

- [x] Addresses an existing open issue: fixes #2092
- [x] That issue was marked as [`status: accepting prs`](https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=is%3Aopen+is%3Aissue+label%3A%22status%3A+accepting+prs%22)
- [ ] Steps in [CONTRIBUTING.md](https://github.com/JoshuaKGoldberg/create-typescript-app/blob/main/.github/CONTRIBUTING.md) were taken

## Overview

🎁 

Patch:
diff --git a/src/blocks/blockTypeScript.ts b/src/blocks/blockTypeScript.ts
index 73b08f9..b4ceb38 100644
--- a/src/blocks/blockTypeScript.ts
+++ b/src/blocks/blockTypeScript.ts
@@ -1,3 +1,4 @@
+import sortKeys from "sort-keys";
 import { CompilerOptionsSchema } from "zod-tsconfig";
 
 import { base } from "../base.js";
@@ -121,7 +122,7 @@ export * from "./types.js";
 			],
 			files: {
 				"tsconfig.json": JSON.stringify({
-					compilerOptions: {
+					compilerOptions: sortKeys({
 						declaration: true,
 						declarationMap: true,
 						esModuleInterop: true,
@@ -133,7 +134,7 @@ export * from "./types.js";
 						strict: true,
 						target: "ES2022",
 						...compilerOptions,
-					},
+					}),
 					include: ["src"],
 				}),
 			},


Test patch:
diff --git a/src/blocks/blockTypeScript.test.ts b/src/blocks/blockTypeScript.test.ts
index d2949f7..f5ded81 100644
--- a/src/blocks/blockTypeScript.test.ts
+++ b/src/blocks/blockTypeScript.test.ts
@@ -298,7 +298,7 @@ describe("blockTypeScript", () => {
 			    },
 			  ],
 			  "files": {
-			    "tsconfig.json": "{"compilerOptions":{"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":"NodeNext","moduleResolution":"NodeNext","noEmit":true,"resolveJsonModule":true,"skipLibCheck":true,"strict":true,"target":"ES2022","strictBindCallApply":false},"include":["src"]}",
+			    "tsconfig.json": "{"compilerOptions":{"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":"NodeNext","moduleResolution":"NodeNext","noEmit":true,"resolveJsonModule":true,"skipLibCheck":true,"strict":true,"strictBindCallApply":false,"target":"ES2022"},"include":["src"]}",
 			  },
 			}
 		`);