@solvro/config 3.0.0-beta.6 → 3.0.0-beta.8

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 +21 -15
  10. package/dist/cli/index.cjs.map +1 -1
  11. package/dist/cli/index.js +21 -15
  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.5",
37
+ version: "3.0.0-beta.7",
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,8 +249,8 @@ 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 --", { stdio: "ignore", ...options2 });
252
- return true;
252
+ const diff = (0, import_node_child_process.execSync)("git status --porcelain", options2);
253
+ return diff.toString().trim() === "";
253
254
  } catch {
254
255
  return false;
255
256
  }
@@ -624,29 +625,34 @@ var p8 = __toESM(require("@clack/prompts"), 1);
624
625
  var import_node_fs = require("fs");
625
626
  var import_picocolors6 = __toESM(require("picocolors"), 1);
626
627
 
627
- // src/utils/is-in-git-repo.ts
628
+ // src/utils/get-git-branch.ts
628
629
  var import_node_child_process3 = require("child_process");
629
- var isInGitRepo = (options2) => {
630
+ function getGitBranch(options2) {
630
631
  try {
631
- (0, import_node_child_process3.execSync)("git rev-parse --is-inside-work-tree ", {
632
- stdio: "ignore",
633
- ...options2
634
- });
635
- return true;
632
+ const result = (0, import_node_child_process3.execSync)(
633
+ "git symbolic-ref --quiet --short HEAD || git rev-parse --short HEAD",
634
+ {
635
+ encoding: "utf8",
636
+ stdio: ["ignore", "pipe", "ignore"],
637
+ ...options2
638
+ }
639
+ );
640
+ const branch = result.toString().trim();
641
+ return branch === "" ? null : branch;
636
642
  } catch {
637
- return false;
643
+ return null;
638
644
  }
639
- };
645
+ }
640
646
 
641
647
  // src/utils/print-intro.ts
642
648
  var printIntro = () => {
643
649
  const packageJsonUrl = new URL("../../package.json", importMetaUrl);
644
650
  const packageJson7 = JSON.parse((0, import_node_fs.readFileSync)(packageJsonUrl, "utf8"));
645
- const packageRoot = new URL("../", packageJsonUrl);
651
+ const packageRoot = new URL("./", packageJsonUrl);
646
652
  const execOptions = { cwd: packageRoot };
647
- const clean = !isInGitRepo(execOptions) || isGitClean(execOptions);
648
653
  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}`));
649
- const dirtyStatus = clean ? "" : import_picocolors6.default.white(" (dirty)");
654
+ const branchName = getGitBranch(execOptions);
655
+ const dirtyStatus = branchName == null ? "" : import_picocolors6.default.white(` (${isGitClean(execOptions) ? branchName : "dirty"})`);
650
656
  p8.intro(
651
657
  ` ${import_picocolors6.default.blueBright(import_picocolors6.default.bold("@solvro/config"))} ${version}${dirtyStatus} `
652
658
  );