@skapxd/eslint-opinionated 0.1.0

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 (42) hide show
  1. package/README.md +731 -0
  2. package/dist/astro/index.d.mts +33 -0
  3. package/dist/astro/index.d.ts +33 -0
  4. package/dist/astro/index.js +72 -0
  5. package/dist/astro/index.js.map +1 -0
  6. package/dist/astro/index.mjs +8 -0
  7. package/dist/astro/index.mjs.map +1 -0
  8. package/dist/chunk-3FB4H7N6.mjs +31 -0
  9. package/dist/chunk-3FB4H7N6.mjs.map +1 -0
  10. package/dist/chunk-BAHAXSWA.mjs +62 -0
  11. package/dist/chunk-BAHAXSWA.mjs.map +1 -0
  12. package/dist/chunk-CQKEQ32W.mjs +99 -0
  13. package/dist/chunk-CQKEQ32W.mjs.map +1 -0
  14. package/dist/chunk-RP7BOODV.mjs +1550 -0
  15. package/dist/chunk-RP7BOODV.mjs.map +1 -0
  16. package/dist/cli.d.mts +1 -0
  17. package/dist/cli.d.ts +1 -0
  18. package/dist/cli.js +3451 -0
  19. package/dist/cli.js.map +1 -0
  20. package/dist/cli.mjs +3428 -0
  21. package/dist/cli.mjs.map +1 -0
  22. package/dist/index.d.mts +14 -0
  23. package/dist/index.d.ts +14 -0
  24. package/dist/index.js +1781 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/index.mjs +44 -0
  27. package/dist/index.mjs.map +1 -0
  28. package/dist/next/index.d.mts +65 -0
  29. package/dist/next/index.d.ts +65 -0
  30. package/dist/next/index.js +103 -0
  31. package/dist/next/index.js.map +1 -0
  32. package/dist/next/index.mjs +8 -0
  33. package/dist/next/index.mjs.map +1 -0
  34. package/dist/rules-qISQhAKV.d.mts +5 -0
  35. package/dist/rules-qISQhAKV.d.ts +5 -0
  36. package/dist/shared/index.d.mts +110 -0
  37. package/dist/shared/index.d.ts +110 -0
  38. package/dist/shared/index.js +1684 -0
  39. package/dist/shared/index.js.map +1 -0
  40. package/dist/shared/index.mjs +15 -0
  41. package/dist/shared/index.mjs.map +1 -0
  42. package/package.json +80 -0
@@ -0,0 +1,33 @@
1
+ declare function createAstroConfigs(pluginReference: unknown): ({
2
+ files: string[];
3
+ name: string;
4
+ plugins: {
5
+ skapxd: unknown;
6
+ };
7
+ rules: {
8
+ "skapxd/no-ad-hoc-ok-result": string;
9
+ "skapxd/no-deep-relative-imports": string;
10
+ "skapxd/no-promise-chain": string;
11
+ "skapxd/no-try-catch": string;
12
+ "skapxd/one-root-function-per-file": string;
13
+ "skapxd/prefer-ts-pattern": string;
14
+ "skapxd/result-error-requires-cause": string;
15
+ };
16
+ languageOptions?: undefined;
17
+ } | {
18
+ files: string[];
19
+ languageOptions: {
20
+ parserOptions: {
21
+ projectService: boolean;
22
+ };
23
+ };
24
+ name: string;
25
+ plugins: {
26
+ skapxd: unknown;
27
+ };
28
+ rules: {
29
+ "skapxd/result-error-requires-cause": string;
30
+ };
31
+ })[];
32
+
33
+ export { createAstroConfigs };
@@ -0,0 +1,33 @@
1
+ declare function createAstroConfigs(pluginReference: unknown): ({
2
+ files: string[];
3
+ name: string;
4
+ plugins: {
5
+ skapxd: unknown;
6
+ };
7
+ rules: {
8
+ "skapxd/no-ad-hoc-ok-result": string;
9
+ "skapxd/no-deep-relative-imports": string;
10
+ "skapxd/no-promise-chain": string;
11
+ "skapxd/no-try-catch": string;
12
+ "skapxd/one-root-function-per-file": string;
13
+ "skapxd/prefer-ts-pattern": string;
14
+ "skapxd/result-error-requires-cause": string;
15
+ };
16
+ languageOptions?: undefined;
17
+ } | {
18
+ files: string[];
19
+ languageOptions: {
20
+ parserOptions: {
21
+ projectService: boolean;
22
+ };
23
+ };
24
+ name: string;
25
+ plugins: {
26
+ skapxd: unknown;
27
+ };
28
+ rules: {
29
+ "skapxd/result-error-requires-cause": string;
30
+ };
31
+ })[];
32
+
33
+ export { createAstroConfigs };
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/astro/index.ts
21
+ var astro_exports = {};
22
+ __export(astro_exports, {
23
+ createAstroConfigs: () => createAstroConfigs
24
+ });
25
+ module.exports = __toCommonJS(astro_exports);
26
+
27
+ // src/shared/configs/base-rules.ts
28
+ var baseRules = {
29
+ "skapxd/no-ad-hoc-ok-result": "warn",
30
+ "skapxd/no-deep-relative-imports": "warn",
31
+ "skapxd/no-promise-chain": "error",
32
+ "skapxd/no-try-catch": "error",
33
+ "skapxd/one-root-function-per-file": "error",
34
+ "skapxd/prefer-ts-pattern": "error",
35
+ "skapxd/result-error-requires-cause": "error"
36
+ };
37
+
38
+ // src/shared/configs/create-typed-language-options.ts
39
+ function createTypedLanguageOptions() {
40
+ return {
41
+ parserOptions: {
42
+ projectService: true
43
+ }
44
+ };
45
+ }
46
+
47
+ // src/astro/configs.ts
48
+ function createAstroConfigs(pluginReference) {
49
+ const typedLanguageOptions = createTypedLanguageOptions();
50
+ return [
51
+ {
52
+ files: ["src/**/*.{ts,tsx,astro}"],
53
+ name: "skapxd/astro/base",
54
+ plugins: { skapxd: pluginReference },
55
+ rules: baseRules
56
+ },
57
+ {
58
+ files: ["src/**/*.{ts,tsx}"],
59
+ languageOptions: typedLanguageOptions,
60
+ name: "skapxd/astro/typescript",
61
+ plugins: { skapxd: pluginReference },
62
+ rules: {
63
+ "skapxd/result-error-requires-cause": "error"
64
+ }
65
+ }
66
+ ];
67
+ }
68
+ // Annotate the CommonJS export names for ESM import in node:
69
+ 0 && (module.exports = {
70
+ createAstroConfigs
71
+ });
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/astro/index.ts","../../src/shared/configs/base-rules.ts","../../src/shared/configs/create-typed-language-options.ts","../../src/astro/configs.ts"],"sourcesContent":["export { createAstroConfigs } from \"./configs\";\n","export const baseRules = {\n \"skapxd/no-ad-hoc-ok-result\": \"warn\",\n \"skapxd/no-deep-relative-imports\": \"warn\",\n \"skapxd/no-promise-chain\": \"error\",\n \"skapxd/no-try-catch\": \"error\",\n \"skapxd/one-root-function-per-file\": \"error\",\n \"skapxd/prefer-ts-pattern\": \"error\",\n \"skapxd/result-error-requires-cause\": \"error\",\n};\n","export function createTypedLanguageOptions() {\n return {\n parserOptions: {\n projectService: true,\n },\n };\n}\n","import { baseRules, createTypedLanguageOptions } from \"#/shared/configs\";\n\nexport function createAstroConfigs(pluginReference: unknown) {\n const typedLanguageOptions = createTypedLanguageOptions();\n\n return [\n {\n files: [\"src/**/*.{ts,tsx,astro}\"],\n name: \"skapxd/astro/base\",\n plugins: { skapxd: pluginReference },\n rules: baseRules,\n },\n {\n files: [\"src/**/*.{ts,tsx}\"],\n languageOptions: typedLanguageOptions,\n name: \"skapxd/astro/typescript\",\n plugins: { skapxd: pluginReference },\n rules: {\n \"skapxd/result-error-requires-cause\": \"error\",\n },\n },\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,YAAY;AAAA,EACvB,8BAA8B;AAAA,EAC9B,mCAAmC;AAAA,EACnC,2BAA2B;AAAA,EAC3B,uBAAuB;AAAA,EACvB,qCAAqC;AAAA,EACrC,4BAA4B;AAAA,EAC5B,sCAAsC;AACxC;;;ACRO,SAAS,6BAA6B;AAC3C,SAAO;AAAA,IACL,eAAe;AAAA,MACb,gBAAgB;AAAA,IAClB;AAAA,EACF;AACF;;;ACJO,SAAS,mBAAmB,iBAA0B;AAC3D,QAAM,uBAAuB,2BAA2B;AAExD,SAAO;AAAA,IACL;AAAA,MACE,OAAO,CAAC,yBAAyB;AAAA,MACjC,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO,CAAC,mBAAmB;AAAA,MAC3B,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,sCAAsC;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,8 @@
1
+ import {
2
+ createAstroConfigs
3
+ } from "../chunk-3FB4H7N6.mjs";
4
+ import "../chunk-CQKEQ32W.mjs";
5
+ export {
6
+ createAstroConfigs
7
+ };
8
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,31 @@
1
+ import {
2
+ baseRules,
3
+ createTypedLanguageOptions
4
+ } from "./chunk-CQKEQ32W.mjs";
5
+
6
+ // src/astro/configs.ts
7
+ function createAstroConfigs(pluginReference) {
8
+ const typedLanguageOptions = createTypedLanguageOptions();
9
+ return [
10
+ {
11
+ files: ["src/**/*.{ts,tsx,astro}"],
12
+ name: "skapxd/astro/base",
13
+ plugins: { skapxd: pluginReference },
14
+ rules: baseRules
15
+ },
16
+ {
17
+ files: ["src/**/*.{ts,tsx}"],
18
+ languageOptions: typedLanguageOptions,
19
+ name: "skapxd/astro/typescript",
20
+ plugins: { skapxd: pluginReference },
21
+ rules: {
22
+ "skapxd/result-error-requires-cause": "error"
23
+ }
24
+ }
25
+ ];
26
+ }
27
+
28
+ export {
29
+ createAstroConfigs
30
+ };
31
+ //# sourceMappingURL=chunk-3FB4H7N6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/astro/configs.ts"],"sourcesContent":["import { baseRules, createTypedLanguageOptions } from \"#/shared/configs\";\n\nexport function createAstroConfigs(pluginReference: unknown) {\n const typedLanguageOptions = createTypedLanguageOptions();\n\n return [\n {\n files: [\"src/**/*.{ts,tsx,astro}\"],\n name: \"skapxd/astro/base\",\n plugins: { skapxd: pluginReference },\n rules: baseRules,\n },\n {\n files: [\"src/**/*.{ts,tsx}\"],\n languageOptions: typedLanguageOptions,\n name: \"skapxd/astro/typescript\",\n plugins: { skapxd: pluginReference },\n rules: {\n \"skapxd/result-error-requires-cause\": \"error\",\n },\n },\n ];\n}\n"],"mappings":";;;;;;AAEO,SAAS,mBAAmB,iBAA0B;AAC3D,QAAM,uBAAuB,2BAA2B;AAExD,SAAO;AAAA,IACL;AAAA,MACE,OAAO,CAAC,yBAAyB;AAAA,MACjC,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO,CAAC,mBAAmB;AAAA,MAC3B,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,sCAAsC;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,62 @@
1
+ import {
2
+ baseRules,
3
+ createTypedLanguageOptions
4
+ } from "./chunk-CQKEQ32W.mjs";
5
+
6
+ // src/next/configs.ts
7
+ function createNextConfigs(pluginReference) {
8
+ const typedLanguageOptions = createTypedLanguageOptions();
9
+ return [
10
+ {
11
+ name: "skapxd/next/base",
12
+ plugins: { skapxd: pluginReference },
13
+ rules: baseRules
14
+ },
15
+ {
16
+ files: ["src/app/api/**/*.{ts,tsx}", "src/server/**/*.{ts,tsx}"],
17
+ languageOptions: typedLanguageOptions,
18
+ name: "skapxd/next/server",
19
+ plugins: { skapxd: pluginReference },
20
+ rules: {
21
+ ...baseRules,
22
+ "skapxd/async-functions-return-result": [
23
+ "error",
24
+ {
25
+ allowFilePatterns: [
26
+ "/(route|page|layout|template|loading|error|not-found)\\.tsx?$"
27
+ ],
28
+ allowNamePatterns: [
29
+ "^(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)$",
30
+ "^handle(Get|Post|Put|Patch|Delete|Head|Options)$",
31
+ "^start$"
32
+ ],
33
+ checkMissingReturnType: true,
34
+ resultTypeNames: ["Result", "ResultValue", "SafeResult"]
35
+ }
36
+ ]
37
+ }
38
+ },
39
+ {
40
+ files: ["**/*.tsx"],
41
+ name: "skapxd/next/react",
42
+ plugins: { skapxd: pluginReference },
43
+ rules: {
44
+ "skapxd/jsx-return-name-pascal-case": "error",
45
+ "skapxd/no-functions-inside-components": "error",
46
+ "skapxd/no-jsx-ternary-null": "error",
47
+ "skapxd/max-hook-size": [
48
+ "warn",
49
+ {
50
+ maxLines: 120,
51
+ maxUseState: 1
52
+ }
53
+ ]
54
+ }
55
+ }
56
+ ];
57
+ }
58
+
59
+ export {
60
+ createNextConfigs
61
+ };
62
+ //# sourceMappingURL=chunk-BAHAXSWA.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/next/configs.ts"],"sourcesContent":["import { baseRules, createTypedLanguageOptions } from \"#/shared/configs\";\n\nexport function createNextConfigs(pluginReference: unknown) {\n const typedLanguageOptions = createTypedLanguageOptions();\n\n return [\n {\n name: \"skapxd/next/base\",\n plugins: { skapxd: pluginReference },\n rules: baseRules,\n },\n {\n files: [\"src/app/api/**/*.{ts,tsx}\", \"src/server/**/*.{ts,tsx}\"],\n languageOptions: typedLanguageOptions,\n name: \"skapxd/next/server\",\n plugins: { skapxd: pluginReference },\n rules: {\n ...baseRules,\n \"skapxd/async-functions-return-result\": [\n \"error\",\n {\n allowFilePatterns: [\n \"/(route|page|layout|template|loading|error|not-found)\\\\.tsx?$\",\n ],\n allowNamePatterns: [\n \"^(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)$\",\n \"^handle(Get|Post|Put|Patch|Delete|Head|Options)$\",\n \"^start$\",\n ],\n checkMissingReturnType: true,\n resultTypeNames: [\"Result\", \"ResultValue\", \"SafeResult\"],\n },\n ],\n },\n },\n {\n files: [\"**/*.tsx\"],\n name: \"skapxd/next/react\",\n plugins: { skapxd: pluginReference },\n rules: {\n \"skapxd/jsx-return-name-pascal-case\": \"error\",\n \"skapxd/no-functions-inside-components\": \"error\",\n \"skapxd/no-jsx-ternary-null\": \"error\",\n \"skapxd/max-hook-size\": [\n \"warn\",\n {\n maxLines: 120,\n maxUseState: 1,\n },\n ],\n },\n },\n ];\n}\n"],"mappings":";;;;;;AAEO,SAAS,kBAAkB,iBAA0B;AAC1D,QAAM,uBAAuB,2BAA2B;AAExD,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO,CAAC,6BAA6B,0BAA0B;AAAA,MAC/D,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,GAAG;AAAA,QACH,wCAAwC;AAAA,UACtC;AAAA,UACA;AAAA,YACE,mBAAmB;AAAA,cACjB;AAAA,YACF;AAAA,YACA,mBAAmB;AAAA,cACjB;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,wBAAwB;AAAA,YACxB,iBAAiB,CAAC,UAAU,eAAe,YAAY;AAAA,UACzD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,CAAC,UAAU;AAAA,MAClB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,sCAAsC;AAAA,QACtC,yCAAyC;AAAA,QACzC,8BAA8B;AAAA,QAC9B,wBAAwB;AAAA,UACtB;AAAA,UACA;AAAA,YACE,UAAU;AAAA,YACV,aAAa;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,99 @@
1
+ // src/shared/configs/create-typed-language-options.ts
2
+ function createTypedLanguageOptions() {
3
+ return {
4
+ parserOptions: {
5
+ projectService: true
6
+ }
7
+ };
8
+ }
9
+
10
+ // src/shared/configs/base-rules.ts
11
+ var baseRules = {
12
+ "skapxd/no-ad-hoc-ok-result": "warn",
13
+ "skapxd/no-deep-relative-imports": "warn",
14
+ "skapxd/no-promise-chain": "error",
15
+ "skapxd/no-try-catch": "error",
16
+ "skapxd/one-root-function-per-file": "error",
17
+ "skapxd/prefer-ts-pattern": "error",
18
+ "skapxd/result-error-requires-cause": "error"
19
+ };
20
+
21
+ // src/shared/configs/create-shared-configs.ts
22
+ function createSharedConfigs(pluginReference) {
23
+ const typedLanguageOptions = createTypedLanguageOptions();
24
+ return {
25
+ backend: {
26
+ languageOptions: typedLanguageOptions,
27
+ name: "skapxd/shared/backend",
28
+ plugins: { skapxd: pluginReference },
29
+ rules: {
30
+ ...baseRules,
31
+ "skapxd/async-functions-return-result": [
32
+ "error",
33
+ {
34
+ checkMissingReturnType: true,
35
+ resultTypeNames: ["Result", "ResultValue", "SafeResult"]
36
+ }
37
+ ]
38
+ }
39
+ },
40
+ base: {
41
+ name: "skapxd/shared/base",
42
+ plugins: { skapxd: pluginReference },
43
+ rules: baseRules
44
+ },
45
+ frontend: {
46
+ languageOptions: typedLanguageOptions,
47
+ name: "skapxd/shared/frontend",
48
+ plugins: { skapxd: pluginReference },
49
+ rules: {
50
+ ...baseRules,
51
+ "skapxd/jsx-return-name-pascal-case": "error",
52
+ "skapxd/no-functions-inside-components": "error",
53
+ "skapxd/no-jsx-ternary-null": "error",
54
+ "skapxd/max-hook-size": [
55
+ "warn",
56
+ {
57
+ maxLines: 120,
58
+ maxUseState: 1
59
+ }
60
+ ]
61
+ }
62
+ },
63
+ // Capa de servicios del front (peticiones, clientes de API): todo await
64
+ // debe ir envuelto en trySafe de @skapxd/result. El consumidor puede
65
+ // sobreescribir `files` si sus servicios viven en otra carpeta.
66
+ frontendServices: {
67
+ files: ["**/services/**/*.{ts,tsx}", "**/api/**/*.{ts,tsx}"],
68
+ languageOptions: typedLanguageOptions,
69
+ name: "skapxd/shared/frontend-services",
70
+ plugins: { skapxd: pluginReference },
71
+ rules: {
72
+ "skapxd/await-requires-try-safe": "error"
73
+ }
74
+ },
75
+ package: {
76
+ name: "skapxd/shared/package",
77
+ plugins: { skapxd: pluginReference },
78
+ rules: {
79
+ "skapxd/one-root-function-per-file": "error"
80
+ }
81
+ }
82
+ };
83
+ }
84
+
85
+ // src/shared/configs/strict-config.ts
86
+ var strictConfig = {
87
+ linterOptions: {
88
+ noInlineConfig: true
89
+ },
90
+ name: "skapxd/strict"
91
+ };
92
+
93
+ export {
94
+ baseRules,
95
+ createTypedLanguageOptions,
96
+ createSharedConfigs,
97
+ strictConfig
98
+ };
99
+ //# sourceMappingURL=chunk-CQKEQ32W.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/shared/configs/create-typed-language-options.ts","../src/shared/configs/base-rules.ts","../src/shared/configs/create-shared-configs.ts","../src/shared/configs/strict-config.ts"],"sourcesContent":["export function createTypedLanguageOptions() {\n return {\n parserOptions: {\n projectService: true,\n },\n };\n}\n","export const baseRules = {\n \"skapxd/no-ad-hoc-ok-result\": \"warn\",\n \"skapxd/no-deep-relative-imports\": \"warn\",\n \"skapxd/no-promise-chain\": \"error\",\n \"skapxd/no-try-catch\": \"error\",\n \"skapxd/one-root-function-per-file\": \"error\",\n \"skapxd/prefer-ts-pattern\": \"error\",\n \"skapxd/result-error-requires-cause\": \"error\",\n};\n","import { baseRules } from \"./base-rules\";\nimport { createTypedLanguageOptions } from \"./create-typed-language-options\";\n\nexport function createSharedConfigs(pluginReference: unknown) {\n const typedLanguageOptions = createTypedLanguageOptions();\n\n return {\n backend: {\n languageOptions: typedLanguageOptions,\n name: \"skapxd/shared/backend\",\n plugins: { skapxd: pluginReference },\n rules: {\n ...baseRules,\n \"skapxd/async-functions-return-result\": [\n \"error\",\n {\n checkMissingReturnType: true,\n resultTypeNames: [\"Result\", \"ResultValue\", \"SafeResult\"],\n },\n ],\n },\n },\n base: {\n name: \"skapxd/shared/base\",\n plugins: { skapxd: pluginReference },\n rules: baseRules,\n },\n frontend: {\n languageOptions: typedLanguageOptions,\n name: \"skapxd/shared/frontend\",\n plugins: { skapxd: pluginReference },\n rules: {\n ...baseRules,\n \"skapxd/jsx-return-name-pascal-case\": \"error\",\n \"skapxd/no-functions-inside-components\": \"error\",\n \"skapxd/no-jsx-ternary-null\": \"error\",\n \"skapxd/max-hook-size\": [\n \"warn\",\n {\n maxLines: 120,\n maxUseState: 1,\n },\n ],\n },\n },\n // Capa de servicios del front (peticiones, clientes de API): todo await\n // debe ir envuelto en trySafe de @skapxd/result. El consumidor puede\n // sobreescribir `files` si sus servicios viven en otra carpeta.\n frontendServices: {\n files: [\"**/services/**/*.{ts,tsx}\", \"**/api/**/*.{ts,tsx}\"],\n languageOptions: typedLanguageOptions,\n name: \"skapxd/shared/frontend-services\",\n plugins: { skapxd: pluginReference },\n rules: {\n \"skapxd/await-requires-try-safe\": \"error\",\n },\n },\n package: {\n name: \"skapxd/shared/package\",\n plugins: { skapxd: pluginReference },\n rules: {\n \"skapxd/one-root-function-per-file\": \"error\",\n },\n },\n };\n}\n","// Config endurecida: ignora TODOS los comentarios `eslint-disable` (y demás\n// directivas inline) en los archivos que cubre. Así ni una persona ni un agente\n// pueden saltarse una regla con `// eslint-disable-next-line`.\nexport const strictConfig = {\n linterOptions: {\n noInlineConfig: true,\n },\n name: \"skapxd/strict\",\n};\n"],"mappings":";AAAO,SAAS,6BAA6B;AAC3C,SAAO;AAAA,IACL,eAAe;AAAA,MACb,gBAAgB;AAAA,IAClB;AAAA,EACF;AACF;;;ACNO,IAAM,YAAY;AAAA,EACvB,8BAA8B;AAAA,EAC9B,mCAAmC;AAAA,EACnC,2BAA2B;AAAA,EAC3B,uBAAuB;AAAA,EACvB,qCAAqC;AAAA,EACrC,4BAA4B;AAAA,EAC5B,sCAAsC;AACxC;;;ACLO,SAAS,oBAAoB,iBAA0B;AAC5D,QAAM,uBAAuB,2BAA2B;AAExD,SAAO;AAAA,IACL,SAAS;AAAA,MACP,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,GAAG;AAAA,QACH,wCAAwC;AAAA,UACtC;AAAA,UACA;AAAA,YACE,wBAAwB;AAAA,YACxB,iBAAiB,CAAC,UAAU,eAAe,YAAY;AAAA,UACzD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,IACT;AAAA,IACA,UAAU;AAAA,MACR,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,GAAG;AAAA,QACH,sCAAsC;AAAA,QACtC,yCAAyC;AAAA,QACzC,8BAA8B;AAAA,QAC9B,wBAAwB;AAAA,UACtB;AAAA,UACA;AAAA,YACE,UAAU;AAAA,YACV,aAAa;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAIA,kBAAkB;AAAA,MAChB,OAAO,CAAC,6BAA6B,sBAAsB;AAAA,MAC3D,iBAAiB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,kCAAkC;AAAA,MACpC;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,EAAE,QAAQ,gBAAgB;AAAA,MACnC,OAAO;AAAA,QACL,qCAAqC;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AACF;;;AC9DO,IAAM,eAAe;AAAA,EAC1B,eAAe;AAAA,IACb,gBAAgB;AAAA,EAClB;AAAA,EACA,MAAM;AACR;","names":[]}