oxlint-plugin-arch 0.11.0 → 0.12.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 (221) hide show
  1. package/CHANGELOG.md +241 -0
  2. package/README.md +52 -218
  3. package/dist/index.js +5205 -4073
  4. package/dist/preset/groups/backend.d.ts +2 -0
  5. package/dist/preset/groups/basics.d.ts +2 -0
  6. package/dist/preset/groups/comments.d.ts +2 -0
  7. package/dist/preset/groups/console.d.ts +2 -0
  8. package/dist/preset/groups/deny.d.ts +2 -0
  9. package/dist/preset/groups/expo.d.ts +2 -0
  10. package/dist/preset/groups/externals.d.ts +2 -0
  11. package/dist/preset/groups/forms.d.ts +2 -0
  12. package/dist/preset/groups/imports.d.ts +2 -0
  13. package/dist/preset/groups/layout.d.ts +2 -0
  14. package/dist/preset/groups/limits.d.ts +2 -0
  15. package/dist/preset/groups/naming.d.ts +2 -0
  16. package/dist/preset/groups/next.d.ts +2 -0
  17. package/dist/preset/groups/orpc.d.ts +2 -0
  18. package/dist/preset/groups/react.d.ts +2 -0
  19. package/dist/preset/groups/schemas.d.ts +2 -0
  20. package/dist/preset/groups/shadcn.d.ts +2 -0
  21. package/dist/preset/groups/sql.d.ts +2 -0
  22. package/dist/preset/groups/style.d.ts +2 -0
  23. package/dist/preset/groups/tailwind.d.ts +2 -0
  24. package/dist/preset/groups/tanstack.d.ts +2 -0
  25. package/dist/preset/groups/tests.d.ts +2 -0
  26. package/dist/preset/groups/types.d.ts +2 -0
  27. package/dist/preset/preset-detect.d.ts +3 -0
  28. package/dist/preset/preset-folders.d.ts +2 -0
  29. package/dist/preset/preset-recipes.d.ts +82 -0
  30. package/dist/preset/preset-stylesheet.d.ts +1 -0
  31. package/dist/preset/preset-units.d.ts +2 -0
  32. package/dist/preset/preset.constants.d.ts +79 -0
  33. package/dist/preset/preset.d.ts +89 -0
  34. package/dist/preset/preset.js +2299 -0
  35. package/dist/preset/preset.utils.d.ts +14 -0
  36. package/dist/rules/backend/backend-orpc-output.d.ts +1 -0
  37. package/dist/rules/backend/backend-registry.d.ts +1 -0
  38. package/dist/rules/backend/backend-service-functions.d.ts +1 -0
  39. package/dist/rules/backend/backend-sql-like.d.ts +1 -0
  40. package/dist/rules/boundaries/boundaries-deny.d.ts +1 -0
  41. package/dist/rules/boundaries/boundaries-imports.d.ts +1 -0
  42. package/dist/rules/boundaries/boundaries-next.d.ts +1 -0
  43. package/dist/rules/boundaries/boundaries-rpc-database.d.ts +1 -0
  44. package/dist/rules/boundaries/boundaries-tanstack.d.ts +1 -0
  45. package/dist/rules/boundaries/boundaries-token-owner.d.ts +1 -0
  46. package/dist/rules/code/code-constructor.d.ts +1 -0
  47. package/dist/rules/code/code-double-negation.d.ts +1 -0
  48. package/dist/rules/code/code-literal-in.d.ts +1 -0
  49. package/dist/rules/code/code-mutable-state.d.ts +1 -0
  50. package/dist/rules/code/code-object-params.d.ts +1 -0
  51. package/dist/rules/code/code-paired-call.d.ts +1 -0
  52. package/dist/rules/code/code-promise-mutation.d.ts +1 -0
  53. package/dist/rules/code/code-switch.d.ts +1 -0
  54. package/dist/rules/code/code-trivial-functions.d.ts +1 -0
  55. package/dist/rules/comments/comments-code.d.ts +1 -0
  56. package/dist/rules/comments/comments-directives.d.ts +1 -0
  57. package/dist/rules/copy/copy-dashes.d.ts +1 -0
  58. package/dist/rules/files/files-components-only.d.ts +1 -0
  59. package/dist/rules/files/files-constants-only.d.ts +1 -0
  60. package/dist/rules/files/files-domain-constants.d.ts +1 -0
  61. package/dist/rules/files/files-exports.d.ts +1 -0
  62. package/dist/rules/files/files-externals.d.ts +1 -0
  63. package/dist/rules/files/files-factory-keys.d.ts +1 -0
  64. package/dist/rules/files/files-helpers.d.ts +1 -0
  65. package/dist/rules/files/files-no-functions.d.ts +1 -0
  66. package/dist/rules/files/files-restricted.d.ts +1 -0
  67. package/dist/rules/files/files-route.d.ts +1 -0
  68. package/dist/rules/files/files-types-only.d.ts +1 -0
  69. package/dist/rules/layout/layout-call-arguments.d.ts +1 -0
  70. package/dist/rules/layout/layout-call-array.d.ts +1 -0
  71. package/dist/rules/layout/layout-chain.d.ts +1 -0
  72. package/dist/rules/layout/layout-jsx-attributes.d.ts +1 -0
  73. package/dist/rules/layout/layout-key-value.d.ts +1 -0
  74. package/dist/rules/layout/layout-object.d.ts +1 -0
  75. package/dist/rules/layout/layout-padding.d.ts +1 -0
  76. package/dist/rules/layout/layout-ternary.d.ts +1 -0
  77. package/dist/rules/naming/naming-declarations.d.ts +1 -0
  78. package/dist/rules/naming/naming-exports.d.ts +1 -0
  79. package/dist/rules/naming/naming-file.d.ts +1 -0
  80. package/dist/rules/naming/naming-folder.d.ts +1 -0
  81. package/dist/rules/naming/naming-types.d.ts +1 -0
  82. package/dist/rules/react/react-dynamic-classes.d.ts +1 -0
  83. package/dist/rules/react/react-empty-effect.d.ts +1 -0
  84. package/dist/rules/react/react-memo.d.ts +1 -0
  85. package/dist/rules/react/react-props.d.ts +1 -0
  86. package/dist/rules/schemas/schemas-inline.d.ts +1 -0
  87. package/dist/rules/schemas/schemas-local.d.ts +1 -0
  88. package/dist/rules/schemas/schemas-rederive.d.ts +1 -0
  89. package/dist/rules/schemas/schemas-single-use.d.ts +1 -0
  90. package/dist/rules/tests/tests-assertions.d.ts +1 -0
  91. package/dist/rules/tests/tests-concurrent-db.d.ts +1 -0
  92. package/dist/rules/tests/tests-modifiers.d.ts +1 -0
  93. package/dist/rules/tests/tests-titles.d.ts +1 -0
  94. package/dist/rules/types/types-declarations.d.ts +1 -0
  95. package/dist/rules/types/types-imported-alias.d.ts +1 -0
  96. package/dist/rules/types/types-inline.d.ts +1 -0
  97. package/dist/rules/types/types-local-alias.d.ts +1 -0
  98. package/dist/rules/types/types-namespace-import.d.ts +1 -0
  99. package/dist/rules/types/types-service.d.ts +1 -0
  100. package/dist/rules/types/types-unknown.d.ts +1 -0
  101. package/dist/types/ast.types.d.ts +2 -0
  102. package/dist/types/backend.types.d.ts +24 -0
  103. package/dist/types/boundaries.types.d.ts +72 -0
  104. package/dist/types/code.types.d.ts +59 -0
  105. package/dist/types/comments.types.d.ts +12 -0
  106. package/dist/types/copy.types.d.ts +4 -0
  107. package/dist/types/declarations.types.d.ts +20 -0
  108. package/dist/types/dillon-anti-slop.types.d.ts +55 -0
  109. package/dist/types/exports.types.d.ts +11 -0
  110. package/dist/types/files.types.d.ts +85 -0
  111. package/dist/types/layout.types.d.ts +55 -0
  112. package/dist/types/naming.types.d.ts +52 -0
  113. package/dist/types/options.types.d.ts +4 -0
  114. package/dist/types/preset.types.d.ts +248 -129
  115. package/dist/types/react.types.d.ts +14 -0
  116. package/dist/types/schemas.types.d.ts +20 -0
  117. package/dist/types/source.types.d.ts +1 -0
  118. package/dist/types/tests.types.d.ts +39 -0
  119. package/dist/types/types.types.d.ts +20 -0
  120. package/dist/utils/ast.utils.d.ts +19 -0
  121. package/dist/utils/boundaries.utils.d.ts +85 -0
  122. package/dist/utils/declarations.utils.d.ts +21 -0
  123. package/dist/utils/exports.utils.d.ts +6 -0
  124. package/dist/utils/naming.utils.d.ts +11 -0
  125. package/dist/utils/options.utils.d.ts +11 -0
  126. package/dist/utils/react.utils.d.ts +3 -0
  127. package/dist/utils/schemas.utils.d.ts +36 -0
  128. package/dist/utils/source.utils.d.ts +18 -0
  129. package/dist/vendor/dillon-anti-slop/index.js +1770 -0
  130. package/dist/vendor/dillon-anti-slop/rules/no-known-value-widening.d.ts +2 -0
  131. package/dist/vendor/dillon-anti-slop/rules/no-module-mocking.d.ts +2 -0
  132. package/dist/vendor/dillon-anti-slop/shared/dictionary-types.d.ts +5 -0
  133. package/dist/vendor/dillon-anti-slop/shared/expressions.d.ts +5 -0
  134. package/dist/vendor/dillon-anti-slop/shared/lexical-type-parameters.d.ts +2 -0
  135. package/dist/vendor/dillon-anti-slop/shared/reflect-method.d.ts +1 -0
  136. package/dist/vendor/dillon-anti-slop/shared/resolve-variable.d.ts +2 -0
  137. package/dist/vendor/dillon-anti-slop/shared/signatures.d.ts +15 -0
  138. package/dist/vendor/dillon-anti-slop/shared/type-aliases.d.ts +4 -0
  139. package/dist/vendor/dillon-anti-slop/shared/type-environment.d.ts +9 -0
  140. package/dist/vendor/dillon-anti-slop/shared/type-reference-name.d.ts +2 -0
  141. package/dist/vendor/dillon-anti-slop/shared/widening-targets.d.ts +3 -0
  142. package/package.json +51 -43
  143. package/src/{rules → vendor}/dillon-anti-slop/UPSTREAM.md +9 -6
  144. package/dist/configs/boundaries.d.ts +0 -2
  145. package/dist/configs/modules.d.ts +0 -2
  146. package/dist/configs/plugins.d.ts +0 -3
  147. package/dist/configs/react.d.ts +0 -2
  148. package/dist/configs/source.d.ts +0 -2
  149. package/dist/configs/tests.d.ts +0 -2
  150. package/dist/configs/types.d.ts +0 -2
  151. package/dist/constants/preset.constants.d.ts +0 -38
  152. package/dist/constants/test.constants.d.ts +0 -1
  153. package/dist/presets/index.d.ts +0 -4
  154. package/dist/presets/index.js +0 -1736
  155. package/dist/presets/next-react-modules-preset.d.ts +0 -4
  156. package/dist/presets/next-react-modules-preset.js +0 -1729
  157. package/dist/presets/react-modules-preset.d.ts +0 -4
  158. package/dist/presets/react-modules-preset.js +0 -1724
  159. package/dist/presets/tanstack-start-react-modules-preset.d.ts +0 -4
  160. package/dist/presets/tanstack-start-react-modules-preset.js +0 -1729
  161. package/dist/rules/dillon-anti-slop/index.js +0 -2719
  162. package/dist/rules/dillon-anti-slop/rules/no-known-value-widening.d.ts +0 -1
  163. package/dist/rules/dillon-anti-slop/rules/no-module-mocking.d.ts +0 -8
  164. package/dist/rules/dillon-anti-slop/shared/dictionary-types.d.ts +0 -19
  165. package/dist/rules/dillon-anti-slop/shared/lexical-type-parameters.d.ts +0 -4
  166. package/dist/rules/dillon-anti-slop/shared/reflect-method.d.ts +0 -2
  167. package/dist/rules/module-policy/domain-constants.d.ts +0 -2
  168. package/dist/rules/module-policy/import-boundaries.d.ts +0 -2
  169. package/dist/rules/module-policy/index.js +0 -2266
  170. package/dist/rules/module-policy/memoization.d.ts +0 -2
  171. package/dist/rules/module-policy/next-runtime.d.ts +0 -7
  172. package/dist/rules/module-policy/no-unknown.d.ts +0 -6
  173. package/dist/rules/module-policy/reasoned-directives.d.ts +0 -2
  174. package/dist/rules/module-policy/service-functions.d.ts +0 -2
  175. package/dist/rules/module-policy/service-types.d.ts +0 -2
  176. package/dist/rules/module-policy/tanstack-runtime.d.ts +0 -2
  177. package/dist/rules/module-policy/test-assertions.d.ts +0 -2
  178. package/dist/rules/module-policy/test-modifiers.d.ts +0 -2
  179. package/dist/services/preset-compose.d.ts +0 -3
  180. package/dist/services/preset-context.d.ts +0 -2
  181. package/dist/types/module-policy.types.d.ts +0 -39
  182. package/dist/types/test-analysis.types.d.ts +0 -11
  183. package/dist/utils/helpers/ast.d.ts +0 -12
  184. package/dist/utils/helpers/boundaries.d.ts +0 -3
  185. package/dist/utils/helpers/comments.d.ts +0 -6
  186. package/dist/utils/helpers/declarations.d.ts +0 -35
  187. package/dist/utils/helpers/exports.d.ts +0 -18
  188. package/dist/utils/helpers/factories.d.ts +0 -9
  189. package/dist/utils/helpers/guards.d.ts +0 -11
  190. package/dist/utils/helpers/index.d.ts +0 -18
  191. package/dist/utils/helpers/layout.d.ts +0 -15
  192. package/dist/utils/helpers/mocking.d.ts +0 -2
  193. package/dist/utils/helpers/naming.d.ts +0 -13
  194. package/dist/utils/helpers/options.d.ts +0 -22
  195. package/dist/utils/helpers/orpc.d.ts +0 -3
  196. package/dist/utils/helpers/preset.d.ts +0 -9
  197. package/dist/utils/helpers/react-components.d.ts +0 -13
  198. package/dist/utils/helpers/routes.d.ts +0 -5
  199. package/dist/utils/helpers/runtime.d.ts +0 -14
  200. package/dist/utils/helpers/sanitizers.d.ts +0 -3
  201. package/dist/utils/helpers/schemas.d.ts +0 -10
  202. package/dist/utils/helpers/syntax.d.ts +0 -1
  203. package/dist/utils/helpers/test-tables.d.ts +0 -8
  204. package/dist/utils/helpers/trivial.d.ts +0 -6
  205. package/dist/utils/index.d.ts +0 -1
  206. /package/dist/{rules/module-policy/index.d.ts → index.d.ts} +0 -0
  207. /package/dist/{rules → vendor}/dillon-anti-slop/index.d.ts +0 -0
  208. /package/dist/{rules → vendor}/dillon-anti-slop/rules/no-chained-type-assertions.d.ts +0 -0
  209. /package/dist/{rules → vendor}/dillon-anti-slop/rules/no-conditional-empty-object-spread.d.ts +0 -0
  210. /package/dist/{rules → vendor}/dillon-anti-slop/rules/no-object-parameters.d.ts +0 -0
  211. /package/dist/{rules → vendor}/dillon-anti-slop/rules/no-reflect-apply.d.ts +0 -0
  212. /package/dist/{rules → vendor}/dillon-anti-slop/rules/no-reflect-get.d.ts +0 -0
  213. /package/dist/{rules → vendor}/dillon-anti-slop/rules/no-runtime-typeof.d.ts +0 -0
  214. /package/dist/{rules → vendor}/dillon-anti-slop/rules/no-shape-in-symbol-names.d.ts +0 -0
  215. /package/dist/{rules → vendor}/dillon-anti-slop/rules/no-unknown-parameters.d.ts +0 -0
  216. /package/dist/{rules → vendor}/dillon-anti-slop/rules/no-unknown-returns.d.ts +0 -0
  217. /package/dist/{rules → vendor}/dillon-anti-slop/rules/no-unknown-type-aliases.d.ts +0 -0
  218. /package/dist/{rules → vendor}/dillon-anti-slop/rules/no-unsafe-dictionary-type.d.ts +0 -0
  219. /package/dist/{rules → vendor}/dillon-anti-slop/rules/no-widen-then-assert.d.ts +0 -0
  220. /package/dist/{rules → vendor}/dillon-anti-slop/rules/require-safety-comment-for-type-assertion.d.ts +0 -0
  221. /package/src/{rules → vendor}/dillon-anti-slop/LICENSE +0 -0
@@ -1,2 +0,0 @@
1
- /** Reject React memoization imports and member calls while leaving unrelated cache.memo calls alone. */
2
- export declare const memoization: import("@oxlint/plugins").Rule;
@@ -1,7 +0,0 @@
1
- /**
2
- * Checks Next.js runtime ownership from file names and directives: `.server`/`.rsc` and `'use server'` modules stay off
3
- * the browser, `.client` and `'use client'` modules stay off server-only APIs, and shared modules use neither.
4
- *
5
- * Example: `chat.client.ts` importing `next/headers` fails; `chat.server.ts` importing it passes.
6
- */
7
- export declare const nextRuntime: import("@oxlint/plugins").Rule;
@@ -1,6 +0,0 @@
1
- /**
2
- * Rejects the `unknown` type except on the narrowed parameter of a type guard or the error parameter of a catch callback.
3
- *
4
- * Example: `type Value = unknown` fails; `function isUser(value: unknown): value is User` passes.
5
- */
6
- export declare const noUnknown: import("@oxlint/plugins").Rule;
@@ -1,2 +0,0 @@
1
- /** Require a rule name and a reason in lint disables, such as no-console -- CLI output. */
2
- export declare const directives: import("@oxlint/plugins").Rule;
@@ -1,2 +0,0 @@
1
- /** Keep backend operations strict; frontend modules may expose several operations with helpers nested inside them. */
2
- export declare const serviceFunctions: import("@oxlint/plugins").Rule;
@@ -1,2 +0,0 @@
1
- /** Only the matching factory-derived Service alias stays local; ChatDeps belongs in domain types. */
2
- export declare const serviceTypes: import("@oxlint/plugins").Rule;
@@ -1,2 +0,0 @@
1
- /** Check direct runtime dependencies and imported TanStack boundaries; compilation still owns graph isolation. */
2
- export declare const tanstackRuntime: import("@oxlint/plugins").Rule;
@@ -1,2 +0,0 @@
1
- /** Check assertion presence and placement, including assertions called through static table rows. */
2
- export declare const testAssertions: import("@oxlint/plugins").Rule;
@@ -1,2 +0,0 @@
1
- /** Reject focused, skipped and placeholder tests, including renamed imports such as check.only. */
2
- export declare const testModifiers: import("@oxlint/plugins").Rule;
@@ -1,3 +0,0 @@
1
- import type { OxlintConfig } from 'oxlint';
2
- import type { PresetContext, PresetPolicies } from '../types/preset.types.ts';
3
- export declare function presetCompose(context: PresetContext, policies: PresetPolicies, plugins: OxlintConfig): OxlintConfig;
@@ -1,2 +0,0 @@
1
- import type { PresetOptions, PresetContext } from '../types/preset.types.ts';
2
- export declare function presetResolveContext(options: PresetOptions): PresetContext;
@@ -1,39 +0,0 @@
1
- export interface ModuleBoundaryOptions {
2
- web: string[];
3
- backend: string[];
4
- packages: string | string[];
5
- fileRoles?: string[];
6
- portableLib?: boolean;
7
- backendPackages: string[];
8
- appPackages: string[];
9
- aliases: Record<string, string>;
10
- publicEntrypoints: string[];
11
- }
12
- export interface ModuleServiceFunctionsOptions {
13
- frontend?: boolean;
14
- allowLocalHelpers?: boolean;
15
- allowReturnedMethods?: boolean;
16
- singleExport?: boolean;
17
- message?: string;
18
- }
19
- export interface ModuleDomainConstantsOptions {
20
- allowServiceMethods?: boolean;
21
- includeData?: boolean;
22
- }
23
- export interface ModuleRuntimeOptions extends Pick<ModuleBoundaryOptions, 'web' | 'backend' | 'aliases' | 'backendPackages'> {
24
- rpcClients: string[];
25
- serverImports?: string[];
26
- clientImports?: string[];
27
- allowComputedImportsIn?: string[];
28
- }
29
- export interface ModuleNextRuntimeOptions extends Pick<ModuleBoundaryOptions, 'web' | 'backend' | 'aliases' | 'backendPackages'> {
30
- serverImports?: string[];
31
- clientImports?: string[];
32
- allowComputedImportsIn?: string[];
33
- }
34
- export interface ModuleTestModifiersOptions {
35
- additionalTestFunctions?: string[];
36
- }
37
- export interface ModuleTestAssertionsOptions extends ModuleTestModifiersOptions {
38
- additionalAssertionFunctions?: string[];
39
- }
@@ -1,11 +0,0 @@
1
- import type { ESTree } from '@oxlint/plugins';
2
- import type { AstRuntimeFunction } from '../utils/helpers/ast.ts';
3
- export interface TestRegistration {
4
- call: ESTree.CallExpression;
5
- callback: AstRuntimeFunction;
6
- table?: ESTree.Expression;
7
- }
8
- export interface TestTableRow {
9
- bindings: Map<ESTree.Node, AstRuntimeFunction>;
10
- callbacks: AstRuntimeFunction[];
11
- }
@@ -1,12 +0,0 @@
1
- import type { ESTree } from '@oxlint/plugins';
2
- export type AstRuntimeFunction = ESTree.Function | ESTree.ArrowFunctionExpression;
3
- export declare function astIsNode(value: unknown): value is ESTree.Node;
4
- export declare function astVisit(node: unknown, ancestors: ESTree.Node[], callback: (node: ESTree.Node, ancestors: ESTree.Node[]) => void): void;
5
- export declare function astContainsJsx(node: unknown): boolean;
6
- export declare function astNearestFunction(ancestors: readonly ESTree.Node[]): AstRuntimeFunction | undefined;
7
- export declare function astDirectReturnExpressions(node: AstRuntimeFunction): ESTree.Expression[];
8
- export declare function astStaticMemberName(node: ESTree.MemberExpression): string | undefined;
9
- export declare function astDottedName(node: ESTree.Node): string | undefined;
10
- export declare function astCallName(node: ESTree.CallExpression): string | undefined;
11
- export declare function astImportedCallAliases(program: ESTree.Program): Map<string, string>;
12
- export declare function astResolvedCallName(node: ESTree.CallExpression, aliases: ReadonlyMap<string, string>): string | undefined;
@@ -1,3 +0,0 @@
1
- import type { ModuleBoundaryOptions } from '../../types/module-policy.types.ts';
2
- /** Resolve literal module paths with the configured aliases and owning app root. */
3
- export declare function boundaryResolveTarget(options: Pick<ModuleBoundaryOptions, 'web' | 'backend' | 'aliases'>, file: string, source: string): string;
@@ -1,6 +0,0 @@
1
- import type { ESTree } from '@oxlint/plugins';
2
- export declare function commentsNormalizedValue(comment: Pick<ESTree.Comment, 'type' | 'value'>): string;
3
- export declare function commentsIsDirective(value: string): boolean;
4
- export declare function commentsIsDisableNextLine(value: string): boolean;
5
- export declare function commentsIsWhy(value: string): boolean;
6
- export declare function commentsIsJsdoc(source: string, comment: Pick<ESTree.Comment, 'type' | 'range'>): boolean;
@@ -1,35 +0,0 @@
1
- import type { AstRuntimeFunction } from './ast.ts';
2
- import type { ReactComponentsCandidate } from './react-components.ts';
3
- import type { ESTree } from '@oxlint/plugins';
4
- export type DeclarationsRuntime = ESTree.VariableDeclaration | ESTree.Function | ESTree.Class | ESTree.TSEnumDeclaration;
5
- export declare function declarationsTopLevelUnexportedFunctions(program: ESTree.Program): {
6
- name: string;
7
- node: ESTree.Function | ESTree.ArrowFunctionExpression;
8
- }[];
9
- export declare function declarationsFileLevelFunctionCandidates(program: ESTree.Program): ReactComponentsCandidate[];
10
- export declare function declarationsIsObjectParam(node: ESTree.ParamPattern): boolean;
11
- export declare function declarationsFunctionName(node: ESTree.Function | ESTree.VariableDeclarator): string;
12
- export declare function declarationsIsRuntime(node: ESTree.Node): node is DeclarationsRuntime;
13
- export declare function declarationsRuntimeName(node: DeclarationsRuntime): string;
14
- export declare function declarationsRuntimeKind(node: DeclarationsRuntime): 'class' | 'enum' | 'function' | 'variable';
15
- export declare function declarationsIsTrivialExpression(node: ESTree.Expression): boolean;
16
- export declare function declarationsIsTrivialFunction(node: AstRuntimeFunction): boolean;
17
- export declare const declarationsKinds: readonly ['function', 'const', 'let', 'var', 'class', 'type', 'interface', 'enum'];
18
- export type DeclarationsKind = (typeof declarationsKinds)[number];
19
- export interface DeclarationsNamed {
20
- name: string;
21
- node: ESTree.Node;
22
- kind?: DeclarationsKind;
23
- }
24
- export declare function declarationsNamedKind(node: ESTree.Node, ancestors: ESTree.Node[]): DeclarationsKind | undefined;
25
- export declare function declarationsCollectNamed(root: ESTree.Node, kinds?: readonly DeclarationsKind[]): DeclarationsNamed[];
26
- export declare function declarationsNamedFromNode(node: ESTree.Node): Required<DeclarationsNamed> | undefined;
27
- export declare function declarationsCollectFunctions(root: ESTree.Node): {
28
- name: string;
29
- node: AstRuntimeFunction;
30
- }[];
31
- export declare function declarationsPublicServiceMethods(program: ESTree.Program): {
32
- name: string;
33
- node: ESTree.Function;
34
- binding: ESTree.VariableDeclarator;
35
- }[];
@@ -1,18 +0,0 @@
1
- import type { AstRuntimeFunction } from './ast.ts';
2
- import type { ESTree } from '@oxlint/plugins';
3
- export interface ExportsBinding {
4
- exportedName: string;
5
- localName?: string;
6
- node: ESTree.Node;
7
- declaration?: ESTree.Declaration;
8
- initializer?: ESTree.Expression | null;
9
- typeOnly: boolean;
10
- default: boolean;
11
- reExport: boolean;
12
- }
13
- export interface ExportsFunction {
14
- name: string;
15
- node: AstRuntimeFunction;
16
- }
17
- export declare function exportsCollect(program: ESTree.Program): ExportsBinding[];
18
- export declare function exportsCollectFunctions(program: ESTree.Program): ExportsFunction[];
@@ -1,9 +0,0 @@
1
- import type { ESTree } from '@oxlint/plugins';
2
- export interface FactoriesFunction {
3
- name: string;
4
- node: ESTree.Function | ESTree.ArrowFunctionExpression;
5
- }
6
- export declare function factoriesExpandTemplate(template: string, groups: Record<string, string>, camelCase?: boolean): string;
7
- export declare function factoriesCollectTopLevel(program: ESTree.Program, pattern: RegExp): FactoriesFunction[];
8
- export declare function factoriesDirectlyReturnedObjects(factory: FactoriesFunction): ESTree.ObjectExpression[];
9
- export declare function factoriesObjectPropertyName(property: ESTree.ObjectPropertyKind): string | undefined;
@@ -1,11 +0,0 @@
1
- import type { AstRuntimeFunction } from './ast.ts';
2
- import type { ESTree } from '@oxlint/plugins';
3
- interface GuardsState {
4
- values: Set<string>;
5
- predicates: Set<string>;
6
- primitive: boolean;
7
- returned: boolean;
8
- globalArray: (node: ESTree.Node) => boolean;
9
- }
10
- export declare function guardsIsGenericHelper(node: AstRuntimeFunction, globalArray: GuardsState['globalArray']): boolean;
11
- export {};
@@ -1,18 +0,0 @@
1
- export * from './ast.ts';
2
- export * from './comments.ts';
3
- export * from './declarations.ts';
4
- export * from './exports.ts';
5
- export * from './factories.ts';
6
- export * from './guards.ts';
7
- export * from './layout.ts';
8
- export * from './mocking.ts';
9
- export * from './naming.ts';
10
- export * from './options.ts';
11
- export * from './orpc.ts';
12
- export * from './react-components.ts';
13
- export * from './routes.ts';
14
- export * from './runtime.ts';
15
- export * from './sanitizers.ts';
16
- export * from './schemas.ts';
17
- export * from './trivial.ts';
18
- export * from './boundaries.ts';
@@ -1,15 +0,0 @@
1
- export type LayoutIndent = number | 'tab';
2
- export declare const layoutIndentSchema: {
3
- anyOf: ({
4
- type: string;
5
- minimum: number;
6
- enum?: undefined;
7
- } | {
8
- minimum?: undefined;
9
- type: string;
10
- enum: string[];
11
- })[];
12
- };
13
- export declare function layoutLineIndent(text: string, offset: number): string;
14
- export declare function layoutIndentUnit(indent?: LayoutIndent): string;
15
- export declare function layoutNewline(text: string): string;
@@ -1,2 +0,0 @@
1
- /** Throws unless every pattern is `*` or `<vi|jest|*>.<method|*>`. */
2
- export declare function mockingApiPatternsAssert(patterns: string[]): void;
@@ -1,13 +0,0 @@
1
- export declare function namingPosixPath(filePath: string): string;
2
- export declare function namingFileBasename(filePath: string): string;
3
- export declare function namingDirSegments(filePath: string): string[];
4
- export declare function namingSegmentsAfter(filePath: string, after: string): string[] | undefined;
5
- export declare function namingFolderPrefixes(folders: string[], separator: string, singularize: 'none' | 'trailing-s'): string[];
6
- export declare function namingPascalCase(value: string): string;
7
- export declare function namingCamelCase(value: string): string;
8
- export declare function namingMatchTemplate(basename: string, template: string, placeholderPattern?: string): Record<string, string> | null;
9
- export declare const namingStemModes: readonly ['before-first-dot', 'full-basename'];
10
- export type NamingStemMode = (typeof namingStemModes)[number];
11
- export declare function namingNormalized(value: string, normalize: 'remove-separators' | 'none'): string;
12
- export declare function namingFileStem(basename: string, mode?: NamingStemMode, trailingRoles?: readonly string[], roleSeparators?: readonly string[]): string;
13
- export declare function namingFilePrefixes(stem: string, normalize?: 'remove-separators' | 'none', singularize?: 'none' | 'trailing-s'): string[];
@@ -1,22 +0,0 @@
1
- import type { Context } from '@oxlint/plugins';
2
- export declare function optionsFirst<T>(context: Context, fallback?: T): T;
3
- export type OptionsPattern = string | string[];
4
- export declare const optionsPatternSchema: {
5
- anyOf: ({
6
- type: string;
7
- items?: undefined;
8
- minItems?: undefined;
9
- } | {
10
- type: string;
11
- items: {
12
- type: string;
13
- };
14
- minItems: number;
15
- })[];
16
- };
17
- /** Compiles a regex option that accepts one pattern or a list where any pattern may match. */
18
- export declare function optionsPatterns(pattern: OptionsPattern | undefined, flags?: string): RegExp[];
19
- /** Like `optionsPatterns`, for options where an empty string has always meant "not set". */
20
- export declare function optionsOptionalPatterns(pattern: OptionsPattern | undefined, flags?: string): RegExp[];
21
- export declare function optionsPatternLabel(pattern: OptionsPattern | undefined): string;
22
- export declare function optionsPatternsTest(patterns: RegExp[], value: string): boolean;
@@ -1,3 +0,0 @@
1
- import type { ESTree } from '@oxlint/plugins';
2
- export declare function orpcFindChainCall(expression: ESTree.Expression, method: string): ESTree.CallExpression | undefined;
3
- export declare function orpcIsNamedOrComposedArgument(argument: ESTree.Argument | undefined, composers: Set<string>): boolean;
@@ -1,9 +0,0 @@
1
- import type { OxlintOverride } from 'oxlint';
2
- import type { PresetRules } from '../../types/preset.types.ts';
3
- export declare function presetScopes(roots: string[], suffix?: string): string[];
4
- export declare function presetOverride(files: string[], rules: PresetRules, excludeFiles?: string[]): OxlintOverride;
5
- export declare function presetRuleSeverities(rules: PresetRules, severities: Record<string, 'error' | 'warn' | 'off'>): PresetRules;
6
- export declare function presetPackageName(root: string, directory: string): string | undefined;
7
- export declare function presetSeverity(rules: PresetRules, level: 'error' | 'warn'): PresetRules;
8
- /** Project-relative folders that `specifier` maps to through `<directory>/tsconfig.json` `compilerOptions.paths`. */
9
- export declare function presetTsconfigAliasTargets(root: string, directory: string, specifier: string): string[];
@@ -1,13 +0,0 @@
1
- import type { AstRuntimeFunction } from './ast.ts';
2
- import type { ESTree } from '@oxlint/plugins';
3
- export interface ReactComponentsCandidate {
4
- name: string;
5
- node: ESTree.Node;
6
- declaration?: ESTree.Declaration;
7
- initializer?: ESTree.Expression | null;
8
- typeOnly?: boolean;
9
- }
10
- export declare function reactComponentsExportCandidates(program: ESTree.Program): ReactComponentsCandidate[];
11
- export declare function reactComponentsFunctionReturnsOutput(program: ESTree.Program, node: AstRuntimeFunction): boolean;
12
- export declare function reactComponentsIsLike(program: ESTree.Program, candidate: ReactComponentsCandidate): boolean;
13
- export declare function reactComponentsPascalFromBasename(basename: string): string;
@@ -1,5 +0,0 @@
1
- import type { Context, ESTree } from '@oxlint/plugins';
2
- export declare function routesInspectFunction(context: Context, item: {
3
- name: string;
4
- node: ESTree.Function | ESTree.ArrowFunctionExpression;
5
- }, bannedHooks: Set<string>, banIntrinsicJsx: boolean): void;
@@ -1,14 +0,0 @@
1
- import type { ESTree } from '@oxlint/plugins';
2
- import type { ModuleBoundaryOptions } from '../../types/module-policy.types.ts';
3
- /** Globals that only exist on the server runtime. */
4
- export declare const runtimeServerGlobals: string[];
5
- /** Globals that only exist in the browser. */
6
- export declare const runtimeBrowserGlobals: string[];
7
- /** Whether `source` is one of the configured module prefixes or a subpath of one. */
8
- export declare function runtimeMatchesImport(values: string[] | undefined, source: string): boolean;
9
- /** Whether an import reaches a configured backend root or a backend package's server/RPC entry. */
10
- export declare function runtimeIsBackendImport(options: Pick<ModuleBoundaryOptions, 'backend' | 'backendPackages'>, target: string, source: string): boolean;
11
- /** Whether an import is a server platform module: Node built-ins, Bun, Cloudflare, oRPC server or React DOM server. */
12
- export declare function runtimeIsServerPlatformImport(source: string): boolean;
13
- /** The static name of a member access: `a.b` and `a['b']` give `b`; anything else gives `null`. */
14
- export declare function runtimeMemberName(node: ESTree.Node | null | undefined): string | null;
@@ -1,3 +0,0 @@
1
- import type { ESTree } from '@oxlint/plugins';
2
- export declare function sanitizersCallsConfigured(node: unknown, names: Set<string>): boolean;
3
- export declare function sanitizersConfiguredBindings(program: ESTree.Program, names: Set<string>): Set<string>;
@@ -1,10 +0,0 @@
1
- import type { ESTree } from '@oxlint/plugins';
2
- export declare function schemasIsPackage(source: string, packages: ReadonlySet<string>): boolean;
3
- export declare function schemasIsCall(node: ESTree.CallExpression, namespaces: Set<string>): boolean;
4
- export declare function schemasRuntimeImportLocals(node: ESTree.ImportDeclaration): string[];
5
- export declare function schemasIsRuntimeImport(node: ESTree.ImportDeclaration, packages: ReadonlySet<string>): boolean;
6
- export declare function schemasIsRuntimeReexport(node: ESTree.ExportNamedDeclaration | ESTree.ExportAllDeclaration, packages: ReadonlySet<string>): boolean;
7
- export declare function schemasIsConstruction(node: ESTree.CallExpression, constructors: ReadonlySet<string>): boolean;
8
- export declare function schemasElements(node: ESTree.CallExpression): ESTree.Argument[];
9
- export declare function schemasIsAllowedElement(node: ESTree.Argument, allowScalars: boolean, namespaces: Set<string>, structuralMethods: Set<string>): boolean;
10
- export declare function schemasTypeOperator(node: ESTree.TSTypeReference, namespaces: Set<string>, operators: Set<string>): string | undefined;
@@ -1 +0,0 @@
1
- export declare function syntaxRule(selector: string, message: string): import("@oxlint/plugins").Rule;
@@ -1,8 +0,0 @@
1
- import type { ESTree, SourceCode } from '@oxlint/plugins';
2
- import type { AstRuntimeFunction } from './ast.ts';
3
- import type { TestRegistration, TestTableRow } from '../../types/test-analysis.types.ts';
4
- export declare function testTablesRegistration(call: ESTree.CallExpression, names: string[], functions: Map<ESTree.Node, AstRuntimeFunction>): TestRegistration | undefined;
5
- export declare function testTablesResolve(expression: ESTree.Expression, values: Map<ESTree.Node, ESTree.Expression>): ESTree.Expression;
6
- export declare function testTablesRows(registration: TestRegistration, sourceCode: SourceCode, values: Map<ESTree.Node, ESTree.Expression>, functions: Map<ESTree.Node, AstRuntimeFunction>): TestTableRow[] | undefined;
7
- export declare function testTablesCallName(node: ESTree.Node): string | undefined;
8
- export declare function testTablesAssertionPattern(name: string): RegExp;
@@ -1,6 +0,0 @@
1
- import type { AstRuntimeFunction } from './ast.ts';
2
- import type { ESTree } from '@oxlint/plugins';
3
- export declare function trivialExpression(node: AstRuntimeFunction): ESTree.Expression | null;
4
- export declare function trivialUnwrap(expression: ESTree.Expression): ESTree.Expression;
5
- export declare function trivialCallRoot(expression: ESTree.Expression): string | undefined;
6
- export declare function trivialIsForwarder(node: AstRuntimeFunction, expression: ESTree.Expression): boolean;
@@ -1 +0,0 @@
1
- export * from './helpers/index.ts';
File without changes