@anolilab/lint-staged-config 1.0.0 → 1.0.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.
Files changed (71) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/{chunk-UKLFK6IR.mjs → chunk-2NJHQVOR.mjs} +2 -2
  3. package/dist/chunk-2NJHQVOR.mjs.map +1 -0
  4. package/dist/{chunk-JTIOAOUE.js → chunk-5AJKEWYR.js} +3 -3
  5. package/dist/chunk-5AJKEWYR.js.map +1 -0
  6. package/dist/{chunk-PT4S7CCV.mjs → chunk-5IWFJALT.mjs} +3 -3
  7. package/dist/chunk-5IWFJALT.mjs.map +1 -0
  8. package/dist/{chunk-UHH5GDWT.mjs → chunk-A5GQULUO.mjs} +2 -2
  9. package/dist/chunk-A5GQULUO.mjs.map +1 -0
  10. package/dist/{chunk-BGOY7MBY.mjs → chunk-BVGKAMQV.mjs} +2 -2
  11. package/dist/chunk-BVGKAMQV.mjs.map +1 -0
  12. package/dist/{chunk-L5GFXHVL.js → chunk-CCERQD4S.js} +1 -1
  13. package/dist/chunk-CCERQD4S.js.map +1 -0
  14. package/dist/chunk-GXZBYQVF.js +9 -0
  15. package/dist/chunk-GXZBYQVF.js.map +1 -0
  16. package/dist/{chunk-T755FU2I.js → chunk-HAERDTLI.js} +1 -1
  17. package/dist/chunk-HAERDTLI.js.map +1 -0
  18. package/dist/{chunk-ZRW63OZY.js → chunk-MCOYFEKC.js} +3 -3
  19. package/dist/chunk-MCOYFEKC.js.map +1 -0
  20. package/dist/{chunk-OTRYI4YE.mjs → chunk-MKZ4RRUB.mjs} +1 -1
  21. package/dist/chunk-MKZ4RRUB.mjs.map +1 -0
  22. package/dist/{chunk-CRK67F7X.mjs → chunk-MQKG4NW7.mjs} +2 -2
  23. package/dist/chunk-MQKG4NW7.mjs.map +1 -0
  24. package/dist/{chunk-VW6R74AT.mjs → chunk-QUK4P43M.mjs} +2 -2
  25. package/dist/chunk-QUK4P43M.mjs.map +1 -0
  26. package/dist/{chunk-G7Q3HUT7.js → chunk-TWU5ONPK.js} +4 -4
  27. package/dist/chunk-TWU5ONPK.js.map +1 -0
  28. package/dist/{chunk-LSR35CMP.js → chunk-VWUDOPED.js} +3 -3
  29. package/dist/chunk-VWUDOPED.js.map +1 -0
  30. package/dist/{chunk-UF7UO5PL.js → chunk-X6YOEYWM.js} +3 -3
  31. package/dist/chunk-X6YOEYWM.js.map +1 -0
  32. package/dist/{chunk-AMNQJNNY.mjs → chunk-YUER2OJU.mjs} +1 -1
  33. package/dist/chunk-YUER2OJU.mjs.map +1 -0
  34. package/dist/groups/eslint/index.js +4 -4
  35. package/dist/groups/eslint/index.mjs +3 -3
  36. package/dist/groups/json.js +3 -3
  37. package/dist/groups/json.mjs +2 -2
  38. package/dist/groups/markdown.js +3 -3
  39. package/dist/groups/markdown.mjs +2 -2
  40. package/dist/groups/stylesheets.js +3 -3
  41. package/dist/groups/stylesheets.mjs +2 -2
  42. package/dist/groups/tests.js +3 -3
  43. package/dist/groups/tests.mjs +2 -2
  44. package/dist/groups/typescript.js +3 -3
  45. package/dist/groups/typescript.mjs +2 -2
  46. package/dist/index.js +9 -9
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.mjs +8 -8
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/postinstall.js +2 -2
  51. package/dist/postinstall.js.map +1 -1
  52. package/dist/postinstall.mjs +1 -1
  53. package/dist/postinstall.mjs.map +1 -1
  54. package/package.json +6 -5
  55. package/dist/chunk-4PCPJEEI.js +0 -9
  56. package/dist/chunk-4PCPJEEI.js.map +0 -1
  57. package/dist/chunk-AMNQJNNY.mjs.map +0 -1
  58. package/dist/chunk-BGOY7MBY.mjs.map +0 -1
  59. package/dist/chunk-CRK67F7X.mjs.map +0 -1
  60. package/dist/chunk-G7Q3HUT7.js.map +0 -1
  61. package/dist/chunk-JTIOAOUE.js.map +0 -1
  62. package/dist/chunk-L5GFXHVL.js.map +0 -1
  63. package/dist/chunk-LSR35CMP.js.map +0 -1
  64. package/dist/chunk-OTRYI4YE.mjs.map +0 -1
  65. package/dist/chunk-PT4S7CCV.mjs.map +0 -1
  66. package/dist/chunk-T755FU2I.js.map +0 -1
  67. package/dist/chunk-UF7UO5PL.js.map +0 -1
  68. package/dist/chunk-UHH5GDWT.mjs.map +0 -1
  69. package/dist/chunk-UKLFK6IR.mjs.map +0 -1
  70. package/dist/chunk-VW6R74AT.mjs.map +0 -1
  71. package/dist/chunk-ZRW63OZY.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ ## @anolilab/lint-staged-config [1.0.1](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/lint-staged-config@1.0.0...@anolilab/lint-staged-config@1.0.1) (2023-06-29)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * this version change is needed to deprecate old version of the package and update dependency versions in multiple packages ([b3f00b2](https://github.com/anolilab/javascript-style-guide/commit/b3f00b2487b8b5f9f61b1f711c0d0a7c7df86f75))
7
+
8
+
9
+ ### Miscellaneous Chores
10
+
11
+ * added rimraf to dev deps ([4b5922e](https://github.com/anolilab/javascript-style-guide/commit/4b5922e9392796f26abbf4dab40c84d5ee832243))
12
+
13
+
14
+
15
+ ### Dependencies
16
+
17
+ * **@anolilab/package-json-utils:** upgraded to 1.5.2
18
+ * **@anolilab/semantic-release-preset:** upgraded to 4.0.4
19
+
1
20
  ## @anolilab/lint-staged-config 1.0.0 (2023-06-29)
2
21
 
3
22
 
@@ -1,7 +1,7 @@
1
- import { b } from './chunk-OTRYI4YE.mjs';
1
+ import { b } from './chunk-MKZ4RRUB.mjs';
2
2
 
3
3
  var i={[`*.{${["css","sass","scss","less"].join(",")}}`]:t=>[`prettier --ignore-unknown --write ${b(t)}`,"stylelint --fix"]},n=i;
4
4
 
5
5
  export { n as a };
6
6
  //# sourceMappingURL=out.js.map
7
- //# sourceMappingURL=chunk-UKLFK6IR.mjs.map
7
+ //# sourceMappingURL=chunk-2NJHQVOR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/groups/stylesheets.ts"],"names":["group","filenames","concat_files_default","stylesheets_default"],"mappings":"yCAIA,IAAMA,EAAgB,CAClB,CAAC,MAAM,CAAC,MAAO,OAAQ,OAAQ,MAAM,EAAE,KAAK,GAAG,CAAC,GAAG,EAAIC,GAAwB,CAC3E,qCAAqCC,EAAYD,CAAS,CAAC,GAC3D,iBACJ,CACJ,EAEOE,EAAQH","sourcesContent":["import type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nconst group: Config = {\n [`*.{${[\"css\", \"sass\", \"scss\", \"less\"].join(\",\")}}`]: (filenames: string[]) => [\n `prettier --ignore-unknown --write ${concatFiles(filenames)}`,\n \"stylelint --fix\",\n ],\n};\n\nexport default group;\n"]}
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkT755FU2I_js = require('./chunk-T755FU2I.js');
3
+ var chunkHAERDTLI_js = require('./chunk-HAERDTLI.js');
4
4
  var packageJsonUtils = require('@anolilab/package-json-utils');
5
5
 
6
- global.hasAnolilabLintStagedMarkdownCli||(global.hasAnolilabLintStagedMarkdownCli=packageJsonUtils.hasDependency("markdownlint-cli")||packageJsonUtils.hasDevDependency("markdownlint-cli"));global.hasAnolilabLintStagedMarkdownCli2||(global.hasAnolilabLintStagedMarkdownCli2=packageJsonUtils.hasDependency("markdownlint-cli2")||packageJsonUtils.hasDevDependency("markdownlint-cli2"));var a={"**/*.md":i=>[`prettier --write ${chunkT755FU2I_js.b(i)}`,...global.hasAnolilabLintStagedMarkdownCli?[`markdownlint --fix --ignore '**/node_modules/**' --ignore '**/CHANGELOG.md' ${chunkT755FU2I_js.b(i)}`]:[],...global.hasAnolilabLintStagedMarkdownCli2?[`markdownlint-cli2 --fix '!**/node_modules/**' '!**/CHANGELOG.md' ${chunkT755FU2I_js.b(i)}`]:[]],"**/*.mdx":i=>[`prettier --write ${chunkT755FU2I_js.b(i)}`]},r=a;
6
+ global.hasAnolilabLintStagedMarkdownCli||(global.hasAnolilabLintStagedMarkdownCli=packageJsonUtils.hasDependency("markdownlint-cli")||packageJsonUtils.hasDevDependency("markdownlint-cli"));global.hasAnolilabLintStagedMarkdownCli2||(global.hasAnolilabLintStagedMarkdownCli2=packageJsonUtils.hasDependency("markdownlint-cli2")||packageJsonUtils.hasDevDependency("markdownlint-cli2"));var a={"**/*.md":i=>[`prettier --write ${chunkHAERDTLI_js.b(i)}`,...global.hasAnolilabLintStagedMarkdownCli?[`markdownlint --fix --ignore '**/node_modules/**' --ignore '**/CHANGELOG.md' ${chunkHAERDTLI_js.b(i)}`]:[],...global.hasAnolilabLintStagedMarkdownCli2?[`markdownlint-cli2 --fix '!**/node_modules/**' '!**/CHANGELOG.md' ${chunkHAERDTLI_js.b(i)}`]:[]],"**/*.mdx":i=>[`prettier --write ${chunkHAERDTLI_js.b(i)}`]},r=a;
7
7
 
8
8
  exports.a = r;
9
9
  //# sourceMappingURL=out.js.map
10
- //# sourceMappingURL=chunk-JTIOAOUE.js.map
10
+ //# sourceMappingURL=chunk-5AJKEWYR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/groups/markdown.ts"],"names":["hasDependency","hasDevDependency","group","filenames","concat_files_default","markdown_default"],"mappings":"wCAAA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,+BAK3C,OAAO,mCACR,OAAO,iCAAmCD,EAAc,kBAAkB,GAAKC,EAAiB,kBAAkB,GAEjH,OAAO,oCACR,OAAO,kCAAoCD,EAAc,mBAAmB,GAAKC,EAAiB,mBAAmB,GAGzH,IAAMC,EAAgB,CAClB,UAAYC,GAAwB,CAChC,oBAAoBC,EAAYD,CAAS,CAAC,GAC1C,GAAI,OAAO,iCACL,CAAC,+EAA+EC,EAAYD,CAAS,CAAC,EAAE,EACxG,CAAC,EACP,GAAI,OAAO,kCAAoC,CAAC,oEAAoEC,EAAYD,CAAS,CAAC,EAAE,EAAI,CAAC,CACrJ,EACA,WAAaA,GAAc,CAAC,oBAAoBC,EAAYD,CAAS,CAAC,EAAE,CAC5E,EAEOE,EAAQH","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nif (!global.hasAnolilabLintStagedMarkdownCli) {\n global.hasAnolilabLintStagedMarkdownCli = hasDependency(\"markdownlint-cli\") || hasDevDependency(\"markdownlint-cli\");\n}\nif (!global.hasAnolilabLintStagedMarkdownCli2) {\n global.hasAnolilabLintStagedMarkdownCli2 = hasDependency(\"markdownlint-cli2\") || hasDevDependency(\"markdownlint-cli2\");\n}\n\nconst group: Config = {\n \"**/*.md\": (filenames: string[]) => [\n `prettier --write ${concatFiles(filenames)}`,\n ...(global.hasAnolilabLintStagedMarkdownCli\n ? [`markdownlint --fix --ignore '**/node_modules/**' --ignore '**/CHANGELOG.md' ${concatFiles(filenames)}`]\n : []),\n ...(global.hasAnolilabLintStagedMarkdownCli2 ? [`markdownlint-cli2 --fix '!**/node_modules/**' '!**/CHANGELOG.md' ${concatFiles(filenames)}`] : []),\n ],\n \"**/*.mdx\": (filenames) => [`prettier --write ${concatFiles(filenames)}`],\n};\n\nexport default group;\n"]}
@@ -1,5 +1,5 @@
1
- import { a } from './chunk-AMNQJNNY.mjs';
2
- import { b, a as a$1 } from './chunk-OTRYI4YE.mjs';
1
+ import { a } from './chunk-YUER2OJU.mjs';
2
+ import { b, a as a$1 } from './chunk-MKZ4RRUB.mjs';
3
3
  import { pkg, hasDependency, hasDevDependency } from '@anolilab/package-json-utils';
4
4
  import { dirname } from 'path';
5
5
  import { ESLint } from 'eslint';
@@ -9,4 +9,4 @@ import { quote } from 'shell-quote';
9
9
 
10
10
  export { u as a, K as b };
11
11
  //# sourceMappingURL=out.js.map
12
- //# sourceMappingURL=chunk-PT4S7CCV.mjs.map
12
+ //# sourceMappingURL=chunk-5IWFJALT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/groups/eslint/index.ts","../src/utils/lint-staged-config.ts","../src/groups/eslint/group-file-paths-by-directory-name.ts","../src/groups/eslint/remove-ignored-files.ts","../src/groups/eslint/create-eslint-commands.ts"],"names":["hasDependency","hasDevDependency","pkg","config","lint_staged_config_default","dirname","groupFilePathsByDirectoryName","filePaths","groups","filePath","directoryName","group_file_paths_by_directory_name_default","ESLint","quote","removeIgnoredFiles","filenames","eslint","ignoredFiles","filename","_","index","is_windows_default","remove_ignored_files_default","eslintSettings","eslintGlobalRulesForFix","configFile","createEslintArguments","eslintArguments","rules","rule","r","fixType","type","createEslintCommands","filteredFiles","groupedFilesNames","eslintCommands","configName","get_nearest_config_path_default","create_eslint_commands_default","extensions","group","concat_files_default","eslint_default"],"mappings":"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","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../../utils/concat-files\";\nimport createEslintCommands from \"./create-eslint-commands\";\n\nconst extensions = [\"cjs\", \"js\", \"mjs\", \"cts\", \"ts\", \"mts\", \"yml\", \"yaml\", \"jsx\", \"tsx\", \"mdx\", \"toml\"];\n\nif (!global.hasAnolilabLintStagedMarkdownCli) {\n global.hasAnolilabLintStagedMarkdownCli = hasDependency(\"markdownlint-cli\") || hasDevDependency(\"markdownlint-cli\");\n}\n\nif (!global.hasAnolilabLintStagedMarkdownCli2) {\n global.hasAnolilabLintStagedMarkdownCli2 = hasDependency(\"markdownlint-cli2\") || hasDevDependency(\"markdownlint-cli2\");\n}\n\nif (!global.hasAnolilabLintStagedMarkdownCli && !global.hasAnolilabLintStagedMarkdownCli2) {\n extensions.push(\"md\");\n}\n\nconst group: Config = {\n [`*.{${[extensions].join(\",\")}}`]: async (filenames: string[]) => [\n `prettier --write ${concatFiles(filenames)}`,\n ...(await createEslintCommands(filenames)),\n ],\n [`*.{${[\"json\", \"json5\", \"jsonc\"].join(\",\")}}`]: async (filenames: string[]) => [...(await createEslintCommands(filenames))],\n};\n\nexport default group;\n","import { pkg } from \"@anolilab/package-json-utils\";\n\nif (!global.anolilabLintStagedPackageJsonConfig && pkg) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n global.anolilabLintStagedPackageJsonConfig = pkg?.[\"anolilab\"]?.[\"lint-staged-config\"];\n}\n\nconst config: { [key: string]: boolean | undefined } = global.anolilabLintStagedPackageJsonConfig ?? {};\n\nexport default config;\n","import { dirname } from \"node:path\";\n\nconst groupFilePathsByDirectoryName = (filePaths: string[]): { [key: string]: string[] } => {\n const groups: { [key: string]: string[] } = {};\n\n filePaths.forEach((filePath) => {\n const directoryName = dirname(filePath);\n\n if (!groups[directoryName]) {\n groups[directoryName] = [];\n }\n\n (groups[directoryName] as string[]).push(filePath);\n });\n\n return groups;\n};\n\nexport default groupFilePathsByDirectoryName;\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport { ESLint } from \"eslint\";\nimport { quote } from \"shell-quote\";\n\nimport isWindows from \"../../utils/is-windows\";\n\nconst removeIgnoredFiles = async (filenames: string[]): Promise<string[]> => {\n const eslint = new ESLint();\n // eslint-disable-next-line compat/compat\n const ignoredFiles = await Promise.all(filenames.map((filename) => eslint.isPathIgnored(filename)));\n const filteredFiles = filenames.filter((_, index) => !ignoredFiles[index]);\n\n return filteredFiles.map((filename) => `\"${isWindows ? filename : quote([filename])}\"`);\n};\n\nexport default removeIgnoredFiles;\n","import getNearestConfigPath from \"../../utils/get-nearest-config-path\";\nimport anolilabLintStagedConfig from \"../../utils/lint-staged-config\";\nimport groupFilePathsByDirectoryName from \"./group-file-paths-by-directory-name\";\nimport removeIgnoredFiles from \"./remove-ignored-files\";\n\ntype ESLintSettings = {\n settings: {\n eslint?: {\n \"max-warnings\"?: number | string | false;\n rules?: string[];\n \"fix-type\": string[];\n cache?: boolean;\n config?: string;\n };\n };\n};\n\nconst eslintSettings: ESLintSettings[\"settings\"][\"eslint\"] = (anolilabLintStagedConfig as unknown as ESLintSettings)?.[\"settings\"]?.[\"eslint\"] ?? ({} as ESLintSettings[\"settings\"][\"eslint\"]);\n\nconst eslintGlobalRulesForFix = [\n // react-hooks/eslint and react in general is very strict about exhaustively\n // declaring the dependencies when using the useEffect, useCallback... hooks.\n //\n // In some specific scenarios declaring the deps seems 'less' wanted or 'less' applicable\n // by the developer, leading to some exceptions in the code. That said it should be avoided.\n //\n // While the 'react-hooks/exhaustive-deps' rule is a good rule of thumb, it's not recommended to\n // automatically fix it from lint-staged as it can potentially break a legit intent.\n //\n // Reminder that a good practice is to always declare the dependencies when using the hooks,\n // and if not applicable, add an eslint disable comment to the useEffect, useCallback... such as:\n //\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n //\n // Another approach can be to use hooks such as https://github.com/kentcdodds/use-deep-compare-effect to quickly bypass\n // shallow rendering limitations.\n //\n // @see https://reactjs.org/docs/hooks-rules.html\n // @see https://eslint.org/docs/2.13.1/user-guide/configuring#disabling-rules-with-inline-comments\n \"react-hooks/exhaustive-deps: off\",\n];\n\nconst configFile = \".eslintrc\";\n\nconst createEslintArguments = (): string[] => {\n const eslintArguments: string[] = [];\n\n if (eslintSettings?.[\"max-warnings\"] !== undefined && Number.isNaN(eslintSettings[\"max-warnings\"])) {\n eslintArguments.push(`--max-warnings=${eslintSettings[\"max-warnings\"]}`);\n } else if (eslintSettings?.[\"max-warnings\"] !== false) {\n eslintArguments.push(\"--max-warnings=0\");\n }\n\n const rules = [];\n\n if (eslintSettings?.[\"rules\"] !== undefined && Array.isArray(eslintSettings[\"rules\"])) {\n rules.push([...eslintSettings[\"rules\"], ...eslintGlobalRulesForFix].filter((rule) => rule.trim().length > 0).map((r) => `\"${r.trim()}\"`));\n } else {\n rules.push(eslintGlobalRulesForFix.map((r) => `\"${r.trim()}\"`));\n }\n\n if (rules.length > 0) {\n eslintArguments.push(`--rule ${rules.join(\" --rule \")}`);\n }\n\n // For lint-staged it's safer to not apply the fix command if it changes the AST\n // @see https://eslint.org/docs/user-guide/command-line-interface#--fix-type\n const fixType = [...(eslintSettings?.[\"fix-type\"] ?? [\"layout\"])].filter((type) => type.trim().length > 0);\n\n if (fixType.length > 0) {\n eslintArguments.push(`--fix-type ${fixType.join(\",\")}`, \"--fix\");\n }\n\n if (eslintSettings?.[\"cache\"]) {\n eslintArguments.push(\"--cache\");\n }\n\n return eslintArguments;\n};\n\nconst createEslintCommands = async (filenames: string[]): Promise<string[]> => {\n const filteredFiles = await removeIgnoredFiles(filenames);\n\n const eslintArguments = createEslintArguments();\n\n if (eslintSettings?.[\"config\"]) {\n eslintArguments.push(`--config ${eslintSettings[\"config\"]}`);\n\n return [`cross-env NO_LOGS=true eslint ${eslintArguments.join(\" \")} ${filteredFiles.join(\" \")}`];\n }\n\n const groupedFilesNames = groupFilePathsByDirectoryName(filteredFiles);\n const eslintCommands: string[] = [];\n\n Object.values(groupedFilesNames).forEach((filePaths) => {\n let config: string | undefined;\n\n [configFile, `${configFile}.js`, `${configFile}.cjs`, `${configFile}.json`, `${configFile}.yaml`, `${configFile}.yml`].forEach((configName) => {\n if (config) {\n return;\n }\n\n try {\n // eslint-disable-next-line no-template-curly-in-string\n config = getNearestConfigPath(configName, filePaths[0] as \"/${string}\");\n } catch {\n // Ignore\n }\n });\n\n if (config) {\n eslintCommands.push(`cross-env NO_LOGS=true eslint ${eslintArguments.join(\" \")} --config ${config} ${filePaths.join(\" \")}`);\n }\n });\n\n return eslintCommands;\n};\n\nexport default createEslintCommands;\n"]}
@@ -1,8 +1,8 @@
1
- import { a } from './chunk-AMNQJNNY.mjs';
1
+ import { a } from './chunk-YUER2OJU.mjs';
2
2
  import { env } from 'process';
3
3
 
4
4
  var i={[`*.{${["ts","mts","cts"].join(",")}}`]:n=>{let o=new Set;return n.forEach(s=>{try{let t=a("tsconfig.json",s);o.add(`tsc --noEmit --project ${t}`);}catch(t){env.DEBUG&&console.error(t);}}),[...o]}},f=i;
5
5
 
6
6
  export { f as a };
7
7
  //# sourceMappingURL=out.js.map
8
- //# sourceMappingURL=chunk-UHH5GDWT.mjs.map
8
+ //# sourceMappingURL=chunk-A5GQULUO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/groups/typescript.ts"],"names":["env","group","filenames","commands","filePath","tsconfigPath","get_nearest_config_path_default","error","typescript_default"],"mappings":"yCACA,OAAS,OAAAA,MAAW,UAIpB,IAAMC,EAAgB,CAClB,CAAC,MAAM,CAAC,KAAM,MAAO,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG,EAAIC,GAAwB,CAChE,IAAMC,EAAW,IAAI,IAErB,OAAAD,EAAU,QAASE,GAAa,CAC5B,GAAI,CAEA,IAAMC,EAAeC,EAAqB,gBAAiBF,CAAwB,EAEnFD,EAAS,IAAI,0BAA0BE,CAAY,EAAE,CACzD,OAASE,EAAP,CACMP,EAAI,OACJ,QAAQ,MAAMO,CAAK,CAE3B,CACJ,CAAC,EAEM,CAAC,GAAGJ,CAAQ,CACvB,CACJ,EAEOK,EAAQP","sourcesContent":["import type { Config } from \"lint-staged\";\nimport { env } from \"node:process\";\n\nimport getNearestConfigPath from \"../utils/get-nearest-config-path\";\n\nconst group: Config = {\n [`*.{${[\"ts\", \"mts\", \"cts\"].join(\",\")}}`]: (filenames: string[]) => {\n const commands = new Set<string>();\n\n filenames.forEach((filePath) => {\n try {\n // eslint-disable-next-line no-template-curly-in-string\n const tsconfigPath = getNearestConfigPath(\"tsconfig.json\", filePath as \"/${string}\");\n\n commands.add(`tsc --noEmit --project ${tsconfigPath}`);\n } catch (error: any) {\n if (env[\"DEBUG\"]) {\n console.error(error);\n }\n }\n });\n\n return [...commands];\n },\n};\n\nexport default group;\n"]}
@@ -1,8 +1,8 @@
1
- import { b } from './chunk-OTRYI4YE.mjs';
1
+ import { b } from './chunk-MKZ4RRUB.mjs';
2
2
  import { hasDependency, hasDevDependency } from '@anolilab/package-json-utils';
3
3
 
4
4
  var n=hasDependency("vitest")||hasDevDependency("vitest"),i=hasDependency("jest")||hasDevDependency("jest"),j=hasDependency("ava")||hasDevDependency("ava"),d={...n&&{"**/__tests__/**/*.?(c|m)[jt]s?(x)":["vitest related --run"],"**/?(*.){test,spec}.?(c|m)[jt]s?(x)":["vitest related --run"]},...i&&{"**/*.spec.{js,ts,tsx}":["jest --findRelatedTests"],"**/*.test.{js,ts,tsx}":["jest --findRelatedTests"],"**/test/*.{js,ts,tsx}":["jest --findRelatedTests"],"**/__mocks__/*.{js,ts,tsx}":["jest --findRelatedTests"],"**/__tests__/*.{js,ts,tsx}":["jest --findRelatedTests"],"**/__tests__/**/*.?(c|m)[jt]s?(x)":["jest --findRelatedTests"],"**/?(*.){test,spec}.?(c|m)[jt]s?(x)":["jest --findRelatedTests"]},...j&&{"**/test.js":t=>[`ava ${b(t)}`],"**/test-*.js":t=>[`ava ${b(t)}`],"**/*.(spec|test).js":t=>[`ava ${b(t)}`],"**/(test|tests|__tests__)/**/*.js":t=>[`ava ${b(t)}`]}},o=d;
5
5
 
6
6
  export { o as a };
7
7
  //# sourceMappingURL=out.js.map
8
- //# sourceMappingURL=chunk-BGOY7MBY.mjs.map
8
+ //# sourceMappingURL=chunk-BVGKAMQV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/groups/tests.ts"],"names":["hasDependency","hasDevDependency","hasVitest","hasJest","hasAva","group","filenames","concat_files_default","tests_default"],"mappings":"yCAAA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,+BAKhD,IAAMC,EAAYF,EAAc,QAAQ,GAAKC,EAAiB,QAAQ,EAChEE,EAAUH,EAAc,MAAM,GAAKC,EAAiB,MAAM,EAC1DG,EAASJ,EAAc,KAAK,GAAKC,EAAiB,KAAK,EAEvDI,EAAgB,CAClB,GAAIH,GAAa,CAAE,oCAAqC,CAAC,sBAAsB,EAAG,sCAAuC,CAAC,sBAAsB,CAAE,EAClJ,GAAIC,GAAW,CACX,wBAAyB,CAAC,yBAAyB,EACnD,wBAAyB,CAAC,yBAAyB,EACnD,wBAAyB,CAAC,yBAAyB,EACnD,6BAA8B,CAAC,yBAAyB,EACxD,6BAA8B,CAAC,yBAAyB,EACxD,oCAAqC,CAAC,yBAAyB,EAC/D,sCAAuC,CAAC,yBAAyB,CACrE,EACA,GAAIC,GAAU,CACV,aAAeE,GAAwB,CAAC,OAAOC,EAAYD,CAAS,CAAC,EAAE,EACvE,eAAiBA,GAAwB,CAAC,OAAOC,EAAYD,CAAS,CAAC,EAAE,EACzE,sBAAwBA,GAAwB,CAAC,OAAOC,EAAYD,CAAS,CAAC,EAAE,EAChF,oCAAsCA,GAAwB,CAAC,OAAOC,EAAYD,CAAS,CAAC,EAAE,CAClG,CACJ,EAEOE,EAAQH","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nconst hasVitest = hasDependency(\"vitest\") || hasDevDependency(\"vitest\");\nconst hasJest = hasDependency(\"jest\") || hasDevDependency(\"jest\");\nconst hasAva = hasDependency(\"ava\") || hasDevDependency(\"ava\");\n\nconst group: Config = {\n ...(hasVitest && { \"**/__tests__/**/*.?(c|m)[jt]s?(x)\": [\"vitest related --run\"], \"**/?(*.){test,spec}.?(c|m)[jt]s?(x)\": [\"vitest related --run\"] }),\n ...(hasJest && {\n \"**/*.spec.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/*.test.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/test/*.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/__mocks__/*.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/__tests__/*.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/__tests__/**/*.?(c|m)[jt]s?(x)\": [\"jest --findRelatedTests\"],\n \"**/?(*.){test,spec}.?(c|m)[jt]s?(x)\": [\"jest --findRelatedTests\"],\n }),\n ...(hasAva && {\n \"**/test.js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n \"**/test-*.js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n \"**/*.(spec|test).js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n \"**/(test|tests|__tests__)/**/*.js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n }),\n};\n\nexport default group;\n"]}
@@ -12,4 +12,4 @@ var h=e=>{let t=r__default.default.sync("package.json",{cwd:e});return t&&path.d
12
12
 
13
13
  exports.a = d;
14
14
  //# sourceMappingURL=out.js.map
15
- //# sourceMappingURL=chunk-L5GFXHVL.js.map
15
+ //# sourceMappingURL=chunk-CCERQD4S.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/get-nearest-config-path.ts"],"names":["findUp","existsSync","dirname","join","packageDirectorySync","cwd","filePath","getNearestPackageRootPath","packageDirectoryPath","joinPaths","paths","joined","getNearestConfigPath","fileName","packageRootPath","configPath","get_nearest_config_path_default"],"mappings":"AAAA,OAAOA,MAAY,UACnB,OAAS,cAAAC,MAAkB,KAC3B,OAAS,WAAAC,EAAS,QAAAC,MAAY,OAG9B,IAAMC,EAAwBC,GAAiB,CAC3C,IAAMC,EAAWN,EAAO,KAAK,eAAgB,CAAE,IAAAK,CAAI,CAAC,EAEpD,OAAOC,GAAYJ,EAAQI,CAAQ,CACvC,EAEMC,EAA6BF,GAA+B,CAC9D,IAAMG,EAAuBJ,EAAqBC,GAAO,QAAQ,IAAI,CAAC,EAEtE,GAAIG,GAAsB,WAAW,GAAG,EACpC,OAAOA,EAGX,MAAM,IAAI,MAAM,kEAAkEH,CAAG,GAAG,CAC5F,EAEMI,EAA8CC,GAA2B,CAC3E,IAAMC,EAASR,EAAK,GAAGO,CAAK,EAE5B,GAAIC,EAAO,WAAW,GAAG,EACrB,OAAOA,EAGX,MAAM,IAAI,UAAU,8CAA8C,CACtE,EAEMC,EAAuB,CAAkEC,EAAaR,IAA8B,CACtI,IAAMS,EAAkBP,EAA0BF,CAAG,EAC/CU,EAAaN,EAAkB,CAACK,EAAsBD,CAAQ,CAAC,EAErE,GAAIZ,EAAWc,CAAU,EACrB,OAAOA,EAGX,MAAM,IAAI,MAAM,0BAA0BF,CAAQ,SAAS,CAC/D,EAMOG,EAAQJ","sourcesContent":["import findUp from \"find-up\";\nimport { existsSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport type { Join } from \"type-fest\";\n\nconst packageDirectorySync = (cwd?: string) => {\n const filePath = findUp.sync(\"package.json\", { cwd });\n\n return filePath && dirname(filePath);\n};\n\nconst getNearestPackageRootPath = (cwd?: string): AbsolutePath => {\n const packageDirectoryPath = packageDirectorySync(cwd ?? process.cwd());\n\n if (packageDirectoryPath?.startsWith(\"/\")) {\n return packageDirectoryPath as AbsolutePath;\n }\n\n throw new Error(`Cannot determine the nearest root of the package for the file: ${cwd}!`);\n};\n\nconst joinPaths = <T extends ReadonlyArray<string>>(paths: T): Join<T, \"/\"> => {\n const joined = join(...paths);\n\n if (joined.startsWith(\"/\")) {\n return joined as Join<T, \"/\">;\n }\n\n throw new TypeError(`Joined path did not return an absolute path.`);\n};\n\nconst getNearestConfigPath = <N extends ConfigFileName, A extends AbsolutePath = AbsolutePath>(fileName: N, cwd?: A): ConfigPath<A, N> => {\n const packageRootPath = getNearestPackageRootPath(cwd);\n const configPath = joinPaths<[A, N]>([packageRootPath as A, fileName]);\n\n if (existsSync(configPath)) {\n return configPath;\n }\n\n throw new Error(`Cannot locate nearest \"${fileName}\" file!`);\n};\n\nexport type AbsolutePath = `/${string}`;\nexport type ConfigFileName = string;\nexport type ConfigPath<A extends AbsolutePath, N extends ConfigFileName> = Join<[A, N], \"/\">;\n\nexport default getNearestConfigPath;\n"]}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var chunkHAERDTLI_js = require('./chunk-HAERDTLI.js');
4
+
5
+ var i={[`*.{${["css","sass","scss","less"].join(",")}}`]:t=>[`prettier --ignore-unknown --write ${chunkHAERDTLI_js.b(t)}`,"stylelint --fix"]},n=i;
6
+
7
+ exports.a = n;
8
+ //# sourceMappingURL=out.js.map
9
+ //# sourceMappingURL=chunk-GXZBYQVF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/groups/stylesheets.ts"],"names":["group","filenames","concat_files_default","stylesheets_default"],"mappings":"wCAIA,IAAMA,EAAgB,CAClB,CAAC,MAAM,CAAC,MAAO,OAAQ,OAAQ,MAAM,EAAE,KAAK,GAAG,CAAC,GAAG,EAAIC,GAAwB,CAC3E,qCAAqCC,EAAYD,CAAS,CAAC,GAC3D,iBACJ,CACJ,EAEOE,EAAQH","sourcesContent":["import type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nconst group: Config = {\n [`*.{${[\"css\", \"sass\", \"scss\", \"less\"].join(\",\")}}`]: (filenames: string[]) => [\n `prettier --ignore-unknown --write ${concatFiles(filenames)}`,\n \"stylelint --fix\",\n ],\n};\n\nexport default group;\n"]}
@@ -8,4 +8,4 @@ var i=process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process$1.env
8
8
  exports.a = s;
9
9
  exports.b = a;
10
10
  //# sourceMappingURL=out.js.map
11
- //# sourceMappingURL=chunk-T755FU2I.js.map
11
+ //# sourceMappingURL=chunk-HAERDTLI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/concat-files.ts","../src/utils/is-windows.ts"],"names":["quote","env","isWindows","is_windows_default","concatFiles","filenames","filename","concat_files_default"],"mappings":"AAAA,OAAS,SAAAA,MAAa,cCAtB,OAAS,OAAAC,MAAW,UAGpB,IAAMC,EAAY,UAAY,QAAQ,WAAa,SAAW,kBAAkB,KAAKD,EAAI,QAAa,EAAE,GAEjGE,EAAQD,EDUf,IAAME,EAAeC,GAAgCA,EAAU,IAAKC,GAAa,IAAIH,EAAYG,EAAWN,EAAM,CAACM,CAAQ,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG,EAEnIC,EAAQH","sourcesContent":["import { quote } from \"shell-quote\";\n\nimport isWindows from \"./is-windows\";\n\n/**\n * Concatenate and escape a list of filenames that can be passed as args to prettier cli\n *\n * Prettier and Stylelint have an issue with special characters in filenames,\n * such as the ones uses for Next.js dynamic routes (ie: [id].tsx...)\n *\n * @link https://github.com/okonet/lint-staged/issues/676\n *\n * @param {string[]} filenames\n * @returns {string} Return concatenated and escaped filenames\n */\nconst concatFiles = (filenames: string[]): string => filenames.map((filename) => `\"${isWindows ? filename : quote([filename])}\"`).join(\" \");\n\nexport default concatFiles;\n","import { env } from \"node:process\";\n\n// eslint-disable-next-line regexp/no-unused-capturing-group\nconst isWindows = process && (process.platform === \"win32\" || /^(msys|cygwin)$/.test(env[\"OSTYPE\"] ?? \"\"));\n\nexport default isWindows;\n"]}
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkT755FU2I_js = require('./chunk-T755FU2I.js');
3
+ var chunkHAERDTLI_js = require('./chunk-HAERDTLI.js');
4
4
  var packageJsonUtils = require('@anolilab/package-json-utils');
5
5
 
6
- var n=packageJsonUtils.hasDependency("vitest")||packageJsonUtils.hasDevDependency("vitest"),i=packageJsonUtils.hasDependency("jest")||packageJsonUtils.hasDevDependency("jest"),j=packageJsonUtils.hasDependency("ava")||packageJsonUtils.hasDevDependency("ava"),d={...n&&{"**/__tests__/**/*.?(c|m)[jt]s?(x)":["vitest related --run"],"**/?(*.){test,spec}.?(c|m)[jt]s?(x)":["vitest related --run"]},...i&&{"**/*.spec.{js,ts,tsx}":["jest --findRelatedTests"],"**/*.test.{js,ts,tsx}":["jest --findRelatedTests"],"**/test/*.{js,ts,tsx}":["jest --findRelatedTests"],"**/__mocks__/*.{js,ts,tsx}":["jest --findRelatedTests"],"**/__tests__/*.{js,ts,tsx}":["jest --findRelatedTests"],"**/__tests__/**/*.?(c|m)[jt]s?(x)":["jest --findRelatedTests"],"**/?(*.){test,spec}.?(c|m)[jt]s?(x)":["jest --findRelatedTests"]},...j&&{"**/test.js":t=>[`ava ${chunkT755FU2I_js.b(t)}`],"**/test-*.js":t=>[`ava ${chunkT755FU2I_js.b(t)}`],"**/*.(spec|test).js":t=>[`ava ${chunkT755FU2I_js.b(t)}`],"**/(test|tests|__tests__)/**/*.js":t=>[`ava ${chunkT755FU2I_js.b(t)}`]}},o=d;
6
+ var n=packageJsonUtils.hasDependency("vitest")||packageJsonUtils.hasDevDependency("vitest"),i=packageJsonUtils.hasDependency("jest")||packageJsonUtils.hasDevDependency("jest"),j=packageJsonUtils.hasDependency("ava")||packageJsonUtils.hasDevDependency("ava"),d={...n&&{"**/__tests__/**/*.?(c|m)[jt]s?(x)":["vitest related --run"],"**/?(*.){test,spec}.?(c|m)[jt]s?(x)":["vitest related --run"]},...i&&{"**/*.spec.{js,ts,tsx}":["jest --findRelatedTests"],"**/*.test.{js,ts,tsx}":["jest --findRelatedTests"],"**/test/*.{js,ts,tsx}":["jest --findRelatedTests"],"**/__mocks__/*.{js,ts,tsx}":["jest --findRelatedTests"],"**/__tests__/*.{js,ts,tsx}":["jest --findRelatedTests"],"**/__tests__/**/*.?(c|m)[jt]s?(x)":["jest --findRelatedTests"],"**/?(*.){test,spec}.?(c|m)[jt]s?(x)":["jest --findRelatedTests"]},...j&&{"**/test.js":t=>[`ava ${chunkHAERDTLI_js.b(t)}`],"**/test-*.js":t=>[`ava ${chunkHAERDTLI_js.b(t)}`],"**/*.(spec|test).js":t=>[`ava ${chunkHAERDTLI_js.b(t)}`],"**/(test|tests|__tests__)/**/*.js":t=>[`ava ${chunkHAERDTLI_js.b(t)}`]}},o=d;
7
7
 
8
8
  exports.a = o;
9
9
  //# sourceMappingURL=out.js.map
10
- //# sourceMappingURL=chunk-ZRW63OZY.js.map
10
+ //# sourceMappingURL=chunk-MCOYFEKC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/groups/tests.ts"],"names":["hasDependency","hasDevDependency","hasVitest","hasJest","hasAva","group","filenames","concat_files_default","tests_default"],"mappings":"wCAAA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,+BAKhD,IAAMC,EAAYF,EAAc,QAAQ,GAAKC,EAAiB,QAAQ,EAChEE,EAAUH,EAAc,MAAM,GAAKC,EAAiB,MAAM,EAC1DG,EAASJ,EAAc,KAAK,GAAKC,EAAiB,KAAK,EAEvDI,EAAgB,CAClB,GAAIH,GAAa,CAAE,oCAAqC,CAAC,sBAAsB,EAAG,sCAAuC,CAAC,sBAAsB,CAAE,EAClJ,GAAIC,GAAW,CACX,wBAAyB,CAAC,yBAAyB,EACnD,wBAAyB,CAAC,yBAAyB,EACnD,wBAAyB,CAAC,yBAAyB,EACnD,6BAA8B,CAAC,yBAAyB,EACxD,6BAA8B,CAAC,yBAAyB,EACxD,oCAAqC,CAAC,yBAAyB,EAC/D,sCAAuC,CAAC,yBAAyB,CACrE,EACA,GAAIC,GAAU,CACV,aAAeE,GAAwB,CAAC,OAAOC,EAAYD,CAAS,CAAC,EAAE,EACvE,eAAiBA,GAAwB,CAAC,OAAOC,EAAYD,CAAS,CAAC,EAAE,EACzE,sBAAwBA,GAAwB,CAAC,OAAOC,EAAYD,CAAS,CAAC,EAAE,EAChF,oCAAsCA,GAAwB,CAAC,OAAOC,EAAYD,CAAS,CAAC,EAAE,CAClG,CACJ,EAEOE,EAAQH","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nconst hasVitest = hasDependency(\"vitest\") || hasDevDependency(\"vitest\");\nconst hasJest = hasDependency(\"jest\") || hasDevDependency(\"jest\");\nconst hasAva = hasDependency(\"ava\") || hasDevDependency(\"ava\");\n\nconst group: Config = {\n ...(hasVitest && { \"**/__tests__/**/*.?(c|m)[jt]s?(x)\": [\"vitest related --run\"], \"**/?(*.){test,spec}.?(c|m)[jt]s?(x)\": [\"vitest related --run\"] }),\n ...(hasJest && {\n \"**/*.spec.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/*.test.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/test/*.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/__mocks__/*.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/__tests__/*.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/__tests__/**/*.?(c|m)[jt]s?(x)\": [\"jest --findRelatedTests\"],\n \"**/?(*.){test,spec}.?(c|m)[jt]s?(x)\": [\"jest --findRelatedTests\"],\n }),\n ...(hasAva && {\n \"**/test.js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n \"**/test-*.js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n \"**/*.(spec|test).js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n \"**/(test|tests|__tests__)/**/*.js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n }),\n};\n\nexport default group;\n"]}
@@ -5,4 +5,4 @@ var i=process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(env.OSTYPE??"
5
5
 
6
6
  export { s as a, a as b };
7
7
  //# sourceMappingURL=out.js.map
8
- //# sourceMappingURL=chunk-OTRYI4YE.mjs.map
8
+ //# sourceMappingURL=chunk-MKZ4RRUB.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/concat-files.ts","../src/utils/is-windows.ts"],"names":["quote","env","isWindows","is_windows_default","concatFiles","filenames","filename","concat_files_default"],"mappings":"AAAA,OAAS,SAAAA,MAAa,cCAtB,OAAS,OAAAC,MAAW,UAGpB,IAAMC,EAAY,UAAY,QAAQ,WAAa,SAAW,kBAAkB,KAAKD,EAAI,QAAa,EAAE,GAEjGE,EAAQD,EDUf,IAAME,EAAeC,GAAgCA,EAAU,IAAKC,GAAa,IAAIH,EAAYG,EAAWN,EAAM,CAACM,CAAQ,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG,EAEnIC,EAAQH","sourcesContent":["import { quote } from \"shell-quote\";\n\nimport isWindows from \"./is-windows\";\n\n/**\n * Concatenate and escape a list of filenames that can be passed as args to prettier cli\n *\n * Prettier and Stylelint have an issue with special characters in filenames,\n * such as the ones uses for Next.js dynamic routes (ie: [id].tsx...)\n *\n * @link https://github.com/okonet/lint-staged/issues/676\n *\n * @param {string[]} filenames\n * @returns {string} Return concatenated and escaped filenames\n */\nconst concatFiles = (filenames: string[]): string => filenames.map((filename) => `\"${isWindows ? filename : quote([filename])}\"`).join(\" \");\n\nexport default concatFiles;\n","import { env } from \"node:process\";\n\n// eslint-disable-next-line regexp/no-unused-capturing-group\nconst isWindows = process && (process.platform === \"win32\" || /^(msys|cygwin)$/.test(env[\"OSTYPE\"] ?? \"\"));\n\nexport default isWindows;\n"]}
@@ -1,8 +1,8 @@
1
- import { b } from './chunk-OTRYI4YE.mjs';
1
+ import { b } from './chunk-MKZ4RRUB.mjs';
2
2
  import { hasDependency, hasDevDependency } from '@anolilab/package-json-utils';
3
3
 
4
4
  var a=hasDependency("sort-package-json")||hasDevDependency("sort-package-json"),t={[`*.{${["json","json5","jsonc"].join(",")}}`]:o=>[`prettier --write ${b(o)}`],...a?{"package.json,{packages,apps}/*/package.json":o=>[`sort-package-json ${b(o)}`]}:{}},c=t;
5
5
 
6
6
  export { c as a };
7
7
  //# sourceMappingURL=out.js.map
8
- //# sourceMappingURL=chunk-CRK67F7X.mjs.map
8
+ //# sourceMappingURL=chunk-MQKG4NW7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/groups/json.ts"],"names":["hasDependency","hasDevDependency","hasSortPackageJson","group","filenames","concat_files_default","json_default"],"mappings":"yCAAA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,+BAKhD,IAAMC,EAAqBF,EAAc,mBAAmB,GAAKC,EAAiB,mBAAmB,EAE/FE,EAAgB,CAClB,CAAC,MAAM,CAAC,OAAQ,QAAS,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,EAAIC,GAAwB,CAAC,oBAAoBC,EAAYD,CAAS,CAAC,EAAE,EACvH,GAAIF,EAAqB,CAAE,8CAAgDE,GAAwB,CAAC,qBAAqBC,EAAYD,CAAS,CAAC,EAAE,CAAE,EAAI,CAAC,CAC5J,EAEOE,EAAQH","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nconst hasSortPackageJson = hasDependency(\"sort-package-json\") || hasDevDependency(\"sort-package-json\");\n\nconst group: Config = {\n [`*.{${[\"json\", \"json5\", \"jsonc\"].join(\",\")}}`]: (filenames: string[]) => [`prettier --write ${concatFiles(filenames)}`],\n ...(hasSortPackageJson ? { \"package.json,{packages,apps}/*/package.json\": (filenames: string[]) => [`sort-package-json ${concatFiles(filenames)}`] } : {}),\n};\n\nexport default group;\n"]}
@@ -1,8 +1,8 @@
1
- import { b } from './chunk-OTRYI4YE.mjs';
1
+ import { b } from './chunk-MKZ4RRUB.mjs';
2
2
  import { hasDependency, hasDevDependency } from '@anolilab/package-json-utils';
3
3
 
4
4
  global.hasAnolilabLintStagedMarkdownCli||(global.hasAnolilabLintStagedMarkdownCli=hasDependency("markdownlint-cli")||hasDevDependency("markdownlint-cli"));global.hasAnolilabLintStagedMarkdownCli2||(global.hasAnolilabLintStagedMarkdownCli2=hasDependency("markdownlint-cli2")||hasDevDependency("markdownlint-cli2"));var a={"**/*.md":i=>[`prettier --write ${b(i)}`,...global.hasAnolilabLintStagedMarkdownCli?[`markdownlint --fix --ignore '**/node_modules/**' --ignore '**/CHANGELOG.md' ${b(i)}`]:[],...global.hasAnolilabLintStagedMarkdownCli2?[`markdownlint-cli2 --fix '!**/node_modules/**' '!**/CHANGELOG.md' ${b(i)}`]:[]],"**/*.mdx":i=>[`prettier --write ${b(i)}`]},r=a;
5
5
 
6
6
  export { r as a };
7
7
  //# sourceMappingURL=out.js.map
8
- //# sourceMappingURL=chunk-VW6R74AT.mjs.map
8
+ //# sourceMappingURL=chunk-QUK4P43M.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/groups/markdown.ts"],"names":["hasDependency","hasDevDependency","group","filenames","concat_files_default","markdown_default"],"mappings":"yCAAA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,+BAK3C,OAAO,mCACR,OAAO,iCAAmCD,EAAc,kBAAkB,GAAKC,EAAiB,kBAAkB,GAEjH,OAAO,oCACR,OAAO,kCAAoCD,EAAc,mBAAmB,GAAKC,EAAiB,mBAAmB,GAGzH,IAAMC,EAAgB,CAClB,UAAYC,GAAwB,CAChC,oBAAoBC,EAAYD,CAAS,CAAC,GAC1C,GAAI,OAAO,iCACL,CAAC,+EAA+EC,EAAYD,CAAS,CAAC,EAAE,EACxG,CAAC,EACP,GAAI,OAAO,kCAAoC,CAAC,oEAAoEC,EAAYD,CAAS,CAAC,EAAE,EAAI,CAAC,CACrJ,EACA,WAAaA,GAAc,CAAC,oBAAoBC,EAAYD,CAAS,CAAC,EAAE,CAC5E,EAEOE,EAAQH","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nif (!global.hasAnolilabLintStagedMarkdownCli) {\n global.hasAnolilabLintStagedMarkdownCli = hasDependency(\"markdownlint-cli\") || hasDevDependency(\"markdownlint-cli\");\n}\nif (!global.hasAnolilabLintStagedMarkdownCli2) {\n global.hasAnolilabLintStagedMarkdownCli2 = hasDependency(\"markdownlint-cli2\") || hasDevDependency(\"markdownlint-cli2\");\n}\n\nconst group: Config = {\n \"**/*.md\": (filenames: string[]) => [\n `prettier --write ${concatFiles(filenames)}`,\n ...(global.hasAnolilabLintStagedMarkdownCli\n ? [`markdownlint --fix --ignore '**/node_modules/**' --ignore '**/CHANGELOG.md' ${concatFiles(filenames)}`]\n : []),\n ...(global.hasAnolilabLintStagedMarkdownCli2 ? [`markdownlint-cli2 --fix '!**/node_modules/**' '!**/CHANGELOG.md' ${concatFiles(filenames)}`] : []),\n ],\n \"**/*.mdx\": (filenames) => [`prettier --write ${concatFiles(filenames)}`],\n};\n\nexport default group;\n"]}
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunkL5GFXHVL_js = require('./chunk-L5GFXHVL.js');
4
- var chunkT755FU2I_js = require('./chunk-T755FU2I.js');
3
+ var chunkCCERQD4S_js = require('./chunk-CCERQD4S.js');
4
+ var chunkHAERDTLI_js = require('./chunk-HAERDTLI.js');
5
5
  var packageJsonUtils = require('@anolilab/package-json-utils');
6
6
  var path = require('path');
7
7
  var eslint = require('eslint');
8
8
  var shellQuote = require('shell-quote');
9
9
 
10
- !global.anolilabLintStagedPackageJsonConfig&&packageJsonUtils.pkg&&(global.anolilabLintStagedPackageJsonConfig=packageJsonUtils.pkg?.anolilab?.["lint-staged-config"]);var $=global.anolilabLintStagedPackageJsonConfig??{},u=$;var k=n=>{let t={};return n.forEach(s=>{let i=path.dirname(s);t[i]||(t[i]=[]),t[i].push(s);}),t},p=k;var F=async n=>{let t=new eslint.ESLint,s=await Promise.all(n.map(o=>t.isPathIgnored(o)));return n.filter((o,a)=>!s[a]).map(o=>`"${chunkT755FU2I_js.a?o:shellQuote.quote([o])}"`)},h=F;var e=u?.settings?.eslint??{},y=["react-hooks/exhaustive-deps: off"],r=".eslintrc",A=()=>{let n=[];e?.["max-warnings"]!==void 0&&Number.isNaN(e["max-warnings"])?n.push(`--max-warnings=${e["max-warnings"]}`):e?.["max-warnings"]!==!1&&n.push("--max-warnings=0");let t=[];e?.rules!==void 0&&Array.isArray(e.rules)?t.push([...e.rules,...y].filter(i=>i.trim().length>0).map(i=>`"${i.trim()}"`)):t.push(y.map(i=>`"${i.trim()}"`)),t.length>0&&n.push(`--rule ${t.join(" --rule ")}`);let s=[...e?.["fix-type"]??["layout"]].filter(i=>i.trim().length>0);return s.length>0&&n.push(`--fix-type ${s.join(",")}`,"--fix"),e?.cache&&n.push("--cache"),n},E=async n=>{let t=await h(n),s=A();if(e?.config)return s.push(`--config ${e.config}`),[`cross-env NO_LOGS=true eslint ${s.join(" ")} ${t.join(" ")}`];let i=p(t),o=[];return Object.values(i).forEach(a=>{let l;[r,`${r}.js`,`${r}.cjs`,`${r}.json`,`${r}.yaml`,`${r}.yml`].forEach(S=>{if(!l)try{l=chunkL5GFXHVL_js.a(S,a[0]);}catch{}}),l&&o.push(`cross-env NO_LOGS=true eslint ${s.join(" ")} --config ${l} ${a.join(" ")}`);}),o},g=E;var x=["cjs","js","mjs","cts","ts","mts","yml","yaml","jsx","tsx","mdx","toml"];global.hasAnolilabLintStagedMarkdownCli||(global.hasAnolilabLintStagedMarkdownCli=packageJsonUtils.hasDependency("markdownlint-cli")||packageJsonUtils.hasDevDependency("markdownlint-cli"));global.hasAnolilabLintStagedMarkdownCli2||(global.hasAnolilabLintStagedMarkdownCli2=packageJsonUtils.hasDependency("markdownlint-cli2")||packageJsonUtils.hasDevDependency("markdownlint-cli2"));!global.hasAnolilabLintStagedMarkdownCli&&!global.hasAnolilabLintStagedMarkdownCli2&&x.push("md");var N={[`*.{${[x].join(",")}}`]:async n=>[`prettier --write ${chunkT755FU2I_js.b(n)}`,...await g(n)],[`*.{${["json","json5","jsonc"].join(",")}}`]:async n=>[...await g(n)]},K=N;
10
+ !global.anolilabLintStagedPackageJsonConfig&&packageJsonUtils.pkg&&(global.anolilabLintStagedPackageJsonConfig=packageJsonUtils.pkg?.anolilab?.["lint-staged-config"]);var $=global.anolilabLintStagedPackageJsonConfig??{},u=$;var k=n=>{let t={};return n.forEach(s=>{let i=path.dirname(s);t[i]||(t[i]=[]),t[i].push(s);}),t},p=k;var F=async n=>{let t=new eslint.ESLint,s=await Promise.all(n.map(o=>t.isPathIgnored(o)));return n.filter((o,a)=>!s[a]).map(o=>`"${chunkHAERDTLI_js.a?o:shellQuote.quote([o])}"`)},h=F;var e=u?.settings?.eslint??{},y=["react-hooks/exhaustive-deps: off"],r=".eslintrc",A=()=>{let n=[];e?.["max-warnings"]!==void 0&&Number.isNaN(e["max-warnings"])?n.push(`--max-warnings=${e["max-warnings"]}`):e?.["max-warnings"]!==!1&&n.push("--max-warnings=0");let t=[];e?.rules!==void 0&&Array.isArray(e.rules)?t.push([...e.rules,...y].filter(i=>i.trim().length>0).map(i=>`"${i.trim()}"`)):t.push(y.map(i=>`"${i.trim()}"`)),t.length>0&&n.push(`--rule ${t.join(" --rule ")}`);let s=[...e?.["fix-type"]??["layout"]].filter(i=>i.trim().length>0);return s.length>0&&n.push(`--fix-type ${s.join(",")}`,"--fix"),e?.cache&&n.push("--cache"),n},E=async n=>{let t=await h(n),s=A();if(e?.config)return s.push(`--config ${e.config}`),[`cross-env NO_LOGS=true eslint ${s.join(" ")} ${t.join(" ")}`];let i=p(t),o=[];return Object.values(i).forEach(a=>{let l;[r,`${r}.js`,`${r}.cjs`,`${r}.json`,`${r}.yaml`,`${r}.yml`].forEach(S=>{if(!l)try{l=chunkCCERQD4S_js.a(S,a[0]);}catch{}}),l&&o.push(`cross-env NO_LOGS=true eslint ${s.join(" ")} --config ${l} ${a.join(" ")}`);}),o},g=E;var x=["cjs","js","mjs","cts","ts","mts","yml","yaml","jsx","tsx","mdx","toml"];global.hasAnolilabLintStagedMarkdownCli||(global.hasAnolilabLintStagedMarkdownCli=packageJsonUtils.hasDependency("markdownlint-cli")||packageJsonUtils.hasDevDependency("markdownlint-cli"));global.hasAnolilabLintStagedMarkdownCli2||(global.hasAnolilabLintStagedMarkdownCli2=packageJsonUtils.hasDependency("markdownlint-cli2")||packageJsonUtils.hasDevDependency("markdownlint-cli2"));!global.hasAnolilabLintStagedMarkdownCli&&!global.hasAnolilabLintStagedMarkdownCli2&&x.push("md");var N={[`*.{${[x].join(",")}}`]:async n=>[`prettier --write ${chunkHAERDTLI_js.b(n)}`,...await g(n)],[`*.{${["json","json5","jsonc"].join(",")}}`]:async n=>[...await g(n)]},K=N;
11
11
 
12
12
  exports.a = u;
13
13
  exports.b = K;
14
14
  //# sourceMappingURL=out.js.map
15
- //# sourceMappingURL=chunk-G7Q3HUT7.js.map
15
+ //# sourceMappingURL=chunk-TWU5ONPK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/groups/eslint/index.ts","../src/utils/lint-staged-config.ts","../src/groups/eslint/group-file-paths-by-directory-name.ts","../src/groups/eslint/remove-ignored-files.ts","../src/groups/eslint/create-eslint-commands.ts"],"names":["hasDependency","hasDevDependency","pkg","config","lint_staged_config_default","dirname","groupFilePathsByDirectoryName","filePaths","groups","filePath","directoryName","group_file_paths_by_directory_name_default","ESLint","quote","removeIgnoredFiles","filenames","eslint","ignoredFiles","filename","_","index","is_windows_default","remove_ignored_files_default","eslintSettings","eslintGlobalRulesForFix","configFile","createEslintArguments","eslintArguments","rules","rule","r","fixType","type","createEslintCommands","filteredFiles","groupedFilesNames","eslintCommands","configName","get_nearest_config_path_default","create_eslint_commands_default","extensions","group","concat_files_default","eslint_default"],"mappings":"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","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../../utils/concat-files\";\nimport createEslintCommands from \"./create-eslint-commands\";\n\nconst extensions = [\"cjs\", \"js\", \"mjs\", \"cts\", \"ts\", \"mts\", \"yml\", \"yaml\", \"jsx\", \"tsx\", \"mdx\", \"toml\"];\n\nif (!global.hasAnolilabLintStagedMarkdownCli) {\n global.hasAnolilabLintStagedMarkdownCli = hasDependency(\"markdownlint-cli\") || hasDevDependency(\"markdownlint-cli\");\n}\n\nif (!global.hasAnolilabLintStagedMarkdownCli2) {\n global.hasAnolilabLintStagedMarkdownCli2 = hasDependency(\"markdownlint-cli2\") || hasDevDependency(\"markdownlint-cli2\");\n}\n\nif (!global.hasAnolilabLintStagedMarkdownCli && !global.hasAnolilabLintStagedMarkdownCli2) {\n extensions.push(\"md\");\n}\n\nconst group: Config = {\n [`*.{${[extensions].join(\",\")}}`]: async (filenames: string[]) => [\n `prettier --write ${concatFiles(filenames)}`,\n ...(await createEslintCommands(filenames)),\n ],\n [`*.{${[\"json\", \"json5\", \"jsonc\"].join(\",\")}}`]: async (filenames: string[]) => [...(await createEslintCommands(filenames))],\n};\n\nexport default group;\n","import { pkg } from \"@anolilab/package-json-utils\";\n\nif (!global.anolilabLintStagedPackageJsonConfig && pkg) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n global.anolilabLintStagedPackageJsonConfig = pkg?.[\"anolilab\"]?.[\"lint-staged-config\"];\n}\n\nconst config: { [key: string]: boolean | undefined } = global.anolilabLintStagedPackageJsonConfig ?? {};\n\nexport default config;\n","import { dirname } from \"node:path\";\n\nconst groupFilePathsByDirectoryName = (filePaths: string[]): { [key: string]: string[] } => {\n const groups: { [key: string]: string[] } = {};\n\n filePaths.forEach((filePath) => {\n const directoryName = dirname(filePath);\n\n if (!groups[directoryName]) {\n groups[directoryName] = [];\n }\n\n (groups[directoryName] as string[]).push(filePath);\n });\n\n return groups;\n};\n\nexport default groupFilePathsByDirectoryName;\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport { ESLint } from \"eslint\";\nimport { quote } from \"shell-quote\";\n\nimport isWindows from \"../../utils/is-windows\";\n\nconst removeIgnoredFiles = async (filenames: string[]): Promise<string[]> => {\n const eslint = new ESLint();\n // eslint-disable-next-line compat/compat\n const ignoredFiles = await Promise.all(filenames.map((filename) => eslint.isPathIgnored(filename)));\n const filteredFiles = filenames.filter((_, index) => !ignoredFiles[index]);\n\n return filteredFiles.map((filename) => `\"${isWindows ? filename : quote([filename])}\"`);\n};\n\nexport default removeIgnoredFiles;\n","import getNearestConfigPath from \"../../utils/get-nearest-config-path\";\nimport anolilabLintStagedConfig from \"../../utils/lint-staged-config\";\nimport groupFilePathsByDirectoryName from \"./group-file-paths-by-directory-name\";\nimport removeIgnoredFiles from \"./remove-ignored-files\";\n\ntype ESLintSettings = {\n settings: {\n eslint?: {\n \"max-warnings\"?: number | string | false;\n rules?: string[];\n \"fix-type\": string[];\n cache?: boolean;\n config?: string;\n };\n };\n};\n\nconst eslintSettings: ESLintSettings[\"settings\"][\"eslint\"] = (anolilabLintStagedConfig as unknown as ESLintSettings)?.[\"settings\"]?.[\"eslint\"] ?? ({} as ESLintSettings[\"settings\"][\"eslint\"]);\n\nconst eslintGlobalRulesForFix = [\n // react-hooks/eslint and react in general is very strict about exhaustively\n // declaring the dependencies when using the useEffect, useCallback... hooks.\n //\n // In some specific scenarios declaring the deps seems 'less' wanted or 'less' applicable\n // by the developer, leading to some exceptions in the code. That said it should be avoided.\n //\n // While the 'react-hooks/exhaustive-deps' rule is a good rule of thumb, it's not recommended to\n // automatically fix it from lint-staged as it can potentially break a legit intent.\n //\n // Reminder that a good practice is to always declare the dependencies when using the hooks,\n // and if not applicable, add an eslint disable comment to the useEffect, useCallback... such as:\n //\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n //\n // Another approach can be to use hooks such as https://github.com/kentcdodds/use-deep-compare-effect to quickly bypass\n // shallow rendering limitations.\n //\n // @see https://reactjs.org/docs/hooks-rules.html\n // @see https://eslint.org/docs/2.13.1/user-guide/configuring#disabling-rules-with-inline-comments\n \"react-hooks/exhaustive-deps: off\",\n];\n\nconst configFile = \".eslintrc\";\n\nconst createEslintArguments = (): string[] => {\n const eslintArguments: string[] = [];\n\n if (eslintSettings?.[\"max-warnings\"] !== undefined && Number.isNaN(eslintSettings[\"max-warnings\"])) {\n eslintArguments.push(`--max-warnings=${eslintSettings[\"max-warnings\"]}`);\n } else if (eslintSettings?.[\"max-warnings\"] !== false) {\n eslintArguments.push(\"--max-warnings=0\");\n }\n\n const rules = [];\n\n if (eslintSettings?.[\"rules\"] !== undefined && Array.isArray(eslintSettings[\"rules\"])) {\n rules.push([...eslintSettings[\"rules\"], ...eslintGlobalRulesForFix].filter((rule) => rule.trim().length > 0).map((r) => `\"${r.trim()}\"`));\n } else {\n rules.push(eslintGlobalRulesForFix.map((r) => `\"${r.trim()}\"`));\n }\n\n if (rules.length > 0) {\n eslintArguments.push(`--rule ${rules.join(\" --rule \")}`);\n }\n\n // For lint-staged it's safer to not apply the fix command if it changes the AST\n // @see https://eslint.org/docs/user-guide/command-line-interface#--fix-type\n const fixType = [...(eslintSettings?.[\"fix-type\"] ?? [\"layout\"])].filter((type) => type.trim().length > 0);\n\n if (fixType.length > 0) {\n eslintArguments.push(`--fix-type ${fixType.join(\",\")}`, \"--fix\");\n }\n\n if (eslintSettings?.[\"cache\"]) {\n eslintArguments.push(\"--cache\");\n }\n\n return eslintArguments;\n};\n\nconst createEslintCommands = async (filenames: string[]): Promise<string[]> => {\n const filteredFiles = await removeIgnoredFiles(filenames);\n\n const eslintArguments = createEslintArguments();\n\n if (eslintSettings?.[\"config\"]) {\n eslintArguments.push(`--config ${eslintSettings[\"config\"]}`);\n\n return [`cross-env NO_LOGS=true eslint ${eslintArguments.join(\" \")} ${filteredFiles.join(\" \")}`];\n }\n\n const groupedFilesNames = groupFilePathsByDirectoryName(filteredFiles);\n const eslintCommands: string[] = [];\n\n Object.values(groupedFilesNames).forEach((filePaths) => {\n let config: string | undefined;\n\n [configFile, `${configFile}.js`, `${configFile}.cjs`, `${configFile}.json`, `${configFile}.yaml`, `${configFile}.yml`].forEach((configName) => {\n if (config) {\n return;\n }\n\n try {\n // eslint-disable-next-line no-template-curly-in-string\n config = getNearestConfigPath(configName, filePaths[0] as \"/${string}\");\n } catch {\n // Ignore\n }\n });\n\n if (config) {\n eslintCommands.push(`cross-env NO_LOGS=true eslint ${eslintArguments.join(\" \")} --config ${config} ${filePaths.join(\" \")}`);\n }\n });\n\n return eslintCommands;\n};\n\nexport default createEslintCommands;\n"]}
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkL5GFXHVL_js = require('./chunk-L5GFXHVL.js');
3
+ var chunkCCERQD4S_js = require('./chunk-CCERQD4S.js');
4
4
  var process = require('process');
5
5
 
6
- var i={[`*.{${["ts","mts","cts"].join(",")}}`]:n=>{let o=new Set;return n.forEach(s=>{try{let t=chunkL5GFXHVL_js.a("tsconfig.json",s);o.add(`tsc --noEmit --project ${t}`);}catch(t){process.env.DEBUG&&console.error(t);}}),[...o]}},f=i;
6
+ var i={[`*.{${["ts","mts","cts"].join(",")}}`]:n=>{let o=new Set;return n.forEach(s=>{try{let t=chunkCCERQD4S_js.a("tsconfig.json",s);o.add(`tsc --noEmit --project ${t}`);}catch(t){process.env.DEBUG&&console.error(t);}}),[...o]}},f=i;
7
7
 
8
8
  exports.a = f;
9
9
  //# sourceMappingURL=out.js.map
10
- //# sourceMappingURL=chunk-LSR35CMP.js.map
10
+ //# sourceMappingURL=chunk-VWUDOPED.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/groups/typescript.ts"],"names":["env","group","filenames","commands","filePath","tsconfigPath","get_nearest_config_path_default","error","typescript_default"],"mappings":"wCACA,OAAS,OAAAA,MAAW,UAIpB,IAAMC,EAAgB,CAClB,CAAC,MAAM,CAAC,KAAM,MAAO,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG,EAAIC,GAAwB,CAChE,IAAMC,EAAW,IAAI,IAErB,OAAAD,EAAU,QAASE,GAAa,CAC5B,GAAI,CAEA,IAAMC,EAAeC,EAAqB,gBAAiBF,CAAwB,EAEnFD,EAAS,IAAI,0BAA0BE,CAAY,EAAE,CACzD,OAASE,EAAP,CACMP,EAAI,OACJ,QAAQ,MAAMO,CAAK,CAE3B,CACJ,CAAC,EAEM,CAAC,GAAGJ,CAAQ,CACvB,CACJ,EAEOK,EAAQP","sourcesContent":["import type { Config } from \"lint-staged\";\nimport { env } from \"node:process\";\n\nimport getNearestConfigPath from \"../utils/get-nearest-config-path\";\n\nconst group: Config = {\n [`*.{${[\"ts\", \"mts\", \"cts\"].join(\",\")}}`]: (filenames: string[]) => {\n const commands = new Set<string>();\n\n filenames.forEach((filePath) => {\n try {\n // eslint-disable-next-line no-template-curly-in-string\n const tsconfigPath = getNearestConfigPath(\"tsconfig.json\", filePath as \"/${string}\");\n\n commands.add(`tsc --noEmit --project ${tsconfigPath}`);\n } catch (error: any) {\n if (env[\"DEBUG\"]) {\n console.error(error);\n }\n }\n });\n\n return [...commands];\n },\n};\n\nexport default group;\n"]}
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkT755FU2I_js = require('./chunk-T755FU2I.js');
3
+ var chunkHAERDTLI_js = require('./chunk-HAERDTLI.js');
4
4
  var packageJsonUtils = require('@anolilab/package-json-utils');
5
5
 
6
- var a=packageJsonUtils.hasDependency("sort-package-json")||packageJsonUtils.hasDevDependency("sort-package-json"),t={[`*.{${["json","json5","jsonc"].join(",")}}`]:o=>[`prettier --write ${chunkT755FU2I_js.b(o)}`],...a?{"package.json,{packages,apps}/*/package.json":o=>[`sort-package-json ${chunkT755FU2I_js.b(o)}`]}:{}},c=t;
6
+ var a=packageJsonUtils.hasDependency("sort-package-json")||packageJsonUtils.hasDevDependency("sort-package-json"),t={[`*.{${["json","json5","jsonc"].join(",")}}`]:o=>[`prettier --write ${chunkHAERDTLI_js.b(o)}`],...a?{"package.json,{packages,apps}/*/package.json":o=>[`sort-package-json ${chunkHAERDTLI_js.b(o)}`]}:{}},c=t;
7
7
 
8
8
  exports.a = c;
9
9
  //# sourceMappingURL=out.js.map
10
- //# sourceMappingURL=chunk-UF7UO5PL.js.map
10
+ //# sourceMappingURL=chunk-X6YOEYWM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/groups/json.ts"],"names":["hasDependency","hasDevDependency","hasSortPackageJson","group","filenames","concat_files_default","json_default"],"mappings":"wCAAA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,+BAKhD,IAAMC,EAAqBF,EAAc,mBAAmB,GAAKC,EAAiB,mBAAmB,EAE/FE,EAAgB,CAClB,CAAC,MAAM,CAAC,OAAQ,QAAS,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,EAAIC,GAAwB,CAAC,oBAAoBC,EAAYD,CAAS,CAAC,EAAE,EACvH,GAAIF,EAAqB,CAAE,8CAAgDE,GAAwB,CAAC,qBAAqBC,EAAYD,CAAS,CAAC,EAAE,CAAE,EAAI,CAAC,CAC5J,EAEOE,EAAQH","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nconst hasSortPackageJson = hasDependency(\"sort-package-json\") || hasDevDependency(\"sort-package-json\");\n\nconst group: Config = {\n [`*.{${[\"json\", \"json5\", \"jsonc\"].join(\",\")}}`]: (filenames: string[]) => [`prettier --write ${concatFiles(filenames)}`],\n ...(hasSortPackageJson ? { \"package.json,{packages,apps}/*/package.json\": (filenames: string[]) => [`sort-package-json ${concatFiles(filenames)}`] } : {}),\n};\n\nexport default group;\n"]}
@@ -6,4 +6,4 @@ var h=e=>{let t=r.sync("package.json",{cwd:e});return t&&dirname(t)},c=e=>{let t
6
6
 
7
7
  export { d as a };
8
8
  //# sourceMappingURL=out.js.map
9
- //# sourceMappingURL=chunk-AMNQJNNY.mjs.map
9
+ //# sourceMappingURL=chunk-YUER2OJU.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/get-nearest-config-path.ts"],"names":["findUp","existsSync","dirname","join","packageDirectorySync","cwd","filePath","getNearestPackageRootPath","packageDirectoryPath","joinPaths","paths","joined","getNearestConfigPath","fileName","packageRootPath","configPath","get_nearest_config_path_default"],"mappings":"AAAA,OAAOA,MAAY,UACnB,OAAS,cAAAC,MAAkB,KAC3B,OAAS,WAAAC,EAAS,QAAAC,MAAY,OAG9B,IAAMC,EAAwBC,GAAiB,CAC3C,IAAMC,EAAWN,EAAO,KAAK,eAAgB,CAAE,IAAAK,CAAI,CAAC,EAEpD,OAAOC,GAAYJ,EAAQI,CAAQ,CACvC,EAEMC,EAA6BF,GAA+B,CAC9D,IAAMG,EAAuBJ,EAAqBC,GAAO,QAAQ,IAAI,CAAC,EAEtE,GAAIG,GAAsB,WAAW,GAAG,EACpC,OAAOA,EAGX,MAAM,IAAI,MAAM,kEAAkEH,CAAG,GAAG,CAC5F,EAEMI,EAA8CC,GAA2B,CAC3E,IAAMC,EAASR,EAAK,GAAGO,CAAK,EAE5B,GAAIC,EAAO,WAAW,GAAG,EACrB,OAAOA,EAGX,MAAM,IAAI,UAAU,8CAA8C,CACtE,EAEMC,EAAuB,CAAkEC,EAAaR,IAA8B,CACtI,IAAMS,EAAkBP,EAA0BF,CAAG,EAC/CU,EAAaN,EAAkB,CAACK,EAAsBD,CAAQ,CAAC,EAErE,GAAIZ,EAAWc,CAAU,EACrB,OAAOA,EAGX,MAAM,IAAI,MAAM,0BAA0BF,CAAQ,SAAS,CAC/D,EAMOG,EAAQJ","sourcesContent":["import findUp from \"find-up\";\nimport { existsSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport type { Join } from \"type-fest\";\n\nconst packageDirectorySync = (cwd?: string) => {\n const filePath = findUp.sync(\"package.json\", { cwd });\n\n return filePath && dirname(filePath);\n};\n\nconst getNearestPackageRootPath = (cwd?: string): AbsolutePath => {\n const packageDirectoryPath = packageDirectorySync(cwd ?? process.cwd());\n\n if (packageDirectoryPath?.startsWith(\"/\")) {\n return packageDirectoryPath as AbsolutePath;\n }\n\n throw new Error(`Cannot determine the nearest root of the package for the file: ${cwd}!`);\n};\n\nconst joinPaths = <T extends ReadonlyArray<string>>(paths: T): Join<T, \"/\"> => {\n const joined = join(...paths);\n\n if (joined.startsWith(\"/\")) {\n return joined as Join<T, \"/\">;\n }\n\n throw new TypeError(`Joined path did not return an absolute path.`);\n};\n\nconst getNearestConfigPath = <N extends ConfigFileName, A extends AbsolutePath = AbsolutePath>(fileName: N, cwd?: A): ConfigPath<A, N> => {\n const packageRootPath = getNearestPackageRootPath(cwd);\n const configPath = joinPaths<[A, N]>([packageRootPath as A, fileName]);\n\n if (existsSync(configPath)) {\n return configPath;\n }\n\n throw new Error(`Cannot locate nearest \"${fileName}\" file!`);\n};\n\nexport type AbsolutePath = `/${string}`;\nexport type ConfigFileName = string;\nexport type ConfigPath<A extends AbsolutePath, N extends ConfigFileName> = Join<[A, N], \"/\">;\n\nexport default getNearestConfigPath;\n"]}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkG7Q3HUT7_js = require('../../chunk-G7Q3HUT7.js');
4
- require('../../chunk-L5GFXHVL.js');
5
- require('../../chunk-T755FU2I.js');
3
+ var chunkTWU5ONPK_js = require('../../chunk-TWU5ONPK.js');
4
+ require('../../chunk-CCERQD4S.js');
5
+ require('../../chunk-HAERDTLI.js');
6
6
 
7
7
 
8
8
 
9
- module.exports = chunkG7Q3HUT7_js.b;
9
+ module.exports = chunkTWU5ONPK_js.b;
10
10
  //# sourceMappingURL=out.js.map
11
11
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- export { b as default } from '../../chunk-PT4S7CCV.mjs';
2
- import '../../chunk-AMNQJNNY.mjs';
3
- import '../../chunk-OTRYI4YE.mjs';
1
+ export { b as default } from '../../chunk-5IWFJALT.mjs';
2
+ import '../../chunk-YUER2OJU.mjs';
3
+ import '../../chunk-MKZ4RRUB.mjs';
4
4
  //# sourceMappingURL=out.js.map
5
5
  //# sourceMappingURL=index.mjs.map
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkUF7UO5PL_js = require('../chunk-UF7UO5PL.js');
4
- require('../chunk-T755FU2I.js');
3
+ var chunkX6YOEYWM_js = require('../chunk-X6YOEYWM.js');
4
+ require('../chunk-HAERDTLI.js');
5
5
 
6
6
 
7
7
 
8
- module.exports = chunkUF7UO5PL_js.a;
8
+ module.exports = chunkX6YOEYWM_js.a;
9
9
  //# sourceMappingURL=out.js.map
10
10
  //# sourceMappingURL=json.js.map
@@ -1,4 +1,4 @@
1
- export { a as default } from '../chunk-CRK67F7X.mjs';
2
- import '../chunk-OTRYI4YE.mjs';
1
+ export { a as default } from '../chunk-MQKG4NW7.mjs';
2
+ import '../chunk-MKZ4RRUB.mjs';
3
3
  //# sourceMappingURL=out.js.map
4
4
  //# sourceMappingURL=json.mjs.map
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkJTIOAOUE_js = require('../chunk-JTIOAOUE.js');
4
- require('../chunk-T755FU2I.js');
3
+ var chunk5AJKEWYR_js = require('../chunk-5AJKEWYR.js');
4
+ require('../chunk-HAERDTLI.js');
5
5
 
6
6
 
7
7
 
8
- module.exports = chunkJTIOAOUE_js.a;
8
+ module.exports = chunk5AJKEWYR_js.a;
9
9
  //# sourceMappingURL=out.js.map
10
10
  //# sourceMappingURL=markdown.js.map
@@ -1,4 +1,4 @@
1
- export { a as default } from '../chunk-VW6R74AT.mjs';
2
- import '../chunk-OTRYI4YE.mjs';
1
+ export { a as default } from '../chunk-QUK4P43M.mjs';
2
+ import '../chunk-MKZ4RRUB.mjs';
3
3
  //# sourceMappingURL=out.js.map
4
4
  //# sourceMappingURL=markdown.mjs.map
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunk4PCPJEEI_js = require('../chunk-4PCPJEEI.js');
4
- require('../chunk-T755FU2I.js');
3
+ var chunkGXZBYQVF_js = require('../chunk-GXZBYQVF.js');
4
+ require('../chunk-HAERDTLI.js');
5
5
 
6
6
 
7
7
 
8
- module.exports = chunk4PCPJEEI_js.a;
8
+ module.exports = chunkGXZBYQVF_js.a;
9
9
  //# sourceMappingURL=out.js.map
10
10
  //# sourceMappingURL=stylesheets.js.map
@@ -1,4 +1,4 @@
1
- export { a as default } from '../chunk-UKLFK6IR.mjs';
2
- import '../chunk-OTRYI4YE.mjs';
1
+ export { a as default } from '../chunk-2NJHQVOR.mjs';
2
+ import '../chunk-MKZ4RRUB.mjs';
3
3
  //# sourceMappingURL=out.js.map
4
4
  //# sourceMappingURL=stylesheets.mjs.map
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkZRW63OZY_js = require('../chunk-ZRW63OZY.js');
4
- require('../chunk-T755FU2I.js');
3
+ var chunkMCOYFEKC_js = require('../chunk-MCOYFEKC.js');
4
+ require('../chunk-HAERDTLI.js');
5
5
 
6
6
 
7
7
 
8
- module.exports = chunkZRW63OZY_js.a;
8
+ module.exports = chunkMCOYFEKC_js.a;
9
9
  //# sourceMappingURL=out.js.map
10
10
  //# sourceMappingURL=tests.js.map
@@ -1,4 +1,4 @@
1
- export { a as default } from '../chunk-BGOY7MBY.mjs';
2
- import '../chunk-OTRYI4YE.mjs';
1
+ export { a as default } from '../chunk-BVGKAMQV.mjs';
2
+ import '../chunk-MKZ4RRUB.mjs';
3
3
  //# sourceMappingURL=out.js.map
4
4
  //# sourceMappingURL=tests.mjs.map
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkLSR35CMP_js = require('../chunk-LSR35CMP.js');
4
- require('../chunk-L5GFXHVL.js');
3
+ var chunkVWUDOPED_js = require('../chunk-VWUDOPED.js');
4
+ require('../chunk-CCERQD4S.js');
5
5
 
6
6
 
7
7
 
8
- module.exports = chunkLSR35CMP_js.a;
8
+ module.exports = chunkVWUDOPED_js.a;
9
9
  //# sourceMappingURL=out.js.map
10
10
  //# sourceMappingURL=typescript.js.map
@@ -1,4 +1,4 @@
1
- export { a as default } from '../chunk-UHH5GDWT.mjs';
2
- import '../chunk-AMNQJNNY.mjs';
1
+ export { a as default } from '../chunk-A5GQULUO.mjs';
2
+ import '../chunk-YUER2OJU.mjs';
3
3
  //# sourceMappingURL=out.js.map
4
4
  //# sourceMappingURL=typescript.mjs.map
package/dist/index.js CHANGED
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
 
3
- var chunkLSR35CMP_js = require('./chunk-LSR35CMP.js');
4
- var chunkG7Q3HUT7_js = require('./chunk-G7Q3HUT7.js');
5
- require('./chunk-L5GFXHVL.js');
6
- var chunkUF7UO5PL_js = require('./chunk-UF7UO5PL.js');
7
- var chunkJTIOAOUE_js = require('./chunk-JTIOAOUE.js');
3
+ var chunkVWUDOPED_js = require('./chunk-VWUDOPED.js');
4
+ var chunkTWU5ONPK_js = require('./chunk-TWU5ONPK.js');
5
+ require('./chunk-CCERQD4S.js');
6
+ var chunkX6YOEYWM_js = require('./chunk-X6YOEYWM.js');
7
+ var chunk5AJKEWYR_js = require('./chunk-5AJKEWYR.js');
8
8
  var chunk6EWZW5LF_js = require('./chunk-6EWZW5LF.js');
9
- var chunk4PCPJEEI_js = require('./chunk-4PCPJEEI.js');
10
- var chunkZRW63OZY_js = require('./chunk-ZRW63OZY.js');
11
- require('./chunk-T755FU2I.js');
9
+ var chunkGXZBYQVF_js = require('./chunk-GXZBYQVF.js');
10
+ var chunkMCOYFEKC_js = require('./chunk-MCOYFEKC.js');
11
+ require('./chunk-HAERDTLI.js');
12
12
  var process = require('process');
13
13
  var packageJsonUtils = require('@anolilab/package-json-utils');
14
14
 
15
- var N=[{configName:"eslint",config:chunkG7Q3HUT7_js.b,dependencies:["prettier","eslint"]},{configName:"json",config:chunkUF7UO5PL_js.a,dependencies:["prettier","sort-package-json"]},{configName:"markdown",config:chunkJTIOAOUE_js.a,dependencies:["prettier","markdownlint-cli","markdownlint-cli2"]},{configName:"secretlint",config:chunk6EWZW5LF_js.a,dependencies:["secretlint"]},{configName:"stylesheets",config:chunk4PCPJEEI_js.a,dependencies:["stylelint"]},{configName:"tests",config:chunkZRW63OZY_js.a,dependencies:["vite","jest","ava"]},{configName:"typescript",config:chunkLSR35CMP_js.a,dependencies:["typescript"]}],g={},r=[],l={};N.forEach(i=>{let{dependencies:n,config:t,configName:s}=i;if(chunkG7Q3HUT7_js.a?.plugin?.[s]!==!1){let a=[];n.forEach(e=>{(packageJsonUtils.hasDependency(e)||packageJsonUtils.hasDevDependency(e))&&a.push(e);}),a.length>0?(g={...g,...t},r.push(s)):(l[s]={},n.forEach(e=>{l[s][e]=packageJsonUtils.hasDependency(e)||packageJsonUtils.hasDevDependency(e);}));}});var k={...g};var L=()=>{},j=i=>process.env.NO_LOGS?L:n=>console.log(`${i}${n}`),O=j(""),o=O;if(!global.hasAnolilabStagedLintConfigLoaded){process.env.DEBUG&&(o(`
15
+ var N=[{configName:"eslint",config:chunkTWU5ONPK_js.b,dependencies:["prettier","eslint"]},{configName:"json",config:chunkX6YOEYWM_js.a,dependencies:["prettier","sort-package-json"]},{configName:"markdown",config:chunk5AJKEWYR_js.a,dependencies:["prettier","markdownlint-cli","markdownlint-cli2"]},{configName:"secretlint",config:chunk6EWZW5LF_js.a,dependencies:["secretlint"]},{configName:"stylesheets",config:chunkGXZBYQVF_js.a,dependencies:["stylelint"]},{configName:"tests",config:chunkMCOYFEKC_js.a,dependencies:["vite","jest","ava"]},{configName:"typescript",config:chunkVWUDOPED_js.a,dependencies:["typescript"]}],g={},r=[],l={};N.forEach(i=>{let{dependencies:n,config:t,configName:s}=i;if(chunkTWU5ONPK_js.a?.plugin?.[s]!==!1){let a=[];n.forEach(e=>{(packageJsonUtils.hasDependency(e)||packageJsonUtils.hasDevDependency(e))&&a.push(e);}),a.length>0?(g={...g,...t},r.push(s)):(l[s]={},n.forEach(e=>{l[s][e]=packageJsonUtils.hasDependency(e)||packageJsonUtils.hasDevDependency(e);}));}});var k={...g};var L=()=>{},j=i=>process.env.NO_LOGS?L:n=>console.log(`${i}${n}`),O=j(""),o=O;if(!global.hasAnolilabStagedLintConfigLoaded){process.env.DEBUG&&(o(`
16
16
  @anolilab/lint-stage-config loaded the following plugins:
17
17
  `),r.forEach(n=>{o(` ${n}`);}));let i=!1;Object.entries(l).forEach(([n,t])=>{Object.values(t).some(Boolean)&&(i=!0,o(`
18
18
  Your package.json container dependencies for the "${n}" plugin, please add the following dependencies with your chosen package manager to enable this plugin:`),Object.entries(t).forEach(([a,e])=>{e||o(` ${a}`);}));}),i&&(o(`
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/config.ts","../src/utils/logger.ts"],"names":["env","hasDependency","hasDevDependency","groups","eslint_default","json_default","markdown_default","secretlint_default","stylesheets_default","tests_default","typescript_default","loadedPlugins","loadedPluginsNames","possiblePlugins","plugin","dependencies","config","configName","lint_staged_config_default","foundDependencies","dependency","loaded","noop","consolePrefix","prefix","message","consoleLog","logger_default","pluginName","hasLogged","installed"],"mappings":"uVAAA,OAAS,OAAAA,MAAW,UCApB,OAAS,iBAAAC,EAAe,oBAAAC,MAAwB,+BAkBhD,IAAMC,EAAiB,CACnB,CACI,WAAY,SACZ,OAAQC,EACR,aAAc,CAAC,WAAY,QAAQ,CACvC,EACA,CACI,WAAY,OACZ,OAAQC,EACR,aAAc,CAAC,WAAY,mBAAmB,CAClD,EACA,CACI,WAAY,WACZ,OAAQC,EACR,aAAc,CAAC,WAAY,mBAAoB,mBAAmB,CACtE,EACA,CACI,WAAY,aACZ,OAAQC,EACR,aAAc,CAAC,YAAY,CAC/B,EACA,CACI,WAAY,cACZ,OAAQC,EACR,aAAc,CAAC,WAAW,CAC9B,EACA,CACI,WAAY,QACZ,OAAQC,EACR,aAAc,CAAC,OAAQ,OAAQ,KAAK,CACxC,EACA,CACI,WAAY,aACZ,OAAQC,EACR,aAAc,CAAC,YAAY,CAC/B,CACJ,EAEIC,EAAwB,CAAC,EACvBC,EAA+B,CAAC,EAEhCC,EAA0E,CAAC,EAEjFV,EAAO,QAASW,GAAW,CACvB,GAAM,CAAE,aAAAC,EAAc,OAAAC,EAAQ,WAAAC,CAAW,EAAIH,EAE7C,GAAKI,GAAkG,SAAYD,CAAU,IAAM,GAAO,CACtI,IAAME,EAAoB,CAAC,EAE3BJ,EAAa,QAASK,GAAe,EAC7BnB,EAAcmB,CAAU,GAAKlB,EAAiBkB,CAAU,IACxDD,EAAkB,KAAKC,CAAU,CAEzC,CAAC,EAEGD,EAAkB,OAAS,GAC3BR,EAAgB,CAAE,GAAGA,EAAe,GAAGK,CAAO,EAC9CJ,EAAmB,KAAKK,CAAU,IAElCJ,EAAgBI,CAAU,EAAI,CAAC,EAE/BF,EAAa,QAASK,GAAe,CAChCP,EAAgBI,CAAU,EAAiCG,CAAU,EAAInB,EAAcmB,CAAU,GAAKlB,EAAiBkB,CAAU,CACtI,CAAC,EAET,CACJ,CAAC,EAED,IAAMC,EAAiB,CAAE,GAAGV,CAAc,ECtF1C,OAAS,OAAAX,MAAW,UAEpB,IAAMsB,EAAO,IAAG,GAEVC,EAAiBC,GAElBxB,EAAI,QAAasB,EAAQG,GAAoB,QAAQ,IAAI,GAAGD,IAASC,GAAS,EAE7EC,EAAaH,EAAc,EAAE,EAE5BI,EAAQD,EFJf,GAAI,CAAC,OAAO,kCAAmC,CACvC1B,EAAI,QACJ2B,EAAW;AAAA;AAAA,CAA+D,EAE1Ef,EAAmB,QAASgB,GAAe,CACvCD,EAAW,OAAOC,GAAY,CAClC,CAAC,GAGL,IAAIC,EAAY,GAEhB,OAAO,QAAQhB,CAAe,EAAE,QAAQ,CAAC,CAACC,EAAQC,CAAY,IAAM,CACvC,OAAO,OAAOA,CAAY,EAAE,KAAK,OAAO,IAG7Dc,EAAY,GACZF,EACI;AAAA,oDAAuDb,0GAC3D,EAEA,OAAO,QAAQC,CAAY,EAAE,QAAQ,CAAC,CAACK,EAAYU,CAAS,IAAM,CACzDA,GACDH,EAAW,OAAOP,GAAY,CAEtC,CAAC,EAET,CAAC,EAEGS,IACAF,EAAW;AAAA,iEAAoE,EAC/EA,EAAW;AAAA,CAAiF,GAGhGA,EAAW,iGAAiG,EAE5G,OAAO,kCAAoC,EAC/C","sourcesContent":["import { env } from \"node:process\";\n\nimport { loadedPluginsNames, possiblePlugins } from \"./config\";\nimport consoleLog from \"./utils/logger\";\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabStagedLintConfigLoaded) {\n if (env[\"DEBUG\"]) {\n consoleLog(\"\\n@anolilab/lint-stage-config loaded the following plugins:\\n\");\n\n loadedPluginsNames.forEach((pluginName) => {\n consoleLog(` ${pluginName}`);\n });\n }\n\n let hasLogged = false;\n\n Object.entries(possiblePlugins).forEach(([plugin, dependencies]) => {\n const hasOneDependency = Object.values(dependencies).some(Boolean);\n\n if (hasOneDependency) {\n hasLogged = true;\n consoleLog(\n `\\nYour package.json container dependencies for the \"${plugin}\" plugin, please add the following dependencies with your chosen package manager to enable this plugin:`,\n );\n\n Object.entries(dependencies).forEach(([dependency, installed]) => {\n if (!installed) {\n consoleLog(` ${dependency}`);\n }\n });\n }\n });\n\n if (hasLogged) {\n consoleLog(\"\\nTo disable this message, add the following to your package.json:\");\n consoleLog(' \"anolilab\": { \"lint-stage-config\": { plugin: { \"plugin-name\": false } } }\\n');\n }\n\n consoleLog('To disable all logging, add the following to your eslint command call \"NO_LOGS=true eslint ...\"');\n\n global.hasAnolilabStagedLintConfigLoaded = true;\n}\n\nexport { loadedPlugins as default } from \"./config\";\n","import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport eslintConfig from \"./groups/eslint\";\nimport jsonConfig from \"./groups/json\";\nimport markdownConfig from \"./groups/markdown\";\nimport secretlintConfig from \"./groups/secretlint\";\nimport stylesheetsConfig from \"./groups/stylesheets\";\nimport testsConfig from \"./groups/tests\";\nimport typescriptConfig from \"./groups/typescript\";\nimport anolilabLintStagedConfig from \"./utils/lint-staged-config\";\n\ntype Groups = {\n configName: string;\n config: Config;\n dependencies: string[];\n}[];\n\nconst groups: Groups = [\n {\n configName: \"eslint\",\n config: eslintConfig,\n dependencies: [\"prettier\", \"eslint\"],\n },\n {\n configName: \"json\",\n config: jsonConfig,\n dependencies: [\"prettier\", \"sort-package-json\"],\n },\n {\n configName: \"markdown\",\n config: markdownConfig,\n dependencies: [\"prettier\", \"markdownlint-cli\", \"markdownlint-cli2\"],\n },\n {\n configName: \"secretlint\",\n config: secretlintConfig,\n dependencies: [\"secretlint\"],\n },\n {\n configName: \"stylesheets\",\n config: stylesheetsConfig,\n dependencies: [\"stylelint\"],\n },\n {\n configName: \"tests\",\n config: testsConfig,\n dependencies: [\"vite\", \"jest\", \"ava\"],\n },\n {\n configName: \"typescript\",\n config: typescriptConfig,\n dependencies: [\"typescript\"],\n },\n];\n\nlet loadedPlugins: Config = {};\nconst loadedPluginsNames: string[] = [];\n\nconst possiblePlugins: { [rule: string]: { [packageName: string]: boolean } } = {};\n\ngroups.forEach((plugin) => {\n const { dependencies, config, configName } = plugin;\n\n if ((anolilabLintStagedConfig as unknown as { [key: string]: { [key: string]: false | undefined } })?.[\"plugin\"]?.[configName] !== false) {\n const foundDependencies = [];\n\n dependencies.forEach((dependency) => {\n if (hasDependency(dependency) || hasDevDependency(dependency)) {\n foundDependencies.push(dependency);\n }\n });\n\n if (foundDependencies.length > 0) {\n loadedPlugins = { ...loadedPlugins, ...config };\n loadedPluginsNames.push(configName);\n } else {\n possiblePlugins[configName] = {};\n\n dependencies.forEach((dependency) => {\n (possiblePlugins[configName] as { [key: string]: boolean })[dependency] = hasDependency(dependency) || hasDevDependency(dependency);\n });\n }\n }\n});\n\nconst loaded: Config = { ...loadedPlugins };\n\nexport { loaded as loadedPlugins, loadedPluginsNames, possiblePlugins };\n","import { env } from \"node:process\";\n\nconst noop = () => undefined;\n\nconst consolePrefix = (prefix: string) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n (env[\"NO_LOGS\"] ? noop : (message: string) => console.log(`${prefix}${message}`));\n\nconst consoleLog = consolePrefix(\"\");\n\nexport default consoleLog;\n"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/config.ts","../src/utils/logger.ts"],"names":["env","hasDependency","hasDevDependency","groups","eslint_default","json_default","markdown_default","secretlint_default","stylesheets_default","tests_default","typescript_default","loadedPlugins","loadedPluginsNames","possiblePlugins","plugin","dependencies","config","configName","lint_staged_config_default","foundDependencies","dependency","loaded","noop","consolePrefix","prefix","message","consoleLog","logger_default","pluginName","hasLogged","installed"],"mappings":"uVAAA,OAAS,OAAAA,MAAW,UCApB,OAAS,iBAAAC,EAAe,oBAAAC,MAAwB,+BAkBhD,IAAMC,EAAiB,CACnB,CACI,WAAY,SACZ,OAAQC,EACR,aAAc,CAAC,WAAY,QAAQ,CACvC,EACA,CACI,WAAY,OACZ,OAAQC,EACR,aAAc,CAAC,WAAY,mBAAmB,CAClD,EACA,CACI,WAAY,WACZ,OAAQC,EACR,aAAc,CAAC,WAAY,mBAAoB,mBAAmB,CACtE,EACA,CACI,WAAY,aACZ,OAAQC,EACR,aAAc,CAAC,YAAY,CAC/B,EACA,CACI,WAAY,cACZ,OAAQC,EACR,aAAc,CAAC,WAAW,CAC9B,EACA,CACI,WAAY,QACZ,OAAQC,EACR,aAAc,CAAC,OAAQ,OAAQ,KAAK,CACxC,EACA,CACI,WAAY,aACZ,OAAQC,EACR,aAAc,CAAC,YAAY,CAC/B,CACJ,EAEIC,EAAwB,CAAC,EACvBC,EAA+B,CAAC,EAEhCC,EAA0E,CAAC,EAEjFV,EAAO,QAASW,GAAW,CACvB,GAAM,CAAE,aAAAC,EAAc,OAAAC,EAAQ,WAAAC,CAAW,EAAIH,EAE7C,GAAKI,GAAkG,SAAYD,CAAU,IAAM,GAAO,CACtI,IAAME,EAAoB,CAAC,EAE3BJ,EAAa,QAASK,GAAe,EAC7BnB,EAAcmB,CAAU,GAAKlB,EAAiBkB,CAAU,IACxDD,EAAkB,KAAKC,CAAU,CAEzC,CAAC,EAEGD,EAAkB,OAAS,GAC3BR,EAAgB,CAAE,GAAGA,EAAe,GAAGK,CAAO,EAC9CJ,EAAmB,KAAKK,CAAU,IAElCJ,EAAgBI,CAAU,EAAI,CAAC,EAE/BF,EAAa,QAASK,GAAe,CAChCP,EAAgBI,CAAU,EAAiCG,CAAU,EAAInB,EAAcmB,CAAU,GAAKlB,EAAiBkB,CAAU,CACtI,CAAC,EAET,CACJ,CAAC,EAED,IAAMC,EAAiB,CAAE,GAAGV,CAAc,ECtF1C,OAAS,OAAAX,MAAW,UAEpB,IAAMsB,EAAO,IAAG,GAEVC,EAAiBC,GAElBxB,EAAI,QAAasB,EAAQG,GAAoB,QAAQ,IAAI,GAAGD,CAAM,GAAGC,CAAO,EAAE,EAE7EC,EAAaH,EAAc,EAAE,EAE5BI,EAAQD,EFJf,GAAI,CAAC,OAAO,kCAAmC,CACvC1B,EAAI,QACJ2B,EAAW;AAAA;AAAA,CAA+D,EAE1Ef,EAAmB,QAASgB,GAAe,CACvCD,EAAW,OAAOC,CAAU,EAAE,CAClC,CAAC,GAGL,IAAIC,EAAY,GAEhB,OAAO,QAAQhB,CAAe,EAAE,QAAQ,CAAC,CAACC,EAAQC,CAAY,IAAM,CACvC,OAAO,OAAOA,CAAY,EAAE,KAAK,OAAO,IAG7Dc,EAAY,GACZF,EACI;AAAA,oDAAuDb,CAAM,yGACjE,EAEA,OAAO,QAAQC,CAAY,EAAE,QAAQ,CAAC,CAACK,EAAYU,CAAS,IAAM,CACzDA,GACDH,EAAW,OAAOP,CAAU,EAAE,CAEtC,CAAC,EAET,CAAC,EAEGS,IACAF,EAAW;AAAA,iEAAoE,EAC/EA,EAAW;AAAA,CAAiF,GAGhGA,EAAW,iGAAiG,EAE5G,OAAO,kCAAoC,EAC/C","sourcesContent":["import { env } from \"node:process\";\n\nimport { loadedPluginsNames, possiblePlugins } from \"./config\";\nimport consoleLog from \"./utils/logger\";\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabStagedLintConfigLoaded) {\n if (env[\"DEBUG\"]) {\n consoleLog(\"\\n@anolilab/lint-stage-config loaded the following plugins:\\n\");\n\n loadedPluginsNames.forEach((pluginName) => {\n consoleLog(` ${pluginName}`);\n });\n }\n\n let hasLogged = false;\n\n Object.entries(possiblePlugins).forEach(([plugin, dependencies]) => {\n const hasOneDependency = Object.values(dependencies).some(Boolean);\n\n if (hasOneDependency) {\n hasLogged = true;\n consoleLog(\n `\\nYour package.json container dependencies for the \"${plugin}\" plugin, please add the following dependencies with your chosen package manager to enable this plugin:`,\n );\n\n Object.entries(dependencies).forEach(([dependency, installed]) => {\n if (!installed) {\n consoleLog(` ${dependency}`);\n }\n });\n }\n });\n\n if (hasLogged) {\n consoleLog(\"\\nTo disable this message, add the following to your package.json:\");\n consoleLog(' \"anolilab\": { \"lint-stage-config\": { plugin: { \"plugin-name\": false } } }\\n');\n }\n\n consoleLog('To disable all logging, add the following to your eslint command call \"NO_LOGS=true eslint ...\"');\n\n global.hasAnolilabStagedLintConfigLoaded = true;\n}\n\nexport { loadedPlugins as default } from \"./config\";\n","import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport eslintConfig from \"./groups/eslint\";\nimport jsonConfig from \"./groups/json\";\nimport markdownConfig from \"./groups/markdown\";\nimport secretlintConfig from \"./groups/secretlint\";\nimport stylesheetsConfig from \"./groups/stylesheets\";\nimport testsConfig from \"./groups/tests\";\nimport typescriptConfig from \"./groups/typescript\";\nimport anolilabLintStagedConfig from \"./utils/lint-staged-config\";\n\ntype Groups = {\n configName: string;\n config: Config;\n dependencies: string[];\n}[];\n\nconst groups: Groups = [\n {\n configName: \"eslint\",\n config: eslintConfig,\n dependencies: [\"prettier\", \"eslint\"],\n },\n {\n configName: \"json\",\n config: jsonConfig,\n dependencies: [\"prettier\", \"sort-package-json\"],\n },\n {\n configName: \"markdown\",\n config: markdownConfig,\n dependencies: [\"prettier\", \"markdownlint-cli\", \"markdownlint-cli2\"],\n },\n {\n configName: \"secretlint\",\n config: secretlintConfig,\n dependencies: [\"secretlint\"],\n },\n {\n configName: \"stylesheets\",\n config: stylesheetsConfig,\n dependencies: [\"stylelint\"],\n },\n {\n configName: \"tests\",\n config: testsConfig,\n dependencies: [\"vite\", \"jest\", \"ava\"],\n },\n {\n configName: \"typescript\",\n config: typescriptConfig,\n dependencies: [\"typescript\"],\n },\n];\n\nlet loadedPlugins: Config = {};\nconst loadedPluginsNames: string[] = [];\n\nconst possiblePlugins: { [rule: string]: { [packageName: string]: boolean } } = {};\n\ngroups.forEach((plugin) => {\n const { dependencies, config, configName } = plugin;\n\n if ((anolilabLintStagedConfig as unknown as { [key: string]: { [key: string]: false | undefined } })?.[\"plugin\"]?.[configName] !== false) {\n const foundDependencies = [];\n\n dependencies.forEach((dependency) => {\n if (hasDependency(dependency) || hasDevDependency(dependency)) {\n foundDependencies.push(dependency);\n }\n });\n\n if (foundDependencies.length > 0) {\n loadedPlugins = { ...loadedPlugins, ...config };\n loadedPluginsNames.push(configName);\n } else {\n possiblePlugins[configName] = {};\n\n dependencies.forEach((dependency) => {\n (possiblePlugins[configName] as { [key: string]: boolean })[dependency] = hasDependency(dependency) || hasDevDependency(dependency);\n });\n }\n }\n});\n\nconst loaded: Config = { ...loadedPlugins };\n\nexport { loaded as loadedPlugins, loadedPluginsNames, possiblePlugins };\n","import { env } from \"node:process\";\n\nconst noop = () => undefined;\n\nconst consolePrefix = (prefix: string) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n (env[\"NO_LOGS\"] ? noop : (message: string) => console.log(`${prefix}${message}`));\n\nconst consoleLog = consolePrefix(\"\");\n\nexport default consoleLog;\n"]}
package/dist/index.mjs CHANGED
@@ -1,12 +1,12 @@
1
- import { a as a$6 } from './chunk-UHH5GDWT.mjs';
2
- import { a, b } from './chunk-PT4S7CCV.mjs';
3
- import './chunk-AMNQJNNY.mjs';
4
- import { a as a$1 } from './chunk-CRK67F7X.mjs';
5
- import { a as a$2 } from './chunk-VW6R74AT.mjs';
1
+ import { a as a$6 } from './chunk-A5GQULUO.mjs';
2
+ import { a, b } from './chunk-5IWFJALT.mjs';
3
+ import './chunk-YUER2OJU.mjs';
4
+ import { a as a$1 } from './chunk-MQKG4NW7.mjs';
5
+ import { a as a$2 } from './chunk-QUK4P43M.mjs';
6
6
  import { a as a$3 } from './chunk-4RVIFLAT.mjs';
7
- import { a as a$4 } from './chunk-UKLFK6IR.mjs';
8
- import { a as a$5 } from './chunk-BGOY7MBY.mjs';
9
- import './chunk-OTRYI4YE.mjs';
7
+ import { a as a$4 } from './chunk-2NJHQVOR.mjs';
8
+ import { a as a$5 } from './chunk-BVGKAMQV.mjs';
9
+ import './chunk-MKZ4RRUB.mjs';
10
10
  import { env } from 'process';
11
11
  import { hasDependency, hasDevDependency } from '@anolilab/package-json-utils';
12
12
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/config.ts","../src/utils/logger.ts"],"names":["env","hasDependency","hasDevDependency","groups","eslint_default","json_default","markdown_default","secretlint_default","stylesheets_default","tests_default","typescript_default","loadedPlugins","loadedPluginsNames","possiblePlugins","plugin","dependencies","config","configName","lint_staged_config_default","foundDependencies","dependency","loaded","noop","consolePrefix","prefix","message","consoleLog","logger_default","pluginName","hasLogged","installed"],"mappings":"gWAAA,OAAS,OAAAA,MAAW,UCApB,OAAS,iBAAAC,EAAe,oBAAAC,MAAwB,+BAkBhD,IAAMC,EAAiB,CACnB,CACI,WAAY,SACZ,OAAQC,EACR,aAAc,CAAC,WAAY,QAAQ,CACvC,EACA,CACI,WAAY,OACZ,OAAQC,EACR,aAAc,CAAC,WAAY,mBAAmB,CAClD,EACA,CACI,WAAY,WACZ,OAAQC,EACR,aAAc,CAAC,WAAY,mBAAoB,mBAAmB,CACtE,EACA,CACI,WAAY,aACZ,OAAQC,EACR,aAAc,CAAC,YAAY,CAC/B,EACA,CACI,WAAY,cACZ,OAAQC,EACR,aAAc,CAAC,WAAW,CAC9B,EACA,CACI,WAAY,QACZ,OAAQC,EACR,aAAc,CAAC,OAAQ,OAAQ,KAAK,CACxC,EACA,CACI,WAAY,aACZ,OAAQC,EACR,aAAc,CAAC,YAAY,CAC/B,CACJ,EAEIC,EAAwB,CAAC,EACvBC,EAA+B,CAAC,EAEhCC,EAA0E,CAAC,EAEjFV,EAAO,QAASW,GAAW,CACvB,GAAM,CAAE,aAAAC,EAAc,OAAAC,EAAQ,WAAAC,CAAW,EAAIH,EAE7C,GAAKI,GAAkG,SAAYD,CAAU,IAAM,GAAO,CACtI,IAAME,EAAoB,CAAC,EAE3BJ,EAAa,QAASK,GAAe,EAC7BnB,EAAcmB,CAAU,GAAKlB,EAAiBkB,CAAU,IACxDD,EAAkB,KAAKC,CAAU,CAEzC,CAAC,EAEGD,EAAkB,OAAS,GAC3BR,EAAgB,CAAE,GAAGA,EAAe,GAAGK,CAAO,EAC9CJ,EAAmB,KAAKK,CAAU,IAElCJ,EAAgBI,CAAU,EAAI,CAAC,EAE/BF,EAAa,QAASK,GAAe,CAChCP,EAAgBI,CAAU,EAAiCG,CAAU,EAAInB,EAAcmB,CAAU,GAAKlB,EAAiBkB,CAAU,CACtI,CAAC,EAET,CACJ,CAAC,EAED,IAAMC,EAAiB,CAAE,GAAGV,CAAc,ECtF1C,OAAS,OAAAX,MAAW,UAEpB,IAAMsB,EAAO,IAAG,GAEVC,EAAiBC,GAElBxB,EAAI,QAAasB,EAAQG,GAAoB,QAAQ,IAAI,GAAGD,IAASC,GAAS,EAE7EC,EAAaH,EAAc,EAAE,EAE5BI,EAAQD,EFJf,GAAI,CAAC,OAAO,kCAAmC,CACvC1B,EAAI,QACJ2B,EAAW;AAAA;AAAA,CAA+D,EAE1Ef,EAAmB,QAASgB,GAAe,CACvCD,EAAW,OAAOC,GAAY,CAClC,CAAC,GAGL,IAAIC,EAAY,GAEhB,OAAO,QAAQhB,CAAe,EAAE,QAAQ,CAAC,CAACC,EAAQC,CAAY,IAAM,CACvC,OAAO,OAAOA,CAAY,EAAE,KAAK,OAAO,IAG7Dc,EAAY,GACZF,EACI;AAAA,oDAAuDb,0GAC3D,EAEA,OAAO,QAAQC,CAAY,EAAE,QAAQ,CAAC,CAACK,EAAYU,CAAS,IAAM,CACzDA,GACDH,EAAW,OAAOP,GAAY,CAEtC,CAAC,EAET,CAAC,EAEGS,IACAF,EAAW;AAAA,iEAAoE,EAC/EA,EAAW;AAAA,CAAiF,GAGhGA,EAAW,iGAAiG,EAE5G,OAAO,kCAAoC,EAC/C","sourcesContent":["import { env } from \"node:process\";\n\nimport { loadedPluginsNames, possiblePlugins } from \"./config\";\nimport consoleLog from \"./utils/logger\";\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabStagedLintConfigLoaded) {\n if (env[\"DEBUG\"]) {\n consoleLog(\"\\n@anolilab/lint-stage-config loaded the following plugins:\\n\");\n\n loadedPluginsNames.forEach((pluginName) => {\n consoleLog(` ${pluginName}`);\n });\n }\n\n let hasLogged = false;\n\n Object.entries(possiblePlugins).forEach(([plugin, dependencies]) => {\n const hasOneDependency = Object.values(dependencies).some(Boolean);\n\n if (hasOneDependency) {\n hasLogged = true;\n consoleLog(\n `\\nYour package.json container dependencies for the \"${plugin}\" plugin, please add the following dependencies with your chosen package manager to enable this plugin:`,\n );\n\n Object.entries(dependencies).forEach(([dependency, installed]) => {\n if (!installed) {\n consoleLog(` ${dependency}`);\n }\n });\n }\n });\n\n if (hasLogged) {\n consoleLog(\"\\nTo disable this message, add the following to your package.json:\");\n consoleLog(' \"anolilab\": { \"lint-stage-config\": { plugin: { \"plugin-name\": false } } }\\n');\n }\n\n consoleLog('To disable all logging, add the following to your eslint command call \"NO_LOGS=true eslint ...\"');\n\n global.hasAnolilabStagedLintConfigLoaded = true;\n}\n\nexport { loadedPlugins as default } from \"./config\";\n","import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport eslintConfig from \"./groups/eslint\";\nimport jsonConfig from \"./groups/json\";\nimport markdownConfig from \"./groups/markdown\";\nimport secretlintConfig from \"./groups/secretlint\";\nimport stylesheetsConfig from \"./groups/stylesheets\";\nimport testsConfig from \"./groups/tests\";\nimport typescriptConfig from \"./groups/typescript\";\nimport anolilabLintStagedConfig from \"./utils/lint-staged-config\";\n\ntype Groups = {\n configName: string;\n config: Config;\n dependencies: string[];\n}[];\n\nconst groups: Groups = [\n {\n configName: \"eslint\",\n config: eslintConfig,\n dependencies: [\"prettier\", \"eslint\"],\n },\n {\n configName: \"json\",\n config: jsonConfig,\n dependencies: [\"prettier\", \"sort-package-json\"],\n },\n {\n configName: \"markdown\",\n config: markdownConfig,\n dependencies: [\"prettier\", \"markdownlint-cli\", \"markdownlint-cli2\"],\n },\n {\n configName: \"secretlint\",\n config: secretlintConfig,\n dependencies: [\"secretlint\"],\n },\n {\n configName: \"stylesheets\",\n config: stylesheetsConfig,\n dependencies: [\"stylelint\"],\n },\n {\n configName: \"tests\",\n config: testsConfig,\n dependencies: [\"vite\", \"jest\", \"ava\"],\n },\n {\n configName: \"typescript\",\n config: typescriptConfig,\n dependencies: [\"typescript\"],\n },\n];\n\nlet loadedPlugins: Config = {};\nconst loadedPluginsNames: string[] = [];\n\nconst possiblePlugins: { [rule: string]: { [packageName: string]: boolean } } = {};\n\ngroups.forEach((plugin) => {\n const { dependencies, config, configName } = plugin;\n\n if ((anolilabLintStagedConfig as unknown as { [key: string]: { [key: string]: false | undefined } })?.[\"plugin\"]?.[configName] !== false) {\n const foundDependencies = [];\n\n dependencies.forEach((dependency) => {\n if (hasDependency(dependency) || hasDevDependency(dependency)) {\n foundDependencies.push(dependency);\n }\n });\n\n if (foundDependencies.length > 0) {\n loadedPlugins = { ...loadedPlugins, ...config };\n loadedPluginsNames.push(configName);\n } else {\n possiblePlugins[configName] = {};\n\n dependencies.forEach((dependency) => {\n (possiblePlugins[configName] as { [key: string]: boolean })[dependency] = hasDependency(dependency) || hasDevDependency(dependency);\n });\n }\n }\n});\n\nconst loaded: Config = { ...loadedPlugins };\n\nexport { loaded as loadedPlugins, loadedPluginsNames, possiblePlugins };\n","import { env } from \"node:process\";\n\nconst noop = () => undefined;\n\nconst consolePrefix = (prefix: string) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n (env[\"NO_LOGS\"] ? noop : (message: string) => console.log(`${prefix}${message}`));\n\nconst consoleLog = consolePrefix(\"\");\n\nexport default consoleLog;\n"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/config.ts","../src/utils/logger.ts"],"names":["env","hasDependency","hasDevDependency","groups","eslint_default","json_default","markdown_default","secretlint_default","stylesheets_default","tests_default","typescript_default","loadedPlugins","loadedPluginsNames","possiblePlugins","plugin","dependencies","config","configName","lint_staged_config_default","foundDependencies","dependency","loaded","noop","consolePrefix","prefix","message","consoleLog","logger_default","pluginName","hasLogged","installed"],"mappings":"gWAAA,OAAS,OAAAA,MAAW,UCApB,OAAS,iBAAAC,EAAe,oBAAAC,MAAwB,+BAkBhD,IAAMC,EAAiB,CACnB,CACI,WAAY,SACZ,OAAQC,EACR,aAAc,CAAC,WAAY,QAAQ,CACvC,EACA,CACI,WAAY,OACZ,OAAQC,EACR,aAAc,CAAC,WAAY,mBAAmB,CAClD,EACA,CACI,WAAY,WACZ,OAAQC,EACR,aAAc,CAAC,WAAY,mBAAoB,mBAAmB,CACtE,EACA,CACI,WAAY,aACZ,OAAQC,EACR,aAAc,CAAC,YAAY,CAC/B,EACA,CACI,WAAY,cACZ,OAAQC,EACR,aAAc,CAAC,WAAW,CAC9B,EACA,CACI,WAAY,QACZ,OAAQC,EACR,aAAc,CAAC,OAAQ,OAAQ,KAAK,CACxC,EACA,CACI,WAAY,aACZ,OAAQC,EACR,aAAc,CAAC,YAAY,CAC/B,CACJ,EAEIC,EAAwB,CAAC,EACvBC,EAA+B,CAAC,EAEhCC,EAA0E,CAAC,EAEjFV,EAAO,QAASW,GAAW,CACvB,GAAM,CAAE,aAAAC,EAAc,OAAAC,EAAQ,WAAAC,CAAW,EAAIH,EAE7C,GAAKI,GAAkG,SAAYD,CAAU,IAAM,GAAO,CACtI,IAAME,EAAoB,CAAC,EAE3BJ,EAAa,QAASK,GAAe,EAC7BnB,EAAcmB,CAAU,GAAKlB,EAAiBkB,CAAU,IACxDD,EAAkB,KAAKC,CAAU,CAEzC,CAAC,EAEGD,EAAkB,OAAS,GAC3BR,EAAgB,CAAE,GAAGA,EAAe,GAAGK,CAAO,EAC9CJ,EAAmB,KAAKK,CAAU,IAElCJ,EAAgBI,CAAU,EAAI,CAAC,EAE/BF,EAAa,QAASK,GAAe,CAChCP,EAAgBI,CAAU,EAAiCG,CAAU,EAAInB,EAAcmB,CAAU,GAAKlB,EAAiBkB,CAAU,CACtI,CAAC,EAET,CACJ,CAAC,EAED,IAAMC,EAAiB,CAAE,GAAGV,CAAc,ECtF1C,OAAS,OAAAX,MAAW,UAEpB,IAAMsB,EAAO,IAAG,GAEVC,EAAiBC,GAElBxB,EAAI,QAAasB,EAAQG,GAAoB,QAAQ,IAAI,GAAGD,CAAM,GAAGC,CAAO,EAAE,EAE7EC,EAAaH,EAAc,EAAE,EAE5BI,EAAQD,EFJf,GAAI,CAAC,OAAO,kCAAmC,CACvC1B,EAAI,QACJ2B,EAAW;AAAA;AAAA,CAA+D,EAE1Ef,EAAmB,QAASgB,GAAe,CACvCD,EAAW,OAAOC,CAAU,EAAE,CAClC,CAAC,GAGL,IAAIC,EAAY,GAEhB,OAAO,QAAQhB,CAAe,EAAE,QAAQ,CAAC,CAACC,EAAQC,CAAY,IAAM,CACvC,OAAO,OAAOA,CAAY,EAAE,KAAK,OAAO,IAG7Dc,EAAY,GACZF,EACI;AAAA,oDAAuDb,CAAM,yGACjE,EAEA,OAAO,QAAQC,CAAY,EAAE,QAAQ,CAAC,CAACK,EAAYU,CAAS,IAAM,CACzDA,GACDH,EAAW,OAAOP,CAAU,EAAE,CAEtC,CAAC,EAET,CAAC,EAEGS,IACAF,EAAW;AAAA,iEAAoE,EAC/EA,EAAW;AAAA,CAAiF,GAGhGA,EAAW,iGAAiG,EAE5G,OAAO,kCAAoC,EAC/C","sourcesContent":["import { env } from \"node:process\";\n\nimport { loadedPluginsNames, possiblePlugins } from \"./config\";\nimport consoleLog from \"./utils/logger\";\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabStagedLintConfigLoaded) {\n if (env[\"DEBUG\"]) {\n consoleLog(\"\\n@anolilab/lint-stage-config loaded the following plugins:\\n\");\n\n loadedPluginsNames.forEach((pluginName) => {\n consoleLog(` ${pluginName}`);\n });\n }\n\n let hasLogged = false;\n\n Object.entries(possiblePlugins).forEach(([plugin, dependencies]) => {\n const hasOneDependency = Object.values(dependencies).some(Boolean);\n\n if (hasOneDependency) {\n hasLogged = true;\n consoleLog(\n `\\nYour package.json container dependencies for the \"${plugin}\" plugin, please add the following dependencies with your chosen package manager to enable this plugin:`,\n );\n\n Object.entries(dependencies).forEach(([dependency, installed]) => {\n if (!installed) {\n consoleLog(` ${dependency}`);\n }\n });\n }\n });\n\n if (hasLogged) {\n consoleLog(\"\\nTo disable this message, add the following to your package.json:\");\n consoleLog(' \"anolilab\": { \"lint-stage-config\": { plugin: { \"plugin-name\": false } } }\\n');\n }\n\n consoleLog('To disable all logging, add the following to your eslint command call \"NO_LOGS=true eslint ...\"');\n\n global.hasAnolilabStagedLintConfigLoaded = true;\n}\n\nexport { loadedPlugins as default } from \"./config\";\n","import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport eslintConfig from \"./groups/eslint\";\nimport jsonConfig from \"./groups/json\";\nimport markdownConfig from \"./groups/markdown\";\nimport secretlintConfig from \"./groups/secretlint\";\nimport stylesheetsConfig from \"./groups/stylesheets\";\nimport testsConfig from \"./groups/tests\";\nimport typescriptConfig from \"./groups/typescript\";\nimport anolilabLintStagedConfig from \"./utils/lint-staged-config\";\n\ntype Groups = {\n configName: string;\n config: Config;\n dependencies: string[];\n}[];\n\nconst groups: Groups = [\n {\n configName: \"eslint\",\n config: eslintConfig,\n dependencies: [\"prettier\", \"eslint\"],\n },\n {\n configName: \"json\",\n config: jsonConfig,\n dependencies: [\"prettier\", \"sort-package-json\"],\n },\n {\n configName: \"markdown\",\n config: markdownConfig,\n dependencies: [\"prettier\", \"markdownlint-cli\", \"markdownlint-cli2\"],\n },\n {\n configName: \"secretlint\",\n config: secretlintConfig,\n dependencies: [\"secretlint\"],\n },\n {\n configName: \"stylesheets\",\n config: stylesheetsConfig,\n dependencies: [\"stylelint\"],\n },\n {\n configName: \"tests\",\n config: testsConfig,\n dependencies: [\"vite\", \"jest\", \"ava\"],\n },\n {\n configName: \"typescript\",\n config: typescriptConfig,\n dependencies: [\"typescript\"],\n },\n];\n\nlet loadedPlugins: Config = {};\nconst loadedPluginsNames: string[] = [];\n\nconst possiblePlugins: { [rule: string]: { [packageName: string]: boolean } } = {};\n\ngroups.forEach((plugin) => {\n const { dependencies, config, configName } = plugin;\n\n if ((anolilabLintStagedConfig as unknown as { [key: string]: { [key: string]: false | undefined } })?.[\"plugin\"]?.[configName] !== false) {\n const foundDependencies = [];\n\n dependencies.forEach((dependency) => {\n if (hasDependency(dependency) || hasDevDependency(dependency)) {\n foundDependencies.push(dependency);\n }\n });\n\n if (foundDependencies.length > 0) {\n loadedPlugins = { ...loadedPlugins, ...config };\n loadedPluginsNames.push(configName);\n } else {\n possiblePlugins[configName] = {};\n\n dependencies.forEach((dependency) => {\n (possiblePlugins[configName] as { [key: string]: boolean })[dependency] = hasDependency(dependency) || hasDevDependency(dependency);\n });\n }\n }\n});\n\nconst loaded: Config = { ...loadedPlugins };\n\nexport { loaded as loadedPlugins, loadedPluginsNames, possiblePlugins };\n","import { env } from \"node:process\";\n\nconst noop = () => undefined;\n\nconst consolePrefix = (prefix: string) =>\n // eslint-disable-next-line implicit-arrow-linebreak\n (env[\"NO_LOGS\"] ? noop : (message: string) => console.log(`${prefix}${message}`));\n\nconst consoleLog = consolePrefix(\"\");\n\nexport default consoleLog;\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkL5GFXHVL_js = require('./chunk-L5GFXHVL.js');
3
+ var chunkCCERQD4S_js = require('./chunk-CCERQD4S.js');
4
4
  var packageJsonUtils = require('@anolilab/package-json-utils');
5
5
  var fs = require('fs');
6
6
  var path = require('path');
@@ -34,7 +34,7 @@ if [ "$IS_WINDOWS" = "true" ]; then
34
34
  exec < /dev/tty
35
35
  fi
36
36
  fi
37
- `,"utf-8");let m=path.join(i,"pre-commit"),o=!1;try{o=chunkL5GFXHVL_js.a("pnpm-lock.yaml")!==void 0;}catch{}r(m)||await a(m,`#!/bin/sh
37
+ `,"utf-8");let m=path.join(i,"pre-commit"),o=!1;try{o=chunkCCERQD4S_js.a("pnpm-lock.yaml")!==void 0;}catch{}r(m)||await a(m,`#!/bin/sh
38
38
 
39
39
  . "$(dirname "$0")/_/husky.sh"
40
40
  . "$(dirname "$0")/common.sh"
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/postinstall.ts"],"names":["hasDependency","hasDevDependency","packageIsTypeModule","projectPath","existsSync","mkdir","writeFile","join","promisify","writeFileAsync","mkdirAsync","configFile","checkIfFileExists","filename","writeLintstagedRc","lintstagedPath","writeHuskyFiles","huskyFolderPath","commonShPath","preCommitPath","hasPnpm","get_nearest_config_path_default","prepareCommitMessagePath","error"],"mappings":"wCAAA,OACC,iBAAAA,EAAe,oBAAAC,EAAkB,uBAAAC,EAAqB,eAAAC,MAChD,+BACP,OAAS,cAAAC,EAAY,SAAAC,EAAO,aAAAC,MAAiB,KAC7C,OAAS,QAAAC,MAAY,OACrB,OAAS,aAAAC,MAAiB,OAItB,QAAQ,IAAI,IAEZ,QAAQ,KAAK,CAAC,EAGlB,IAAMC,EAAiBD,EAAUF,CAAS,EACpCI,EAAaF,EAAUH,CAAK,EAElC,QAAQ,IAAI,2CAA4CF,EAAa;AAAA,CAAI,EAEzE,IAAMQ,EAAa,gBAEbC,EAAqBC,GACnBT,EAAWS,CAAQ,GACnB,QAAQ,KAAK,iBAAOA,mBAA0B,EAEvC,IAGJ,GAMLC,EAAoB,IAAM,CAE5B,QAAWD,IAAY,CACnBF,EACA,GAAGA,OACH,GAAGA,QACH,GAAGA,QACH,GAAGA,SACH,GAAGA,SACH,GAAGA,QACH,wBACA,yBACA,wBACJ,EACI,GAAIC,EAAkBL,EAAKJ,EAAaU,CAAQ,CAAC,EAC7C,OAAO,QAAQ,QAAQ,EAI/B,IAAME,EAAiBR,EAAKJ,EAAa,kBAAkB,EAS3D,OAAOM,EAAeM,EAPN,GAAGb,EAAsB,oDAAsD;AAAA;AAAA,EAEjGA,EAAsB,iBAAmB;AAAA;AAAA;AAAA,EAKQ,OAAO,CAC1D,EAMMc,EAAkB,SAAY,CAGhC,GAAI,EAFahB,EAAc,OAAO,GAAKC,EAAiB,OAAO,GAEpD,CACX,QAAQ,KAAK,uCAA6B,EAE1C,MACJ,CAEA,IAAMgB,EAAkBV,EAAKJ,EAAa,QAAQ,EAE7CC,EAAWa,CAAe,GAC3B,MAAMP,EAAWO,CAAe,EAGpC,IAAMC,EAAeX,EAAKU,EAAiB,WAAW,EAEjDL,EAAkBM,CAAY,GAC/B,MAAMT,EACFS,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBA,OACJ,EAGJ,IAAMC,EAAgBZ,EAAKU,EAAiB,YAAY,EAEpDG,EAAU,GAEd,GAAI,CACAA,EAAUC,EAAqB,gBAAgB,IAAM,MACzD,MAAE,CAEF,CAEKT,EAAkBO,CAAa,GAChC,MAAMV,EACFU,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWVC,EAAU,OAAS;AAAA;AAAA;AAAA;AAAA,EAKT,OACJ,EAGJ,IAAME,EAA2Bf,EAAKU,EAAiB,oBAAoB,GAC7DjB,EAAc,YAAY,GAAKC,EAAiB,YAAY,IAE7D,CAACW,EAAkBU,CAAwB,GACpD,MAAMb,EACFa,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAQwBF,EAAU,OAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6CAOVA,EAAU,OAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAQ5CA,EAAU,OAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAcdA,EAAU,OAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMhC,OACJ,CAER,GAGC,SAAY,CACT,GAAI,CACA,MAAMN,EAAkB,EACxB,MAAME,EAAgB,EAEtB,QAAQ,IAAI,4CAAqC,EAGjD,QAAQ,KAAK,CAAC,CAClB,OAASO,EAAP,CACE,QAAQ,IAAI,kCAA2B,EACvC,QAAQ,MAAMA,CAAK,EAGnB,QAAQ,KAAK,CAAC,CAClB,CACJ,GAAG","sourcesContent":["import {\n hasDependency, hasDevDependency, packageIsTypeModule, projectPath\n} from \"@anolilab/package-json-utils\";\nimport { existsSync, mkdir, writeFile } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { promisify } from \"node:util\";\n\nimport getNearestConfigPath from \"./utils/get-nearest-config-path\";\n\nif (process.env[\"CI\"]) {\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0);\n}\n\nconst writeFileAsync = promisify(writeFile);\nconst mkdirAsync = promisify(mkdir);\n\nconsole.log(\"Configuring @anolilab/lint-staged-config\", projectPath, \"\\n\");\n\nconst configFile = \".lintstagedrc\";\n\nconst checkIfFileExists = (filename: string): boolean => {\n if (existsSync(filename)) {\n console.warn(`⚠️ ${filename} already exists;`);\n\n return true;\n }\n\n return false;\n};\n\n/**\n * Writes .lintstagedrc.js if it doesn't exist. Warns if it exists.\n */\nconst writeLintstagedRc = () => {\n // eslint-disable-next-line no-restricted-syntax\n for (const filename of [\n configFile,\n `${configFile}.js`,\n `${configFile}.cjs`,\n `${configFile}.mjs`,\n `${configFile}.json`,\n `${configFile}.yaml`,\n `${configFile}.yml`,\n \"lint-staged.config.js\",\n \"lint-staged.config.mjs\",\n \"lint-staged.config.cjs\",\n ]) {\n if (checkIfFileExists(join(projectPath, filename))) {\n return Promise.resolve();\n }\n }\n\n const lintstagedPath = join(projectPath, \".lintstagedrc.js\");\n\n const content = `${packageIsTypeModule ? 'import config from \"@anolilab/lint-staged-config\"' : 'const config = require(\"@anolilab/lint-staged-config\")'};\n\n${packageIsTypeModule ? \"export default\" : \"module.exports =\"} {\n ...config,\n};\n`;\n\n return writeFileAsync(lintstagedPath, content, \"utf-8\");\n};\n\n/**\n * Adds husky hooks to .husky folder if they don't exist. Warns if they exist.\n */\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst writeHuskyFiles = async () => {\n const hasHusky = hasDependency(\"husky\") || hasDevDependency(\"husky\");\n\n if (!hasHusky) {\n console.warn(\"⚠️ husky is not installed;\");\n\n return;\n }\n\n const huskyFolderPath = join(projectPath, \".husky\");\n\n if (!existsSync(huskyFolderPath)) {\n await mkdirAsync(huskyFolderPath);\n }\n\n const commonShPath = join(huskyFolderPath, \"common.sh\");\n\n if (!checkIfFileExists(commonShPath)) {\n await writeFileAsync(\n commonShPath,\n `#!/bin/sh\n\ncommand_exists () {\n command -v \"$1\" >/dev/null 2>&1\n}\n\nIS_WINDOWS=\"false\"\n\nif [ \"$OSTYPE\" = \"cygwin\" ]; then\n IS_WINDOWS=\"true\"\nelif [ \"$OSTYPE\" = \"msys\" ]; then\n IS_WINDOWS=\"true\"\nelif [ \"$OSTYPE\" = \"win32\" ]; then\n IS_WINDOWS=\"true\"\nfi\n\n# Workaround for Windows 10, Git Bash and Yarn\nif [ \"$IS_WINDOWS\" = \"true\" ]; then\n if command_exists winpty && test -t 1; then\n exec < /dev/tty\n fi\nfi\n`,\n \"utf-8\",\n );\n }\n\n const preCommitPath = join(huskyFolderPath, \"pre-commit\");\n\n let hasPnpm = false;\n\n try {\n hasPnpm = getNearestConfigPath(\"pnpm-lock.yaml\") !== undefined;\n } catch {\n // ignore\n }\n\n if (!checkIfFileExists(preCommitPath)) {\n await writeFileAsync(\n preCommitPath,\n `#!/bin/sh\n\n. \"$(dirname \"$0\")/_/husky.sh\"\n. \"$(dirname \"$0\")/common.sh\"\n\n# The hook should exit with non-zero status after issuing\n# an appropriate message if it wants to stop the commit.\n\necho --------------------------------------------\necho Starting Git hook: pre-commit\n\n${hasPnpm ? \"pnpx\" : \"npx\"} lint-staged --verbose --concurrent false\n\necho Finished Git hook: pre-commit\necho --------------------------------------------\n`,\n \"utf-8\",\n );\n }\n\n const prepareCommitMessagePath = join(huskyFolderPath, \"prepare-commit-msg\");\n const hasCz = hasDependency(\"commitizen\") || hasDevDependency(\"commitizen\");\n\n if (hasCz && !checkIfFileExists(prepareCommitMessagePath)) {\n await writeFileAsync(\n prepareCommitMessagePath,\n `#!/bin/sh\n\n. \"$(dirname \"$0\")/_/husky.sh\"\n. \"$(dirname \"$0\")/common.sh\"\n\necho --------------------------------------------\necho Starting Git hook: prepare-commit-msg\n\n# if we hve a cmd that is running ${hasPnpm ? \"pnpx\" : \"npx\"} cz that means finalize and commit\nFILE=commit.cmd\nif test -f \"$FILE\"; then\n echo \"$FILE exists.\"\n rm commit.cmd\n exit 0;\nfi\n# if on Windows, spawn a cmd that will run ${hasPnpm ? \"pnpx\" : \"npx\"} cz\ncase \\`uname\\` in\n *CYGWIN*|*MINGW*|*MSYS* )\n # Only run commitizen if no commit message was already provided.\n if [ -z \"\\${2-}\" ]; then\n export CZ_TYPE=\"\\${CZ_TYPE:-fix}\"\n export CZ_MAX_HEADER_WIDTH=$COMMITLINT_MAX_WIDTH\n export CZ_MAX_LINE_WIDTH=$CZ_MAX_HEADER_WIDTH\n echo \"${hasPnpm ? \"pnpx\" : \"npx\"} cz && exit\" > commit.cmd\n start commit.cmd\n exit 1;\n fi\n\n exit 0;;\nesac\n\n# Only run commitizen if no commit message was already provided.\nif [ -z \"\\${2-}\" ]; then\n export CZ_TYPE=\"\\${CZ_TYPE:-fix}\"\n export CZ_MAX_HEADER_WIDTH=$COMMITLINT_MAX_WIDTH\n export CZ_MAX_LINE_WIDTH=$CZ_MAX_HEADER_WIDTH\n # By default git hooks are not interactive. exec < /dev/tty allows a users terminal to interact with commitizen.\n exec < /dev/tty && ${hasPnpm ? \"pnpx\" : \"npx\"} cz --hook || true\nfi\n\necho Finished Git hook: prepare-commit-msg\necho --------------------------------------------\n`,\n \"utf-8\",\n );\n }\n};\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\n(async () => {\n try {\n await writeLintstagedRc();\n await writeHuskyFiles();\n\n console.log(\"😎 Everything went well, have fun!\");\n\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0);\n } catch (error) {\n console.log(\"😬 something went wrong:\");\n console.error(error);\n\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1);\n }\n})();\n"]}
1
+ {"version":3,"sources":["../src/postinstall.ts"],"names":["hasDependency","hasDevDependency","packageIsTypeModule","projectPath","existsSync","mkdir","writeFile","join","promisify","writeFileAsync","mkdirAsync","configFile","checkIfFileExists","filename","writeLintstagedRc","lintstagedPath","writeHuskyFiles","huskyFolderPath","commonShPath","preCommitPath","hasPnpm","get_nearest_config_path_default","prepareCommitMessagePath","error"],"mappings":"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","sourcesContent":["import {\n hasDependency, hasDevDependency, packageIsTypeModule, projectPath\n} from \"@anolilab/package-json-utils\";\nimport { existsSync, mkdir, writeFile } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { promisify } from \"node:util\";\n\nimport getNearestConfigPath from \"./utils/get-nearest-config-path\";\n\nif (process.env[\"CI\"]) {\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0);\n}\n\nconst writeFileAsync = promisify(writeFile);\nconst mkdirAsync = promisify(mkdir);\n\nconsole.log(\"Configuring @anolilab/lint-staged-config\", projectPath, \"\\n\");\n\nconst configFile = \".lintstagedrc\";\n\nconst checkIfFileExists = (filename: string): boolean => {\n if (existsSync(filename)) {\n console.warn(`⚠️ ${filename} already exists;`);\n\n return true;\n }\n\n return false;\n};\n\n/**\n * Writes .lintstagedrc.js if it doesn't exist. Warns if it exists.\n */\nconst writeLintstagedRc = () => {\n // eslint-disable-next-line no-restricted-syntax\n for (const filename of [\n configFile,\n `${configFile}.js`,\n `${configFile}.cjs`,\n `${configFile}.mjs`,\n `${configFile}.json`,\n `${configFile}.yaml`,\n `${configFile}.yml`,\n \"lint-staged.config.js\",\n \"lint-staged.config.mjs\",\n \"lint-staged.config.cjs\",\n ]) {\n if (checkIfFileExists(join(projectPath, filename))) {\n return Promise.resolve();\n }\n }\n\n const lintstagedPath = join(projectPath, \".lintstagedrc.js\");\n\n const content = `${packageIsTypeModule ? 'import config from \"@anolilab/lint-staged-config\"' : 'const config = require(\"@anolilab/lint-staged-config\")'};\n\n${packageIsTypeModule ? \"export default\" : \"module.exports =\"} {\n ...config,\n};\n`;\n\n return writeFileAsync(lintstagedPath, content, \"utf-8\");\n};\n\n/**\n * Adds husky hooks to .husky folder if they don't exist. Warns if they exist.\n */\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst writeHuskyFiles = async () => {\n const hasHusky = hasDependency(\"husky\") || hasDevDependency(\"husky\");\n\n if (!hasHusky) {\n console.warn(\"⚠️ husky is not installed;\");\n\n return;\n }\n\n const huskyFolderPath = join(projectPath, \".husky\");\n\n if (!existsSync(huskyFolderPath)) {\n await mkdirAsync(huskyFolderPath);\n }\n\n const commonShPath = join(huskyFolderPath, \"common.sh\");\n\n if (!checkIfFileExists(commonShPath)) {\n await writeFileAsync(\n commonShPath,\n `#!/bin/sh\n\ncommand_exists () {\n command -v \"$1\" >/dev/null 2>&1\n}\n\nIS_WINDOWS=\"false\"\n\nif [ \"$OSTYPE\" = \"cygwin\" ]; then\n IS_WINDOWS=\"true\"\nelif [ \"$OSTYPE\" = \"msys\" ]; then\n IS_WINDOWS=\"true\"\nelif [ \"$OSTYPE\" = \"win32\" ]; then\n IS_WINDOWS=\"true\"\nfi\n\n# Workaround for Windows 10, Git Bash and Yarn\nif [ \"$IS_WINDOWS\" = \"true\" ]; then\n if command_exists winpty && test -t 1; then\n exec < /dev/tty\n fi\nfi\n`,\n \"utf-8\",\n );\n }\n\n const preCommitPath = join(huskyFolderPath, \"pre-commit\");\n\n let hasPnpm = false;\n\n try {\n hasPnpm = getNearestConfigPath(\"pnpm-lock.yaml\") !== undefined;\n } catch {\n // ignore\n }\n\n if (!checkIfFileExists(preCommitPath)) {\n await writeFileAsync(\n preCommitPath,\n `#!/bin/sh\n\n. \"$(dirname \"$0\")/_/husky.sh\"\n. \"$(dirname \"$0\")/common.sh\"\n\n# The hook should exit with non-zero status after issuing\n# an appropriate message if it wants to stop the commit.\n\necho --------------------------------------------\necho Starting Git hook: pre-commit\n\n${hasPnpm ? \"pnpx\" : \"npx\"} lint-staged --verbose --concurrent false\n\necho Finished Git hook: pre-commit\necho --------------------------------------------\n`,\n \"utf-8\",\n );\n }\n\n const prepareCommitMessagePath = join(huskyFolderPath, \"prepare-commit-msg\");\n const hasCz = hasDependency(\"commitizen\") || hasDevDependency(\"commitizen\");\n\n if (hasCz && !checkIfFileExists(prepareCommitMessagePath)) {\n await writeFileAsync(\n prepareCommitMessagePath,\n `#!/bin/sh\n\n. \"$(dirname \"$0\")/_/husky.sh\"\n. \"$(dirname \"$0\")/common.sh\"\n\necho --------------------------------------------\necho Starting Git hook: prepare-commit-msg\n\n# if we hve a cmd that is running ${hasPnpm ? \"pnpx\" : \"npx\"} cz that means finalize and commit\nFILE=commit.cmd\nif test -f \"$FILE\"; then\n echo \"$FILE exists.\"\n rm commit.cmd\n exit 0;\nfi\n# if on Windows, spawn a cmd that will run ${hasPnpm ? \"pnpx\" : \"npx\"} cz\ncase \\`uname\\` in\n *CYGWIN*|*MINGW*|*MSYS* )\n # Only run commitizen if no commit message was already provided.\n if [ -z \"\\${2-}\" ]; then\n export CZ_TYPE=\"\\${CZ_TYPE:-fix}\"\n export CZ_MAX_HEADER_WIDTH=$COMMITLINT_MAX_WIDTH\n export CZ_MAX_LINE_WIDTH=$CZ_MAX_HEADER_WIDTH\n echo \"${hasPnpm ? \"pnpx\" : \"npx\"} cz && exit\" > commit.cmd\n start commit.cmd\n exit 1;\n fi\n\n exit 0;;\nesac\n\n# Only run commitizen if no commit message was already provided.\nif [ -z \"\\${2-}\" ]; then\n export CZ_TYPE=\"\\${CZ_TYPE:-fix}\"\n export CZ_MAX_HEADER_WIDTH=$COMMITLINT_MAX_WIDTH\n export CZ_MAX_LINE_WIDTH=$CZ_MAX_HEADER_WIDTH\n # By default git hooks are not interactive. exec < /dev/tty allows a users terminal to interact with commitizen.\n exec < /dev/tty && ${hasPnpm ? \"pnpx\" : \"npx\"} cz --hook || true\nfi\n\necho Finished Git hook: prepare-commit-msg\necho --------------------------------------------\n`,\n \"utf-8\",\n );\n }\n};\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\n(async () => {\n try {\n await writeLintstagedRc();\n await writeHuskyFiles();\n\n console.log(\"😎 Everything went well, have fun!\");\n\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0);\n } catch (error) {\n console.log(\"😬 something went wrong:\");\n console.error(error);\n\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1);\n }\n})();\n"]}
@@ -1,4 +1,4 @@
1
- import { a as a$1 } from './chunk-AMNQJNNY.mjs';
1
+ import { a as a$1 } from './chunk-YUER2OJU.mjs';
2
2
  import { projectPath, packageIsTypeModule, hasDependency, hasDevDependency } from '@anolilab/package-json-utils';
3
3
  import { writeFile, mkdir, existsSync } from 'fs';
4
4
  import { join } from 'path';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/postinstall.ts"],"names":["hasDependency","hasDevDependency","packageIsTypeModule","projectPath","existsSync","mkdir","writeFile","join","promisify","writeFileAsync","mkdirAsync","configFile","checkIfFileExists","filename","writeLintstagedRc","lintstagedPath","writeHuskyFiles","huskyFolderPath","commonShPath","preCommitPath","hasPnpm","get_nearest_config_path_default","prepareCommitMessagePath","error"],"mappings":"yCAAA,OACC,iBAAAA,EAAe,oBAAAC,EAAkB,uBAAAC,EAAqB,eAAAC,MAChD,+BACP,OAAS,cAAAC,EAAY,SAAAC,EAAO,aAAAC,MAAiB,KAC7C,OAAS,QAAAC,MAAY,OACrB,OAAS,aAAAC,MAAiB,OAItB,QAAQ,IAAI,IAEZ,QAAQ,KAAK,CAAC,EAGlB,IAAMC,EAAiBD,EAAUF,CAAS,EACpCI,EAAaF,EAAUH,CAAK,EAElC,QAAQ,IAAI,2CAA4CF,EAAa;AAAA,CAAI,EAEzE,IAAMQ,EAAa,gBAEbC,EAAqBC,GACnBT,EAAWS,CAAQ,GACnB,QAAQ,KAAK,iBAAOA,mBAA0B,EAEvC,IAGJ,GAMLC,EAAoB,IAAM,CAE5B,QAAWD,IAAY,CACnBF,EACA,GAAGA,OACH,GAAGA,QACH,GAAGA,QACH,GAAGA,SACH,GAAGA,SACH,GAAGA,QACH,wBACA,yBACA,wBACJ,EACI,GAAIC,EAAkBL,EAAKJ,EAAaU,CAAQ,CAAC,EAC7C,OAAO,QAAQ,QAAQ,EAI/B,IAAME,EAAiBR,EAAKJ,EAAa,kBAAkB,EAS3D,OAAOM,EAAeM,EAPN,GAAGb,EAAsB,oDAAsD;AAAA;AAAA,EAEjGA,EAAsB,iBAAmB;AAAA;AAAA;AAAA,EAKQ,OAAO,CAC1D,EAMMc,EAAkB,SAAY,CAGhC,GAAI,EAFahB,EAAc,OAAO,GAAKC,EAAiB,OAAO,GAEpD,CACX,QAAQ,KAAK,uCAA6B,EAE1C,MACJ,CAEA,IAAMgB,EAAkBV,EAAKJ,EAAa,QAAQ,EAE7CC,EAAWa,CAAe,GAC3B,MAAMP,EAAWO,CAAe,EAGpC,IAAMC,EAAeX,EAAKU,EAAiB,WAAW,EAEjDL,EAAkBM,CAAY,GAC/B,MAAMT,EACFS,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBA,OACJ,EAGJ,IAAMC,EAAgBZ,EAAKU,EAAiB,YAAY,EAEpDG,EAAU,GAEd,GAAI,CACAA,EAAUC,EAAqB,gBAAgB,IAAM,MACzD,MAAE,CAEF,CAEKT,EAAkBO,CAAa,GAChC,MAAMV,EACFU,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWVC,EAAU,OAAS;AAAA;AAAA;AAAA;AAAA,EAKT,OACJ,EAGJ,IAAME,EAA2Bf,EAAKU,EAAiB,oBAAoB,GAC7DjB,EAAc,YAAY,GAAKC,EAAiB,YAAY,IAE7D,CAACW,EAAkBU,CAAwB,GACpD,MAAMb,EACFa,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAQwBF,EAAU,OAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6CAOVA,EAAU,OAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAQ5CA,EAAU,OAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAcdA,EAAU,OAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMhC,OACJ,CAER,GAGC,SAAY,CACT,GAAI,CACA,MAAMN,EAAkB,EACxB,MAAME,EAAgB,EAEtB,QAAQ,IAAI,4CAAqC,EAGjD,QAAQ,KAAK,CAAC,CAClB,OAASO,EAAP,CACE,QAAQ,IAAI,kCAA2B,EACvC,QAAQ,MAAMA,CAAK,EAGnB,QAAQ,KAAK,CAAC,CAClB,CACJ,GAAG","sourcesContent":["import {\n hasDependency, hasDevDependency, packageIsTypeModule, projectPath\n} from \"@anolilab/package-json-utils\";\nimport { existsSync, mkdir, writeFile } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { promisify } from \"node:util\";\n\nimport getNearestConfigPath from \"./utils/get-nearest-config-path\";\n\nif (process.env[\"CI\"]) {\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0);\n}\n\nconst writeFileAsync = promisify(writeFile);\nconst mkdirAsync = promisify(mkdir);\n\nconsole.log(\"Configuring @anolilab/lint-staged-config\", projectPath, \"\\n\");\n\nconst configFile = \".lintstagedrc\";\n\nconst checkIfFileExists = (filename: string): boolean => {\n if (existsSync(filename)) {\n console.warn(`⚠️ ${filename} already exists;`);\n\n return true;\n }\n\n return false;\n};\n\n/**\n * Writes .lintstagedrc.js if it doesn't exist. Warns if it exists.\n */\nconst writeLintstagedRc = () => {\n // eslint-disable-next-line no-restricted-syntax\n for (const filename of [\n configFile,\n `${configFile}.js`,\n `${configFile}.cjs`,\n `${configFile}.mjs`,\n `${configFile}.json`,\n `${configFile}.yaml`,\n `${configFile}.yml`,\n \"lint-staged.config.js\",\n \"lint-staged.config.mjs\",\n \"lint-staged.config.cjs\",\n ]) {\n if (checkIfFileExists(join(projectPath, filename))) {\n return Promise.resolve();\n }\n }\n\n const lintstagedPath = join(projectPath, \".lintstagedrc.js\");\n\n const content = `${packageIsTypeModule ? 'import config from \"@anolilab/lint-staged-config\"' : 'const config = require(\"@anolilab/lint-staged-config\")'};\n\n${packageIsTypeModule ? \"export default\" : \"module.exports =\"} {\n ...config,\n};\n`;\n\n return writeFileAsync(lintstagedPath, content, \"utf-8\");\n};\n\n/**\n * Adds husky hooks to .husky folder if they don't exist. Warns if they exist.\n */\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst writeHuskyFiles = async () => {\n const hasHusky = hasDependency(\"husky\") || hasDevDependency(\"husky\");\n\n if (!hasHusky) {\n console.warn(\"⚠️ husky is not installed;\");\n\n return;\n }\n\n const huskyFolderPath = join(projectPath, \".husky\");\n\n if (!existsSync(huskyFolderPath)) {\n await mkdirAsync(huskyFolderPath);\n }\n\n const commonShPath = join(huskyFolderPath, \"common.sh\");\n\n if (!checkIfFileExists(commonShPath)) {\n await writeFileAsync(\n commonShPath,\n `#!/bin/sh\n\ncommand_exists () {\n command -v \"$1\" >/dev/null 2>&1\n}\n\nIS_WINDOWS=\"false\"\n\nif [ \"$OSTYPE\" = \"cygwin\" ]; then\n IS_WINDOWS=\"true\"\nelif [ \"$OSTYPE\" = \"msys\" ]; then\n IS_WINDOWS=\"true\"\nelif [ \"$OSTYPE\" = \"win32\" ]; then\n IS_WINDOWS=\"true\"\nfi\n\n# Workaround for Windows 10, Git Bash and Yarn\nif [ \"$IS_WINDOWS\" = \"true\" ]; then\n if command_exists winpty && test -t 1; then\n exec < /dev/tty\n fi\nfi\n`,\n \"utf-8\",\n );\n }\n\n const preCommitPath = join(huskyFolderPath, \"pre-commit\");\n\n let hasPnpm = false;\n\n try {\n hasPnpm = getNearestConfigPath(\"pnpm-lock.yaml\") !== undefined;\n } catch {\n // ignore\n }\n\n if (!checkIfFileExists(preCommitPath)) {\n await writeFileAsync(\n preCommitPath,\n `#!/bin/sh\n\n. \"$(dirname \"$0\")/_/husky.sh\"\n. \"$(dirname \"$0\")/common.sh\"\n\n# The hook should exit with non-zero status after issuing\n# an appropriate message if it wants to stop the commit.\n\necho --------------------------------------------\necho Starting Git hook: pre-commit\n\n${hasPnpm ? \"pnpx\" : \"npx\"} lint-staged --verbose --concurrent false\n\necho Finished Git hook: pre-commit\necho --------------------------------------------\n`,\n \"utf-8\",\n );\n }\n\n const prepareCommitMessagePath = join(huskyFolderPath, \"prepare-commit-msg\");\n const hasCz = hasDependency(\"commitizen\") || hasDevDependency(\"commitizen\");\n\n if (hasCz && !checkIfFileExists(prepareCommitMessagePath)) {\n await writeFileAsync(\n prepareCommitMessagePath,\n `#!/bin/sh\n\n. \"$(dirname \"$0\")/_/husky.sh\"\n. \"$(dirname \"$0\")/common.sh\"\n\necho --------------------------------------------\necho Starting Git hook: prepare-commit-msg\n\n# if we hve a cmd that is running ${hasPnpm ? \"pnpx\" : \"npx\"} cz that means finalize and commit\nFILE=commit.cmd\nif test -f \"$FILE\"; then\n echo \"$FILE exists.\"\n rm commit.cmd\n exit 0;\nfi\n# if on Windows, spawn a cmd that will run ${hasPnpm ? \"pnpx\" : \"npx\"} cz\ncase \\`uname\\` in\n *CYGWIN*|*MINGW*|*MSYS* )\n # Only run commitizen if no commit message was already provided.\n if [ -z \"\\${2-}\" ]; then\n export CZ_TYPE=\"\\${CZ_TYPE:-fix}\"\n export CZ_MAX_HEADER_WIDTH=$COMMITLINT_MAX_WIDTH\n export CZ_MAX_LINE_WIDTH=$CZ_MAX_HEADER_WIDTH\n echo \"${hasPnpm ? \"pnpx\" : \"npx\"} cz && exit\" > commit.cmd\n start commit.cmd\n exit 1;\n fi\n\n exit 0;;\nesac\n\n# Only run commitizen if no commit message was already provided.\nif [ -z \"\\${2-}\" ]; then\n export CZ_TYPE=\"\\${CZ_TYPE:-fix}\"\n export CZ_MAX_HEADER_WIDTH=$COMMITLINT_MAX_WIDTH\n export CZ_MAX_LINE_WIDTH=$CZ_MAX_HEADER_WIDTH\n # By default git hooks are not interactive. exec < /dev/tty allows a users terminal to interact with commitizen.\n exec < /dev/tty && ${hasPnpm ? \"pnpx\" : \"npx\"} cz --hook || true\nfi\n\necho Finished Git hook: prepare-commit-msg\necho --------------------------------------------\n`,\n \"utf-8\",\n );\n }\n};\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\n(async () => {\n try {\n await writeLintstagedRc();\n await writeHuskyFiles();\n\n console.log(\"😎 Everything went well, have fun!\");\n\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0);\n } catch (error) {\n console.log(\"😬 something went wrong:\");\n console.error(error);\n\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1);\n }\n})();\n"]}
1
+ {"version":3,"sources":["../src/postinstall.ts"],"names":["hasDependency","hasDevDependency","packageIsTypeModule","projectPath","existsSync","mkdir","writeFile","join","promisify","writeFileAsync","mkdirAsync","configFile","checkIfFileExists","filename","writeLintstagedRc","lintstagedPath","writeHuskyFiles","huskyFolderPath","commonShPath","preCommitPath","hasPnpm","get_nearest_config_path_default","prepareCommitMessagePath","error"],"mappings":"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","sourcesContent":["import {\n hasDependency, hasDevDependency, packageIsTypeModule, projectPath\n} from \"@anolilab/package-json-utils\";\nimport { existsSync, mkdir, writeFile } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { promisify } from \"node:util\";\n\nimport getNearestConfigPath from \"./utils/get-nearest-config-path\";\n\nif (process.env[\"CI\"]) {\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0);\n}\n\nconst writeFileAsync = promisify(writeFile);\nconst mkdirAsync = promisify(mkdir);\n\nconsole.log(\"Configuring @anolilab/lint-staged-config\", projectPath, \"\\n\");\n\nconst configFile = \".lintstagedrc\";\n\nconst checkIfFileExists = (filename: string): boolean => {\n if (existsSync(filename)) {\n console.warn(`⚠️ ${filename} already exists;`);\n\n return true;\n }\n\n return false;\n};\n\n/**\n * Writes .lintstagedrc.js if it doesn't exist. Warns if it exists.\n */\nconst writeLintstagedRc = () => {\n // eslint-disable-next-line no-restricted-syntax\n for (const filename of [\n configFile,\n `${configFile}.js`,\n `${configFile}.cjs`,\n `${configFile}.mjs`,\n `${configFile}.json`,\n `${configFile}.yaml`,\n `${configFile}.yml`,\n \"lint-staged.config.js\",\n \"lint-staged.config.mjs\",\n \"lint-staged.config.cjs\",\n ]) {\n if (checkIfFileExists(join(projectPath, filename))) {\n return Promise.resolve();\n }\n }\n\n const lintstagedPath = join(projectPath, \".lintstagedrc.js\");\n\n const content = `${packageIsTypeModule ? 'import config from \"@anolilab/lint-staged-config\"' : 'const config = require(\"@anolilab/lint-staged-config\")'};\n\n${packageIsTypeModule ? \"export default\" : \"module.exports =\"} {\n ...config,\n};\n`;\n\n return writeFileAsync(lintstagedPath, content, \"utf-8\");\n};\n\n/**\n * Adds husky hooks to .husky folder if they don't exist. Warns if they exist.\n */\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst writeHuskyFiles = async () => {\n const hasHusky = hasDependency(\"husky\") || hasDevDependency(\"husky\");\n\n if (!hasHusky) {\n console.warn(\"⚠️ husky is not installed;\");\n\n return;\n }\n\n const huskyFolderPath = join(projectPath, \".husky\");\n\n if (!existsSync(huskyFolderPath)) {\n await mkdirAsync(huskyFolderPath);\n }\n\n const commonShPath = join(huskyFolderPath, \"common.sh\");\n\n if (!checkIfFileExists(commonShPath)) {\n await writeFileAsync(\n commonShPath,\n `#!/bin/sh\n\ncommand_exists () {\n command -v \"$1\" >/dev/null 2>&1\n}\n\nIS_WINDOWS=\"false\"\n\nif [ \"$OSTYPE\" = \"cygwin\" ]; then\n IS_WINDOWS=\"true\"\nelif [ \"$OSTYPE\" = \"msys\" ]; then\n IS_WINDOWS=\"true\"\nelif [ \"$OSTYPE\" = \"win32\" ]; then\n IS_WINDOWS=\"true\"\nfi\n\n# Workaround for Windows 10, Git Bash and Yarn\nif [ \"$IS_WINDOWS\" = \"true\" ]; then\n if command_exists winpty && test -t 1; then\n exec < /dev/tty\n fi\nfi\n`,\n \"utf-8\",\n );\n }\n\n const preCommitPath = join(huskyFolderPath, \"pre-commit\");\n\n let hasPnpm = false;\n\n try {\n hasPnpm = getNearestConfigPath(\"pnpm-lock.yaml\") !== undefined;\n } catch {\n // ignore\n }\n\n if (!checkIfFileExists(preCommitPath)) {\n await writeFileAsync(\n preCommitPath,\n `#!/bin/sh\n\n. \"$(dirname \"$0\")/_/husky.sh\"\n. \"$(dirname \"$0\")/common.sh\"\n\n# The hook should exit with non-zero status after issuing\n# an appropriate message if it wants to stop the commit.\n\necho --------------------------------------------\necho Starting Git hook: pre-commit\n\n${hasPnpm ? \"pnpx\" : \"npx\"} lint-staged --verbose --concurrent false\n\necho Finished Git hook: pre-commit\necho --------------------------------------------\n`,\n \"utf-8\",\n );\n }\n\n const prepareCommitMessagePath = join(huskyFolderPath, \"prepare-commit-msg\");\n const hasCz = hasDependency(\"commitizen\") || hasDevDependency(\"commitizen\");\n\n if (hasCz && !checkIfFileExists(prepareCommitMessagePath)) {\n await writeFileAsync(\n prepareCommitMessagePath,\n `#!/bin/sh\n\n. \"$(dirname \"$0\")/_/husky.sh\"\n. \"$(dirname \"$0\")/common.sh\"\n\necho --------------------------------------------\necho Starting Git hook: prepare-commit-msg\n\n# if we hve a cmd that is running ${hasPnpm ? \"pnpx\" : \"npx\"} cz that means finalize and commit\nFILE=commit.cmd\nif test -f \"$FILE\"; then\n echo \"$FILE exists.\"\n rm commit.cmd\n exit 0;\nfi\n# if on Windows, spawn a cmd that will run ${hasPnpm ? \"pnpx\" : \"npx\"} cz\ncase \\`uname\\` in\n *CYGWIN*|*MINGW*|*MSYS* )\n # Only run commitizen if no commit message was already provided.\n if [ -z \"\\${2-}\" ]; then\n export CZ_TYPE=\"\\${CZ_TYPE:-fix}\"\n export CZ_MAX_HEADER_WIDTH=$COMMITLINT_MAX_WIDTH\n export CZ_MAX_LINE_WIDTH=$CZ_MAX_HEADER_WIDTH\n echo \"${hasPnpm ? \"pnpx\" : \"npx\"} cz && exit\" > commit.cmd\n start commit.cmd\n exit 1;\n fi\n\n exit 0;;\nesac\n\n# Only run commitizen if no commit message was already provided.\nif [ -z \"\\${2-}\" ]; then\n export CZ_TYPE=\"\\${CZ_TYPE:-fix}\"\n export CZ_MAX_HEADER_WIDTH=$COMMITLINT_MAX_WIDTH\n export CZ_MAX_LINE_WIDTH=$CZ_MAX_HEADER_WIDTH\n # By default git hooks are not interactive. exec < /dev/tty allows a users terminal to interact with commitizen.\n exec < /dev/tty && ${hasPnpm ? \"pnpx\" : \"npx\"} cz --hook || true\nfi\n\necho Finished Git hook: prepare-commit-msg\necho --------------------------------------------\n`,\n \"utf-8\",\n );\n }\n};\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\n(async () => {\n try {\n await writeLintstagedRc();\n await writeHuskyFiles();\n\n console.log(\"😎 Everything went well, have fun!\");\n\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(0);\n } catch (error) {\n console.log(\"😬 something went wrong:\");\n console.error(error);\n\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1);\n }\n})();\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anolilab/lint-staged-config",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Shareable Lint-Staged Config for any project.",
5
5
  "keywords": [
6
6
  "anolilab",
@@ -93,23 +93,24 @@
93
93
  "test:coverage": "vitest --config ./vitest.config.ts --run --coverage"
94
94
  },
95
95
  "dependencies": {
96
- "@anolilab/package-json-utils": "1.5.1",
96
+ "@anolilab/package-json-utils": "1.5.2",
97
97
  "cross-env": "^7.0.3",
98
98
  "find-up": "5.0.0",
99
99
  "shell-quote": "^1.8.1"
100
100
  },
101
101
  "devDependencies": {
102
+ "@anolilab/semantic-release-preset": "4.0.4",
102
103
  "@total-typescript/ts-reset": "^0.4.2",
103
- "@anolilab/semantic-release-preset": "4.0.3",
104
104
  "@types/lint-staged": "^13.2.0",
105
105
  "@types/shell-quote": "^1.7.1",
106
106
  "@vitest/coverage-v8": "^0.32.2",
107
107
  "husky": "^8.0.3",
108
108
  "lint-staged": "^13.2.3",
109
- "semantic-release": "^21.0.5",
109
+ "rimraf": "^5.0.1",
110
+ "semantic-release": "^21.0.6",
110
111
  "tsup": "^7.1.0",
111
112
  "type-fest": "^3.12.0",
112
- "typescript": "5.1.5",
113
+ "typescript": "5.1.6",
113
114
  "vitest": "^0.32.2"
114
115
  },
115
116
  "peerDependencies": {
@@ -1,9 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkT755FU2I_js = require('./chunk-T755FU2I.js');
4
-
5
- var i={[`*.{${["css","sass","scss","less"].join(",")}}`]:t=>[`prettier --ignore-unknown --write ${chunkT755FU2I_js.b(t)}`,"stylelint --fix"]},n=i;
6
-
7
- exports.a = n;
8
- //# sourceMappingURL=out.js.map
9
- //# sourceMappingURL=chunk-4PCPJEEI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/groups/stylesheets.ts"],"names":["group","filenames","concat_files_default","stylesheets_default"],"mappings":"wCAIA,IAAMA,EAAgB,CAClB,CAAC,MAAM,CAAC,MAAO,OAAQ,OAAQ,MAAM,EAAE,KAAK,GAAG,IAAI,EAAIC,GAAwB,CAC3E,qCAAqCC,EAAYD,CAAS,IAC1D,iBACJ,CACJ,EAEOE,EAAQH","sourcesContent":["import type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nconst group: Config = {\n [`*.{${[\"css\", \"sass\", \"scss\", \"less\"].join(\",\")}}`]: (filenames: string[]) => [\n `prettier --ignore-unknown --write ${concatFiles(filenames)}`,\n \"stylelint --fix\",\n ],\n};\n\nexport default group;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/get-nearest-config-path.ts"],"names":["findUp","existsSync","dirname","join","packageDirectorySync","cwd","filePath","getNearestPackageRootPath","packageDirectoryPath","joinPaths","paths","joined","getNearestConfigPath","fileName","packageRootPath","configPath","get_nearest_config_path_default"],"mappings":"AAAA,OAAOA,MAAY,UACnB,OAAS,cAAAC,MAAkB,KAC3B,OAAS,WAAAC,EAAS,QAAAC,MAAY,OAG9B,IAAMC,EAAwBC,GAAiB,CAC3C,IAAMC,EAAWN,EAAO,KAAK,eAAgB,CAAE,IAAAK,CAAI,CAAC,EAEpD,OAAOC,GAAYJ,EAAQI,CAAQ,CACvC,EAEMC,EAA6BF,GAA+B,CAC9D,IAAMG,EAAuBJ,EAAqBC,GAAO,QAAQ,IAAI,CAAC,EAEtE,GAAIG,GAAsB,WAAW,GAAG,EACpC,OAAOA,EAGX,MAAM,IAAI,MAAM,kEAAkEH,IAAM,CAC5F,EAEMI,EAA8CC,GAA2B,CAC3E,IAAMC,EAASR,EAAK,GAAGO,CAAK,EAE5B,GAAIC,EAAO,WAAW,GAAG,EACrB,OAAOA,EAGX,MAAM,IAAI,UAAU,8CAA8C,CACtE,EAEMC,EAAuB,CAAkEC,EAAaR,IAA8B,CACtI,IAAMS,EAAkBP,EAA0BF,CAAG,EAC/CU,EAAaN,EAAkB,CAACK,EAAsBD,CAAQ,CAAC,EAErE,GAAIZ,EAAWc,CAAU,EACrB,OAAOA,EAGX,MAAM,IAAI,MAAM,0BAA0BF,UAAiB,CAC/D,EAMOG,EAAQJ","sourcesContent":["import findUp from \"find-up\";\nimport { existsSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport type { Join } from \"type-fest\";\n\nconst packageDirectorySync = (cwd?: string) => {\n const filePath = findUp.sync(\"package.json\", { cwd });\n\n return filePath && dirname(filePath);\n};\n\nconst getNearestPackageRootPath = (cwd?: string): AbsolutePath => {\n const packageDirectoryPath = packageDirectorySync(cwd ?? process.cwd());\n\n if (packageDirectoryPath?.startsWith(\"/\")) {\n return packageDirectoryPath as AbsolutePath;\n }\n\n throw new Error(`Cannot determine the nearest root of the package for the file: ${cwd}!`);\n};\n\nconst joinPaths = <T extends ReadonlyArray<string>>(paths: T): Join<T, \"/\"> => {\n const joined = join(...paths);\n\n if (joined.startsWith(\"/\")) {\n return joined as Join<T, \"/\">;\n }\n\n throw new TypeError(`Joined path did not return an absolute path.`);\n};\n\nconst getNearestConfigPath = <N extends ConfigFileName, A extends AbsolutePath = AbsolutePath>(fileName: N, cwd?: A): ConfigPath<A, N> => {\n const packageRootPath = getNearestPackageRootPath(cwd);\n const configPath = joinPaths<[A, N]>([packageRootPath as A, fileName]);\n\n if (existsSync(configPath)) {\n return configPath;\n }\n\n throw new Error(`Cannot locate nearest \"${fileName}\" file!`);\n};\n\nexport type AbsolutePath = `/${string}`;\nexport type ConfigFileName = string;\nexport type ConfigPath<A extends AbsolutePath, N extends ConfigFileName> = Join<[A, N], \"/\">;\n\nexport default getNearestConfigPath;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/groups/tests.ts"],"names":["hasDependency","hasDevDependency","hasVitest","hasJest","hasAva","group","filenames","concat_files_default","tests_default"],"mappings":"yCAAA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,+BAKhD,IAAMC,EAAYF,EAAc,QAAQ,GAAKC,EAAiB,QAAQ,EAChEE,EAAUH,EAAc,MAAM,GAAKC,EAAiB,MAAM,EAC1DG,EAASJ,EAAc,KAAK,GAAKC,EAAiB,KAAK,EAEvDI,EAAgB,CAClB,GAAIH,GAAa,CAAE,oCAAqC,CAAC,sBAAsB,EAAG,sCAAuC,CAAC,sBAAsB,CAAE,EAClJ,GAAIC,GAAW,CACX,wBAAyB,CAAC,yBAAyB,EACnD,wBAAyB,CAAC,yBAAyB,EACnD,wBAAyB,CAAC,yBAAyB,EACnD,6BAA8B,CAAC,yBAAyB,EACxD,6BAA8B,CAAC,yBAAyB,EACxD,oCAAqC,CAAC,yBAAyB,EAC/D,sCAAuC,CAAC,yBAAyB,CACrE,EACA,GAAIC,GAAU,CACV,aAAeE,GAAwB,CAAC,OAAOC,EAAYD,CAAS,GAAG,EACvE,eAAiBA,GAAwB,CAAC,OAAOC,EAAYD,CAAS,GAAG,EACzE,sBAAwBA,GAAwB,CAAC,OAAOC,EAAYD,CAAS,GAAG,EAChF,oCAAsCA,GAAwB,CAAC,OAAOC,EAAYD,CAAS,GAAG,CAClG,CACJ,EAEOE,EAAQH","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nconst hasVitest = hasDependency(\"vitest\") || hasDevDependency(\"vitest\");\nconst hasJest = hasDependency(\"jest\") || hasDevDependency(\"jest\");\nconst hasAva = hasDependency(\"ava\") || hasDevDependency(\"ava\");\n\nconst group: Config = {\n ...(hasVitest && { \"**/__tests__/**/*.?(c|m)[jt]s?(x)\": [\"vitest related --run\"], \"**/?(*.){test,spec}.?(c|m)[jt]s?(x)\": [\"vitest related --run\"] }),\n ...(hasJest && {\n \"**/*.spec.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/*.test.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/test/*.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/__mocks__/*.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/__tests__/*.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/__tests__/**/*.?(c|m)[jt]s?(x)\": [\"jest --findRelatedTests\"],\n \"**/?(*.){test,spec}.?(c|m)[jt]s?(x)\": [\"jest --findRelatedTests\"],\n }),\n ...(hasAva && {\n \"**/test.js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n \"**/test-*.js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n \"**/*.(spec|test).js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n \"**/(test|tests|__tests__)/**/*.js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n }),\n};\n\nexport default group;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/groups/json.ts"],"names":["hasDependency","hasDevDependency","hasSortPackageJson","group","filenames","concat_files_default","json_default"],"mappings":"yCAAA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,+BAKhD,IAAMC,EAAqBF,EAAc,mBAAmB,GAAKC,EAAiB,mBAAmB,EAE/FE,EAAgB,CAClB,CAAC,MAAM,CAAC,OAAQ,QAAS,OAAO,EAAE,KAAK,GAAG,IAAI,EAAIC,GAAwB,CAAC,oBAAoBC,EAAYD,CAAS,GAAG,EACvH,GAAIF,EAAqB,CAAE,8CAAgDE,GAAwB,CAAC,qBAAqBC,EAAYD,CAAS,GAAG,CAAE,EAAI,CAAC,CAC5J,EAEOE,EAAQH","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nconst hasSortPackageJson = hasDependency(\"sort-package-json\") || hasDevDependency(\"sort-package-json\");\n\nconst group: Config = {\n [`*.{${[\"json\", \"json5\", \"jsonc\"].join(\",\")}}`]: (filenames: string[]) => [`prettier --write ${concatFiles(filenames)}`],\n ...(hasSortPackageJson ? { \"package.json,{packages,apps}/*/package.json\": (filenames: string[]) => [`sort-package-json ${concatFiles(filenames)}`] } : {}),\n};\n\nexport default group;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/groups/eslint/index.ts","../src/utils/lint-staged-config.ts","../src/groups/eslint/group-file-paths-by-directory-name.ts","../src/groups/eslint/remove-ignored-files.ts","../src/groups/eslint/create-eslint-commands.ts"],"names":["hasDependency","hasDevDependency","pkg","config","lint_staged_config_default","dirname","groupFilePathsByDirectoryName","filePaths","groups","filePath","directoryName","group_file_paths_by_directory_name_default","ESLint","quote","removeIgnoredFiles","filenames","eslint","ignoredFiles","filename","_","index","is_windows_default","remove_ignored_files_default","eslintSettings","eslintGlobalRulesForFix","configFile","createEslintArguments","eslintArguments","rules","rule","r","fixType","type","createEslintCommands","filteredFiles","groupedFilesNames","eslintCommands","configName","get_nearest_config_path_default","create_eslint_commands_default","extensions","group","concat_files_default","eslint_default"],"mappings":"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","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../../utils/concat-files\";\nimport createEslintCommands from \"./create-eslint-commands\";\n\nconst extensions = [\"cjs\", \"js\", \"mjs\", \"cts\", \"ts\", \"mts\", \"yml\", \"yaml\", \"jsx\", \"tsx\", \"mdx\", \"toml\"];\n\nif (!global.hasAnolilabLintStagedMarkdownCli) {\n global.hasAnolilabLintStagedMarkdownCli = hasDependency(\"markdownlint-cli\") || hasDevDependency(\"markdownlint-cli\");\n}\n\nif (!global.hasAnolilabLintStagedMarkdownCli2) {\n global.hasAnolilabLintStagedMarkdownCli2 = hasDependency(\"markdownlint-cli2\") || hasDevDependency(\"markdownlint-cli2\");\n}\n\nif (!global.hasAnolilabLintStagedMarkdownCli && !global.hasAnolilabLintStagedMarkdownCli2) {\n extensions.push(\"md\");\n}\n\nconst group: Config = {\n [`*.{${[extensions].join(\",\")}}`]: async (filenames: string[]) => [\n `prettier --write ${concatFiles(filenames)}`,\n ...(await createEslintCommands(filenames)),\n ],\n [`*.{${[\"json\", \"json5\", \"jsonc\"].join(\",\")}}`]: async (filenames: string[]) => [...(await createEslintCommands(filenames))],\n};\n\nexport default group;\n","import { pkg } from \"@anolilab/package-json-utils\";\n\nif (!global.anolilabLintStagedPackageJsonConfig && pkg) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n global.anolilabLintStagedPackageJsonConfig = pkg?.[\"anolilab\"]?.[\"lint-staged-config\"];\n}\n\nconst config: { [key: string]: boolean | undefined } = global.anolilabLintStagedPackageJsonConfig ?? {};\n\nexport default config;\n","import { dirname } from \"node:path\";\n\nconst groupFilePathsByDirectoryName = (filePaths: string[]): { [key: string]: string[] } => {\n const groups: { [key: string]: string[] } = {};\n\n filePaths.forEach((filePath) => {\n const directoryName = dirname(filePath);\n\n if (!groups[directoryName]) {\n groups[directoryName] = [];\n }\n\n (groups[directoryName] as string[]).push(filePath);\n });\n\n return groups;\n};\n\nexport default groupFilePathsByDirectoryName;\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport { ESLint } from \"eslint\";\nimport { quote } from \"shell-quote\";\n\nimport isWindows from \"../../utils/is-windows\";\n\nconst removeIgnoredFiles = async (filenames: string[]): Promise<string[]> => {\n const eslint = new ESLint();\n // eslint-disable-next-line compat/compat\n const ignoredFiles = await Promise.all(filenames.map((filename) => eslint.isPathIgnored(filename)));\n const filteredFiles = filenames.filter((_, index) => !ignoredFiles[index]);\n\n return filteredFiles.map((filename) => `\"${isWindows ? filename : quote([filename])}\"`);\n};\n\nexport default removeIgnoredFiles;\n","import getNearestConfigPath from \"../../utils/get-nearest-config-path\";\nimport anolilabLintStagedConfig from \"../../utils/lint-staged-config\";\nimport groupFilePathsByDirectoryName from \"./group-file-paths-by-directory-name\";\nimport removeIgnoredFiles from \"./remove-ignored-files\";\n\ntype ESLintSettings = {\n settings: {\n eslint?: {\n \"max-warnings\"?: number | string | false;\n rules?: string[];\n \"fix-type\": string[];\n cache?: boolean;\n config?: string;\n };\n };\n};\n\nconst eslintSettings: ESLintSettings[\"settings\"][\"eslint\"] = (anolilabLintStagedConfig as unknown as ESLintSettings)?.[\"settings\"]?.[\"eslint\"] ?? ({} as ESLintSettings[\"settings\"][\"eslint\"]);\n\nconst eslintGlobalRulesForFix = [\n // react-hooks/eslint and react in general is very strict about exhaustively\n // declaring the dependencies when using the useEffect, useCallback... hooks.\n //\n // In some specific scenarios declaring the deps seems 'less' wanted or 'less' applicable\n // by the developer, leading to some exceptions in the code. That said it should be avoided.\n //\n // While the 'react-hooks/exhaustive-deps' rule is a good rule of thumb, it's not recommended to\n // automatically fix it from lint-staged as it can potentially break a legit intent.\n //\n // Reminder that a good practice is to always declare the dependencies when using the hooks,\n // and if not applicable, add an eslint disable comment to the useEffect, useCallback... such as:\n //\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n //\n // Another approach can be to use hooks such as https://github.com/kentcdodds/use-deep-compare-effect to quickly bypass\n // shallow rendering limitations.\n //\n // @see https://reactjs.org/docs/hooks-rules.html\n // @see https://eslint.org/docs/2.13.1/user-guide/configuring#disabling-rules-with-inline-comments\n \"react-hooks/exhaustive-deps: off\",\n];\n\nconst configFile = \".eslintrc\";\n\nconst createEslintArguments = (): string[] => {\n const eslintArguments: string[] = [];\n\n if (eslintSettings?.[\"max-warnings\"] !== undefined && Number.isNaN(eslintSettings[\"max-warnings\"])) {\n eslintArguments.push(`--max-warnings=${eslintSettings[\"max-warnings\"]}`);\n } else if (eslintSettings?.[\"max-warnings\"] !== false) {\n eslintArguments.push(\"--max-warnings=0\");\n }\n\n const rules = [];\n\n if (eslintSettings?.[\"rules\"] !== undefined && Array.isArray(eslintSettings[\"rules\"])) {\n rules.push([...eslintSettings[\"rules\"], ...eslintGlobalRulesForFix].filter((rule) => rule.trim().length > 0).map((r) => `\"${r.trim()}\"`));\n } else {\n rules.push(eslintGlobalRulesForFix.map((r) => `\"${r.trim()}\"`));\n }\n\n if (rules.length > 0) {\n eslintArguments.push(`--rule ${rules.join(\" --rule \")}`);\n }\n\n // For lint-staged it's safer to not apply the fix command if it changes the AST\n // @see https://eslint.org/docs/user-guide/command-line-interface#--fix-type\n const fixType = [...(eslintSettings?.[\"fix-type\"] ?? [\"layout\"])].filter((type) => type.trim().length > 0);\n\n if (fixType.length > 0) {\n eslintArguments.push(`--fix-type ${fixType.join(\",\")}`, \"--fix\");\n }\n\n if (eslintSettings?.[\"cache\"]) {\n eslintArguments.push(\"--cache\");\n }\n\n return eslintArguments;\n};\n\nconst createEslintCommands = async (filenames: string[]): Promise<string[]> => {\n const filteredFiles = await removeIgnoredFiles(filenames);\n\n const eslintArguments = createEslintArguments();\n\n if (eslintSettings?.[\"config\"]) {\n eslintArguments.push(`--config ${eslintSettings[\"config\"]}`);\n\n return [`cross-env NO_LOGS=true eslint ${eslintArguments.join(\" \")} ${filteredFiles.join(\" \")}`];\n }\n\n const groupedFilesNames = groupFilePathsByDirectoryName(filteredFiles);\n const eslintCommands: string[] = [];\n\n Object.values(groupedFilesNames).forEach((filePaths) => {\n let config: string | undefined;\n\n [configFile, `${configFile}.js`, `${configFile}.cjs`, `${configFile}.json`, `${configFile}.yaml`, `${configFile}.yml`].forEach((configName) => {\n if (config) {\n return;\n }\n\n try {\n // eslint-disable-next-line no-template-curly-in-string\n config = getNearestConfigPath(configName, filePaths[0] as \"/${string}\");\n } catch {\n // Ignore\n }\n });\n\n if (config) {\n eslintCommands.push(`cross-env NO_LOGS=true eslint ${eslintArguments.join(\" \")} --config ${config} ${filePaths.join(\" \")}`);\n }\n });\n\n return eslintCommands;\n};\n\nexport default createEslintCommands;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/groups/markdown.ts"],"names":["hasDependency","hasDevDependency","group","filenames","concat_files_default","markdown_default"],"mappings":"wCAAA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,+BAK3C,OAAO,mCACR,OAAO,iCAAmCD,EAAc,kBAAkB,GAAKC,EAAiB,kBAAkB,GAEjH,OAAO,oCACR,OAAO,kCAAoCD,EAAc,mBAAmB,GAAKC,EAAiB,mBAAmB,GAGzH,IAAMC,EAAgB,CAClB,UAAYC,GAAwB,CAChC,oBAAoBC,EAAYD,CAAS,IACzC,GAAI,OAAO,iCACL,CAAC,+EAA+EC,EAAYD,CAAS,GAAG,EACxG,CAAC,EACP,GAAI,OAAO,kCAAoC,CAAC,oEAAoEC,EAAYD,CAAS,GAAG,EAAI,CAAC,CACrJ,EACA,WAAaA,GAAc,CAAC,oBAAoBC,EAAYD,CAAS,GAAG,CAC5E,EAEOE,EAAQH","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nif (!global.hasAnolilabLintStagedMarkdownCli) {\n global.hasAnolilabLintStagedMarkdownCli = hasDependency(\"markdownlint-cli\") || hasDevDependency(\"markdownlint-cli\");\n}\nif (!global.hasAnolilabLintStagedMarkdownCli2) {\n global.hasAnolilabLintStagedMarkdownCli2 = hasDependency(\"markdownlint-cli2\") || hasDevDependency(\"markdownlint-cli2\");\n}\n\nconst group: Config = {\n \"**/*.md\": (filenames: string[]) => [\n `prettier --write ${concatFiles(filenames)}`,\n ...(global.hasAnolilabLintStagedMarkdownCli\n ? [`markdownlint --fix --ignore '**/node_modules/**' --ignore '**/CHANGELOG.md' ${concatFiles(filenames)}`]\n : []),\n ...(global.hasAnolilabLintStagedMarkdownCli2 ? [`markdownlint-cli2 --fix '!**/node_modules/**' '!**/CHANGELOG.md' ${concatFiles(filenames)}`] : []),\n ],\n \"**/*.mdx\": (filenames) => [`prettier --write ${concatFiles(filenames)}`],\n};\n\nexport default group;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/get-nearest-config-path.ts"],"names":["findUp","existsSync","dirname","join","packageDirectorySync","cwd","filePath","getNearestPackageRootPath","packageDirectoryPath","joinPaths","paths","joined","getNearestConfigPath","fileName","packageRootPath","configPath","get_nearest_config_path_default"],"mappings":"AAAA,OAAOA,MAAY,UACnB,OAAS,cAAAC,MAAkB,KAC3B,OAAS,WAAAC,EAAS,QAAAC,MAAY,OAG9B,IAAMC,EAAwBC,GAAiB,CAC3C,IAAMC,EAAWN,EAAO,KAAK,eAAgB,CAAE,IAAAK,CAAI,CAAC,EAEpD,OAAOC,GAAYJ,EAAQI,CAAQ,CACvC,EAEMC,EAA6BF,GAA+B,CAC9D,IAAMG,EAAuBJ,EAAqBC,GAAO,QAAQ,IAAI,CAAC,EAEtE,GAAIG,GAAsB,WAAW,GAAG,EACpC,OAAOA,EAGX,MAAM,IAAI,MAAM,kEAAkEH,IAAM,CAC5F,EAEMI,EAA8CC,GAA2B,CAC3E,IAAMC,EAASR,EAAK,GAAGO,CAAK,EAE5B,GAAIC,EAAO,WAAW,GAAG,EACrB,OAAOA,EAGX,MAAM,IAAI,UAAU,8CAA8C,CACtE,EAEMC,EAAuB,CAAkEC,EAAaR,IAA8B,CACtI,IAAMS,EAAkBP,EAA0BF,CAAG,EAC/CU,EAAaN,EAAkB,CAACK,EAAsBD,CAAQ,CAAC,EAErE,GAAIZ,EAAWc,CAAU,EACrB,OAAOA,EAGX,MAAM,IAAI,MAAM,0BAA0BF,UAAiB,CAC/D,EAMOG,EAAQJ","sourcesContent":["import findUp from \"find-up\";\nimport { existsSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport type { Join } from \"type-fest\";\n\nconst packageDirectorySync = (cwd?: string) => {\n const filePath = findUp.sync(\"package.json\", { cwd });\n\n return filePath && dirname(filePath);\n};\n\nconst getNearestPackageRootPath = (cwd?: string): AbsolutePath => {\n const packageDirectoryPath = packageDirectorySync(cwd ?? process.cwd());\n\n if (packageDirectoryPath?.startsWith(\"/\")) {\n return packageDirectoryPath as AbsolutePath;\n }\n\n throw new Error(`Cannot determine the nearest root of the package for the file: ${cwd}!`);\n};\n\nconst joinPaths = <T extends ReadonlyArray<string>>(paths: T): Join<T, \"/\"> => {\n const joined = join(...paths);\n\n if (joined.startsWith(\"/\")) {\n return joined as Join<T, \"/\">;\n }\n\n throw new TypeError(`Joined path did not return an absolute path.`);\n};\n\nconst getNearestConfigPath = <N extends ConfigFileName, A extends AbsolutePath = AbsolutePath>(fileName: N, cwd?: A): ConfigPath<A, N> => {\n const packageRootPath = getNearestPackageRootPath(cwd);\n const configPath = joinPaths<[A, N]>([packageRootPath as A, fileName]);\n\n if (existsSync(configPath)) {\n return configPath;\n }\n\n throw new Error(`Cannot locate nearest \"${fileName}\" file!`);\n};\n\nexport type AbsolutePath = `/${string}`;\nexport type ConfigFileName = string;\nexport type ConfigPath<A extends AbsolutePath, N extends ConfigFileName> = Join<[A, N], \"/\">;\n\nexport default getNearestConfigPath;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/groups/typescript.ts"],"names":["env","group","filenames","commands","filePath","tsconfigPath","get_nearest_config_path_default","error","typescript_default"],"mappings":"wCACA,OAAS,OAAAA,MAAW,UAIpB,IAAMC,EAAgB,CAClB,CAAC,MAAM,CAAC,KAAM,MAAO,KAAK,EAAE,KAAK,GAAG,IAAI,EAAIC,GAAwB,CAChE,IAAMC,EAAW,IAAI,IAErB,OAAAD,EAAU,QAASE,GAAa,CAC5B,GAAI,CAEA,IAAMC,EAAeC,EAAqB,gBAAiBF,CAAwB,EAEnFD,EAAS,IAAI,0BAA0BE,GAAc,CACzD,OAASE,EAAP,CACMP,EAAI,OACJ,QAAQ,MAAMO,CAAK,CAE3B,CACJ,CAAC,EAEM,CAAC,GAAGJ,CAAQ,CACvB,CACJ,EAEOK,EAAQP","sourcesContent":["import type { Config } from \"lint-staged\";\nimport { env } from \"node:process\";\n\nimport getNearestConfigPath from \"../utils/get-nearest-config-path\";\n\nconst group: Config = {\n [`*.{${[\"ts\", \"mts\", \"cts\"].join(\",\")}}`]: (filenames: string[]) => {\n const commands = new Set<string>();\n\n filenames.forEach((filePath) => {\n try {\n // eslint-disable-next-line no-template-curly-in-string\n const tsconfigPath = getNearestConfigPath(\"tsconfig.json\", filePath as \"/${string}\");\n\n commands.add(`tsc --noEmit --project ${tsconfigPath}`);\n } catch (error: any) {\n if (env[\"DEBUG\"]) {\n console.error(error);\n }\n }\n });\n\n return [...commands];\n },\n};\n\nexport default group;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/concat-files.ts","../src/utils/is-windows.ts"],"names":["quote","env","isWindows","is_windows_default","concatFiles","filenames","filename","concat_files_default"],"mappings":"AAAA,OAAS,SAAAA,MAAa,cCAtB,OAAS,OAAAC,MAAW,UAGpB,IAAMC,EAAY,UAAY,QAAQ,WAAa,SAAW,kBAAkB,KAAKD,EAAI,QAAa,EAAE,GAEjGE,EAAQD,EDUf,IAAME,EAAeC,GAAgCA,EAAU,IAAKC,GAAa,IAAIH,EAAYG,EAAWN,EAAM,CAACM,CAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,EAEnIC,EAAQH","sourcesContent":["import { quote } from \"shell-quote\";\n\nimport isWindows from \"./is-windows\";\n\n/**\n * Concatenate and escape a list of filenames that can be passed as args to prettier cli\n *\n * Prettier and Stylelint have an issue with special characters in filenames,\n * such as the ones uses for Next.js dynamic routes (ie: [id].tsx...)\n *\n * @link https://github.com/okonet/lint-staged/issues/676\n *\n * @param {string[]} filenames\n * @returns {string} Return concatenated and escaped filenames\n */\nconst concatFiles = (filenames: string[]): string => filenames.map((filename) => `\"${isWindows ? filename : quote([filename])}\"`).join(\" \");\n\nexport default concatFiles;\n","import { env } from \"node:process\";\n\n// eslint-disable-next-line regexp/no-unused-capturing-group\nconst isWindows = process && (process.platform === \"win32\" || /^(msys|cygwin)$/.test(env[\"OSTYPE\"] ?? \"\"));\n\nexport default isWindows;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/groups/eslint/index.ts","../src/utils/lint-staged-config.ts","../src/groups/eslint/group-file-paths-by-directory-name.ts","../src/groups/eslint/remove-ignored-files.ts","../src/groups/eslint/create-eslint-commands.ts"],"names":["hasDependency","hasDevDependency","pkg","config","lint_staged_config_default","dirname","groupFilePathsByDirectoryName","filePaths","groups","filePath","directoryName","group_file_paths_by_directory_name_default","ESLint","quote","removeIgnoredFiles","filenames","eslint","ignoredFiles","filename","_","index","is_windows_default","remove_ignored_files_default","eslintSettings","eslintGlobalRulesForFix","configFile","createEslintArguments","eslintArguments","rules","rule","r","fixType","type","createEslintCommands","filteredFiles","groupedFilesNames","eslintCommands","configName","get_nearest_config_path_default","create_eslint_commands_default","extensions","group","concat_files_default","eslint_default"],"mappings":"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","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../../utils/concat-files\";\nimport createEslintCommands from \"./create-eslint-commands\";\n\nconst extensions = [\"cjs\", \"js\", \"mjs\", \"cts\", \"ts\", \"mts\", \"yml\", \"yaml\", \"jsx\", \"tsx\", \"mdx\", \"toml\"];\n\nif (!global.hasAnolilabLintStagedMarkdownCli) {\n global.hasAnolilabLintStagedMarkdownCli = hasDependency(\"markdownlint-cli\") || hasDevDependency(\"markdownlint-cli\");\n}\n\nif (!global.hasAnolilabLintStagedMarkdownCli2) {\n global.hasAnolilabLintStagedMarkdownCli2 = hasDependency(\"markdownlint-cli2\") || hasDevDependency(\"markdownlint-cli2\");\n}\n\nif (!global.hasAnolilabLintStagedMarkdownCli && !global.hasAnolilabLintStagedMarkdownCli2) {\n extensions.push(\"md\");\n}\n\nconst group: Config = {\n [`*.{${[extensions].join(\",\")}}`]: async (filenames: string[]) => [\n `prettier --write ${concatFiles(filenames)}`,\n ...(await createEslintCommands(filenames)),\n ],\n [`*.{${[\"json\", \"json5\", \"jsonc\"].join(\",\")}}`]: async (filenames: string[]) => [...(await createEslintCommands(filenames))],\n};\n\nexport default group;\n","import { pkg } from \"@anolilab/package-json-utils\";\n\nif (!global.anolilabLintStagedPackageJsonConfig && pkg) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n global.anolilabLintStagedPackageJsonConfig = pkg?.[\"anolilab\"]?.[\"lint-staged-config\"];\n}\n\nconst config: { [key: string]: boolean | undefined } = global.anolilabLintStagedPackageJsonConfig ?? {};\n\nexport default config;\n","import { dirname } from \"node:path\";\n\nconst groupFilePathsByDirectoryName = (filePaths: string[]): { [key: string]: string[] } => {\n const groups: { [key: string]: string[] } = {};\n\n filePaths.forEach((filePath) => {\n const directoryName = dirname(filePath);\n\n if (!groups[directoryName]) {\n groups[directoryName] = [];\n }\n\n (groups[directoryName] as string[]).push(filePath);\n });\n\n return groups;\n};\n\nexport default groupFilePathsByDirectoryName;\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport { ESLint } from \"eslint\";\nimport { quote } from \"shell-quote\";\n\nimport isWindows from \"../../utils/is-windows\";\n\nconst removeIgnoredFiles = async (filenames: string[]): Promise<string[]> => {\n const eslint = new ESLint();\n // eslint-disable-next-line compat/compat\n const ignoredFiles = await Promise.all(filenames.map((filename) => eslint.isPathIgnored(filename)));\n const filteredFiles = filenames.filter((_, index) => !ignoredFiles[index]);\n\n return filteredFiles.map((filename) => `\"${isWindows ? filename : quote([filename])}\"`);\n};\n\nexport default removeIgnoredFiles;\n","import getNearestConfigPath from \"../../utils/get-nearest-config-path\";\nimport anolilabLintStagedConfig from \"../../utils/lint-staged-config\";\nimport groupFilePathsByDirectoryName from \"./group-file-paths-by-directory-name\";\nimport removeIgnoredFiles from \"./remove-ignored-files\";\n\ntype ESLintSettings = {\n settings: {\n eslint?: {\n \"max-warnings\"?: number | string | false;\n rules?: string[];\n \"fix-type\": string[];\n cache?: boolean;\n config?: string;\n };\n };\n};\n\nconst eslintSettings: ESLintSettings[\"settings\"][\"eslint\"] = (anolilabLintStagedConfig as unknown as ESLintSettings)?.[\"settings\"]?.[\"eslint\"] ?? ({} as ESLintSettings[\"settings\"][\"eslint\"]);\n\nconst eslintGlobalRulesForFix = [\n // react-hooks/eslint and react in general is very strict about exhaustively\n // declaring the dependencies when using the useEffect, useCallback... hooks.\n //\n // In some specific scenarios declaring the deps seems 'less' wanted or 'less' applicable\n // by the developer, leading to some exceptions in the code. That said it should be avoided.\n //\n // While the 'react-hooks/exhaustive-deps' rule is a good rule of thumb, it's not recommended to\n // automatically fix it from lint-staged as it can potentially break a legit intent.\n //\n // Reminder that a good practice is to always declare the dependencies when using the hooks,\n // and if not applicable, add an eslint disable comment to the useEffect, useCallback... such as:\n //\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n //\n // Another approach can be to use hooks such as https://github.com/kentcdodds/use-deep-compare-effect to quickly bypass\n // shallow rendering limitations.\n //\n // @see https://reactjs.org/docs/hooks-rules.html\n // @see https://eslint.org/docs/2.13.1/user-guide/configuring#disabling-rules-with-inline-comments\n \"react-hooks/exhaustive-deps: off\",\n];\n\nconst configFile = \".eslintrc\";\n\nconst createEslintArguments = (): string[] => {\n const eslintArguments: string[] = [];\n\n if (eslintSettings?.[\"max-warnings\"] !== undefined && Number.isNaN(eslintSettings[\"max-warnings\"])) {\n eslintArguments.push(`--max-warnings=${eslintSettings[\"max-warnings\"]}`);\n } else if (eslintSettings?.[\"max-warnings\"] !== false) {\n eslintArguments.push(\"--max-warnings=0\");\n }\n\n const rules = [];\n\n if (eslintSettings?.[\"rules\"] !== undefined && Array.isArray(eslintSettings[\"rules\"])) {\n rules.push([...eslintSettings[\"rules\"], ...eslintGlobalRulesForFix].filter((rule) => rule.trim().length > 0).map((r) => `\"${r.trim()}\"`));\n } else {\n rules.push(eslintGlobalRulesForFix.map((r) => `\"${r.trim()}\"`));\n }\n\n if (rules.length > 0) {\n eslintArguments.push(`--rule ${rules.join(\" --rule \")}`);\n }\n\n // For lint-staged it's safer to not apply the fix command if it changes the AST\n // @see https://eslint.org/docs/user-guide/command-line-interface#--fix-type\n const fixType = [...(eslintSettings?.[\"fix-type\"] ?? [\"layout\"])].filter((type) => type.trim().length > 0);\n\n if (fixType.length > 0) {\n eslintArguments.push(`--fix-type ${fixType.join(\",\")}`, \"--fix\");\n }\n\n if (eslintSettings?.[\"cache\"]) {\n eslintArguments.push(\"--cache\");\n }\n\n return eslintArguments;\n};\n\nconst createEslintCommands = async (filenames: string[]): Promise<string[]> => {\n const filteredFiles = await removeIgnoredFiles(filenames);\n\n const eslintArguments = createEslintArguments();\n\n if (eslintSettings?.[\"config\"]) {\n eslintArguments.push(`--config ${eslintSettings[\"config\"]}`);\n\n return [`cross-env NO_LOGS=true eslint ${eslintArguments.join(\" \")} ${filteredFiles.join(\" \")}`];\n }\n\n const groupedFilesNames = groupFilePathsByDirectoryName(filteredFiles);\n const eslintCommands: string[] = [];\n\n Object.values(groupedFilesNames).forEach((filePaths) => {\n let config: string | undefined;\n\n [configFile, `${configFile}.js`, `${configFile}.cjs`, `${configFile}.json`, `${configFile}.yaml`, `${configFile}.yml`].forEach((configName) => {\n if (config) {\n return;\n }\n\n try {\n // eslint-disable-next-line no-template-curly-in-string\n config = getNearestConfigPath(configName, filePaths[0] as \"/${string}\");\n } catch {\n // Ignore\n }\n });\n\n if (config) {\n eslintCommands.push(`cross-env NO_LOGS=true eslint ${eslintArguments.join(\" \")} --config ${config} ${filePaths.join(\" \")}`);\n }\n });\n\n return eslintCommands;\n};\n\nexport default createEslintCommands;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/concat-files.ts","../src/utils/is-windows.ts"],"names":["quote","env","isWindows","is_windows_default","concatFiles","filenames","filename","concat_files_default"],"mappings":"AAAA,OAAS,SAAAA,MAAa,cCAtB,OAAS,OAAAC,MAAW,UAGpB,IAAMC,EAAY,UAAY,QAAQ,WAAa,SAAW,kBAAkB,KAAKD,EAAI,QAAa,EAAE,GAEjGE,EAAQD,EDUf,IAAME,EAAeC,GAAgCA,EAAU,IAAKC,GAAa,IAAIH,EAAYG,EAAWN,EAAM,CAACM,CAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,EAEnIC,EAAQH","sourcesContent":["import { quote } from \"shell-quote\";\n\nimport isWindows from \"./is-windows\";\n\n/**\n * Concatenate and escape a list of filenames that can be passed as args to prettier cli\n *\n * Prettier and Stylelint have an issue with special characters in filenames,\n * such as the ones uses for Next.js dynamic routes (ie: [id].tsx...)\n *\n * @link https://github.com/okonet/lint-staged/issues/676\n *\n * @param {string[]} filenames\n * @returns {string} Return concatenated and escaped filenames\n */\nconst concatFiles = (filenames: string[]): string => filenames.map((filename) => `\"${isWindows ? filename : quote([filename])}\"`).join(\" \");\n\nexport default concatFiles;\n","import { env } from \"node:process\";\n\n// eslint-disable-next-line regexp/no-unused-capturing-group\nconst isWindows = process && (process.platform === \"win32\" || /^(msys|cygwin)$/.test(env[\"OSTYPE\"] ?? \"\"));\n\nexport default isWindows;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/groups/json.ts"],"names":["hasDependency","hasDevDependency","hasSortPackageJson","group","filenames","concat_files_default","json_default"],"mappings":"wCAAA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,+BAKhD,IAAMC,EAAqBF,EAAc,mBAAmB,GAAKC,EAAiB,mBAAmB,EAE/FE,EAAgB,CAClB,CAAC,MAAM,CAAC,OAAQ,QAAS,OAAO,EAAE,KAAK,GAAG,IAAI,EAAIC,GAAwB,CAAC,oBAAoBC,EAAYD,CAAS,GAAG,EACvH,GAAIF,EAAqB,CAAE,8CAAgDE,GAAwB,CAAC,qBAAqBC,EAAYD,CAAS,GAAG,CAAE,EAAI,CAAC,CAC5J,EAEOE,EAAQH","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nconst hasSortPackageJson = hasDependency(\"sort-package-json\") || hasDevDependency(\"sort-package-json\");\n\nconst group: Config = {\n [`*.{${[\"json\", \"json5\", \"jsonc\"].join(\",\")}}`]: (filenames: string[]) => [`prettier --write ${concatFiles(filenames)}`],\n ...(hasSortPackageJson ? { \"package.json,{packages,apps}/*/package.json\": (filenames: string[]) => [`sort-package-json ${concatFiles(filenames)}`] } : {}),\n};\n\nexport default group;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/groups/typescript.ts"],"names":["env","group","filenames","commands","filePath","tsconfigPath","get_nearest_config_path_default","error","typescript_default"],"mappings":"yCACA,OAAS,OAAAA,MAAW,UAIpB,IAAMC,EAAgB,CAClB,CAAC,MAAM,CAAC,KAAM,MAAO,KAAK,EAAE,KAAK,GAAG,IAAI,EAAIC,GAAwB,CAChE,IAAMC,EAAW,IAAI,IAErB,OAAAD,EAAU,QAASE,GAAa,CAC5B,GAAI,CAEA,IAAMC,EAAeC,EAAqB,gBAAiBF,CAAwB,EAEnFD,EAAS,IAAI,0BAA0BE,GAAc,CACzD,OAASE,EAAP,CACMP,EAAI,OACJ,QAAQ,MAAMO,CAAK,CAE3B,CACJ,CAAC,EAEM,CAAC,GAAGJ,CAAQ,CACvB,CACJ,EAEOK,EAAQP","sourcesContent":["import type { Config } from \"lint-staged\";\nimport { env } from \"node:process\";\n\nimport getNearestConfigPath from \"../utils/get-nearest-config-path\";\n\nconst group: Config = {\n [`*.{${[\"ts\", \"mts\", \"cts\"].join(\",\")}}`]: (filenames: string[]) => {\n const commands = new Set<string>();\n\n filenames.forEach((filePath) => {\n try {\n // eslint-disable-next-line no-template-curly-in-string\n const tsconfigPath = getNearestConfigPath(\"tsconfig.json\", filePath as \"/${string}\");\n\n commands.add(`tsc --noEmit --project ${tsconfigPath}`);\n } catch (error: any) {\n if (env[\"DEBUG\"]) {\n console.error(error);\n }\n }\n });\n\n return [...commands];\n },\n};\n\nexport default group;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/groups/stylesheets.ts"],"names":["group","filenames","concat_files_default","stylesheets_default"],"mappings":"yCAIA,IAAMA,EAAgB,CAClB,CAAC,MAAM,CAAC,MAAO,OAAQ,OAAQ,MAAM,EAAE,KAAK,GAAG,IAAI,EAAIC,GAAwB,CAC3E,qCAAqCC,EAAYD,CAAS,IAC1D,iBACJ,CACJ,EAEOE,EAAQH","sourcesContent":["import type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nconst group: Config = {\n [`*.{${[\"css\", \"sass\", \"scss\", \"less\"].join(\",\")}}`]: (filenames: string[]) => [\n `prettier --ignore-unknown --write ${concatFiles(filenames)}`,\n \"stylelint --fix\",\n ],\n};\n\nexport default group;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/groups/markdown.ts"],"names":["hasDependency","hasDevDependency","group","filenames","concat_files_default","markdown_default"],"mappings":"yCAAA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,+BAK3C,OAAO,mCACR,OAAO,iCAAmCD,EAAc,kBAAkB,GAAKC,EAAiB,kBAAkB,GAEjH,OAAO,oCACR,OAAO,kCAAoCD,EAAc,mBAAmB,GAAKC,EAAiB,mBAAmB,GAGzH,IAAMC,EAAgB,CAClB,UAAYC,GAAwB,CAChC,oBAAoBC,EAAYD,CAAS,IACzC,GAAI,OAAO,iCACL,CAAC,+EAA+EC,EAAYD,CAAS,GAAG,EACxG,CAAC,EACP,GAAI,OAAO,kCAAoC,CAAC,oEAAoEC,EAAYD,CAAS,GAAG,EAAI,CAAC,CACrJ,EACA,WAAaA,GAAc,CAAC,oBAAoBC,EAAYD,CAAS,GAAG,CAC5E,EAEOE,EAAQH","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nif (!global.hasAnolilabLintStagedMarkdownCli) {\n global.hasAnolilabLintStagedMarkdownCli = hasDependency(\"markdownlint-cli\") || hasDevDependency(\"markdownlint-cli\");\n}\nif (!global.hasAnolilabLintStagedMarkdownCli2) {\n global.hasAnolilabLintStagedMarkdownCli2 = hasDependency(\"markdownlint-cli2\") || hasDevDependency(\"markdownlint-cli2\");\n}\n\nconst group: Config = {\n \"**/*.md\": (filenames: string[]) => [\n `prettier --write ${concatFiles(filenames)}`,\n ...(global.hasAnolilabLintStagedMarkdownCli\n ? [`markdownlint --fix --ignore '**/node_modules/**' --ignore '**/CHANGELOG.md' ${concatFiles(filenames)}`]\n : []),\n ...(global.hasAnolilabLintStagedMarkdownCli2 ? [`markdownlint-cli2 --fix '!**/node_modules/**' '!**/CHANGELOG.md' ${concatFiles(filenames)}`] : []),\n ],\n \"**/*.mdx\": (filenames) => [`prettier --write ${concatFiles(filenames)}`],\n};\n\nexport default group;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/groups/tests.ts"],"names":["hasDependency","hasDevDependency","hasVitest","hasJest","hasAva","group","filenames","concat_files_default","tests_default"],"mappings":"wCAAA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,+BAKhD,IAAMC,EAAYF,EAAc,QAAQ,GAAKC,EAAiB,QAAQ,EAChEE,EAAUH,EAAc,MAAM,GAAKC,EAAiB,MAAM,EAC1DG,EAASJ,EAAc,KAAK,GAAKC,EAAiB,KAAK,EAEvDI,EAAgB,CAClB,GAAIH,GAAa,CAAE,oCAAqC,CAAC,sBAAsB,EAAG,sCAAuC,CAAC,sBAAsB,CAAE,EAClJ,GAAIC,GAAW,CACX,wBAAyB,CAAC,yBAAyB,EACnD,wBAAyB,CAAC,yBAAyB,EACnD,wBAAyB,CAAC,yBAAyB,EACnD,6BAA8B,CAAC,yBAAyB,EACxD,6BAA8B,CAAC,yBAAyB,EACxD,oCAAqC,CAAC,yBAAyB,EAC/D,sCAAuC,CAAC,yBAAyB,CACrE,EACA,GAAIC,GAAU,CACV,aAAeE,GAAwB,CAAC,OAAOC,EAAYD,CAAS,GAAG,EACvE,eAAiBA,GAAwB,CAAC,OAAOC,EAAYD,CAAS,GAAG,EACzE,sBAAwBA,GAAwB,CAAC,OAAOC,EAAYD,CAAS,GAAG,EAChF,oCAAsCA,GAAwB,CAAC,OAAOC,EAAYD,CAAS,GAAG,CAClG,CACJ,EAEOE,EAAQH","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Config } from \"lint-staged\";\n\nimport concatFiles from \"../utils/concat-files\";\n\nconst hasVitest = hasDependency(\"vitest\") || hasDevDependency(\"vitest\");\nconst hasJest = hasDependency(\"jest\") || hasDevDependency(\"jest\");\nconst hasAva = hasDependency(\"ava\") || hasDevDependency(\"ava\");\n\nconst group: Config = {\n ...(hasVitest && { \"**/__tests__/**/*.?(c|m)[jt]s?(x)\": [\"vitest related --run\"], \"**/?(*.){test,spec}.?(c|m)[jt]s?(x)\": [\"vitest related --run\"] }),\n ...(hasJest && {\n \"**/*.spec.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/*.test.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/test/*.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/__mocks__/*.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/__tests__/*.{js,ts,tsx}\": [\"jest --findRelatedTests\"],\n \"**/__tests__/**/*.?(c|m)[jt]s?(x)\": [\"jest --findRelatedTests\"],\n \"**/?(*.){test,spec}.?(c|m)[jt]s?(x)\": [\"jest --findRelatedTests\"],\n }),\n ...(hasAva && {\n \"**/test.js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n \"**/test-*.js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n \"**/*.(spec|test).js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n \"**/(test|tests|__tests__)/**/*.js\": (filenames: string[]) => [`ava ${concatFiles(filenames)}`],\n }),\n};\n\nexport default group;\n"]}