create-typescript-app 2.7.0 → 2.7.2

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/lib/base.js CHANGED
@@ -137,7 +137,7 @@ const base = createBase({
137
137
  );
138
138
  const getExplainer = lazyValue(async () => await readExplainer(getReadme));
139
139
  const getFunding = lazyValue(async () => await readFunding(take));
140
- const getGitDefaults = lazyValue(async () => await readGitDefaults());
140
+ const getGitDefaults = lazyValue(async () => await readGitDefaults(take));
141
141
  const getGuide = lazyValue(async () => await readGuide(take));
142
142
  const getLogo = lazyValue(async () => await readLogo(getReadme));
143
143
  const getPackageData = lazyValue(
@@ -1,6 +1,11 @@
1
1
  import * as bingo_stratum from 'bingo-stratum';
2
2
 
3
3
  declare const blockESLint: bingo_stratum.BlockWithAddons<{
4
+ imports: {
5
+ source: string;
6
+ specifier: string;
7
+ types?: boolean | undefined;
8
+ }[];
4
9
  extensions: (string | {
5
10
  files?: string[] | undefined;
6
11
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
@@ -15,11 +20,6 @@ declare const blockESLint: bingo_stratum.BlockWithAddons<{
15
20
  })[];
16
21
  ignores: string[];
17
22
  explanations: string[];
18
- imports: {
19
- source: string;
20
- specifier: string;
21
- types?: boolean | undefined;
22
- }[];
23
23
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
24
24
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
25
25
  comment?: string | undefined;
@@ -1,8 +1,8 @@
1
1
  import { parse as parsePackageName } from "parse-package-name";
2
+ import sortKeys from "sort-keys";
2
3
  import { z } from "zod";
3
4
  import { base } from "../base.js";
4
5
  import { getPackageDependencies } from "../data/packageData.js";
5
- import { sortObject } from "../utils/sortObject.js";
6
6
  import { blockCSpell } from "./blockCSpell.js";
7
7
  import { blockDevelopmentDocs } from "./blockDevelopmentDocs.js";
8
8
  import { blockGitHubActionsCI } from "./blockGitHubActionsCI.js";
@@ -218,7 +218,7 @@ function printExtension(extension) {
218
218
  extension.languageOptions && `languageOptions: ${JSON.stringify(extension.languageOptions).replace('"import.meta.dirname"', "import.meta.dirname")},`,
219
219
  extension.linterOptions && `linterOptions: ${JSON.stringify(extension.linterOptions)}`,
220
220
  extension.rules && `rules: ${printExtensionRules(extension.rules)},`,
221
- extension.settings && `settings: ${JSON.stringify(sortObject(extension.settings))},`,
221
+ extension.settings && `settings: ${JSON.stringify(sortKeys(extension.settings))},`,
222
222
  "}"
223
223
  ].filter(Boolean).join(" ");
224
224
  }
@@ -8,10 +8,10 @@ const blockESLintPackageJson = base.createBlock({
8
8
  return {
9
9
  addons: [
10
10
  blockESLint({
11
- extensions: ["packageJson"],
11
+ extensions: ["packageJson.configs.recommended"],
12
12
  imports: [
13
13
  {
14
- source: "eslint-plugin-package-json/configs/recommended",
14
+ source: "eslint-plugin-package-json",
15
15
  specifier: "packageJson"
16
16
  }
17
17
  ]
@@ -14,8 +14,8 @@ const blockExampleFiles = base.createBlock({
14
14
  }
15
15
  };
16
16
  },
17
- // TODO: Make produce() optional
18
- // This needs createBlock to be generic to know if block.produce({}) is ok
17
+ // TODO: Make produce() optional, so this empty-ish produce() can be removed
18
+ // https://github.com/JoshuaKGoldberg/bingo/issues/295
19
19
  produce() {
20
20
  return {};
21
21
  }
@@ -2,12 +2,80 @@ import * as bingo_stratum from 'bingo-stratum';
2
2
 
3
3
  declare const blockPackageJson: bingo_stratum.BlockWithAddons<{
4
4
  properties: {
5
+ type?: "module" | "commonjs" | undefined;
6
+ author?: string | {
7
+ name: string;
8
+ url?: string | undefined;
9
+ email?: string | undefined;
10
+ } | undefined;
11
+ bin?: string | Record<string, string> | undefined;
12
+ name?: string | undefined;
13
+ contributors?: (string | {
14
+ name: string;
15
+ url?: string | undefined;
16
+ email?: string | undefined;
17
+ })[] | undefined;
18
+ description?: string | undefined;
19
+ funding?: string | {
20
+ url: string;
21
+ type?: string | undefined;
22
+ } | (string | {
23
+ url: string;
24
+ type?: string | undefined;
25
+ })[] | undefined;
26
+ keywords?: string[] | undefined;
5
27
  dependencies?: Record<string, string> | undefined;
6
28
  devDependencies?: Record<string, string> | undefined;
7
29
  scripts?: Record<string, string> | undefined;
30
+ repository?: string | {
31
+ type: string;
32
+ url: string;
33
+ directory?: string | undefined;
34
+ } | undefined;
35
+ version?: string | undefined;
36
+ module?: string | undefined;
37
+ engines?: Record<string, string> | undefined;
38
+ packageManager?: string | undefined;
8
39
  files?: string[] | undefined;
40
+ license?: string | undefined;
41
+ config?: Record<string, unknown> | undefined;
42
+ private?: boolean | undefined;
43
+ homepage?: string | undefined;
44
+ maintainers?: (string | {
45
+ name: string;
46
+ url?: string | undefined;
47
+ email?: string | undefined;
48
+ })[] | undefined;
49
+ publishConfig?: Record<string, unknown> | undefined;
50
+ main?: string | undefined;
51
+ types?: string | undefined;
52
+ bugs?: string | {
53
+ url?: string | undefined;
54
+ email?: string | undefined;
55
+ } | undefined;
56
+ browser?: string | Record<string, string | boolean> | undefined;
57
+ man?: string | string[] | undefined;
58
+ directories?: Record<string, string> | undefined;
9
59
  peerDependencies?: Record<string, string> | undefined;
10
- } & Record<string, unknown>;
60
+ peerDependenciesMeta?: Record<string, {
61
+ optional: boolean;
62
+ }> | undefined;
63
+ bundleDependencies?: boolean | string[] | undefined;
64
+ bundledDependencies?: boolean | string[] | undefined;
65
+ optionalDependencies?: Record<string, string> | undefined;
66
+ overrides?: Record<string, unknown> | undefined;
67
+ os?: string[] | undefined;
68
+ cpu?: string[] | undefined;
69
+ workspaces?: string[] | undefined;
70
+ deprecated?: string | undefined;
71
+ typings?: string | undefined;
72
+ typesVersions?: Record<string, Record<string, string[]>> | undefined;
73
+ sideEffects?: boolean | string[] | undefined;
74
+ imports?: Record<string, unknown> | undefined;
75
+ exports?: string | string[] | Record<string, unknown> | null | undefined;
76
+ } & {
77
+ [k: string]: unknown;
78
+ };
11
79
  cleanupCommands: string[];
12
80
  }, {
13
81
  access: "public" | "restricted";
@@ -2,6 +2,7 @@ import * as htmlToText from "html-to-text";
2
2
  import removeUndefinedObjects from "remove-undefined-objects";
3
3
  import sortPackageJson from "sort-package-json";
4
4
  import { z } from "zod";
5
+ import { PackageJson } from "zod-package-json";
5
6
  import { base } from "../base.js";
6
7
  import { CommandPhase } from "./phases.js";
7
8
  const blockPackageJson = base.createBlock({
@@ -10,17 +11,7 @@ const blockPackageJson = base.createBlock({
10
11
  },
11
12
  addons: {
12
13
  cleanupCommands: z.array(z.string()).default([]),
13
- // TODO: Find a zod package for this?
14
- properties: z.intersection(
15
- z.object({
16
- dependencies: z.record(z.string(), z.string()).optional(),
17
- devDependencies: z.record(z.string(), z.string()).optional(),
18
- files: z.array(z.string()).optional(),
19
- peerDependencies: z.record(z.string(), z.string()).optional(),
20
- scripts: z.record(z.string(), z.string()).optional()
21
- }),
22
- z.record(z.string(), z.unknown())
23
- ).default({})
14
+ properties: PackageJson.partial().default({})
24
15
  },
25
16
  produce({ addons, offline, options }) {
26
17
  const dependencies = {
@@ -1,14 +1,14 @@
1
1
  import * as bingo_stratum from 'bingo-stratum';
2
2
 
3
3
  declare const blockPrettier: bingo_stratum.BlockWithAddons<{
4
- ignores: string[];
5
- plugins: string[];
6
4
  overrides: {
7
5
  options: {
8
6
  parser: string;
9
7
  };
10
8
  files: string;
11
9
  }[];
10
+ ignores: string[];
11
+ plugins: string[];
12
12
  }, {
13
13
  access: "public" | "restricted";
14
14
  description: string;
@@ -43,8 +43,8 @@ const blockRepositoryBranchRuleset = base.createBlock({
43
43
  ]
44
44
  };
45
45
  },
46
- // TODO: Make produce() optional
47
- // This needs createBlock to be generic to know if block.produce({}) is ok
46
+ // TODO: Make produce() optional, so this empty-ish produce() can be removed
47
+ // https://github.com/JoshuaKGoldberg/bingo/issues/295
48
48
  produce() {
49
49
  return {};
50
50
  }
@@ -1,6 +1,6 @@
1
+ import sortKeys from "sort-keys";
1
2
  import { z } from "zod";
2
3
  import { base } from "../base.js";
3
- import { sortObject } from "../utils/sortObject.js";
4
4
  import { blockDevelopmentDocs } from "./blockDevelopmentDocs.js";
5
5
  const blockVSCode = base.createBlock({
6
6
  about: {
@@ -70,7 +70,7 @@ To launch it, open a test file, then run _Debug Current Test File_ from the VS C
70
70
  version: "0.2.0"
71
71
  }),
72
72
  "settings.json": JSON.stringify(
73
- sortObject({
73
+ sortKeys({
74
74
  "editor.formatOnSave": true,
75
75
  "editor.rulers": [80],
76
76
  ...settings
@@ -443,6 +443,11 @@ declare const blocks: {
443
443
  version?: string | undefined;
444
444
  }>;
445
445
  blockESLint: bingo_stratum.BlockWithAddons<{
446
+ imports: {
447
+ source: string;
448
+ specifier: string;
449
+ types?: boolean | undefined;
450
+ }[];
446
451
  extensions: (string | {
447
452
  files?: string[] | undefined;
448
453
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
@@ -457,11 +462,6 @@ declare const blocks: {
457
462
  })[];
458
463
  ignores: string[];
459
464
  explanations: string[];
460
- imports: {
461
- source: string;
462
- specifier: string;
463
- types?: boolean | undefined;
464
- }[];
465
465
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
466
466
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
467
467
  comment?: string | undefined;
@@ -1569,12 +1569,80 @@ declare const blocks: {
1569
1569
  }>;
1570
1570
  blockPackageJson: bingo_stratum.BlockWithAddons<{
1571
1571
  properties: {
1572
+ type?: "module" | "commonjs" | undefined;
1573
+ author?: string | {
1574
+ name: string;
1575
+ url?: string | undefined;
1576
+ email?: string | undefined;
1577
+ } | undefined;
1578
+ bin?: string | Record<string, string> | undefined;
1579
+ name?: string | undefined;
1580
+ contributors?: (string | {
1581
+ name: string;
1582
+ url?: string | undefined;
1583
+ email?: string | undefined;
1584
+ })[] | undefined;
1585
+ description?: string | undefined;
1586
+ funding?: string | {
1587
+ url: string;
1588
+ type?: string | undefined;
1589
+ } | (string | {
1590
+ url: string;
1591
+ type?: string | undefined;
1592
+ })[] | undefined;
1593
+ keywords?: string[] | undefined;
1572
1594
  dependencies?: Record<string, string> | undefined;
1573
1595
  devDependencies?: Record<string, string> | undefined;
1574
1596
  scripts?: Record<string, string> | undefined;
1597
+ repository?: string | {
1598
+ type: string;
1599
+ url: string;
1600
+ directory?: string | undefined;
1601
+ } | undefined;
1602
+ version?: string | undefined;
1603
+ module?: string | undefined;
1604
+ engines?: Record<string, string> | undefined;
1605
+ packageManager?: string | undefined;
1575
1606
  files?: string[] | undefined;
1607
+ license?: string | undefined;
1608
+ config?: Record<string, unknown> | undefined;
1609
+ private?: boolean | undefined;
1610
+ homepage?: string | undefined;
1611
+ maintainers?: (string | {
1612
+ name: string;
1613
+ url?: string | undefined;
1614
+ email?: string | undefined;
1615
+ })[] | undefined;
1616
+ publishConfig?: Record<string, unknown> | undefined;
1617
+ main?: string | undefined;
1618
+ types?: string | undefined;
1619
+ bugs?: string | {
1620
+ url?: string | undefined;
1621
+ email?: string | undefined;
1622
+ } | undefined;
1623
+ browser?: string | Record<string, string | boolean> | undefined;
1624
+ man?: string | string[] | undefined;
1625
+ directories?: Record<string, string> | undefined;
1576
1626
  peerDependencies?: Record<string, string> | undefined;
1577
- } & Record<string, unknown>;
1627
+ peerDependenciesMeta?: Record<string, {
1628
+ optional: boolean;
1629
+ }> | undefined;
1630
+ bundleDependencies?: boolean | string[] | undefined;
1631
+ bundledDependencies?: boolean | string[] | undefined;
1632
+ optionalDependencies?: Record<string, string> | undefined;
1633
+ overrides?: Record<string, unknown> | undefined;
1634
+ os?: string[] | undefined;
1635
+ cpu?: string[] | undefined;
1636
+ workspaces?: string[] | undefined;
1637
+ deprecated?: string | undefined;
1638
+ typings?: string | undefined;
1639
+ typesVersions?: Record<string, Record<string, string[]>> | undefined;
1640
+ sideEffects?: boolean | string[] | undefined;
1641
+ imports?: Record<string, unknown> | undefined;
1642
+ exports?: string | string[] | Record<string, unknown> | null | undefined;
1643
+ } & {
1644
+ [k: string]: unknown;
1645
+ };
1578
1646
  cleanupCommands: string[];
1579
1647
  }, {
1580
1648
  access: "public" | "restricted";
@@ -1739,14 +1807,14 @@ declare const blocks: {
1739
1807
  version?: string | undefined;
1740
1808
  }>;
1741
1809
  blockPrettier: bingo_stratum.BlockWithAddons<{
1742
- ignores: string[];
1743
- plugins: string[];
1744
1810
  overrides: {
1745
1811
  options: {
1746
1812
  parser: string;
1747
1813
  };
1748
1814
  files: string;
1749
1815
  }[];
1816
+ ignores: string[];
1817
+ plugins: string[];
1750
1818
  }, {
1751
1819
  access: "public" | "restricted";
1752
1820
  description: string;
@@ -1,5 +1,5 @@
1
1
  var name = "create-typescript-app";
2
- var version = "2.6.1";
2
+ var version = "2.7.1";
3
3
  var description = "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. 🎁";
4
4
  var repository = {
5
5
  type: "git",
@@ -38,7 +38,6 @@ var dependencies = {
38
38
  "bingo-stratum": "^0.5.5",
39
39
  "cspell-populate-words": "^0.3.0",
40
40
  execa: "^9.5.2",
41
- "git-remote-origin-url": "^4.0.0",
42
41
  "git-url-parse": "^16.0.1",
43
42
  "github-default-labels": "^0.1.0",
44
43
  "html-to-text": "^9.0.5",
@@ -56,13 +55,15 @@ var dependencies = {
56
55
  "remove-dependencies": "^0.1.0",
57
56
  "remove-undefined-objects": "^6.0.0",
58
57
  "set-github-repository-labels": "^0.2.0",
58
+ "sort-keys": "^5.1.0",
59
59
  "sort-package-json": "^3.0.0",
60
60
  "title-case": "^4.3.2",
61
- zod: "^3.24.2"
61
+ zod: "^3.24.2",
62
+ "zod-package-json": "^1.1.0"
62
63
  };
63
64
  var devDependencies = {
64
65
  "@eslint-community/eslint-plugin-eslint-comments": "4.4.1",
65
- "@eslint/js": "9.21.0",
66
+ "@eslint/js": "9.22.0",
66
67
  "@prettier/sync": "^0.5.2",
67
68
  "@release-it/conventional-changelog": "10.0.0",
68
69
  "@types/eslint-plugin-markdown": "2.0.2",
@@ -70,28 +71,28 @@ var devDependencies = {
70
71
  "@types/html-to-text": "9.0.4",
71
72
  "@types/js-yaml": "4.0.9",
72
73
  "@types/lodash": "4.17.16",
73
- "@types/node": "22.13.9",
74
+ "@types/node": "22.13.10",
74
75
  "@types/parse-author": "2.0.3",
75
- "@vitest/coverage-v8": "3.0.7",
76
- "@vitest/eslint-plugin": "1.1.36",
76
+ "@vitest/coverage-v8": "3.0.9",
77
+ "@vitest/eslint-plugin": "1.1.38",
77
78
  "all-contributors-cli": "6.26.1",
78
79
  "bingo-requests": "^0.5.4",
79
80
  "bingo-stratum-testers": "0.5.6",
80
81
  "bingo-testers": "^0.5.6",
81
82
  "console-fail-test": "0.5.0",
82
83
  cspell: "8.17.5",
83
- eslint: "9.21.0",
84
- "eslint-plugin-jsdoc": "50.6.3",
84
+ eslint: "9.22.0",
85
+ "eslint-plugin-jsdoc": "50.6.8",
85
86
  "eslint-plugin-jsonc": "2.19.1",
86
87
  "eslint-plugin-markdown": "5.1.0",
87
88
  "eslint-plugin-n": "17.16.2",
88
- "eslint-plugin-package-json": "0.26.2",
89
- "eslint-plugin-perfectionist": "4.10.0",
89
+ "eslint-plugin-package-json": "0.29.0",
90
+ "eslint-plugin-perfectionist": "4.10.1",
90
91
  "eslint-plugin-regexp": "2.7.0",
91
92
  "eslint-plugin-yml": "1.17.0",
92
93
  husky: "9.1.7",
93
- knip: "5.45.0",
94
- "lint-staged": "15.4.3",
94
+ knip: "5.46.0",
95
+ "lint-staged": "15.5.0",
95
96
  lodash: "^4.17.21",
96
97
  markdownlint: "0.37.4",
97
98
  "markdownlint-cli": "0.44.0",
@@ -103,10 +104,10 @@ var devDependencies = {
103
104
  "sentences-per-line": "0.3.0",
104
105
  tsup: "8.4.0",
105
106
  typescript: "5.8.2",
106
- "typescript-eslint": "8.26.0",
107
- vitest: "3.0.7"
107
+ "typescript-eslint": "8.26.1",
108
+ vitest: "3.0.9"
108
109
  };
109
- var packageManager = "pnpm@10.6.0";
110
+ var packageManager = "pnpm@10.6.4";
110
111
  var engines = {
111
112
  node: ">=18.3.0"
112
113
  };
@@ -6,8 +6,7 @@ const inputFromOctokit = createInput({
6
6
  options: z.record(z.string(), z.unknown()).optional()
7
7
  },
8
8
  // TODO: Strongly type this, then push it upstream to Bingo
9
- // This will require smart types around GitHub endpoints, similar to:
10
- // https://github.com/JoshuaKGoldberg/bingo/issues/65
9
+ // https://github.com/JoshuaKGoldberg/bingo/issues/296
11
10
  async produce({ args, fetchers }) {
12
11
  try {
13
12
  const response = await fetchers.octokit.request(args.endpoint, {
@@ -1,5 +1,6 @@
1
+ import { TakeInput } from 'bingo';
1
2
  import gitUrlParse from 'git-url-parse';
2
3
 
3
- declare function readGitDefaults(): Promise<gitUrlParse.GitUrl | undefined>;
4
+ declare function readGitDefaults(take: TakeInput): Promise<gitUrlParse.GitUrl | undefined>;
4
5
 
5
6
  export { readGitDefaults };
@@ -1,11 +1,10 @@
1
- import gitRemoteOriginUrl from "git-remote-origin-url";
2
1
  import gitUrlParse from "git-url-parse";
3
- async function readGitDefaults() {
4
- try {
5
- return gitUrlParse(await gitRemoteOriginUrl());
6
- } catch {
7
- return void 0;
8
- }
2
+ import { inputFromScript } from "input-from-script";
3
+ async function readGitDefaults(take) {
4
+ const url = await take(inputFromScript, {
5
+ command: "git remote get-url origin"
6
+ });
7
+ return url.stdout ? gitUrlParse(url.stdout.toString()) : void 0;
9
8
  }
10
9
  export {
11
10
  readGitDefaults
@@ -1,8 +1,11 @@
1
1
  import { inputFromFileJSON } from "input-from-file-json";
2
+ import { swallowError } from "../utils/swallowError.js";
2
3
  async function readPackageDataFull(take) {
3
- return await take(inputFromFileJSON, {
4
- filePath: "./package.json"
5
- }) ?? {};
4
+ return swallowError(
5
+ await take(inputFromFileJSON, {
6
+ filePath: "./package.json"
7
+ })
8
+ ) || {};
6
9
  }
7
10
  export {
8
11
  readPackageDataFull
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-typescript-app",
3
- "version": "2.7.0",
3
+ "version": "2.7.2",
4
4
  "description": "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. 🎁",
5
5
  "repository": {
6
6
  "type": "git",
@@ -42,7 +42,6 @@
42
42
  "bingo-stratum": "^0.5.5",
43
43
  "cspell-populate-words": "^0.3.0",
44
44
  "execa": "^9.5.2",
45
- "git-remote-origin-url": "^4.0.0",
46
45
  "git-url-parse": "^16.0.1",
47
46
  "github-default-labels": "^0.1.0",
48
47
  "html-to-text": "^9.0.5",
@@ -60,13 +59,15 @@
60
59
  "remove-dependencies": "^0.1.0",
61
60
  "remove-undefined-objects": "^6.0.0",
62
61
  "set-github-repository-labels": "^0.2.0",
62
+ "sort-keys": "^5.1.0",
63
63
  "sort-package-json": "^3.0.0",
64
64
  "title-case": "^4.3.2",
65
- "zod": "^3.24.2"
65
+ "zod": "^3.24.2",
66
+ "zod-package-json": "^1.1.0"
66
67
  },
67
68
  "devDependencies": {
68
69
  "@eslint-community/eslint-plugin-eslint-comments": "4.4.1",
69
- "@eslint/js": "9.21.0",
70
+ "@eslint/js": "9.22.0",
70
71
  "@prettier/sync": "^0.5.2",
71
72
  "@release-it/conventional-changelog": "10.0.0",
72
73
  "@types/eslint-plugin-markdown": "2.0.2",
@@ -74,28 +75,28 @@
74
75
  "@types/html-to-text": "9.0.4",
75
76
  "@types/js-yaml": "4.0.9",
76
77
  "@types/lodash": "4.17.16",
77
- "@types/node": "22.13.9",
78
+ "@types/node": "22.13.10",
78
79
  "@types/parse-author": "2.0.3",
79
- "@vitest/coverage-v8": "3.0.7",
80
- "@vitest/eslint-plugin": "1.1.36",
80
+ "@vitest/coverage-v8": "3.0.9",
81
+ "@vitest/eslint-plugin": "1.1.38",
81
82
  "all-contributors-cli": "6.26.1",
82
83
  "bingo-requests": "^0.5.4",
83
84
  "bingo-stratum-testers": "0.5.6",
84
85
  "bingo-testers": "^0.5.6",
85
86
  "console-fail-test": "0.5.0",
86
87
  "cspell": "8.17.5",
87
- "eslint": "9.21.0",
88
- "eslint-plugin-jsdoc": "50.6.3",
88
+ "eslint": "9.22.0",
89
+ "eslint-plugin-jsdoc": "50.6.8",
89
90
  "eslint-plugin-jsonc": "2.19.1",
90
91
  "eslint-plugin-markdown": "5.1.0",
91
92
  "eslint-plugin-n": "17.16.2",
92
- "eslint-plugin-package-json": "0.26.2",
93
- "eslint-plugin-perfectionist": "4.10.0",
93
+ "eslint-plugin-package-json": "0.29.0",
94
+ "eslint-plugin-perfectionist": "4.10.1",
94
95
  "eslint-plugin-regexp": "2.7.0",
95
96
  "eslint-plugin-yml": "1.17.0",
96
97
  "husky": "9.1.7",
97
- "knip": "5.45.0",
98
- "lint-staged": "15.4.3",
98
+ "knip": "5.46.0",
99
+ "lint-staged": "15.5.0",
99
100
  "lodash": "^4.17.21",
100
101
  "markdownlint": "0.37.4",
101
102
  "markdownlint-cli": "0.44.0",
@@ -107,10 +108,10 @@
107
108
  "sentences-per-line": "0.3.0",
108
109
  "tsup": "8.4.0",
109
110
  "typescript": "5.8.2",
110
- "typescript-eslint": "8.26.0",
111
- "vitest": "3.0.7"
111
+ "typescript-eslint": "8.26.1",
112
+ "vitest": "3.0.9"
112
113
  },
113
- "packageManager": "pnpm@10.6.0",
114
+ "packageManager": "pnpm@10.6.4",
114
115
  "engines": {
115
116
  "node": ">=18.3.0"
116
117
  },
@@ -1,5 +0,0 @@
1
- declare function sortObject(value: object | Record<string, unknown>): {
2
- [k: string]: any;
3
- };
4
-
5
- export { sortObject };
@@ -1,8 +0,0 @@
1
- function sortObject(value) {
2
- return Object.fromEntries(
3
- Object.entries(value).sort(([a], [b]) => a.localeCompare(b))
4
- );
5
- }
6
- export {
7
- sortObject
8
- };