@solvro/config 3.0.0-beta.5 → 3.0.0-beta.7

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.
Files changed (31) hide show
  1. package/dist/{adonis-LA5LM6WX.js → adonis-AM4JSFZT.js} +4 -4
  2. package/dist/{chunk-SCLJ7FJW.js → chunk-FGWXHG7Z.js} +4 -2
  3. package/dist/{chunk-SCLJ7FJW.js.map → chunk-FGWXHG7Z.js.map} +1 -1
  4. package/dist/chunk-GBPFSRW4.js +58 -0
  5. package/dist/chunk-GBPFSRW4.js.map +1 -0
  6. package/dist/{chunk-2KQN4OEE.js → chunk-LCMQ2Z5Y.js} +2 -2
  7. package/dist/{chunk-Q35N55YW.js → chunk-PLNUXTJ3.js} +2 -2
  8. package/dist/{chunk-SSIOPEBQ.js → chunk-X4GAE53H.js} +2 -2
  9. package/dist/cli/index.cjs +22 -4
  10. package/dist/cli/index.cjs.map +1 -1
  11. package/dist/cli/index.js +22 -4
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/eslint/index.cjs +122 -1
  14. package/dist/eslint/index.cjs.map +1 -1
  15. package/dist/eslint/index.js +20 -6
  16. package/dist/eslint/index.js.map +1 -1
  17. package/dist/{nestjs-UYKNZY3Q.js → nestjs-ALMCLMBB.js} +5 -5
  18. package/dist/{node-JO6LEGTS.js → node-RMR75JWW.js} +5 -5
  19. package/dist/{react-GMJ6JYHE.js → react-2VRVM65F.js} +4 -4
  20. package/dist/zod-v3-GQJN3IU4.js +8 -0
  21. package/dist/zod-v3-GQJN3IU4.js.map +1 -0
  22. package/dist/zod-v4-ZBT54C7N.js +43 -0
  23. package/dist/zod-v4-ZBT54C7N.js.map +1 -0
  24. package/package.json +2 -1
  25. /package/dist/{adonis-LA5LM6WX.js.map → adonis-AM4JSFZT.js.map} +0 -0
  26. /package/dist/{chunk-2KQN4OEE.js.map → chunk-LCMQ2Z5Y.js.map} +0 -0
  27. /package/dist/{chunk-Q35N55YW.js.map → chunk-PLNUXTJ3.js.map} +0 -0
  28. /package/dist/{chunk-SSIOPEBQ.js.map → chunk-X4GAE53H.js.map} +0 -0
  29. /package/dist/{nestjs-UYKNZY3Q.js.map → nestjs-ALMCLMBB.js.map} +0 -0
  30. /package/dist/{node-JO6LEGTS.js.map → node-RMR75JWW.js.map} +0 -0
  31. /package/dist/{react-GMJ6JYHE.js.map → react-2VRVM65F.js.map} +0 -0
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  node
3
- } from "./chunk-SSIOPEBQ.js";
3
+ } from "./chunk-X4GAE53H.js";
4
4
  import {
5
5
  imports
6
- } from "./chunk-Q35N55YW.js";
7
- import "./chunk-SCLJ7FJW.js";
6
+ } from "./chunk-PLNUXTJ3.js";
7
+ import "./chunk-FGWXHG7Z.js";
8
8
 
9
9
  // src/eslint/presets/adonis.ts
10
10
  import { configApp } from "@adonisjs/eslint-config";
@@ -49,4 +49,4 @@ var adonisPreset = () => {
49
49
  export {
50
50
  adonisPreset
51
51
  };
52
- //# sourceMappingURL=adonis-LA5LM6WX.js.map
52
+ //# sourceMappingURL=adonis-AM4JSFZT.js.map
@@ -6,6 +6,7 @@ import { default as default5 } from "eslint-plugin-n";
6
6
  import { default as default6 } from "eslint-plugin-regexp";
7
7
  import { default as default7 } from "eslint-plugin-unicorn";
8
8
  import { default as default8 } from "eslint-plugin-unused-imports";
9
+ import { default as default9 } from "eslint-plugin-zod";
9
10
 
10
11
  export {
11
12
  default2 as default,
@@ -14,6 +15,7 @@ export {
14
15
  default5 as default4,
15
16
  default6 as default5,
16
17
  default7 as default6,
17
- default8 as default7
18
+ default8 as default7,
19
+ default9 as default8
18
20
  };
19
- //# sourceMappingURL=chunk-SCLJ7FJW.js.map
21
+ //# sourceMappingURL=chunk-FGWXHG7Z.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/eslint/plugins.ts"],"sourcesContent":["export { default as pluginComments } from \"@eslint-community/eslint-plugin-eslint-comments\";\nexport { default as pluginAntfu } from \"eslint-plugin-antfu\";\nexport { default as pluginImport } from \"eslint-plugin-import\";\nexport { default as pluginNode } from \"eslint-plugin-n\";\nexport { default as pluginRegexp } from \"eslint-plugin-regexp\";\nexport { default as pluginUnicorn } from \"eslint-plugin-unicorn\";\nexport { default as pluginUnusedImports } from \"eslint-plugin-unused-imports\";\n"],"mappings":";AAAA,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAA8B;AACvC,SAAoB,WAAXA,gBAA+B;AACxC,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAA+B;AACxC,SAAoB,WAAXA,gBAAgC;AACzC,SAAoB,WAAXA,gBAAsC;","names":["default"]}
1
+ {"version":3,"sources":["../src/eslint/plugins.ts"],"sourcesContent":["export { default as pluginComments } from \"@eslint-community/eslint-plugin-eslint-comments\";\nexport { default as pluginAntfu } from \"eslint-plugin-antfu\";\nexport { default as pluginImport } from \"eslint-plugin-import\";\nexport { default as pluginNode } from \"eslint-plugin-n\";\nexport { default as pluginRegexp } from \"eslint-plugin-regexp\";\nexport { default as pluginUnicorn } from \"eslint-plugin-unicorn\";\nexport { default as pluginUnusedImports } from \"eslint-plugin-unused-imports\";\nexport { default as pluginZod } from \"eslint-plugin-zod\";\n"],"mappings":";AAAA,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAA8B;AACvC,SAAoB,WAAXA,gBAA+B;AACxC,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAA+B;AACxC,SAAoB,WAAXA,gBAAgC;AACzC,SAAoB,WAAXA,gBAAsC;AAC/C,SAAoB,WAAXA,gBAA4B;","names":["default"]}
@@ -0,0 +1,58 @@
1
+ import {
2
+ default8 as default2
3
+ } from "./chunk-FGWXHG7Z.js";
4
+
5
+ // src/eslint/configs/zod-v3.ts
6
+ function zodV3() {
7
+ return [
8
+ {
9
+ name: "solvro/eslint-zod-v3/rules",
10
+ plugins: {
11
+ zod: default2
12
+ },
13
+ rules: {
14
+ // Style & consistency
15
+ "zod/array-style": ["error", { style: "function" }],
16
+ "zod/consistent-import": ["error", { syntax: "namespace" }],
17
+ "zod/consistent-schema-var-name": ["error", { after: "Schema" }],
18
+ "zod/consistent-schema-output-type-style": [
19
+ "error",
20
+ { style: "infer" }
21
+ ],
22
+ // Disallow unsafe patterns
23
+ "zod/no-any-schema": "error",
24
+ "zod/no-empty-custom-schema": "error",
25
+ "zod/no-optional-and-default-together": "error",
26
+ "zod/no-throw-in-refine": "error",
27
+ "zod/no-transform-in-record-key": "error",
28
+ // Preferred patterns
29
+ "zod/prefer-enum-over-literal-union": "error",
30
+ "zod/prefer-strict-object": "error",
31
+ "zod/prefer-string-schema-with-trim": "warn",
32
+ "zod/prefer-trim-before-string-length-checks": "error",
33
+ // Rules below are Zod v4 specific — disabled for v3 projects
34
+ "zod/no-native-enum": "off",
35
+ "zod/no-number-schema-with-int": "off",
36
+ "zod/no-number-schema-with-finite": "off",
37
+ "zod/no-number-schema-with-safe": "off",
38
+ "zod/no-number-schema-with-step": "off",
39
+ "zod/no-number-schema-with-is-finite": "off",
40
+ "zod/no-number-schema-with-is-int": "off",
41
+ "zod/no-promise-schema": "off",
42
+ "zod/no-schema-with-is-nullable": "off",
43
+ "zod/no-schema-with-is-optional": "off",
44
+ "zod/no-string-schema-with-uuid": "off",
45
+ "zod/prefer-loose-object": "off",
46
+ "zod/prefer-meta": "off",
47
+ "zod/prefer-meta-last": "off",
48
+ "zod/prefer-top-level-string-formats": "off",
49
+ "zod/require-error-message": "off"
50
+ }
51
+ }
52
+ ];
53
+ }
54
+
55
+ export {
56
+ zodV3
57
+ };
58
+ //# sourceMappingURL=chunk-GBPFSRW4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/eslint/configs/zod-v3.ts"],"sourcesContent":["import type { ConfigWithExtends } from \"@eslint/config-helpers\";\n\nimport { pluginZod } from \"../plugins\";\n\nexport function zodV3(): ConfigWithExtends[] {\n return [\n {\n name: \"solvro/eslint-zod-v3/rules\",\n plugins: {\n zod: pluginZod,\n },\n rules: {\n // Style & consistency\n \"zod/array-style\": [\"error\", { style: \"function\" }],\n \"zod/consistent-import\": [\"error\", { syntax: \"namespace\" }],\n \"zod/consistent-schema-var-name\": [\"error\", { after: \"Schema\" }],\n \"zod/consistent-schema-output-type-style\": [\n \"error\",\n { style: \"infer\" },\n ],\n\n // Disallow unsafe patterns\n \"zod/no-any-schema\": \"error\",\n \"zod/no-empty-custom-schema\": \"error\",\n \"zod/no-optional-and-default-together\": \"error\",\n \"zod/no-throw-in-refine\": \"error\",\n \"zod/no-transform-in-record-key\": \"error\",\n\n // Preferred patterns\n \"zod/prefer-enum-over-literal-union\": \"error\",\n \"zod/prefer-strict-object\": \"error\",\n \"zod/prefer-string-schema-with-trim\": \"warn\",\n \"zod/prefer-trim-before-string-length-checks\": \"error\",\n\n // Rules below are Zod v4 specific — disabled for v3 projects\n \"zod/no-native-enum\": \"off\",\n \"zod/no-number-schema-with-int\": \"off\",\n \"zod/no-number-schema-with-finite\": \"off\",\n \"zod/no-number-schema-with-safe\": \"off\",\n \"zod/no-number-schema-with-step\": \"off\",\n \"zod/no-number-schema-with-is-finite\": \"off\",\n \"zod/no-number-schema-with-is-int\": \"off\",\n \"zod/no-promise-schema\": \"off\",\n \"zod/no-schema-with-is-nullable\": \"off\",\n \"zod/no-schema-with-is-optional\": \"off\",\n \"zod/no-string-schema-with-uuid\": \"off\",\n \"zod/prefer-loose-object\": \"off\",\n \"zod/prefer-meta\": \"off\",\n \"zod/prefer-meta-last\": \"off\",\n \"zod/prefer-top-level-string-formats\": \"off\",\n \"zod/require-error-message\": \"off\",\n },\n },\n ];\n}\n"],"mappings":";;;;;AAIO,SAAS,QAA6B;AAC3C,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,QACP,KAAKA;AAAA,MACP;AAAA,MACA,OAAO;AAAA;AAAA,QAEL,mBAAmB,CAAC,SAAS,EAAE,OAAO,WAAW,CAAC;AAAA,QAClD,yBAAyB,CAAC,SAAS,EAAE,QAAQ,YAAY,CAAC;AAAA,QAC1D,kCAAkC,CAAC,SAAS,EAAE,OAAO,SAAS,CAAC;AAAA,QAC/D,2CAA2C;AAAA,UACzC;AAAA,UACA,EAAE,OAAO,QAAQ;AAAA,QACnB;AAAA;AAAA,QAGA,qBAAqB;AAAA,QACrB,8BAA8B;AAAA,QAC9B,wCAAwC;AAAA,QACxC,0BAA0B;AAAA,QAC1B,kCAAkC;AAAA;AAAA,QAGlC,sCAAsC;AAAA,QACtC,4BAA4B;AAAA,QAC5B,sCAAsC;AAAA,QACtC,+CAA+C;AAAA;AAAA,QAG/C,sBAAsB;AAAA,QACtB,iCAAiC;AAAA,QACjC,oCAAoC;AAAA,QACpC,kCAAkC;AAAA,QAClC,kCAAkC;AAAA,QAClC,uCAAuC;AAAA,QACvC,oCAAoC;AAAA,QACpC,yBAAyB;AAAA,QACzB,kCAAkC;AAAA,QAClC,kCAAkC;AAAA,QAClC,kCAAkC;AAAA,QAClC,2BAA2B;AAAA,QAC3B,mBAAmB;AAAA,QACnB,wBAAwB;AAAA,QACxB,uCAAuC;AAAA,QACvC,6BAA6B;AAAA,MAC/B;AAAA,IACF;AAAA,EACF;AACF;","names":["default"]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  default2,
3
3
  default6 as default3
4
- } from "./chunk-SCLJ7FJW.js";
4
+ } from "./chunk-FGWXHG7Z.js";
5
5
 
6
6
  // src/eslint/configs/typescript-strict.ts
7
7
  import tseslint from "typescript-eslint";
@@ -182,4 +182,4 @@ export {
182
182
  typescriptStrict,
183
183
  unicorn
184
184
  };
185
- //# sourceMappingURL=chunk-2KQN4OEE.js.map
185
+ //# sourceMappingURL=chunk-LCMQ2Z5Y.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  default2,
3
3
  default3
4
- } from "./chunk-SCLJ7FJW.js";
4
+ } from "./chunk-FGWXHG7Z.js";
5
5
 
6
6
  // src/eslint/configs/imports.ts
7
7
  var forbiddenUiLibraries = [
@@ -81,4 +81,4 @@ function imports({
81
81
  export {
82
82
  imports
83
83
  };
84
- //# sourceMappingURL=chunk-Q35N55YW.js.map
84
+ //# sourceMappingURL=chunk-PLNUXTJ3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  default4 as default2
3
- } from "./chunk-SCLJ7FJW.js";
3
+ } from "./chunk-FGWXHG7Z.js";
4
4
 
5
5
  // src/eslint/configs/node.ts
6
6
  function node() {
@@ -27,4 +27,4 @@ function node() {
27
27
  export {
28
28
  node
29
29
  };
30
- //# sourceMappingURL=chunk-SSIOPEBQ.js.map
30
+ //# sourceMappingURL=chunk-X4GAE53H.js.map
@@ -34,7 +34,7 @@ var import_picocolors8 = __toESM(require("picocolors"), 1);
34
34
  // package.json
35
35
  var package_default = {
36
36
  name: "@solvro/config",
37
- version: "3.0.0-beta.4",
37
+ version: "3.0.0-beta.6",
38
38
  description: "Solvro's engineering style guide",
39
39
  keywords: [
40
40
  "eslint",
@@ -122,6 +122,7 @@ var package_default = {
122
122
  "eslint-plugin-regexp": "^3.1.0",
123
123
  "eslint-plugin-unicorn": "^64.0.0",
124
124
  "eslint-plugin-unused-imports": "^4.4.1",
125
+ "eslint-plugin-zod": "^4.5.1",
125
126
  execa: "^9.6.1",
126
127
  "find-up-simple": "^1.0.1",
127
128
  globals: "^17.6.0",
@@ -248,7 +249,7 @@ var confirmProjectType = async (projectType) => {
248
249
  var import_node_child_process = require("child_process");
249
250
  function isGitClean(options2) {
250
251
  try {
251
- (0, import_node_child_process.execSync)("git diff-index --quiet HEAD --", options2);
252
+ (0, import_node_child_process.execSync)("git diff-index --quiet HEAD --", { stdio: "ignore", ...options2 });
252
253
  return true;
253
254
  } catch {
254
255
  return false;
@@ -379,7 +380,7 @@ ${import_picocolors2.default.cyan(`${manager.downloadExecute} @solvro/config@lat
379
380
  var p6 = __toESM(require("@clack/prompts"), 1);
380
381
  var import_picocolors4 = __toESM(require("picocolors"), 1);
381
382
 
382
- // src/utils/format-log.ts
383
+ // src/utils/format-link.ts
383
384
  var import_picocolors3 = __toESM(require("picocolors"), 1);
384
385
  var formatLink = (link) => import_picocolors3.default.white(import_picocolors3.default.underline(link));
385
386
 
@@ -623,11 +624,28 @@ var PackageJson = class {
623
624
  var p8 = __toESM(require("@clack/prompts"), 1);
624
625
  var import_node_fs = require("fs");
625
626
  var import_picocolors6 = __toESM(require("picocolors"), 1);
627
+
628
+ // src/utils/is-in-git-repo.ts
629
+ var import_node_child_process3 = require("child_process");
630
+ var isInGitRepo = (options2) => {
631
+ try {
632
+ (0, import_node_child_process3.execSync)("git rev-parse --is-inside-work-tree ", {
633
+ stdio: "ignore",
634
+ ...options2
635
+ });
636
+ return true;
637
+ } catch {
638
+ return false;
639
+ }
640
+ };
641
+
642
+ // src/utils/print-intro.ts
626
643
  var printIntro = () => {
627
644
  const packageJsonUrl = new URL("../../package.json", importMetaUrl);
628
645
  const packageJson7 = JSON.parse((0, import_node_fs.readFileSync)(packageJsonUrl, "utf8"));
629
646
  const packageRoot = new URL("../", packageJsonUrl);
630
- const clean = isGitClean({ cwd: packageRoot, stdio: "ignore" });
647
+ const execOptions = { cwd: packageRoot };
648
+ const clean = !isInGitRepo(execOptions) || isGitClean(execOptions);
631
649
  const version = packageJson7.version == null || packageJson7.version.trim() === "" ? import_picocolors6.default.red("(unknown version)") : import_picocolors6.default.green(import_picocolors6.default.bold(`v${packageJson7.version}`));
632
650
  const dirtyStatus = clean ? "" : import_picocolors6.default.white(" (dirty)");
633
651
  p8.intro(