@santi020k/eslint-config-libraries 3.1.0 → 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/dist/ai.js.map +1 -1
- package/dist/autogen.js.map +1 -1
- package/dist/google-genai.js.map +1 -1
- package/dist/i18next.js.map +1 -1
- package/dist/langchain.js.map +1 -1
- package/dist/lazy.js +2 -3
- package/dist/lazy.js.map +1 -1
- package/dist/llamaindex.js.map +1 -1
- package/dist/mastra.js.map +1 -1
- package/dist/mcp.js.map +1 -1
- package/dist/openai-agents.js.map +1 -1
- package/dist/orm.js.map +1 -1
- package/dist/tailwind.js.map +1 -1
- package/dist/tanstack.js.map +1 -1
- package/dist/turbo.js.map +1 -1
- package/dist/zod.js.map +1 -1
- package/package.json +5 -5
package/dist/ai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ai.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/ai.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\n\nimport { defineLazyConfig, loadModule, type PluginWithConfigs } from './lazy.js'\n\ntype AiSecurityPlugin = PluginWithConfigs<'recommended'> & {\n plugin?: PluginWithConfigs<'recommended'>\n}\n\nconst hasRecommendedConfig = (value: unknown): value is PluginWithConfigs<'recommended'> => (\n typeof value === 'object' &&\n value !== null &&\n 'configs' in value &&\n typeof (value as PluginWithConfigs<'recommended'>).configs.recommended === 'object'\n)\n\nconst resolveAiSecurityPlugin = (module: unknown): PluginWithConfigs<'recommended'> => {\n if (hasRecommendedConfig(module)) return module\n\n const candidate = module as AiSecurityPlugin & { default?: unknown }\n\n if (hasRecommendedConfig(candidate.default)) return candidate.default\n\n if (hasRecommendedConfig(candidate.plugin)) return candidate.plugin\n\n throw new Error('eslint-plugin-vercel-ai-security did not expose a recommended config.')\n}\n\n/**\n * Vercel AI SDK security ESLint configuration.\n */\nexport const aiSdk: () => Promise<TSESLint.FlatConfig.ConfigArray> = defineLazyConfig('ai-sdk', async () => {\n const plugin = resolveAiSecurityPlugin(await loadModule('eslint-plugin-vercel-ai-security'))\n\n return [\n {\n files: GLOB_JS_TS_ALL,\n name: 'eslint-config-integrations/ai-sdk',\n plugins: {\n 'vercel-ai-security': plugin\n },\n rules: {\n ...plugin.configs.recommended.rules\n }\n }\n ]\n})\n"],"mappings":"AAAA,SAAS,sBAAsB;AAG/B,SAAS,kBAAkB,kBAA0C;AAMrE,MAAM,uBAAuB,CAAC,UAC5B,OAAO,UAAU,YACjB,UAAU,QACV,aAAa,SACb,OAAQ,MAA2C,QAAQ,gBAAgB;AAG7E,MAAM,0BAA0B,CAAC,WAAsD;AACrF,MAAI,qBAAqB,MAAM,EAAG,QAAO;AAEzC,QAAM,YAAY;AAElB,MAAI,qBAAqB,UAAU,OAAO,EAAG,QAAO,UAAU;AAE9D,MAAI,qBAAqB,UAAU,MAAM,EAAG,QAAO,UAAU;AAE7D,QAAM,IAAI,MAAM,uEAAuE;AACzF;AAKO,MAAM,QAAwD,iBAAiB,UAAU,YAAY;AAC1G,QAAM,SAAS,wBAAwB,MAAM,WAAW,kCAAkC,CAAC;AAE3F,SAAO;AAAA,IACL;AAAA,MACE,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,QACP,sBAAsB;AAAA,MACxB;AAAA,MACA,OAAO;AAAA,QACL,GAAG,OAAO,QAAQ,YAAY;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AACF,CAAC;","names":[]}
|
package/dist/autogen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/autogen.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/autogen.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\n\n/**\n * AutoGen SDK ESLint configuration.\n */\nexport const autogen = (): TSESLint.FlatConfig.ConfigArray => [\n {\n files: GLOB_JS_TS_ALL,\n name: 'eslint-config-integrations/autogen',\n rules: {\n 'no-restricted-imports': ['error', {\n patterns: [\n {\n group: [\n 'autogen-agentchat/dist/*',\n 'autogen-core/dist/*'\n ],\n message: 'Import AutoGen APIs from their designated package entry points instead of internals.'\n }\n ]\n }]\n }\n }\n]\n"],"mappings":"AAAA,SAAS,sBAAsB;AAMxB,MAAM,UAAU,MAAuC;AAAA,EAC5D;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,MACL,yBAAyB,CAAC,SAAS;AAAA,QACjC,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,cACL;AAAA,cACA;AAAA,YACF;AAAA,YACA,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
|
package/dist/google-genai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/google-genai.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/google-genai.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\n\n/**\n * Google GenAI SDK ESLint configuration.\n */\nexport const googleGenAi = (): TSESLint.FlatConfig.ConfigArray => [\n {\n files: GLOB_JS_TS_ALL,\n name: 'eslint-config-integrations/google-genai',\n rules: {\n 'no-restricted-imports': ['error', {\n paths: [\n {\n message: 'Use the new @google/genai SDK instead of the legacy @google/generative-ai SDK.',\n name: '@google/generative-ai'\n }\n ],\n patterns: [\n {\n group: [\n '@google/genai/dist/*',\n '@google/genai/src/*'\n ],\n message: 'Import Google GenAI SDK APIs directly from \"@google/genai\" instead of internals.'\n }\n ]\n }]\n }\n }\n]\n"],"mappings":"AAAA,SAAS,sBAAsB;AAMxB,MAAM,cAAc,MAAuC;AAAA,EAChE;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,MACL,yBAAyB,CAAC,SAAS;AAAA,QACjC,OAAO;AAAA,UACL;AAAA,YACE,SAAS;AAAA,YACT,MAAM;AAAA,UACR;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,cACL;AAAA,cACA;AAAA,YACF;AAAA,YACA,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
|
package/dist/i18next.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/i18next.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/i18next.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\nimport type PluginI18next from 'eslint-plugin-i18next'\n\nimport { defineLazyConfig, loadDefault } from './lazy.js'\n\n/**\n * i18next ESLint configuration\n * Enables i18next plugin for internationalization best practices\n */\nexport const i18next: () => Promise<TSESLint.FlatConfig.ConfigArray> = defineLazyConfig('i18next', async () => {\n const pluginI18next = await loadDefault<typeof PluginI18next>('eslint-plugin-i18next')\n\n return [\n {\n files: GLOB_JS_TS_ALL,\n name: 'integrations/i18next',\n plugins: {\n i18next: pluginI18next\n },\n rules: {\n 'i18next/no-literal-string': ['warn', {\n 'jsx-attributes': {\n include: ['label', 'placeholder', 'alt', 'title', 'aria-label']\n },\n mode: 'jsx-text-only'\n }]\n }\n }\n ]\n})\n"],"mappings":"AAAA,SAAS,sBAAsB;AAI/B,SAAS,kBAAkB,mBAAmB;AAMvC,MAAM,UAA0D,iBAAiB,WAAW,YAAY;AAC7G,QAAM,gBAAgB,MAAM,YAAkC,uBAAuB;AAErF,SAAO;AAAA,IACL;AAAA,MACE,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,OAAO;AAAA,QACL,6BAA6B,CAAC,QAAQ;AAAA,UACpC,kBAAkB;AAAA,YAChB,SAAS,CAAC,SAAS,eAAe,OAAO,SAAS,YAAY;AAAA,UAChE;AAAA,UACA,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF,CAAC;","names":[]}
|
package/dist/langchain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/langchain.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/langchain.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\n\n/**\n * LangChain.js ESLint configuration.\n */\nexport const langchain = (): TSESLint.FlatConfig.ConfigArray => [\n {\n files: GLOB_JS_TS_ALL,\n name: 'eslint-config-integrations/langchain',\n rules: {\n 'no-restricted-imports': ['error', {\n patterns: [\n {\n group: [\n 'langchain/dist/*',\n 'langchain/dist/**',\n 'langchain/src/*',\n 'langchain/src/**',\n '@langchain/*/dist/*',\n '@langchain/*/dist/**',\n '@langchain/*/src/*',\n '@langchain/*/src/**'\n ],\n message: 'Import LangChain APIs from documented package entry points (e.g. \"@langchain/core/messages\") instead of source or distribution internals.'\n }\n ]\n }]\n }\n }\n]\n"],"mappings":"AAAA,SAAS,sBAAsB;AAMxB,MAAM,YAAY,MAAuC;AAAA,EAC9D;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,MACL,yBAAyB,CAAC,SAAS;AAAA,QACjC,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
|
package/dist/lazy.js
CHANGED
|
@@ -2,11 +2,10 @@ import { createRequire } from "node:module";
|
|
|
2
2
|
import { pathToFileURL } from "node:url";
|
|
3
3
|
const getErrorMessage = (error) => error instanceof Error ? error.message : String(error);
|
|
4
4
|
const hasDefaultExport = (module) => typeof module === "object" && module !== null && "default" in module;
|
|
5
|
-
const
|
|
6
|
-
const dynamicImport = isVitest ? (specifier) => import(
|
|
5
|
+
const dynamicImport = async (specifier) => import(
|
|
7
6
|
/* @vite-ignore */
|
|
8
7
|
specifier
|
|
9
|
-
)
|
|
8
|
+
);
|
|
10
9
|
const req = createRequire(import.meta.url);
|
|
11
10
|
const resolveSpecifier = (specifier) => {
|
|
12
11
|
let resolved = specifier;
|
package/dist/lazy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lazy.ts"],"sourcesContent":["import { createRequire } from 'node:module'\nimport { pathToFileURL } from 'node:url'\n\nimport type { TSESLint } from '@typescript-eslint/utils'\n\nexport type ConfigWithRules = FlatConfig & { rules?: FlatRules }\n\nexport type FlatParser = NonNullable<FlatConfig['languageOptions']>['parser']\n\nexport type FlatPlugin = NonNullable<FlatConfig['plugins']>[string]\nexport type FlatRules = NonNullable<FlatConfig['rules']>\nexport type PluginWithConfigs<ConfigName extends string = string> = FlatPlugin & {\n configs: Record<ConfigName, ConfigWithRules>\n}\n\ntype ConfigArray = TSESLint.FlatConfig.ConfigArray\n\ntype FlatConfig = TSESLint.FlatConfig.Config\n\nconst getErrorMessage = (error: unknown): string => error instanceof Error ?\n error.message :\n String(error)\n\nconst hasDefaultExport = (module: unknown): module is { default?: unknown } => (\n typeof module === 'object' &&\n module !== null &&\n 'default' in module\n)\n\n//
|
|
1
|
+
{"version":3,"sources":["../src/lazy.ts"],"sourcesContent":["import { createRequire } from 'node:module'\nimport { pathToFileURL } from 'node:url'\n\nimport type { TSESLint } from '@typescript-eslint/utils'\n\nexport type ConfigWithRules = FlatConfig & { rules?: FlatRules }\n\nexport type FlatParser = NonNullable<FlatConfig['languageOptions']>['parser']\n\nexport type FlatPlugin = NonNullable<FlatConfig['plugins']>[string]\nexport type FlatRules = NonNullable<FlatConfig['rules']>\nexport type PluginWithConfigs<ConfigName extends string = string> = FlatPlugin & {\n configs: Record<ConfigName, ConfigWithRules>\n}\n\ntype ConfigArray = TSESLint.FlatConfig.ConfigArray\n\ntype FlatConfig = TSESLint.FlatConfig.Config\n\nconst getErrorMessage = (error: unknown): string => error instanceof Error ?\n error.message :\n String(error)\n\nconst hasDefaultExport = (module: unknown): module is { default?: unknown } => (\n typeof module === 'object' &&\n module !== null &&\n 'default' in module\n)\n\n// Keeping import() in this module preserves the correct package base when\n// multiple optional integrations load concurrently.\nconst dynamicImport = async (specifier: string): Promise<unknown> => import(/* @vite-ignore */ specifier)\nconst req = createRequire(import.meta.url)\n\nconst resolveSpecifier = (specifier: string): string => {\n let resolved = specifier\n\n try {\n resolved = pathToFileURL(req.resolve(specifier)).href\n } catch {\n // Ignore and let dynamicImport throw natural error\n }\n\n return resolved\n}\n\nexport const loadDefault = async <T = unknown>(specifier: string): Promise<T> => {\n const module = await dynamicImport(resolveSpecifier(specifier))\n\n if (hasDefaultExport(module)) {\n return (module.default ?? module) as T\n }\n\n return module as T\n}\n\nexport const loadModule = async <T = unknown>(specifier: string): Promise<T> => (\n await dynamicImport(resolveSpecifier(specifier)) as T\n)\n\n/**\n * Keeps optional integrations import-safe for consumers that do not enable them.\n * @param name - The name of the integration\n * @param load - Function to load the configuration\n * @returns A function that resolves the configuration array lazily\n */\nexport const defineLazyConfig = (\n name: string,\n load: () => ConfigArray | Promise<ConfigArray>\n): () => Promise<ConfigArray> => {\n let config: ConfigArray | undefined\n\n return async (): Promise<ConfigArray> => {\n try {\n config ??= await load()\n\n return config\n } catch (error) {\n throw new Error(\n `Unable to load optional ESLint config \"${name}\". ` +\n 'Install the peer dependencies for that integration or remove it from your defineConfig options. ' +\n `Original error: ${getErrorMessage(error)}`, { cause: error }\n )\n }\n }\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAkB9B,MAAM,kBAAkB,CAAC,UAA2B,iBAAiB,QACnE,MAAM,UACN,OAAO,KAAK;AAEd,MAAM,mBAAmB,CAAC,WACxB,OAAO,WAAW,YAClB,WAAW,QACX,aAAa;AAKf,MAAM,gBAAgB,OAAO,cAAwC;AAAA;AAAA,EAA0B;AAAA;AAC/F,MAAM,MAAM,cAAc,YAAY,GAAG;AAEzC,MAAM,mBAAmB,CAAC,cAA8B;AACtD,MAAI,WAAW;AAEf,MAAI;AACF,eAAW,cAAc,IAAI,QAAQ,SAAS,CAAC,EAAE;AAAA,EACnD,QAAQ;AAAA,EAER;AAEA,SAAO;AACT;AAEO,MAAM,cAAc,OAAoB,cAAkC;AAC/E,QAAM,SAAS,MAAM,cAAc,iBAAiB,SAAS,CAAC;AAE9D,MAAI,iBAAiB,MAAM,GAAG;AAC5B,WAAQ,OAAO,WAAW;AAAA,EAC5B;AAEA,SAAO;AACT;AAEO,MAAM,aAAa,OAAoB,cAC5C,MAAM,cAAc,iBAAiB,SAAS,CAAC;AAS1C,MAAM,mBAAmB,CAC9B,MACA,SAC+B;AAC/B,MAAI;AAEJ,SAAO,YAAkC;AACvC,QAAI;AACF,iBAAW,MAAM,KAAK;AAEtB,aAAO;AAAA,IACT,SAAS,OAAO;AACd,YAAM,IAAI;AAAA,QACR,0CAA0C,IAAI,sHAE3B,gBAAgB,KAAK,CAAC;AAAA,QAAI,EAAE,OAAO,MAAM;AAAA,MAC9D;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
package/dist/llamaindex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/llamaindex.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/llamaindex.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\n\n/**\n * LlamaIndex.TS ESLint configuration.\n */\nexport const llamaIndex = (): TSESLint.FlatConfig.ConfigArray => [\n {\n files: GLOB_JS_TS_ALL,\n name: 'eslint-config-integrations/llamaindex',\n rules: {\n 'no-restricted-imports': ['error', {\n patterns: [\n {\n group: [\n 'llamaindex/dist/*',\n 'llamaindex/dist/**',\n 'llamaindex/src/*',\n 'llamaindex/src/**',\n '@llamaindex/*/dist/*',\n '@llamaindex/*/dist/**',\n '@llamaindex/*/src/*',\n '@llamaindex/*/src/**'\n ],\n message: 'Import LlamaIndex APIs from documented package entry points (e.g. \"llamaindex\" or \"@llamaindex/core\") instead of source or distribution internals.'\n }\n ]\n }]\n }\n }\n]\n"],"mappings":"AAAA,SAAS,sBAAsB;AAMxB,MAAM,aAAa,MAAuC;AAAA,EAC/D;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,MACL,yBAAyB,CAAC,SAAS;AAAA,QACjC,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
|
package/dist/mastra.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mastra.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/mastra.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\n\n/**\n * Mastra agent framework ESLint configuration.\n */\nexport const mastra = (): TSESLint.FlatConfig.ConfigArray => [\n {\n files: GLOB_JS_TS_ALL,\n name: 'eslint-config-integrations/mastra',\n rules: {\n 'no-restricted-imports': ['error', {\n patterns: [\n {\n group: [\n '@mastra/*/dist/*',\n '@mastra/*/dist/**',\n '@mastra/*/src/*',\n '@mastra/*/src/**',\n '@mastra/core/dist/*',\n '@mastra/core/dist/**',\n '@mastra/core/src/*',\n '@mastra/core/src/**'\n ],\n message: 'Import Mastra APIs from documented package entry points instead of source or distribution internals.'\n }\n ]\n }]\n }\n }\n]\n"],"mappings":"AAAA,SAAS,sBAAsB;AAMxB,MAAM,SAAS,MAAuC;AAAA,EAC3D;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,MACL,yBAAyB,CAAC,SAAS;AAAA,QACjC,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
|
package/dist/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mcp.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/mcp.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\n\n/**\n * Model Context Protocol SDK ESLint configuration.\n */\nexport const mcp = (): TSESLint.FlatConfig.ConfigArray => [\n {\n files: GLOB_JS_TS_ALL,\n name: 'eslint-config-integrations/mcp',\n rules: {\n 'no-restricted-imports': ['error', {\n paths: [\n {\n importNames: ['McpServer'],\n message: 'Import McpServer from \"@modelcontextprotocol/sdk/server/mcp.js\" so server code stays on the public SDK entry point.',\n name: '@modelcontextprotocol/sdk'\n }\n ],\n patterns: [\n {\n group: [\n '@modelcontextprotocol/sdk/dist/*',\n '@modelcontextprotocol/sdk/dist/**',\n '@modelcontextprotocol/sdk/shared/*',\n '@modelcontextprotocol/sdk/shared/**'\n ],\n message: 'Import MCP SDK APIs from documented server, client, or types entry points instead of internal package modules.'\n }\n ]\n }]\n }\n }\n]\n"],"mappings":"AAAA,SAAS,sBAAsB;AAMxB,MAAM,MAAM,MAAuC;AAAA,EACxD;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,MACL,yBAAyB,CAAC,SAAS;AAAA,QACjC,OAAO;AAAA,UACL;AAAA,YACE,aAAa,CAAC,WAAW;AAAA,YACzB,SAAS;AAAA,YACT,MAAM;AAAA,UACR;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/openai-agents.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/openai-agents.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\n\n/**\n * OpenAI Agents SDK ESLint configuration.\n */\nexport const openAiAgents = (): TSESLint.FlatConfig.ConfigArray => [\n {\n files: GLOB_JS_TS_ALL,\n name: 'eslint-config-integrations/openai-agents',\n rules: {\n 'no-restricted-imports': ['error', {\n paths: [\n {\n message: 'Use the dedicated \"@openai/agents\" SDK for agent workflows instead of importing agents from the base OpenAI client.',\n name: 'openai/agents'\n }\n ],\n patterns: [\n {\n group: [\n '@openai/agents/dist/*',\n '@openai/agents/dist/**',\n '@openai/agents/src/*',\n '@openai/agents/src/**'\n ],\n message: 'Import OpenAI Agents SDK APIs from \"@openai/agents\" or documented subpath entry points instead of internals.'\n }\n ]\n }]\n }\n }\n]\n"],"mappings":"AAAA,SAAS,sBAAsB;AAMxB,MAAM,eAAe,MAAuC;AAAA,EACjE;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,MACL,yBAAyB,CAAC,SAAS;AAAA,QACjC,OAAO;AAAA,UACL;AAAA,YACE,SAAS;AAAA,YACT,MAAM;AAAA,UACR;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR;AAAA,YACE,OAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YACA,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
|
package/dist/orm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/orm.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/orm.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\n\nconst createOrmConfig = (\n ormName: string,\n rules: NonNullable<TSESLint.FlatConfig.Config['rules']>\n): TSESLint.FlatConfig.ConfigArray => [\n {\n files: GLOB_JS_TS_ALL,\n name: `eslint-config-integrations/${ormName}`,\n rules\n }\n]\n\n/**\n * TypeORM ESLint configuration.\n *\n * TypeORM does not currently provide an ESLint 10-ready recommended flat\n * config. This integration focuses on stable imports and avoids legacy global\n * helpers that make migrations and tests harder to reason about.\n */\nexport const typeorm = (): TSESLint.FlatConfig.ConfigArray => createOrmConfig('typeorm', {\n 'no-restricted-imports': ['error', {\n paths: [\n {\n importNames: [\n 'getConnection',\n 'getManager',\n 'getMongoManager',\n 'getMongoRepository',\n 'getRepository',\n 'getTreeRepository'\n ],\n message: 'Prefer DataSource, EntityManager, or injected Repository instances over legacy TypeORM global helpers.',\n name: 'typeorm'\n },\n {\n message: 'Import TypeORM APIs from \"typeorm\" instead of the browser build.',\n name: 'typeorm/browser'\n }\n ],\n patterns: [\n {\n group: ['typeorm/*', '!typeorm/browser'],\n message: 'Import public TypeORM APIs from \"typeorm\"; subpath imports can couple code to internal package layout.'\n }\n ]\n }]\n})\n\n/**\n * Prisma ESLint configuration.\n *\n * Keeps Prisma Client usage on public package entry points. This avoids runtime\n * internals that frequently change between generated client versions.\n */\nexport const prisma = (): TSESLint.FlatConfig.ConfigArray => createOrmConfig('prisma', {\n 'no-restricted-imports': ['error', {\n patterns: [\n {\n group: [\n '@prisma/client/runtime',\n '@prisma/client/runtime/*',\n '.prisma/client',\n '.prisma/client/*'\n ],\n message: 'Import Prisma APIs from \"@prisma/client\"; generated runtime internals are not a stable application API.'\n }\n ]\n }]\n})\n\n/**\n * Drizzle ORM ESLint configuration.\n */\nexport const drizzle = (): TSESLint.FlatConfig.ConfigArray => createOrmConfig('drizzle', {\n 'no-restricted-imports': ['error', {\n patterns: [\n {\n group: [\n 'drizzle-orm/*/session',\n 'drizzle-orm/*/session.*',\n 'drizzle-orm/*/query-builders/*',\n 'drizzle-orm/*/migrator',\n 'drizzle-orm/*/migrator.*'\n ],\n message: 'Use Drizzle public driver, schema, migration, and query APIs instead of internal session or builder modules.'\n }\n ]\n }]\n})\n\n/**\n * MikroORM ESLint configuration.\n */\nexport const mikroOrm = (): TSESLint.FlatConfig.ConfigArray => createOrmConfig('mikro-orm', {\n 'no-restricted-imports': ['error', {\n patterns: [\n {\n group: [\n '@mikro-orm/core/entity/*',\n '@mikro-orm/core/platforms/*',\n '@mikro-orm/core/unit-of-work/*',\n '@mikro-orm/core/utils/*'\n ],\n message: 'Import MikroORM APIs from documented package entry points instead of core internals.'\n }\n ]\n }]\n})\n\n/**\n * Sequelize ESLint configuration.\n */\nexport const sequelize = (): TSESLint.FlatConfig.ConfigArray => createOrmConfig('sequelize', {\n 'no-restricted-imports': ['error', {\n patterns: [\n {\n group: [\n 'sequelize/types/*',\n 'sequelize/lib/*',\n '@sequelize/core/_non-semver-use-at-your-own-risk_/*'\n ],\n message: 'Use Sequelize public exports; internal type, lib, and non-semver modules are unstable.'\n }\n ]\n }]\n})\n"],"mappings":"AAAA,SAAS,sBAAsB;AAG/B,MAAM,kBAAkB,CACtB,SACA,UACoC;AAAA,EACpC;AAAA,IACE,OAAO;AAAA,IACP,MAAM,8BAA8B,OAAO;AAAA,IAC3C;AAAA,EACF;AACF;AASO,MAAM,UAAU,MAAuC,gBAAgB,WAAW;AAAA,EACvF,yBAAyB,CAAC,SAAS;AAAA,IACjC,OAAO;AAAA,MACL;AAAA,QACE,aAAa;AAAA,UACX;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,UAAU;AAAA,MACR;AAAA,QACE,OAAO,CAAC,aAAa,kBAAkB;AAAA,QACvC,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;AAQM,MAAM,SAAS,MAAuC,gBAAgB,UAAU;AAAA,EACrF,yBAAyB,CAAC,SAAS;AAAA,IACjC,UAAU;AAAA,MACR;AAAA,QACE,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;AAKM,MAAM,UAAU,MAAuC,gBAAgB,WAAW;AAAA,EACvF,yBAAyB,CAAC,SAAS;AAAA,IACjC,UAAU;AAAA,MACR;AAAA,QACE,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;AAKM,MAAM,WAAW,MAAuC,gBAAgB,aAAa;AAAA,EAC1F,yBAAyB,CAAC,SAAS;AAAA,IACjC,UAAU;AAAA,MACR;AAAA,QACE,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;AAKM,MAAM,YAAY,MAAuC,gBAAgB,aAAa;AAAA,EAC3F,yBAAyB,CAAC,SAAS;AAAA,IACjC,UAAU;AAAA,MACR;AAAA,QACE,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;","names":[]}
|
package/dist/tailwind.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tailwind.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/tailwind.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\n\nimport { defineLazyConfig, loadDefault, type PluginWithConfigs } from './lazy.js'\n\n/**\n * Tailwind CSS ESLint configuration\n * Enforces Tailwind CSS best practices using eslint-plugin-better-tailwindcss\n */\nexport const tailwind: () => Promise<TSESLint.FlatConfig.ConfigArray> = defineLazyConfig('tailwind', async () => {\n const pluginTailwind = await loadDefault<PluginWithConfigs<'recommended'>>('eslint-plugin-better-tailwindcss')\n\n return [\n {\n ...pluginTailwind.configs.recommended,\n files: GLOB_JS_TS_ALL,\n name: 'santi020k/tailwind/recommended',\n settings: {\n 'better-tailwindcss': {\n // Enable faster resolution in monorepos\n }\n }\n }\n ]\n})\n"],"mappings":"AAAA,SAAS,sBAAsB;AAG/B,SAAS,kBAAkB,mBAA2C;AAM/D,MAAM,WAA2D,iBAAiB,YAAY,YAAY;AAC/G,QAAM,iBAAiB,MAAM,YAA8C,kCAAkC;AAE7G,SAAO;AAAA,IACL;AAAA,MACE,GAAG,eAAe,QAAQ;AAAA,MAC1B,OAAO;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,QACR,sBAAsB;AAAA;AAAA,QAEtB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;","names":[]}
|
package/dist/tanstack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tanstack.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/tanstack.ts"],"sourcesContent":["import { GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\n\nimport { defineLazyConfig, loadDefault, type PluginWithConfigs } from './lazy.js'\n\n/**\n * TanStack Query ESLint configuration\n */\nexport const tanstackQuery: () => Promise<TSESLint.FlatConfig.ConfigArray> = defineLazyConfig('tanstack-query', async () => {\n const pluginQuery = await loadDefault<PluginWithConfigs<'recommended'>>('@tanstack/eslint-plugin-query')\n\n return [\n {\n files: GLOB_JS_TS_ALL,\n name: 'eslint-config-integrations/tanstack-query',\n plugins: {\n '@tanstack/query': pluginQuery\n },\n rules: {\n ...pluginQuery.configs.recommended.rules\n }\n }\n ]\n})\n\n/**\n * TanStack Router ESLint configuration\n */\nexport const tanstackRouter: () => Promise<TSESLint.FlatConfig.ConfigArray> = defineLazyConfig('tanstack-router', async () => {\n const pluginRouter = await loadDefault<PluginWithConfigs<'recommended'>>('@tanstack/eslint-plugin-router')\n\n return [\n {\n files: GLOB_JS_TS_ALL,\n name: 'eslint-config-integrations/tanstack-router',\n plugins: {\n '@tanstack/router': pluginRouter\n },\n rules: {\n ...pluginRouter.configs.recommended.rules\n }\n }\n ]\n})\n"],"mappings":"AAAA,SAAS,sBAAsB;AAG/B,SAAS,kBAAkB,mBAA2C;AAK/D,MAAM,gBAAgE,iBAAiB,kBAAkB,YAAY;AAC1H,QAAM,cAAc,MAAM,YAA8C,+BAA+B;AAEvG,SAAO;AAAA,IACL;AAAA,MACE,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,QACP,mBAAmB;AAAA,MACrB;AAAA,MACA,OAAO;AAAA,QACL,GAAG,YAAY,QAAQ,YAAY;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAKM,MAAM,iBAAiE,iBAAiB,mBAAmB,YAAY;AAC5H,QAAM,eAAe,MAAM,YAA8C,gCAAgC;AAEzG,SAAO;AAAA,IACL;AAAA,MACE,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,QACP,oBAAoB;AAAA,MACtB;AAAA,MACA,OAAO;AAAA,QACL,GAAG,aAAa,QAAQ,YAAY;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AACF,CAAC;","names":[]}
|
package/dist/turbo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/turbo.ts"],"sourcesContent":["import { GLOB_JS_TS, GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/turbo.ts"],"sourcesContent":["import { GLOB_JS_TS, GLOB_JS_TS_ALL } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\nimport type PluginTurbo from 'eslint-plugin-turbo'\n\nimport { defineLazyConfig, loadDefault } from './lazy.js'\n\n/**\n * Turborepo ESLint configuration\n * Validates process.env usage against turbo.json\n */\nexport const turbo: () => Promise<TSESLint.FlatConfig.ConfigArray> = defineLazyConfig('turbo', async () => {\n const pluginTurbo = await loadDefault<typeof PluginTurbo>('eslint-plugin-turbo')\n\n return [\n {\n files: GLOB_JS_TS_ALL,\n name: 'eslint-config-turbo/plugins',\n plugins: {\n turbo: pluginTurbo\n }\n },\n {\n files: GLOB_JS_TS,\n name: 'eslint-config-turbo/rules',\n rules: {\n 'turbo/no-undeclared-env-vars': 'error'\n }\n }\n ]\n})\n"],"mappings":"AAAA,SAAS,YAAY,sBAAsB;AAI3C,SAAS,kBAAkB,mBAAmB;AAMvC,MAAM,QAAwD,iBAAiB,SAAS,YAAY;AACzG,QAAM,cAAc,MAAM,YAAgC,qBAAqB;AAE/E,SAAO;AAAA,IACL;AAAA,MACE,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,QACL,gCAAgC;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AACF,CAAC;","names":[]}
|
package/dist/zod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/zod.ts"],"sourcesContent":["import { GLOB_JS_TS } from '@santi020k/eslint-config-core'\
|
|
1
|
+
{"version":3,"sources":["../src/zod.ts"],"sourcesContent":["import { GLOB_JS_TS } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\n\nimport { defineLazyConfig, loadDefault, type PluginWithConfigs } from './lazy.js'\n\n/**\n * Zod ESLint configuration\n * Provides validation rules for Zod schemas\n */\nexport const zod: () => Promise<TSESLint.FlatConfig.ConfigArray> = defineLazyConfig('zod', async () => {\n const pluginZod = await loadDefault<PluginWithConfigs<'recommended'>>('eslint-plugin-zod')\n\n return [\n {\n files: GLOB_JS_TS,\n name: 'eslint-config-integrations/zod',\n plugins: {\n zod: pluginZod\n },\n rules: {\n ...pluginZod.configs.recommended.rules\n }\n }\n ]\n})\n"],"mappings":"AAAA,SAAS,kBAAkB;AAG3B,SAAS,kBAAkB,mBAA2C;AAM/D,MAAM,MAAsD,iBAAiB,OAAO,YAAY;AACrG,QAAM,YAAY,MAAM,YAA8C,mBAAmB;AAEzF,SAAO;AAAA,IACL;AAAA,MACE,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,QACP,KAAK;AAAA,MACP;AAAA,MACA,OAAO;AAAA,QACL,GAAG,UAAU,QAAQ,YAAY;AAAA,MACnC;AAAA,IACF;AAAA,EACF;AACF,CAAC;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@santi020k/eslint-config-libraries",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"provenance": true
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"eslint-plugin-turbo": "^2.10.7",
|
|
36
36
|
"eslint-plugin-vercel-ai-security": "^1.3.7",
|
|
37
37
|
"eslint-plugin-zod": "^4.9.0",
|
|
38
|
-
"@santi020k/eslint-config-core": "^3.1.
|
|
38
|
+
"@santi020k/eslint-config-core": "^3.1.1"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/node": "^26.1.2",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"eslint": "^10.0.0",
|
|
52
52
|
"storybook": "^10.0.0",
|
|
53
53
|
"tailwindcss": "^3.3.0 || ^4.1.0",
|
|
54
|
-
"typescript": ">=5.0.0",
|
|
54
|
+
"typescript": ">=5.0.0 <7.0.0",
|
|
55
55
|
"zod": "^4.0.0"
|
|
56
56
|
},
|
|
57
57
|
"peerDependenciesMeta": {
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
"check:exports": "publint",
|
|
84
84
|
"clean": "rm -rf dist",
|
|
85
85
|
"dev": "tsup --watch",
|
|
86
|
-
"lint": "eslint . --no-warn-ignored --pass-on-no-patterns",
|
|
87
|
-
"lint:fix": "eslint . --fix --no-warn-ignored --pass-on-no-patterns",
|
|
86
|
+
"lint": "eslint . --no-warn-ignored --pass-on-no-patterns --max-warnings=0",
|
|
87
|
+
"lint:fix": "eslint . --fix --no-warn-ignored --pass-on-no-patterns --max-warnings=0",
|
|
88
88
|
"typecheck": "tsc --noEmit"
|
|
89
89
|
}
|
|
90
90
|
}
|