@adamhl8/configs 3.0.3 → 3.1.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/README.md +17 -5
- package/dist/adamhl8-bunfig/index +1 -0
- package/dist/adamhl8-gitignore/index +1 -0
- package/dist/configs/bask.base.d.ts +0 -2
- package/dist/configs/bask.base.d.ts.map +1 -1
- package/dist/configs/bask.base.js +5 -2
- package/dist/configs/bask.base.js.map +1 -1
- package/dist/configs/commitlint.base.d.ts +0 -2
- package/dist/configs/commitlint.base.d.ts.map +1 -1
- package/dist/configs/commitlint.base.js +1 -2
- package/dist/configs/knip.base.d.ts +0 -2
- package/dist/configs/knip.base.d.ts.map +1 -1
- package/dist/configs/knip.base.js +0 -1
- package/dist/configs/oxfmt.base.d.ts +10 -3
- package/dist/configs/oxfmt.base.d.ts.map +1 -1
- package/dist/configs/oxfmt.base.js +7 -2
- package/dist/configs/oxfmt.base.js.map +1 -1
- package/dist/configs/oxlint.base.d.ts +104 -91
- package/dist/configs/oxlint.base.d.ts.map +1 -1
- package/dist/configs/oxlint.base.js +172 -24
- package/dist/configs/oxlint.base.js.map +1 -1
- package/dist/configs/release-it.base.d.ts +0 -2
- package/dist/configs/release-it.base.d.ts.map +1 -1
- package/dist/configs/release-it.base.js +1 -2
- package/dist/configs/release-it.base.js.map +1 -1
- package/dist/configs/tsconfig.base.json +2 -0
- package/dist/configs/tsdown.base.d.ts +3 -7
- package/dist/configs/tsdown.base.d.ts.map +1 -1
- package/dist/configs/tsdown.base.js +3 -8
- package/dist/configs/tsdown.base.js.map +1 -1
- package/dist/env/index.d.ts +0 -2
- package/dist/env/index.d.ts.map +1 -1
- package/dist/env/index.js +1 -2
- package/dist/env/utils.d.ts +0 -2
- package/dist/env/utils.d.ts.map +1 -1
- package/dist/env/utils.js +1 -2
- package/dist/env/utils.js.map +1 -1
- package/dist/merge-config/merge-config.d.ts +0 -2
- package/dist/merge-config/merge-config.d.ts.map +1 -1
- package/dist/merge-config/merge-config.js +1 -2
- package/dist/merge-config/merge-config.js.map +1 -1
- package/dist/merge-config/merge.types.d.ts +0 -2
- package/dist/merge-config/merge.types.d.ts.map +1 -1
- package/dist/utils.js +32 -4
- package/dist/utils.js.map +1 -1
- package/package.json +43 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-config.js","names":["baseArray"],"sources":["../../src/merge-config/merge-config.ts"],"sourcesContent":["/* oxlint-disable unicorn/prefer-structured-clone
|
|
1
|
+
{"version":3,"file":"merge-config.js","names":["baseArray"],"sources":["../../src/merge-config/merge-config.ts"],"sourcesContent":["/* oxlint-disable unicorn/prefer-structured-clone - structuredClone does not properly clone functions */\nimport { cloneDeep, mergeWith } from \"es-toolkit\"\nimport type { ReadonlyDeep } from \"type-fest\"\n\nimport type { Clean, MergedConfig, Mode } from \"#merge-config/merge.types.ts\"\n\n/**\n * The runtime counterpart of MergedConfig in merge.types.ts: a deep merge whose customizer applies the array mode. The\n * source is pre-cloned so the result never aliases the caller's objects. The merge visits string keys only, so\n * symbol-keyed properties in user configs are dropped (the types mirror this).\n */\nconst merge = (target: object, source: object, mode: Mode): object =>\n mergeWith(target, cloneDeep(source), (objValue: unknown, srcValue: unknown) => {\n if (!Array.isArray(srcValue)) return\n const userArray: unknown[] = srcValue\n if (mode === \"spread\" && Array.isArray(objValue)) {\n const baseArray: unknown[] = objValue\n return [...baseArray, ...userArray]\n }\n return userArray\n })\n\n/**\n * The merge config function. `userConfig` is deep merged into `BaseConfig` with arrays appended to the base array. The\n * optional `replaceConfig` is then deep merged into that result with arrays used as-is, so putting an array there\n * replaces just that key (sibling keys still merge normally, and a key in both configs gets the replace config's\n * value). Required keys must be provided in `userConfig`.\n *\n * The `const` type parameters keep literal types without requiring `as const` at the call site. The constraints accept\n * readonly arrays/objects (e.g. from `as const`), and the result is writable so it stays assignable to the tools' own\n * (mutable) config types.\n */\nexport type MergeConfigFn<UserConfig, BaseConfig> = (<const UserConfigToMerge extends ReadonlyDeep<UserConfig>>(\n userConfig: UserConfigToMerge,\n) => MergedConfig<BaseConfig, UserConfigToMerge>)\n & (<\n const UserConfigToMerge extends ReadonlyDeep<UserConfig>,\n const ReplaceConfigToMerge extends ReadonlyDeep<Partial<UserConfig>>,\n >(\n userConfig: UserConfigToMerge,\n replaceConfig: ReplaceConfigToMerge,\n ) => MergedConfig<MergedConfig<BaseConfig, UserConfigToMerge>, ReplaceConfigToMerge, \"replace\">)\n\n/** A MergeConfigFn that can also be called with no arguments, returning a writable clone of the base config. */\nexport type OptionalMergeConfigFn<UserConfig, BaseConfig> = MergeConfigFn<UserConfig, BaseConfig>\n & (() => Clean<BaseConfig>)\n\n/**\n * Creates a config merge function with proper types for merging with a base config. `UserConfig` is not inferrable, so\n * both type arguments must be passed explicitly.\n */\nexport const createMergeConfigFn = <UserConfig extends object, BaseConfig extends ReadonlyDeep<UserConfig>>(\n baseConfig: BaseConfig,\n): OptionalMergeConfigFn<UserConfig, BaseConfig> => {\n // Loosely typed on purpose, the assertion below gives it the precise public signature\n const mergeConfigFn = (userConfig?: object, replaceConfig?: object) => {\n // Start from a clone so consumers can't mutate the shared base config\n const result = cloneDeep(baseConfig)\n if (userConfig !== undefined) merge(result, userConfig, \"spread\")\n if (replaceConfig !== undefined) merge(result, replaceConfig, \"replace\")\n return result\n }\n\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion - give the loosely typed implementation its precise public signature\n return mergeConfigFn as OptionalMergeConfigFn<UserConfig, BaseConfig>\n}\n"],"mappings":";;;;;;;AAWA,MAAM,SAAS,QAAgB,QAAgB,SAC7C,UAAU,QAAQ,UAAU,MAAM,IAAI,UAAmB,aAAsB;CAC7E,IAAI,CAAC,MAAM,QAAQ,QAAQ,GAAG;CAC9B,MAAM,YAAuB;CAC7B,IAAI,SAAS,YAAY,MAAM,QAAQ,QAAQ,GAE7C,OAAO,CAAC,GAAGA,UAAW,GAAG,SAAS;CAEpC,OAAO;AACT,CAAC;;;;;AA+BH,MAAa,uBACX,eACkD;CAElD,MAAM,iBAAiB,YAAqB,kBAA2B;EAErE,MAAM,SAAS,UAAU,UAAU;EACnC,IAAI,eAAe,KAAA,GAAW,MAAM,QAAQ,YAAY,QAAQ;EAChE,IAAI,kBAAkB,KAAA,GAAW,MAAM,QAAQ,eAAe,SAAS;EACvE,OAAO;CACT;CAGA,OAAO;AACT"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
//#region src/merge-config/merge.types.d.ts
|
|
2
1
|
type AnyFunction = (...args: never[]) => unknown;
|
|
3
2
|
/** How user arrays combine with base arrays: appended in spread mode, used as-is in replace mode. */
|
|
4
3
|
export type Mode = "spread" | "replace";
|
|
@@ -46,6 +45,5 @@ type MergeObjects<BaseConfig, UserConfig, Depth extends readonly unknown[], M ex
|
|
|
46
45
|
* arrays show only the user's elements.
|
|
47
46
|
*/
|
|
48
47
|
export type MergedConfig<BaseConfig, UserConfig, M extends Mode = "spread"> = MergeObjects<BaseConfig, UserConfig, MaxDepth, M>;
|
|
49
|
-
//#endregion
|
|
50
48
|
export {};
|
|
51
49
|
//# sourceMappingURL=merge.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.types.d.ts","names":[],"sources":["../../src/merge-config/merge.types.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"merge.types.d.ts","names":[],"sources":["../../src/merge-config/merge.types.ts"],"mappings":"A,KAWK,kBAAkB;;YAGX;;;;;;KAOP;;;;;;KAOA,eAAe,cAAc,OAAO,SAAS;YAAoB,OAAO;;;;;;;;YAQjE,MAAM,GAAG,mCAAmC,YAAY,mBAChE,0CAA0C,kBACxC,UAAU,eACR,iBACa,WAAW,IAAI,MAAM,EAAE,IAAI,qBAC1C,IACF;;;;;KAMC,YACH,WACA,sCACA,kCACA,UAAU,QACR,qBACA,wCACG,MAAM,mBAAmB,SAAS,MAAM,mBAAmB,YAC5D,MAAM,WAAW,SACnB,MAAM,WAAW;;;;;KAMhB,YAAY,WAAW,WAAW,kCAAkC,UAAU,QAAQ,2BACvF,uCACE,YAAY,WAAW,WAAW,OAAO,KACzC,kBAAkB,eAChB,YACA,uCAAuC,eACrC,MAAM,WAAW,SACjB,2BACE,aAAa,WAAW,WAAW,OAAO,KAC1C,MAAM,WAAW,SACzB;;;;;;;;KASC,aAAa,YAAY,YAAY,kCAAkC,UAAU,QAAQ,0CAEnF,+BAGM,WAAW,aAAa,gBAAgB,+BAC7B,WAAW,KAEvB,YAAY,WAAW,IAAI,QAAQ,WAAW,gBAAgB,gBAAgB,KAC9E,MAAM,WAAW,IAAI,kBACzB,YAAY,WAAW,IAAI,WAAW,IAAI,gBAAgB,KAC5D,MAAM,WAAW,IAAI,kCAEd,WAAW,cAAc,gBAAgB,8BAA8B,IAAI,MACpF,WAAW,IACX,kCAEY,aACX,WAAW,SAAS,OAAO,gBAEhC;;;;;YAMQ,aAAa,YAAY,YAAY,UAAU,mBAAmB,aAC5E,YACA,YACA,UACA"}
|
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { existsSync } from "node:fs";
|
|
1
|
+
import { existsSync, globSync, readFileSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
2
3
|
import { fileURLToPath } from "node:url";
|
|
3
|
-
|
|
4
|
+
import { isPlainObject } from "es-toolkit/predicate";
|
|
5
|
+
// src/utils.ts
|
|
4
6
|
const CONFIG_DIRS = ["./configs/", "../configs/"];
|
|
5
7
|
/** Returns the absolute path of a file in this package's `configs` folder. */
|
|
6
8
|
const configFilePath = (name) => {
|
|
@@ -11,7 +13,33 @@ const configFilePath = (name) => {
|
|
|
11
13
|
};
|
|
12
14
|
/** Returns the absolute path of a package's entry file, resolved from this package's dependencies. */
|
|
13
15
|
const resolvePackagePath = (specifier) => fileURLToPath(import.meta.resolve(specifier));
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
const keysOf = (value) => isPlainObject(value) ? Object.keys(value) : [];
|
|
17
|
+
/**
|
|
18
|
+
* Reads the project's `package.json` fields that the base configs branch on. `dependencies` merges the regular, dev,
|
|
19
|
+
* and peer dependency names.
|
|
20
|
+
*/
|
|
21
|
+
const readProjectPackageJson = () => {
|
|
22
|
+
const packageJson = existsSync("package.json") ? JSON.parse(readFileSync("package.json", "utf8")) : {};
|
|
23
|
+
const fields = isPlainObject(packageJson) ? packageJson : {};
|
|
24
|
+
return {
|
|
25
|
+
dependencies: new Set([
|
|
26
|
+
"dependencies",
|
|
27
|
+
"devDependencies",
|
|
28
|
+
"peerDependencies"
|
|
29
|
+
].flatMap((field) => keysOf(fields[field]))),
|
|
30
|
+
engines: new Set(keysOf(fields["engines"]))
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
const TAILWIND_IMPORT = /@import\s*["']tailwindcss(?:\/[^"']+)?["']/v;
|
|
34
|
+
/**
|
|
35
|
+
* Returns the project's Tailwind stylesheet relative to the project root, or `false` when the project doesn't use
|
|
36
|
+
* Tailwind. The stylesheet is the first CSS file, in sorted order, that imports `tailwindcss`.
|
|
37
|
+
*/
|
|
38
|
+
const resolveProjectTailwind = () => {
|
|
39
|
+
const { dependencies } = readProjectPackageJson();
|
|
40
|
+
if (!dependencies.has("tailwindcss")) return false;
|
|
41
|
+
return globSync("**/*.{css,scss,sass,less,pcss}", { exclude: (filePath) => ["node_modules", ".git"].includes(path.basename(filePath)) }).toSorted().find((file) => TAILWIND_IMPORT.test(readFileSync(file, "utf8"))) ?? false;
|
|
42
|
+
};
|
|
43
|
+
export { configFilePath, readProjectPackageJson, resolvePackagePath, resolveProjectTailwind };
|
|
16
44
|
|
|
17
45
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import { existsSync } from \"node:fs\"\nimport { fileURLToPath } from \"node:url\"\n\n// Check both folders because a bin bundles this file into `<bin>/index`, one level below `configs`.\nconst CONFIG_DIRS = [\"./configs/\", \"../configs/\"] as const\n\n/** Returns the absolute path of a file in this package's `configs` folder. */\nexport const configFilePath = (name: string) => {\n const filePaths = CONFIG_DIRS.map((dir) => fileURLToPath(new URL(`${dir}${name}`, import.meta.url)))\n const filePath = filePaths.find((candidate) => existsSync(candidate))\n if (!filePath) throw new Error(`Couldn't find config file \"${name}\" in:\\n${filePaths.join(\"\\n\")}`)\n return filePath\n}\n\n/** Returns the absolute path of a package's entry file, resolved from this package's dependencies. */\nexport const resolvePackagePath = (specifier: string) => fileURLToPath(import.meta.resolve(specifier))\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import { existsSync, globSync, readFileSync } from \"node:fs\"\nimport path from \"node:path\"\nimport { fileURLToPath } from \"node:url\"\n\nimport { isPlainObject } from \"es-toolkit/predicate\"\n\n// Check both folders because a bin bundles this file into `<bin>/index`, one level below `configs`.\nconst CONFIG_DIRS = [\"./configs/\", \"../configs/\"] as const\n\n/** Returns the absolute path of a file in this package's `configs` folder. */\nexport const configFilePath = (name: string) => {\n const filePaths = CONFIG_DIRS.map((dir) => fileURLToPath(new URL(`${dir}${name}`, import.meta.url)))\n const filePath = filePaths.find((candidate) => existsSync(candidate))\n if (!filePath) throw new Error(`Couldn't find config file \"${name}\" in:\\n${filePaths.join(\"\\n\")}`)\n return filePath\n}\n\n/** Returns the absolute path of a package's entry file, resolved from this package's dependencies. */\nexport const resolvePackagePath = (specifier: string) => fileURLToPath(import.meta.resolve(specifier))\n\nconst keysOf = (value: unknown) => (isPlainObject(value) ? Object.keys(value) : [])\n\n/**\n * Reads the project's `package.json` fields that the base configs branch on. `dependencies` merges the regular, dev,\n * and peer dependency names.\n */\nexport const readProjectPackageJson = () => {\n const packageJson: unknown = existsSync(\"package.json\") ? JSON.parse(readFileSync(\"package.json\", \"utf8\")) : {}\n const fields = isPlainObject(packageJson) ? packageJson : {}\n\n const dependencyFields = [\"dependencies\", \"devDependencies\", \"peerDependencies\"]\n const dependencies = new Set(dependencyFields.flatMap((field) => keysOf(fields[field])))\n const engines = new Set(keysOf(fields[\"engines\"]))\n\n return { dependencies, engines }\n}\n\n// Match entry stylesheets the same way `@tailwindcss/language-server` does.\nconst TAILWIND_IMPORT = /@import\\s*[\"']tailwindcss(?:\\/[^\"']+)?[\"']/v\n\n/**\n * Returns the project's Tailwind stylesheet relative to the project root, or `false` when the project doesn't use\n * Tailwind. The stylesheet is the first CSS file, in sorted order, that imports `tailwindcss`.\n */\nexport const resolveProjectTailwind = () => {\n const { dependencies } = readProjectPackageJson()\n if (!dependencies.has(\"tailwindcss\")) return false\n\n const stylesheets = globSync(\"**/*.{css,scss,sass,less,pcss}\", {\n exclude: (filePath) => [\"node_modules\", \".git\"].includes(path.basename(filePath)),\n }).toSorted()\n\n return stylesheets.find((file) => TAILWIND_IMPORT.test(readFileSync(file, \"utf8\"))) ?? false\n}\n"],"mappings":";;;;;AAOA,MAAM,cAAc,CAAC,cAAc,aAAa;;AAGhD,MAAa,kBAAkB,SAAiB;CAC9C,MAAM,YAAY,YAAY,KAAK,QAAQ,cAAc,IAAI,IAAI,GAAG,MAAM,QAAQ,YAAY,GAAG,CAAC,CAAC;CACnG,MAAM,WAAW,UAAU,MAAM,cAAc,WAAW,SAAS,CAAC;CACpE,IAAI,CAAC,UAAU,MAAM,IAAI,MAAM,8BAA8B,KAAK,SAAS,UAAU,KAAK,IAAI,GAAG;CACjG,OAAO;AACT;;AAGA,MAAa,sBAAsB,cAAsB,cAAc,YAAY,QAAQ,SAAS,CAAC;AAErG,MAAM,UAAU,UAAoB,cAAc,KAAK,IAAI,OAAO,KAAK,KAAK,IAAI,CAAC;;;;;AAMjF,MAAa,+BAA+B;CAC1C,MAAM,cAAuB,WAAW,cAAc,IAAI,KAAK,MAAM,aAAa,gBAAgB,MAAM,CAAC,IAAI,CAAC;CAC9G,MAAM,SAAS,cAAc,WAAW,IAAI,cAAc,CAAC;CAM3D,OAAO;EAAE,cAAA,IAHgB,IAAI;GADH;GAAgB;GAAmB;EACjB,CAAC,CAAC,SAAS,UAAU,OAAO,OAAO,MAAM,CAAC,CAGlE;EAAG,SAAA,IAFH,IAAI,OAAO,OAAO,UAAU,CAEnB;CAAE;AACjC;AAGA,MAAM,kBAAkB;;;;;AAMxB,MAAa,+BAA+B;CAC1C,MAAM,EAAE,iBAAiB,uBAAuB;CAChD,IAAI,CAAC,aAAa,IAAI,aAAa,GAAG,OAAO;CAM7C,OAJoB,SAAS,kCAAkC,EAC7D,UAAU,aAAa,CAAC,gBAAgB,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,QAAQ,CAAC,EAClF,CAAC,CAAC,CAAC,SAEc,CAAC,CAAC,MAAM,SAAS,gBAAgB,KAAK,aAAa,MAAM,MAAM,CAAC,CAAC,KAAK;AACzF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adamhl8/configs",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"description": "My shared configs for TS projects",
|
|
5
5
|
"homepage": "https://github.com/adamhl8/configs",
|
|
6
6
|
"bugs": {
|
|
@@ -46,55 +46,68 @@
|
|
|
46
46
|
"access": "public"
|
|
47
47
|
},
|
|
48
48
|
"scripts": {
|
|
49
|
-
"prepare": "
|
|
49
|
+
"prepare": "bask prepare"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@adamhl8/eslint-plugin-clean-modules": "^0.1.5",
|
|
53
53
|
"@commitlint/config-conventional": "^21.2.4",
|
|
54
54
|
"@commitlint/types": "^21.2.3",
|
|
55
|
+
"@e18e/eslint-plugin": "^0.8.1",
|
|
55
56
|
"arkenv": "^0.12.3",
|
|
56
|
-
"arktype": "^2.2.
|
|
57
|
-
"es-toolkit": "^1.
|
|
57
|
+
"arktype": "^2.2.9",
|
|
58
|
+
"es-toolkit": "^1.53.0",
|
|
59
|
+
"eslint-plugin-bunisms": "^0.11.0",
|
|
60
|
+
"eslint-plugin-hono": "^1.1.0",
|
|
61
|
+
"eslint-plugin-react-web-api": "^5.28.8",
|
|
62
|
+
"eslint-plugin-react-you-might-not-need-an-effect": "^1.0.2",
|
|
63
|
+
"eslint-plugin-regexp": "^3.3.1",
|
|
64
|
+
"oxlint-plugin-directive-comments": "^0.1.0",
|
|
65
|
+
"oxlint-tailwindcss": "^1.16.0",
|
|
58
66
|
"ts-explicit-errors": "^4.1.3",
|
|
59
67
|
"type-fest": "^5.10.0"
|
|
60
68
|
},
|
|
61
69
|
"devDependencies": {
|
|
62
|
-
"@adamhl8/bask": "^0.
|
|
70
|
+
"@adamhl8/bask": "^0.5.0",
|
|
63
71
|
"@adamhl8/configs": "file:.",
|
|
64
72
|
"@arethetypeswrong/core": "^0.18.5",
|
|
65
73
|
"@commitlint/cli": "^21.2.4",
|
|
66
|
-
"@types/bun": "^1.4.
|
|
67
|
-
"knip": "^6.
|
|
74
|
+
"@types/bun": "^1.4.4",
|
|
75
|
+
"knip": "^6.43.0",
|
|
68
76
|
"markdown-toc": "^1.2.0",
|
|
69
|
-
"oxfmt": "^0.
|
|
70
|
-
"oxlint": "^1.
|
|
71
|
-
"oxlint-tsgolint": "^7.0.
|
|
77
|
+
"oxfmt": "^0.74.0",
|
|
78
|
+
"oxlint": "^1.89.0",
|
|
79
|
+
"oxlint-tsgolint": "^7.0.2005",
|
|
72
80
|
"publint": "^0.3.25",
|
|
73
81
|
"release-it": "^21.1.1",
|
|
74
82
|
"release-it-git-cliff": "^0.2.0",
|
|
75
|
-
"tsdown": "^0.23.
|
|
76
|
-
"typescript": "
|
|
83
|
+
"tsdown": "^0.23.2",
|
|
84
|
+
"typescript": "7.1.0-beta"
|
|
77
85
|
},
|
|
78
86
|
"peerDependencies": {
|
|
79
|
-
"@adamhl8/bask": ">=0.
|
|
87
|
+
"@adamhl8/bask": ">=0.5",
|
|
80
88
|
"@arethetypeswrong/core": ">=0.18",
|
|
81
|
-
"@commitlint/cli": ">=21",
|
|
82
|
-
"@commitlint/config-conventional": ">=21",
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"oxlint
|
|
89
|
+
"@commitlint/cli": ">=21.2",
|
|
90
|
+
"@commitlint/config-conventional": ">=21.2",
|
|
91
|
+
"@tailwindcss/language-server": ">=0.16",
|
|
92
|
+
"knip": ">=6.43",
|
|
93
|
+
"markdown-toc": ">=1.2",
|
|
94
|
+
"oxfmt": ">=0.74",
|
|
95
|
+
"oxlint": ">=1.89",
|
|
96
|
+
"oxlint-tsgolint": ">=7.0.2005",
|
|
88
97
|
"publint": ">=0.3",
|
|
89
|
-
"release-it": ">=21",
|
|
90
|
-
"release-it-git-cliff": ">=0.
|
|
91
|
-
"
|
|
92
|
-
"
|
|
98
|
+
"release-it": ">=21.1",
|
|
99
|
+
"release-it-git-cliff": ">=0.2",
|
|
100
|
+
"tailwint": ">=1.1",
|
|
101
|
+
"tsdown": ">=0.23.2",
|
|
102
|
+
"typescript": "^7.1.0-beta"
|
|
93
103
|
},
|
|
94
104
|
"peerDependenciesMeta": {
|
|
95
105
|
"@arethetypeswrong/core": {
|
|
96
106
|
"optional": true
|
|
97
107
|
},
|
|
108
|
+
"@tailwindcss/language-server": {
|
|
109
|
+
"optional": true
|
|
110
|
+
},
|
|
98
111
|
"publint": {
|
|
99
112
|
"optional": true
|
|
100
113
|
},
|
|
@@ -104,8 +117,14 @@
|
|
|
104
117
|
"release-it-git-cliff": {
|
|
105
118
|
"optional": true
|
|
106
119
|
},
|
|
120
|
+
"tailwint": {
|
|
121
|
+
"optional": true
|
|
122
|
+
},
|
|
107
123
|
"tsdown": {
|
|
108
124
|
"optional": true
|
|
109
125
|
}
|
|
126
|
+
},
|
|
127
|
+
"engines": {
|
|
128
|
+
"bun": ">=1.4"
|
|
110
129
|
}
|
|
111
130
|
}
|