@tanstack/eslint-plugin-query 5.17.7 → 5.17.20

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 (169) hide show
  1. package/dist/cjs/configs.cjs +23 -0
  2. package/dist/cjs/configs.cjs.map +1 -0
  3. package/dist/cjs/configs.d.cts +6 -0
  4. package/dist/cjs/index.cjs +7 -0
  5. package/dist/cjs/index.cjs.map +1 -0
  6. package/dist/cjs/index.d.cts +2 -0
  7. package/dist/cjs/rules/exhaustive-deps.rule.cjs +114 -0
  8. package/dist/cjs/rules/exhaustive-deps.rule.cjs.map +1 -0
  9. package/dist/cjs/rules/exhaustive-deps.rule.d.cts +3 -0
  10. package/dist/cjs/rules/exhaustive-deps.utils.cjs +26 -0
  11. package/dist/cjs/rules/exhaustive-deps.utils.cjs.map +1 -0
  12. package/{build/legacy → dist/cjs}/rules/exhaustive-deps.utils.d.cts +2 -5
  13. package/dist/cjs/rules/no-rest-desctructuring/no-rest-destructuring.rule.cjs +60 -0
  14. package/dist/cjs/rules/no-rest-desctructuring/no-rest-destructuring.rule.cjs.map +1 -0
  15. package/dist/cjs/rules/no-rest-desctructuring/no-rest-destructuring.rule.d.cts +2 -0
  16. package/dist/cjs/rules/no-rest-desctructuring/no-rest-destructuring.test.d.cts +1 -0
  17. package/dist/cjs/rules/no-rest-desctructuring/no-rest-destructuring.utils.cjs +13 -0
  18. package/dist/cjs/rules/no-rest-desctructuring/no-rest-destructuring.utils.cjs.map +1 -0
  19. package/dist/cjs/rules/no-rest-desctructuring/no-rest-destructuring.utils.d.cts +4 -0
  20. package/dist/cjs/rules/stable-query-client/stable-query-client.rule.cjs +66 -0
  21. package/dist/cjs/rules/stable-query-client/stable-query-client.rule.cjs.map +1 -0
  22. package/dist/cjs/rules/stable-query-client/stable-query-client.rule.d.cts +3 -0
  23. package/dist/cjs/rules/stable-query-client/stable-query-client.test.d.cts +1 -0
  24. package/dist/cjs/rules.cjs +12 -0
  25. package/dist/cjs/rules.cjs.map +1 -0
  26. package/dist/cjs/rules.d.cts +5 -0
  27. package/{build/legacy → dist/cjs}/utils/ast-utils.cjs +31 -57
  28. package/dist/cjs/utils/ast-utils.cjs.map +1 -0
  29. package/{build/legacy → dist/cjs}/utils/ast-utils.d.cts +4 -6
  30. package/dist/cjs/utils/create-rule.cjs +13 -0
  31. package/dist/cjs/utils/create-rule.cjs.map +1 -0
  32. package/dist/cjs/utils/create-rule.d.cts +7 -0
  33. package/{build/legacy → dist/cjs}/utils/detect-react-query-imports.cjs +6 -32
  34. package/dist/cjs/utils/detect-react-query-imports.cjs.map +1 -0
  35. package/{build/legacy → dist/cjs}/utils/detect-react-query-imports.d.cts +5 -6
  36. package/dist/cjs/utils/test-utils.d.cts +1 -0
  37. package/dist/cjs/utils/unique-by.cjs +7 -0
  38. package/dist/cjs/utils/unique-by.cjs.map +1 -0
  39. package/dist/cjs/utils/unique-by.d.cts +1 -0
  40. package/dist/esm/configs.d.ts +6 -0
  41. package/{build/legacy → dist/esm}/configs.js +2 -3
  42. package/dist/esm/configs.js.map +1 -0
  43. package/dist/esm/index.d.ts +2 -0
  44. package/{build/legacy → dist/esm}/index.js +1 -2
  45. package/dist/esm/index.js.map +1 -0
  46. package/dist/esm/rules/exhaustive-deps.rule.d.ts +3 -0
  47. package/{build/legacy → dist/esm}/rules/exhaustive-deps.rule.js +5 -6
  48. package/dist/esm/rules/exhaustive-deps.rule.js.map +1 -0
  49. package/{build/legacy → dist/esm}/rules/exhaustive-deps.utils.d.ts +2 -5
  50. package/{build/legacy → dist/esm}/rules/exhaustive-deps.utils.js +2 -3
  51. package/dist/esm/rules/exhaustive-deps.utils.js.map +1 -0
  52. package/dist/esm/rules/no-rest-desctructuring/no-rest-destructuring.rule.d.ts +2 -0
  53. package/{build/legacy → dist/esm}/rules/no-rest-desctructuring/no-rest-destructuring.rule.js +4 -5
  54. package/dist/esm/rules/no-rest-desctructuring/no-rest-destructuring.rule.js.map +1 -0
  55. package/dist/esm/rules/no-rest-desctructuring/no-rest-destructuring.test.d.ts +1 -0
  56. package/dist/esm/rules/no-rest-desctructuring/no-rest-destructuring.utils.d.ts +4 -0
  57. package/{build/legacy → dist/esm}/rules/no-rest-desctructuring/no-rest-destructuring.utils.js +2 -3
  58. package/dist/esm/rules/no-rest-desctructuring/no-rest-destructuring.utils.js.map +1 -0
  59. package/dist/esm/rules/stable-query-client/stable-query-client.rule.d.ts +3 -0
  60. package/{build/legacy → dist/esm}/rules/stable-query-client/stable-query-client.rule.js +3 -4
  61. package/dist/esm/rules/stable-query-client/stable-query-client.rule.js.map +1 -0
  62. package/dist/esm/rules/stable-query-client/stable-query-client.test.d.ts +1 -0
  63. package/dist/esm/rules.d.ts +5 -0
  64. package/dist/esm/rules.js +12 -0
  65. package/dist/esm/rules.js.map +1 -0
  66. package/{build/legacy → dist/esm}/utils/ast-utils.d.ts +4 -6
  67. package/{build/legacy → dist/esm}/utils/ast-utils.js +2 -3
  68. package/dist/esm/utils/ast-utils.js.map +1 -0
  69. package/dist/esm/utils/create-rule.d.ts +7 -0
  70. package/{build/legacy → dist/esm}/utils/create-rule.js +2 -3
  71. package/dist/esm/utils/create-rule.js.map +1 -0
  72. package/{build/legacy → dist/esm}/utils/detect-react-query-imports.d.ts +5 -6
  73. package/{build/legacy → dist/esm}/utils/detect-react-query-imports.js +1 -2
  74. package/dist/esm/utils/detect-react-query-imports.js.map +1 -0
  75. package/dist/esm/utils/test-utils.d.ts +1 -0
  76. package/dist/esm/utils/unique-by.d.ts +1 -0
  77. package/{build/legacy → dist/esm}/utils/unique-by.js +1 -2
  78. package/dist/esm/utils/unique-by.js.map +1 -0
  79. package/package.json +11 -12
  80. package/build/legacy/__tests__/configs.test.cjs +0 -24
  81. package/build/legacy/__tests__/configs.test.cjs.map +0 -1
  82. package/build/legacy/__tests__/configs.test.d.cts +0 -2
  83. package/build/legacy/__tests__/configs.test.d.ts +0 -2
  84. package/build/legacy/__tests__/configs.test.js +0 -22
  85. package/build/legacy/__tests__/configs.test.js.map +0 -1
  86. package/build/legacy/__tests__/exhaustive-deps.test.cjs +0 -722
  87. package/build/legacy/__tests__/exhaustive-deps.test.cjs.map +0 -1
  88. package/build/legacy/__tests__/exhaustive-deps.test.d.cts +0 -2
  89. package/build/legacy/__tests__/exhaustive-deps.test.d.ts +0 -2
  90. package/build/legacy/__tests__/exhaustive-deps.test.js +0 -720
  91. package/build/legacy/__tests__/exhaustive-deps.test.js.map +0 -1
  92. package/build/legacy/configs.cjs +0 -49
  93. package/build/legacy/configs.cjs.map +0 -1
  94. package/build/legacy/configs.d.cts +0 -8
  95. package/build/legacy/configs.d.ts +0 -8
  96. package/build/legacy/configs.js.map +0 -1
  97. package/build/legacy/index.cjs +0 -34
  98. package/build/legacy/index.cjs.map +0 -1
  99. package/build/legacy/index.d.cts +0 -3
  100. package/build/legacy/index.d.ts +0 -3
  101. package/build/legacy/index.js.map +0 -1
  102. package/build/legacy/rules/exhaustive-deps.rule.cjs +0 -141
  103. package/build/legacy/rules/exhaustive-deps.rule.cjs.map +0 -1
  104. package/build/legacy/rules/exhaustive-deps.rule.d.cts +0 -6
  105. package/build/legacy/rules/exhaustive-deps.rule.d.ts +0 -6
  106. package/build/legacy/rules/exhaustive-deps.rule.js.map +0 -1
  107. package/build/legacy/rules/exhaustive-deps.utils.cjs +0 -52
  108. package/build/legacy/rules/exhaustive-deps.utils.cjs.map +0 -1
  109. package/build/legacy/rules/exhaustive-deps.utils.js.map +0 -1
  110. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.rule.cjs +0 -87
  111. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.rule.cjs.map +0 -1
  112. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.rule.d.cts +0 -6
  113. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.rule.d.ts +0 -6
  114. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.rule.js.map +0 -1
  115. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.test.cjs +0 -197
  116. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.test.cjs.map +0 -1
  117. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.test.d.cts +0 -2
  118. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.test.d.ts +0 -2
  119. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.test.js +0 -195
  120. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.test.js.map +0 -1
  121. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.utils.cjs +0 -39
  122. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.utils.cjs.map +0 -1
  123. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.utils.d.cts +0 -7
  124. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.utils.d.ts +0 -7
  125. package/build/legacy/rules/no-rest-desctructuring/no-rest-destructuring.utils.js.map +0 -1
  126. package/build/legacy/rules/stable-query-client/stable-query-client.rule.cjs +0 -93
  127. package/build/legacy/rules/stable-query-client/stable-query-client.rule.cjs.map +0 -1
  128. package/build/legacy/rules/stable-query-client/stable-query-client.rule.d.cts +0 -6
  129. package/build/legacy/rules/stable-query-client/stable-query-client.rule.d.ts +0 -6
  130. package/build/legacy/rules/stable-query-client/stable-query-client.rule.js.map +0 -1
  131. package/build/legacy/rules/stable-query-client/stable-query-client.test.cjs +0 -197
  132. package/build/legacy/rules/stable-query-client/stable-query-client.test.cjs.map +0 -1
  133. package/build/legacy/rules/stable-query-client/stable-query-client.test.d.cts +0 -2
  134. package/build/legacy/rules/stable-query-client/stable-query-client.test.d.ts +0 -2
  135. package/build/legacy/rules/stable-query-client/stable-query-client.test.js +0 -195
  136. package/build/legacy/rules/stable-query-client/stable-query-client.test.js.map +0 -1
  137. package/build/legacy/rules.cjs +0 -48
  138. package/build/legacy/rules.cjs.map +0 -1
  139. package/build/legacy/rules.d.cts +0 -9
  140. package/build/legacy/rules.d.ts +0 -9
  141. package/build/legacy/rules.js +0 -13
  142. package/build/legacy/rules.js.map +0 -1
  143. package/build/legacy/utils/ast-utils.cjs.map +0 -1
  144. package/build/legacy/utils/ast-utils.js.map +0 -1
  145. package/build/legacy/utils/create-rule.cjs +0 -39
  146. package/build/legacy/utils/create-rule.cjs.map +0 -1
  147. package/build/legacy/utils/create-rule.d.cts +0 -10
  148. package/build/legacy/utils/create-rule.d.ts +0 -10
  149. package/build/legacy/utils/create-rule.js.map +0 -1
  150. package/build/legacy/utils/detect-react-query-imports.cjs.map +0 -1
  151. package/build/legacy/utils/detect-react-query-imports.js.map +0 -1
  152. package/build/legacy/utils/object-utils.cjs +0 -33
  153. package/build/legacy/utils/object-utils.cjs.map +0 -1
  154. package/build/legacy/utils/object-utils.d.cts +0 -3
  155. package/build/legacy/utils/object-utils.d.ts +0 -3
  156. package/build/legacy/utils/object-utils.js +0 -8
  157. package/build/legacy/utils/object-utils.js.map +0 -1
  158. package/build/legacy/utils/test-utils.cjs +0 -36
  159. package/build/legacy/utils/test-utils.cjs.map +0 -1
  160. package/build/legacy/utils/test-utils.d.cts +0 -3
  161. package/build/legacy/utils/test-utils.d.ts +0 -3
  162. package/build/legacy/utils/test-utils.js +0 -11
  163. package/build/legacy/utils/test-utils.js.map +0 -1
  164. package/build/legacy/utils/unique-by.cjs +0 -33
  165. package/build/legacy/utils/unique-by.cjs.map +0 -1
  166. package/build/legacy/utils/unique-by.d.cts +0 -3
  167. package/build/legacy/utils/unique-by.d.ts +0 -3
  168. package/build/legacy/utils/unique-by.js.map +0 -1
  169. package/src/utils/object-utils.ts +0 -5
@@ -1,10 +0,0 @@
1
- import * as _typescript_eslint_utils_dist_ts_eslint_Rule from '@typescript-eslint/utils/dist/ts-eslint/Rule';
2
- import { ESLintUtils } from '@typescript-eslint/utils';
3
- import { EnhancedCreate } from './detect-react-query-imports.cjs';
4
-
5
- type EslintRule = Omit<Parameters<ReturnType<typeof ESLintUtils.RuleCreator>>[0], 'create'> & {
6
- create: EnhancedCreate;
7
- };
8
- declare function createRule({ create, ...rest }: EslintRule): _typescript_eslint_utils_dist_ts_eslint_Rule.RuleModule<string, readonly unknown[], _typescript_eslint_utils_dist_ts_eslint_Rule.RuleListener>;
9
-
10
- export { createRule };
@@ -1,10 +0,0 @@
1
- import * as _typescript_eslint_utils_dist_ts_eslint_Rule from '@typescript-eslint/utils/dist/ts-eslint/Rule';
2
- import { ESLintUtils } from '@typescript-eslint/utils';
3
- import { EnhancedCreate } from './detect-react-query-imports.js';
4
-
5
- type EslintRule = Omit<Parameters<ReturnType<typeof ESLintUtils.RuleCreator>>[0], 'create'> & {
6
- create: EnhancedCreate;
7
- };
8
- declare function createRule({ create, ...rest }: EslintRule): _typescript_eslint_utils_dist_ts_eslint_Rule.RuleModule<string, readonly unknown[], _typescript_eslint_utils_dist_ts_eslint_Rule.RuleListener>;
9
-
10
- export { createRule };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/create-rule.ts"],"sourcesContent":["import { ESLintUtils } from '@typescript-eslint/utils'\nimport { detectTanstackQueryImports } from './detect-react-query-imports'\nimport type { EnhancedCreate } from './detect-react-query-imports'\n\nconst getDocsUrl = (ruleName: string): string =>\n `https://tanstack.com/query/v4/docs/eslint/${ruleName}`\n\ntype EslintRule = Omit<\n Parameters<ReturnType<typeof ESLintUtils.RuleCreator>>[0],\n 'create'\n> & {\n create: EnhancedCreate\n}\n\nexport function createRule({ create, ...rest }: EslintRule) {\n return ESLintUtils.RuleCreator(getDocsUrl)({\n ...rest,\n create: detectTanstackQueryImports(create),\n })\n}\n"],"mappings":";AAAA,SAAS,mBAAmB;AAC5B,SAAS,kCAAkC;AAG3C,IAAM,aAAa,CAAC,aAClB,6CAA6C,QAAQ;AAShD,SAAS,WAAW,EAAE,QAAQ,GAAG,KAAK,GAAe;AAC1D,SAAO,YAAY,YAAY,UAAU,EAAE;AAAA,IACzC,GAAG;AAAA,IACH,QAAQ,2BAA2B,MAAM;AAAA,EAC3C,CAAC;AACH;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/detect-react-query-imports.ts"],"sourcesContent":["import { TSESTree } from '@typescript-eslint/utils'\nimport type { ESLintUtils, TSESLint } from '@typescript-eslint/utils'\n\ntype Create = Parameters<\n ReturnType<typeof ESLintUtils.RuleCreator>\n>[0]['create']\n\ntype Context = Parameters<Create>[0]\ntype Options = Parameters<Create>[1]\ntype Helpers = {\n isSpecificTanstackQueryImport: (\n node: TSESTree.Identifier,\n source: string,\n ) => boolean\n isTanstackQueryImport: (node: TSESTree.Identifier) => boolean\n}\n\nexport type EnhancedCreate = (\n context: Context,\n options: Options,\n helpers: Helpers,\n) => ReturnType<Create>\n\nexport function detectTanstackQueryImports(create: EnhancedCreate): Create {\n return (context, optionsWithDefault) => {\n const tanstackQueryImportSpecifiers: Array<TSESTree.ImportClause> = []\n\n const helpers: Helpers = {\n isSpecificTanstackQueryImport(node, source) {\n return !!tanstackQueryImportSpecifiers.find((specifier) => {\n if (\n specifier.type === TSESTree.AST_NODE_TYPES.ImportSpecifier &&\n specifier.parent?.type ===\n TSESTree.AST_NODE_TYPES.ImportDeclaration &&\n specifier.parent.source.value === source\n ) {\n return node.name === specifier.local.name\n }\n\n return false\n })\n },\n isTanstackQueryImport(node) {\n return !!tanstackQueryImportSpecifiers.find((specifier) => {\n if (specifier.type === TSESTree.AST_NODE_TYPES.ImportSpecifier) {\n return node.name === specifier.local.name\n }\n\n return false\n })\n },\n }\n\n const detectionInstructions: TSESLint.RuleListener = {\n ImportDeclaration(node) {\n if (\n node.specifiers.length > 0 &&\n node.importKind === 'value' &&\n node.source.value.startsWith('@tanstack/') &&\n node.source.value.endsWith('-query')\n ) {\n tanstackQueryImportSpecifiers.push(...node.specifiers)\n }\n },\n }\n\n // Call original rule definition\n const ruleInstructions = create(context, optionsWithDefault, helpers)\n const enhancedRuleInstructions: TSESLint.RuleListener = {}\n\n const allKeys = new Set(\n Object.keys(detectionInstructions).concat(Object.keys(ruleInstructions)),\n )\n\n // Iterate over ALL instructions keys so we can override original rule instructions\n // to prevent their execution if conditions to report errors are not met.\n allKeys.forEach((instruction) => {\n enhancedRuleInstructions[instruction] = (node) => {\n if (instruction in detectionInstructions) {\n detectionInstructions[instruction]?.(node)\n }\n\n // TODO: canReportErrors()\n if (ruleInstructions[instruction]) {\n return ruleInstructions[instruction]?.(node)\n }\n\n return undefined\n }\n })\n\n return enhancedRuleInstructions\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyB;AAuBlB,SAAS,2BAA2B,QAAgC;AACzE,SAAO,CAAC,SAAS,uBAAuB;AACtC,UAAM,gCAA8D,CAAC;AAErE,UAAM,UAAmB;AAAA,MACvB,8BAA8B,MAAM,QAAQ;AAC1C,eAAO,CAAC,CAAC,8BAA8B,KAAK,CAAC,cAAc;AA7BnE;AA8BU,cACE,UAAU,SAAS,sBAAS,eAAe,qBAC3C,eAAU,WAAV,mBAAkB,UAChB,sBAAS,eAAe,qBAC1B,UAAU,OAAO,OAAO,UAAU,QAClC;AACA,mBAAO,KAAK,SAAS,UAAU,MAAM;AAAA,UACvC;AAEA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,MACA,sBAAsB,MAAM;AAC1B,eAAO,CAAC,CAAC,8BAA8B,KAAK,CAAC,cAAc;AACzD,cAAI,UAAU,SAAS,sBAAS,eAAe,iBAAiB;AAC9D,mBAAO,KAAK,SAAS,UAAU,MAAM;AAAA,UACvC;AAEA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAEA,UAAM,wBAA+C;AAAA,MACnD,kBAAkB,MAAM;AACtB,YACE,KAAK,WAAW,SAAS,KACzB,KAAK,eAAe,WACpB,KAAK,OAAO,MAAM,WAAW,YAAY,KACzC,KAAK,OAAO,MAAM,SAAS,QAAQ,GACnC;AACA,wCAA8B,KAAK,GAAG,KAAK,UAAU;AAAA,QACvD;AAAA,MACF;AAAA,IACF;AAGA,UAAM,mBAAmB,OAAO,SAAS,oBAAoB,OAAO;AACpE,UAAM,2BAAkD,CAAC;AAEzD,UAAM,UAAU,IAAI;AAAA,MAClB,OAAO,KAAK,qBAAqB,EAAE,OAAO,OAAO,KAAK,gBAAgB,CAAC;AAAA,IACzE;AAIA,YAAQ,QAAQ,CAAC,gBAAgB;AAC/B,+BAAyB,WAAW,IAAI,CAAC,SAAS;AA7ExD;AA8EQ,YAAI,eAAe,uBAAuB;AACxC,sCAAsB,iBAAtB,+CAAqC;AAAA,QACvC;AAGA,YAAI,iBAAiB,WAAW,GAAG;AACjC,kBAAO,sBAAiB,iBAAjB,0CAAgC;AAAA,QACzC;AAEA,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/detect-react-query-imports.ts"],"sourcesContent":["import { TSESTree } from '@typescript-eslint/utils'\nimport type { ESLintUtils, TSESLint } from '@typescript-eslint/utils'\n\ntype Create = Parameters<\n ReturnType<typeof ESLintUtils.RuleCreator>\n>[0]['create']\n\ntype Context = Parameters<Create>[0]\ntype Options = Parameters<Create>[1]\ntype Helpers = {\n isSpecificTanstackQueryImport: (\n node: TSESTree.Identifier,\n source: string,\n ) => boolean\n isTanstackQueryImport: (node: TSESTree.Identifier) => boolean\n}\n\nexport type EnhancedCreate = (\n context: Context,\n options: Options,\n helpers: Helpers,\n) => ReturnType<Create>\n\nexport function detectTanstackQueryImports(create: EnhancedCreate): Create {\n return (context, optionsWithDefault) => {\n const tanstackQueryImportSpecifiers: Array<TSESTree.ImportClause> = []\n\n const helpers: Helpers = {\n isSpecificTanstackQueryImport(node, source) {\n return !!tanstackQueryImportSpecifiers.find((specifier) => {\n if (\n specifier.type === TSESTree.AST_NODE_TYPES.ImportSpecifier &&\n specifier.parent?.type ===\n TSESTree.AST_NODE_TYPES.ImportDeclaration &&\n specifier.parent.source.value === source\n ) {\n return node.name === specifier.local.name\n }\n\n return false\n })\n },\n isTanstackQueryImport(node) {\n return !!tanstackQueryImportSpecifiers.find((specifier) => {\n if (specifier.type === TSESTree.AST_NODE_TYPES.ImportSpecifier) {\n return node.name === specifier.local.name\n }\n\n return false\n })\n },\n }\n\n const detectionInstructions: TSESLint.RuleListener = {\n ImportDeclaration(node) {\n if (\n node.specifiers.length > 0 &&\n node.importKind === 'value' &&\n node.source.value.startsWith('@tanstack/') &&\n node.source.value.endsWith('-query')\n ) {\n tanstackQueryImportSpecifiers.push(...node.specifiers)\n }\n },\n }\n\n // Call original rule definition\n const ruleInstructions = create(context, optionsWithDefault, helpers)\n const enhancedRuleInstructions: TSESLint.RuleListener = {}\n\n const allKeys = new Set(\n Object.keys(detectionInstructions).concat(Object.keys(ruleInstructions)),\n )\n\n // Iterate over ALL instructions keys so we can override original rule instructions\n // to prevent their execution if conditions to report errors are not met.\n allKeys.forEach((instruction) => {\n enhancedRuleInstructions[instruction] = (node) => {\n if (instruction in detectionInstructions) {\n detectionInstructions[instruction]?.(node)\n }\n\n // TODO: canReportErrors()\n if (ruleInstructions[instruction]) {\n return ruleInstructions[instruction]?.(node)\n }\n\n return undefined\n }\n })\n\n return enhancedRuleInstructions\n }\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AAuBlB,SAAS,2BAA2B,QAAgC;AACzE,SAAO,CAAC,SAAS,uBAAuB;AACtC,UAAM,gCAA8D,CAAC;AAErE,UAAM,UAAmB;AAAA,MACvB,8BAA8B,MAAM,QAAQ;AAC1C,eAAO,CAAC,CAAC,8BAA8B,KAAK,CAAC,cAAc;AA7BnE;AA8BU,cACE,UAAU,SAAS,SAAS,eAAe,qBAC3C,eAAU,WAAV,mBAAkB,UAChB,SAAS,eAAe,qBAC1B,UAAU,OAAO,OAAO,UAAU,QAClC;AACA,mBAAO,KAAK,SAAS,UAAU,MAAM;AAAA,UACvC;AAEA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,MACA,sBAAsB,MAAM;AAC1B,eAAO,CAAC,CAAC,8BAA8B,KAAK,CAAC,cAAc;AACzD,cAAI,UAAU,SAAS,SAAS,eAAe,iBAAiB;AAC9D,mBAAO,KAAK,SAAS,UAAU,MAAM;AAAA,UACvC;AAEA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAEA,UAAM,wBAA+C;AAAA,MACnD,kBAAkB,MAAM;AACtB,YACE,KAAK,WAAW,SAAS,KACzB,KAAK,eAAe,WACpB,KAAK,OAAO,MAAM,WAAW,YAAY,KACzC,KAAK,OAAO,MAAM,SAAS,QAAQ,GACnC;AACA,wCAA8B,KAAK,GAAG,KAAK,UAAU;AAAA,QACvD;AAAA,MACF;AAAA,IACF;AAGA,UAAM,mBAAmB,OAAO,SAAS,oBAAoB,OAAO;AACpE,UAAM,2BAAkD,CAAC;AAEzD,UAAM,UAAU,IAAI;AAAA,MAClB,OAAO,KAAK,qBAAqB,EAAE,OAAO,OAAO,KAAK,gBAAgB,CAAC;AAAA,IACzE;AAIA,YAAQ,QAAQ,CAAC,gBAAgB;AAC/B,+BAAyB,WAAW,IAAI,CAAC,SAAS;AA7ExD;AA8EQ,YAAI,eAAe,uBAAuB;AACxC,sCAAsB,iBAAtB,+CAAqC;AAAA,QACvC;AAGA,YAAI,iBAAiB,WAAW,GAAG;AACjC,kBAAO,sBAAiB,iBAAjB,0CAAgC;AAAA,QACzC;AAEA,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/utils/object-utils.ts
21
- var object_utils_exports = {};
22
- __export(object_utils_exports, {
23
- objectKeys: () => objectKeys
24
- });
25
- module.exports = __toCommonJS(object_utils_exports);
26
- function objectKeys(obj) {
27
- return Object.keys(obj);
28
- }
29
- // Annotate the CommonJS export names for ESM import in node:
30
- 0 && (module.exports = {
31
- objectKeys
32
- });
33
- //# sourceMappingURL=object-utils.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/object-utils.ts"],"sourcesContent":["export function objectKeys<T extends Record<string, unknown>>(\n obj: T,\n): Array<keyof T> {\n return Object.keys(obj) as Array<keyof T>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,WACd,KACgB;AAChB,SAAO,OAAO,KAAK,GAAG;AACxB;","names":[]}
@@ -1,3 +0,0 @@
1
- declare function objectKeys<T extends Record<string, unknown>>(obj: T): Array<keyof T>;
2
-
3
- export { objectKeys };
@@ -1,3 +0,0 @@
1
- declare function objectKeys<T extends Record<string, unknown>>(obj: T): Array<keyof T>;
2
-
3
- export { objectKeys };
@@ -1,8 +0,0 @@
1
- // src/utils/object-utils.ts
2
- function objectKeys(obj) {
3
- return Object.keys(obj);
4
- }
5
- export {
6
- objectKeys
7
- };
8
- //# sourceMappingURL=object-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/object-utils.ts"],"sourcesContent":["export function objectKeys<T extends Record<string, unknown>>(\n obj: T,\n): Array<keyof T> {\n return Object.keys(obj) as Array<keyof T>\n}\n"],"mappings":";AAAO,SAAS,WACd,KACgB;AAChB,SAAO,OAAO,KAAK,GAAG;AACxB;","names":[]}
@@ -1,36 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/utils/test-utils.ts
21
- var test_utils_exports = {};
22
- __export(test_utils_exports, {
23
- normalizeIndent: () => normalizeIndent
24
- });
25
- module.exports = __toCommonJS(test_utils_exports);
26
- function normalizeIndent(template) {
27
- var _a, _b, _c;
28
- const codeLines = ((_a = template[0]) == null ? void 0 : _a.split("\n")) ?? [""];
29
- const leftPadding = ((_c = (_b = codeLines[1]) == null ? void 0 : _b.match(/\s+/)) == null ? void 0 : _c[0]) ?? "";
30
- return codeLines.map((line) => line.slice(leftPadding.length)).join("\n");
31
- }
32
- // Annotate the CommonJS export names for ESM import in node:
33
- 0 && (module.exports = {
34
- normalizeIndent
35
- });
36
- //# sourceMappingURL=test-utils.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/test-utils.ts"],"sourcesContent":["export function normalizeIndent(template: TemplateStringsArray) {\n const codeLines = template[0]?.split('\\n') ?? ['']\n const leftPadding = codeLines[1]?.match(/\\s+/)?.[0] ?? ''\n return codeLines.map((line) => line.slice(leftPadding.length)).join('\\n')\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,gBAAgB,UAAgC;AAAhE;AACE,QAAM,cAAY,cAAS,CAAC,MAAV,mBAAa,MAAM,UAAS,CAAC,EAAE;AACjD,QAAM,gBAAc,qBAAU,CAAC,MAAX,mBAAc,MAAM,WAApB,mBAA6B,OAAM;AACvD,SAAO,UAAU,IAAI,CAAC,SAAS,KAAK,MAAM,YAAY,MAAM,CAAC,EAAE,KAAK,IAAI;AAC1E;","names":[]}
@@ -1,3 +0,0 @@
1
- declare function normalizeIndent(template: TemplateStringsArray): string;
2
-
3
- export { normalizeIndent };
@@ -1,3 +0,0 @@
1
- declare function normalizeIndent(template: TemplateStringsArray): string;
2
-
3
- export { normalizeIndent };
@@ -1,11 +0,0 @@
1
- // src/utils/test-utils.ts
2
- function normalizeIndent(template) {
3
- var _a, _b, _c;
4
- const codeLines = ((_a = template[0]) == null ? void 0 : _a.split("\n")) ?? [""];
5
- const leftPadding = ((_c = (_b = codeLines[1]) == null ? void 0 : _b.match(/\s+/)) == null ? void 0 : _c[0]) ?? "";
6
- return codeLines.map((line) => line.slice(leftPadding.length)).join("\n");
7
- }
8
- export {
9
- normalizeIndent
10
- };
11
- //# sourceMappingURL=test-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/test-utils.ts"],"sourcesContent":["export function normalizeIndent(template: TemplateStringsArray) {\n const codeLines = template[0]?.split('\\n') ?? ['']\n const leftPadding = codeLines[1]?.match(/\\s+/)?.[0] ?? ''\n return codeLines.map((line) => line.slice(leftPadding.length)).join('\\n')\n}\n"],"mappings":";AAAO,SAAS,gBAAgB,UAAgC;AAAhE;AACE,QAAM,cAAY,cAAS,CAAC,MAAV,mBAAa,MAAM,UAAS,CAAC,EAAE;AACjD,QAAM,gBAAc,qBAAU,CAAC,MAAX,mBAAc,MAAM,WAApB,mBAA6B,OAAM;AACvD,SAAO,UAAU,IAAI,CAAC,SAAS,KAAK,MAAM,YAAY,MAAM,CAAC,EAAE,KAAK,IAAI;AAC1E;","names":[]}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/utils/unique-by.ts
21
- var unique_by_exports = {};
22
- __export(unique_by_exports, {
23
- uniqueBy: () => uniqueBy
24
- });
25
- module.exports = __toCommonJS(unique_by_exports);
26
- function uniqueBy(arr, fn) {
27
- return arr.filter((x, i, a) => a.findIndex((y) => fn(x) === fn(y)) === i);
28
- }
29
- // Annotate the CommonJS export names for ESM import in node:
30
- 0 && (module.exports = {
31
- uniqueBy
32
- });
33
- //# sourceMappingURL=unique-by.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/unique-by.ts"],"sourcesContent":["export function uniqueBy<T>(arr: Array<T>, fn: (x: T) => unknown): Array<T> {\n return arr.filter((x, i, a) => a.findIndex((y) => fn(x) === fn(y)) === i)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,SAAY,KAAe,IAAiC;AAC1E,SAAO,IAAI,OAAO,CAAC,GAAG,GAAG,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC1E;","names":[]}
@@ -1,3 +0,0 @@
1
- declare function uniqueBy<T>(arr: Array<T>, fn: (x: T) => unknown): Array<T>;
2
-
3
- export { uniqueBy };
@@ -1,3 +0,0 @@
1
- declare function uniqueBy<T>(arr: Array<T>, fn: (x: T) => unknown): Array<T>;
2
-
3
- export { uniqueBy };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/unique-by.ts"],"sourcesContent":["export function uniqueBy<T>(arr: Array<T>, fn: (x: T) => unknown): Array<T> {\n return arr.filter((x, i, a) => a.findIndex((y) => fn(x) === fn(y)) === i)\n}\n"],"mappings":";AAAO,SAAS,SAAY,KAAe,IAAiC;AAC1E,SAAO,IAAI,OAAO,CAAC,GAAG,GAAG,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC1E;","names":[]}
@@ -1,5 +0,0 @@
1
- export function objectKeys<T extends Record<string, unknown>>(
2
- obj: T,
3
- ): Array<keyof T> {
4
- return Object.keys(obj) as Array<keyof T>
5
- }