@zukhruf/eslint 0.3.41 → 0.3.42

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 (45) hide show
  1. package/README.md +34 -15
  2. package/dist/async-values/no-promise-field.d.ts.map +1 -1
  3. package/dist/async-values/no-promise-field.js +5 -3
  4. package/dist/async-values/no-promise-field.js.map +1 -1
  5. package/dist/base/config.d.ts.map +1 -1
  6. package/dist/base/config.js +8 -1
  7. package/dist/base/config.js.map +1 -1
  8. package/dist/base/options.d.ts +4 -3
  9. package/dist/base/options.d.ts.map +1 -1
  10. package/dist/base/options.js.map +1 -1
  11. package/dist/environment/config.d.ts +1 -0
  12. package/dist/environment/config.d.ts.map +1 -1
  13. package/dist/environment/config.js +4 -2
  14. package/dist/environment/config.js.map +1 -1
  15. package/dist/environment/no-undeclared-process-env.d.ts.map +1 -1
  16. package/dist/environment/no-undeclared-process-env.js +19 -18
  17. package/dist/environment/no-undeclared-process-env.js.map +1 -1
  18. package/dist/files.d.ts +1 -0
  19. package/dist/files.d.ts.map +1 -1
  20. package/dist/files.js +1 -0
  21. package/dist/files.js.map +1 -1
  22. package/dist/index.d.ts +2 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/manifest/manifest-policy.d.ts +3 -2
  27. package/dist/manifest/manifest-policy.d.ts.map +1 -1
  28. package/dist/manifest/manifest-policy.js +10 -3
  29. package/dist/manifest/manifest-policy.js.map +1 -1
  30. package/dist/manifest/project-build.d.ts +7 -5
  31. package/dist/manifest/project-build.d.ts.map +1 -1
  32. package/dist/manifest/project-build.js +11 -5
  33. package/dist/manifest/project-build.js.map +1 -1
  34. package/dist/manifest/test-support.d.ts +10 -0
  35. package/dist/manifest/test-support.d.ts.map +1 -0
  36. package/dist/manifest/test-support.js +52 -0
  37. package/dist/manifest/test-support.js.map +1 -0
  38. package/dist/react-router/config.d.ts.map +1 -1
  39. package/dist/react-router/config.js +15 -1
  40. package/dist/react-router/config.js.map +1 -1
  41. package/dist/react-router/options.d.ts +10 -0
  42. package/dist/react-router/options.d.ts.map +1 -0
  43. package/dist/react-router/options.js +13 -0
  44. package/dist/react-router/options.js.map +1 -0
  45. package/package.json +1 -1
package/README.md CHANGED
@@ -40,19 +40,19 @@ Put framework presets (for example Nx's `flat/react`) **before** the zukhruf con
40
40
 
41
41
  ## Configs
42
42
 
43
- | Config | Files | Rules |
44
- | ----------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
45
- | `base` | all source | `@eslint/js` and `typescript-eslint` recommended; `consistent-type-assertions` (never), `no-namespace`, `zukhruf/no-enum`; `import-x/no-duplicates`, `import-x/no-unassigned-import`; `functional/no-let` (module scope); `zukhruf/no-state-managers`, `zukhruf/no-playwright-test`; typed lint: `no-floating-promises`, `no-misused-promises`, `only-throw-error`, `switch-exhaustiveness-check` (a `default` counts as exhaustive), `zukhruf/no-promise-field`, `zukhruf/no-phase-flag` |
46
- | `tests` | test files | `no-test-lifecycle-hooks`, `require-msw-error-on-unhandled-request` |
47
- | `diagnostics` | source, not tests | `no-fabricated-fallback`, `no-hardcoded-id-shape`, `consistent-event-name` |
48
- | `env` | TypeScript, not tests | `no-undeclared-process-env`, `no-single-env-read-wrapper`, `no-default-for-path-env` |
49
- | `packaged-app` | TypeScript, not tests | `no-bare-spawn` |
50
- | `react` | `.tsx`, `.jsx` | `no-as-child` |
51
- | `react-router` | source | `require-loader-data-type-argument`; outside tests: `no-raw-route-path`, `no-internal-anchor` |
52
- | `hono` | TypeScript, not tests | `no-untyped-empty-json` |
53
- | `tailwind` | source | `no-h-screen`, `no-arbitrary-z-index`, `no-will-change` |
54
- | `pulumi` | TypeScript | `require-server-replace-guard` |
55
- | `nx-project-json` | `project.json` | `no-missing-asset-input` |
43
+ | Config | Files | Rules |
44
+ | ----------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
45
+ | `base` | all source | `@eslint/js` and `typescript-eslint` recommended; `consistent-type-assertions` (never), `no-namespace`, `zukhruf/no-enum`; `import-x/no-duplicates`, `import-x/no-unassigned-import`; `functional/no-let` (module scope); `zukhruf/no-state-managers`, `zukhruf/no-playwright-test`; typed lint: `no-floating-promises`, `no-misused-promises`, `only-throw-error`, `switch-exhaustiveness-check` (a `default` counts as exhaustive), `zukhruf/no-promise-field`, `zukhruf/no-phase-flag`; `no-require-imports` is off in `.cjs` and `.cts`, because `require()` is the only import form in a CommonJS file |
46
+ | `tests` | test files | `no-test-lifecycle-hooks`, `require-msw-error-on-unhandled-request` |
47
+ | `diagnostics` | source, not tests | `no-fabricated-fallback`, `no-hardcoded-id-shape`, `consistent-event-name` |
48
+ | `env` | TypeScript, not tests or tool configs | `no-undeclared-process-env`, `no-single-env-read-wrapper`, `no-default-for-path-env` |
49
+ | `packaged-app` | TypeScript, not tests | `no-bare-spawn` |
50
+ | `react` | `.tsx`, `.jsx` | `no-as-child` |
51
+ | `react-router` | source | `require-loader-data-type-argument`; outside tests: `no-raw-route-path`, `no-internal-anchor`; TypeScript: `only-throw-error` allows a `Response` and `DataWithResponseInit` |
52
+ | `hono` | TypeScript, not tests | `no-untyped-empty-json` |
53
+ | `tailwind` | source | `no-h-screen`, `no-arbitrary-z-index`, `no-will-change` |
54
+ | `pulumi` | TypeScript | `require-server-replace-guard` |
55
+ | `nx-project-json` | `project.json` | `no-missing-asset-input` |
56
56
 
57
57
  `base` turns on typed lint (`parserOptions.projectService`). Each linted TypeScript file must be in a tsconfig.
58
58
 
@@ -68,13 +68,22 @@ Give repo-specific values as rule options. For example:
68
68
  {
69
69
  rules: {
70
70
  'zukhruf/no-bare-spawn': ['error', { roots: ['apps/desktop/src'] }],
71
- 'zukhruf/no-undeclared-process-env': ['error', { startupFile: 'src/env.ts' }],
72
71
  },
73
72
  }
74
73
  ```
75
74
 
76
75
  `roots` are folders relative to the workspace root. A rule finds the workspace root from the linted file: the nearest folder with `nx.json`, `pnpm-workspace.yaml`, or a `package.json` that declares `workspaces`.
77
76
 
77
+ A fact about the repo goes in `settings`, not in rule options. If you set a rule again, you replace its config's `files` and `ignores`. A setting changes no scope. For example, `env` reads the startup env schema from `src/startup.ts` in each project. If the schema is in a different file, give that file:
78
+
79
+ ```js
80
+ {
81
+ settings: { env: { startupFile: 'src/env.ts' } },
82
+ }
83
+ ```
84
+
85
+ A relative `startupFile` is relative to the project of the linted file. `env` does not check test files or tool configs, such as `vite.config.ts`. A tool config runs at build time and has no startup env schema.
86
+
78
87
  To extend a `base` rule, use its factory. Do not declare the key again with only your entries: that replaces the base options.
79
88
 
80
89
  ```js
@@ -88,6 +97,14 @@ import { noFloatingPromises, noLet } from '@zukhruf/eslint';
88
97
  }
89
98
  ```
90
99
 
100
+ React Router's loaders and actions throw `redirect()`, `replace()` (a `Response`) or `data()` (a `DataWithResponseInit`). React Router catches the value and renders it. So `react-router` sets `only-throw-error` again with these two types in its allow list. The allow list applies in every TypeScript file of the config, not only in a routes folder, because a loader helper, such as an auth gate, can live in a different folder. Use `react-router` together with `base`, because `base` gives the typed lint that the rule needs. To add more types, use the factory:
101
+
102
+ ```js
103
+ import { reactRouterOnlyThrowError } from '@zukhruf/eslint';
104
+
105
+ '@typescript-eslint/only-throw-error': ['error', reactRouterOnlyThrowError({ allow: [/* … */] })]
106
+ ```
107
+
91
108
  ## Nx: islands and module boundaries
92
109
 
93
110
  `@zukhruf/eslint/nx` needs `@nx/eslint-plugin`.
@@ -139,10 +156,12 @@ An island is an Nx project tagged `layer:island`. Its tags come from its `projec
139
156
  - A **bundled** project is an application whose build inlines the workspace packages it imports. Their manifests are not there when it is deployed, so its own manifest declares every npm package they pull in. Workspace packages themselves are not demanded.
140
157
  - Every other project is **unbundled**. It declares what its own code imports.
141
158
 
142
- The rule reads the build target as Nx resolves it: `project.json`, the target defaults in `nx.json`, and the targets that Nx plugins infer. An application bundles unless its build is `nx:noop`, or esbuild with `bundle: false`.
159
+ The rule reads the build target as Nx resolves it: `project.json`, the target defaults in `nx.json`, and the targets that Nx plugins infer. An application bundles unless its build compiles with tsc, is `nx:noop`, or is esbuild with `bundle: false`. tsc emits one file for each source file and keeps each import. The rule counts `@nx/js:tsc` and the `tsc --build` target that the `@nx/js/typescript` plugin infers.
143
160
 
144
161
  An esbuild app can name workspace packages in `external`. Its build does not inline those packages, so they come from `node_modules` when the app runs. When the app imports one of them, it is unbundled, and its manifest declares them. Its manifest does not declare the workspace packages that its build still inlines. The rule reads the list that Nx gives esbuild: `external` and `esbuildOptions.external`, less the entries in `excludeFromExternal`. A `*` in an entry is esbuild's wildcard, as in `@acme/*`.
145
162
 
163
+ A `testing/` folder holds test support, so the rule does not check its imports. A package can also ship a testing subpath to its consumers. So the rule checks a `testing/` folder when the manifest publishes it: an `exports` target or a `files` entry has a `testing` segment, or an `exports` target has a `*`. For a bundled project, the rule applies the same decision to each workspace package that it inlines.
164
+
146
165
  Nx's check follows the imports of all workspace packages, or of none. So when an app inlines some workspace packages and names others in `external`, the rule does not check the npm imports of the inlined packages.
147
166
 
148
167
  ```js
@@ -1 +1 @@
1
- {"version":3,"file":"no-promise-field.d.ts","sourceRoot":"","sources":["../../src/async-values/no-promise-field.ts"],"names":[],"mappings":";AAsLA,wBAAgC"}
1
+ {"version":3,"file":"no-promise-field.d.ts","sourceRoot":"","sources":["../../src/async-values/no-promise-field.ts"],"names":[],"mappings":";AAwLA,wBAAgC"}
@@ -59,8 +59,9 @@ function recordMembers({ checker }, type) {
59
59
  * Whether `type` is a promise, or carries one as a type argument
60
60
  * (`Map<string, Promise<X>>`, `Promise<X>[]`) or as a member of a record the
61
61
  * project declares, in any member of a union or an intersection. A function
62
- * type is not entered: a field that holds `() => Promise<X>` holds the
63
- * memoized function this rule asks for.
62
+ * type is not entered, not even through the arguments of the generic alias
63
+ * that names it (Zod's `z.infer` of `z.function()`): a field that holds
64
+ * `() => Promise<X>` holds the memoized function this rule asks for.
64
65
  *
65
66
  * `path` holds only the types on the way to this one: a type that one branch
66
67
  * met at the depth limit must still be walked when another branch meets it
@@ -76,7 +77,8 @@ function holdsPromise(walk, type, depth = 0, path = new Set()) {
76
77
  return unionConstituents(type)
77
78
  .flatMap((part) => intersectionConstituents(part))
78
79
  .some((part) => isPromiseWithResolvers(walk, part) ||
79
- typeArguments(walk, part).some((argument) => holdsPromise(walk, argument, depth, path)) ||
80
+ (part.getCallSignatures().length === 0 &&
81
+ typeArguments(walk, part).some((argument) => holdsPromise(walk, argument, depth, path))) ||
80
82
  (depth < RECORD_DEPTH &&
81
83
  isProjectRecord(walk, part) &&
82
84
  recordMembers(walk, part).some((member) => holdsPromise(walk, member, depth + 1, path))));
@@ -1 +1 @@
1
- {"version":3,"file":"no-promise-field.js","sourceRoot":"","sources":["../../src/async-values/no-promise-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AACtE,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AASzD,sEAAsE;AACtE,MAAM,aAAa,GAAG,CAAC,OAAmB,EAAE,IAAmB,EAAE,EAAE,CACjE,OAAO,CAAC,0BAA0B,CAAC,IAAI,CAAC;IACxC,OAAO,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;AAEhD;;;GAGG;AACH,SAAS,sBAAsB,CAAC,EAAE,OAAO,EAAQ,EAAE,IAAa;IAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,OAAO,CACL,MAAM,EAAE,OAAO,EAAE,KAAK,sBAAsB;QAC5C,MAAM;aACH,eAAe,EAAE;YAClB,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CACrB,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC,CACpD,KAAK,IAAI,CACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,EAAE,OAAO,EAAQ,EAAE,IAAa;IACrD,OAAO;QACL,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB;;;;;GAKG;AACH,SAAS,eAAe,CAAC,EAAE,OAAO,EAAQ,EAAE,IAAa;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3E,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAC9C,OAAO,CACL,YAAY,KAAK,SAAS;QAC1B,YAAY,CAAC,MAAM,GAAG,CAAC;QACvB,YAAY,CAAC,KAAK,CAChB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC,CACtE,CACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,EAAE,OAAO,EAAQ,EAAE,IAAa;IACrD,OAAO;QACL,GAAG,OAAO;aACP,mBAAmB,CAAC,IAAI,CAAC;aACzB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACvD,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KAC9D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CACnB,IAAU,EACV,IAAa,EACb,KAAK,GAAG,CAAC,EACT,OAAO,IAAI,GAAG,EAAW;IAEzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACf,IAAI,CAAC;QACH,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/D,OAAO,iBAAiB,CAAC,IAAI,CAAC;aAC3B,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;aACjD,IAAI,CACH,CAAC,IAAI,EAAE,EAAE,CACP,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC;YAClC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1C,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAC1C;YACD,CAAC,KAAK,GAAG,YAAY;gBACnB,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC;gBAC3B,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACxC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAC5C,CAAC,CACP,CAAC;IACN,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,SAAS,SAAS,CAChB,IAKgC;IAEhC,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC;IACzD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,mBAAmB;QAChD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI;QACrB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC;IAC/C,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,4FAA4F;SAC/F;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,YAAY,EACV,kOAAkO;SACrO;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,CAAC,IAAqC,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG;gBACX,OAAO;gBACP,OAAO;gBACP,IAAI,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;aAC/C,CAAC;YACF,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC;QACF,OAAO;YACL,kBAAkB,EAAE,KAAK;YACzB,gBAAgB,EAAE,KAAK;YACvB,4BAA4B,EAAE,KAAK;YACnC,0BAA0B,EAAE,KAAK;YACjC,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,UAAU,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"no-promise-field.js","sourceRoot":"","sources":["../../src/async-values/no-promise-field.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/base/config.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,eAAe,CAAC;AA2BrD;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,OAqHlB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/base/config.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,eAAe,CAAC;AA4BrD;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,OA6HlB,CAAC"}
@@ -7,7 +7,7 @@ import tseslint from 'typescript-eslint';
7
7
  import noPromiseField from "../async-values/no-promise-field.js";
8
8
  import noPhaseFlag from "../class-state/no-phase-flag.js";
9
9
  import { enable } from "../concept.js";
10
- import { BUILD_OUTPUT, FIXTURES, JAVASCRIPT, SOURCE, TESTS, TYPESCRIPT, } from "../files.js";
10
+ import { BUILD_OUTPUT, COMMONJS, FIXTURES, JAVASCRIPT, SOURCE, TESTS, TYPESCRIPT, } from "../files.js";
11
11
  import noPlaywrightTest from "../imports/no-playwright-test.js";
12
12
  import noStateManagers from "../imports/no-state-managers.js";
13
13
  import noEnum from "../language/no-enum.js";
@@ -56,6 +56,13 @@ export const base = {
56
56
  '@typescript-eslint/prefer-namespace-keyword': 'error',
57
57
  '@typescript-eslint/no-inferrable-types': 'error',
58
58
  },
59
+ }, {
60
+ // In a CommonJS file require() is the only import form: Node runs a
61
+ // `.cts` with its types stripped, which rejects `import x = require()`,
62
+ // and `verbatimModuleSyntax` rejects ESM imports there.
63
+ name: 'zukhruf/base/commonjs',
64
+ files: COMMONJS,
65
+ rules: { '@typescript-eslint/no-require-imports': 'off' },
59
66
  }, {
60
67
  name: 'zukhruf/base/typescript',
61
68
  files: TYPESCRIPT,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/base/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/base/config.ts"],"names":[],"mappings":"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"}
@@ -7,17 +7,18 @@ export declare function noLet({ ignoreIdentifierPattern }?: NoLetOptions): {
7
7
  allowInFunctions: boolean;
8
8
  ignoreIdentifierPattern: string[];
9
9
  };
10
- export interface SafeCall {
10
+ /** typescript-eslint's name for a type or value by where it is declared: the TS lib, a package, or a file. */
11
+ export interface TypeOrValueSpecifier {
11
12
  from: 'file' | 'lib' | 'package';
12
13
  name: string | string[];
13
14
  package?: string;
14
15
  path?: string;
15
16
  }
16
17
  export interface NoFloatingPromisesOptions {
17
- allowForKnownSafeCalls?: SafeCall[];
18
+ allowForKnownSafeCalls?: TypeOrValueSpecifier[];
18
19
  }
19
20
  /** Options for `@typescript-eslint/no-floating-promises`, with node:test's calls already allowed. */
20
21
  export declare function noFloatingPromises({ allowForKnownSafeCalls, }?: NoFloatingPromisesOptions): {
21
- allowForKnownSafeCalls: SafeCall[];
22
+ allowForKnownSafeCalls: TypeOrValueSpecifier[];
22
23
  };
23
24
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/base/options.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,8GAA8G;AAC9G,wBAAgB,KAAK,CAAC,EAAE,uBAA4B,EAAE,GAAE,YAAiB;;;EAExE;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,CAAC;CACrC;AASD,qGAAqG;AACrG,wBAAgB,kBAAkB,CAAC,EACjC,sBAA2B,GAC5B,GAAE,yBAA8B;;EAIhC"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/base/options.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,8GAA8G;AAC9G,wBAAgB,KAAK,CAAC,EAAE,uBAA4B,EAAE,GAAE,YAAiB;;;EAExE;AAED,8GAA8G;AAC9G,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,sBAAsB,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACjD;AASD,qGAAqG;AACrG,wBAAgB,kBAAkB,CAAC,EACjC,sBAA2B,GAC5B,GAAE,yBAA8B;;EAIhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/base/options.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,sEAAsE;AACtE,iEAAiE;AAOjE,8GAA8G;AAC9G,MAAM,UAAU,KAAK,CAAC,EAAE,uBAAuB,GAAG,EAAE,KAAmB,EAAE;IACvE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;AAC7D,CAAC;AAaD,uEAAuE;AACvE,MAAM,eAAe,GAAa;IAChC,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,qGAAqG;AACrG,MAAM,UAAU,kBAAkB,CAAC,EACjC,sBAAsB,GAAG,EAAE,MACE,EAAE;IAC/B,OAAO;QACL,sBAAsB,EAAE,CAAC,eAAe,EAAE,GAAG,sBAAsB,CAAC;KACrE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/base/options.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,sEAAsE;AACtE,iEAAiE;AAOjE,8GAA8G;AAC9G,MAAM,UAAU,KAAK,CAAC,EAAE,uBAAuB,GAAG,EAAE,KAAmB,EAAE;IACvE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;AAC7D,CAAC;AAcD,uEAAuE;AACvE,MAAM,eAAe,GAAyB;IAC5C,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,qGAAqG;AACrG,MAAM,UAAU,kBAAkB,CAAC,EACjC,sBAAsB,GAAG,EAAE,MACE,EAAE;IAC/B,OAAO;QACL,sBAAsB,EAAE,CAAC,eAAe,EAAE,GAAG,sBAAsB,CAAC;KACrE,CAAC;AACJ,CAAC"}
@@ -2,6 +2,7 @@ import { type Concept } from '../concept.ts';
2
2
  /**
3
3
  * A service that validates its environment once, in a startup zod schema
4
4
  * (`const env = z.object({...})`), and reads it only through declared keys.
5
+ * `settings.env.startupFile` names that file when it is not `src/startup.ts`.
5
6
  */
6
7
  export declare const env: Concept;
7
8
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/environment/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,eAAe,CAAC;AAYrD;;;GAGG;AACH,eAAO,MAAM,GAAG,EAAE,OAYjB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/environment/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,eAAe,CAAC;AAYrD;;;;GAIG;AACH,eAAO,MAAM,GAAG,EAAE,OAajB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { enable } from "../concept.js";
2
- import { TESTS, TYPESCRIPT } from "../files.js";
2
+ import { CONFIG_FILES, TESTS, TYPESCRIPT } from "../files.js";
3
3
  import noDefaultForPathEnv from "./no-default-for-path-env.js";
4
4
  import noSingleEnvReadWrapper from "./no-single-env-read-wrapper.js";
5
5
  import noUndeclaredProcessEnv from "./no-undeclared-process-env.js";
@@ -11,6 +11,7 @@ const rules = {
11
11
  /**
12
12
  * A service that validates its environment once, in a startup zod schema
13
13
  * (`const env = z.object({...})`), and reads it only through declared keys.
14
+ * `settings.env.startupFile` names that file when it is not `src/startup.ts`.
14
15
  */
15
16
  export const env = {
16
17
  name: 'env',
@@ -19,7 +20,8 @@ export const env = {
19
20
  {
20
21
  name: 'zukhruf/env',
21
22
  files: TYPESCRIPT,
22
- ignores: TESTS,
23
+ // A tool config runs at build time, with no startup env schema.
24
+ ignores: [...TESTS, ...CONFIG_FILES],
23
25
  plugins,
24
26
  rules: enable(rules),
25
27
  },
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/environment/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AACrE,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AAEpE,MAAM,KAAK,GAAG;IACZ,2BAA2B,EAAE,sBAAsB;IACnD,4BAA4B,EAAE,sBAAsB;IACpD,yBAAyB,EAAE,mBAAmB;CAC/C,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,GAAG,GAAY;IAC1B,IAAI,EAAE,KAAK;IACX,KAAK;IACL,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QACnB;YACE,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,KAAK;YACd,OAAO;YACP,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;SACrB;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/environment/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AACrE,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AAEpE,MAAM,KAAK,GAAG;IACZ,2BAA2B,EAAE,sBAAsB;IACnD,4BAA4B,EAAE,sBAAsB;IACpD,yBAAyB,EAAE,mBAAmB;CAC/C,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,GAAG,GAAY;IAC1B,IAAI,EAAE,KAAK;IACX,KAAK;IACL,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QACnB;YACE,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,UAAU;YACjB,gEAAgE;YAChE,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,YAAY,CAAC;YACpC,OAAO;YACP,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;SACrB;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-undeclared-process-env.d.ts","sourceRoot":"","sources":["../../src/environment/no-undeclared-process-env.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAqLnC;;;;;;GAMG;AACH,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UA6EhB,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"no-undeclared-process-env.d.ts","sourceRoot":"","sources":["../../src/environment/no-undeclared-process-env.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAkMnC;;;;;;GAMG;AACH,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UAkEhB,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -23,12 +23,24 @@ function isProcessEnvMember(node) {
23
23
  memberKey(node) === 'env' &&
24
24
  identifierName(node['object']) === 'process');
25
25
  }
26
- function startupFileOption(options) {
27
- const [option] = options;
28
- const startupFile = isRecord(option) ? option['startupFile'] : undefined;
29
- // meta.defaultOptions supplies it and the schema keeps it a string.
26
+ const DEFAULT_STARTUP_FILE = 'src/startup.ts';
27
+ /**
28
+ * `settings.env.startupFile` names the startup file. It is a fact about the
29
+ * repo, not a rule option, so a repo gives it without setting the rule again
30
+ * and the `env` config keeps its files and ignores.
31
+ */
32
+ function startupFileSetting(context) {
33
+ const envSettings = isRecord(context.settings)
34
+ ? context.settings['env']
35
+ : undefined;
36
+ const startupFile = isRecord(envSettings)
37
+ ? envSettings['startupFile']
38
+ : undefined;
39
+ if (startupFile === undefined) {
40
+ return DEFAULT_STARTUP_FILE;
41
+ }
30
42
  if (typeof startupFile !== 'string') {
31
- throw new TypeError('no-undeclared-process-env: the startupFile option must be a string.');
43
+ throw new TypeError('no-undeclared-process-env: settings.env.startupFile must be a string.');
32
44
  }
33
45
  return startupFile;
34
46
  }
@@ -137,21 +149,10 @@ const rule = {
137
149
  startupUnavailable: 'Could not validate process.env usage because the startup env schema is unavailable: {{error}}',
138
150
  undeclaredEnv: 'Declare {{key}} in {{startupFile}} before using process.env.{{key}}.',
139
151
  },
140
- schema: [
141
- {
142
- type: 'object',
143
- additionalProperties: false,
144
- properties: {
145
- startupFile: {
146
- type: 'string',
147
- },
148
- },
149
- },
150
- ],
151
- defaultOptions: [{ startupFile: 'src/startup.ts' }],
152
+ schema: [],
152
153
  },
153
154
  create(context) {
154
- const startupPath = resolveStartupPath(context, startupFileOption(context.options));
155
+ const startupPath = resolveStartupPath(context, startupFileSetting(context));
155
156
  const declared = declaredEnvOf(startupPath);
156
157
  let reportedStartupError = false;
157
158
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"no-undeclared-process-env.js","sourceRoot":"","sources":["../../src/environment/no-undeclared-process-env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-undeclared-process-env.js","sourceRoot":"","sources":["../../src/environment/no-undeclared-process-env.ts"],"names":[],"mappings":"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"}
package/dist/files.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export declare const TYPESCRIPT: string[];
2
2
  export declare const JAVASCRIPT: string[];
3
3
  export declare const SOURCE: string[];
4
+ export declare const COMMONJS: string[];
4
5
  export declare const JSX: string[];
5
6
  /** The extensions a test file can have: `x.test.<extension>` or `x.spec.<extension>`. */
6
7
  export declare const TEST_EXTENSIONS: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,UAAkD,CAAC;AAC1E,eAAO,MAAM,UAAU,UAAkD,CAAC;AAC1E,eAAO,MAAM,MAAM,UAAiC,CAAC;AACrD,eAAO,MAAM,GAAG,UAA2B,CAAC;AAC5C,yFAAyF;AACzF,eAAO,MAAM,eAAe,UAS3B,CAAC;AACF,eAAO,MAAM,KAAK,UAAsD,CAAC;AACzE,mFAAmF;AACnF,eAAO,MAAM,QAAQ,UAAsB,CAAC;AAC5C,0CAA0C;AAC1C,eAAO,MAAM,OAAO,UAAoB,CAAC;AACzC,qEAAqE;AACrE,eAAO,MAAM,YAAY,UAA0C,CAAC;AACpE,eAAO,MAAM,YAAY,UAAsB,CAAC;AAChD,eAAO,MAAM,YAAY,UAAsB,CAAC;AAChD,8EAA8E;AAC9E,eAAO,MAAM,YAAY,UAOxB,CAAC"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,UAAkD,CAAC;AAC1E,eAAO,MAAM,UAAU,UAAkD,CAAC;AAC1E,eAAO,MAAM,MAAM,UAAiC,CAAC;AACrD,eAAO,MAAM,QAAQ,UAA2B,CAAC;AACjD,eAAO,MAAM,GAAG,UAA2B,CAAC;AAC5C,yFAAyF;AACzF,eAAO,MAAM,eAAe,UAS3B,CAAC;AACF,eAAO,MAAM,KAAK,UAAsD,CAAC;AACzE,mFAAmF;AACnF,eAAO,MAAM,QAAQ,UAAsB,CAAC;AAC5C,0CAA0C;AAC1C,eAAO,MAAM,OAAO,UAAoB,CAAC;AACzC,qEAAqE;AACrE,eAAO,MAAM,YAAY,UAA0C,CAAC;AACpE,eAAO,MAAM,YAAY,UAAsB,CAAC;AAChD,eAAO,MAAM,YAAY,UAAsB,CAAC;AAChD,8EAA8E;AAC9E,eAAO,MAAM,YAAY,UAOxB,CAAC"}
package/dist/files.js CHANGED
@@ -5,6 +5,7 @@
5
5
  export const TYPESCRIPT = ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'];
6
6
  export const JAVASCRIPT = ['**/*.js', '**/*.jsx', '**/*.cjs', '**/*.mjs'];
7
7
  export const SOURCE = [...TYPESCRIPT, ...JAVASCRIPT];
8
+ export const COMMONJS = ['**/*.cjs', '**/*.cts'];
8
9
  export const JSX = ['**/*.tsx', '**/*.jsx'];
9
10
  /** The extensions a test file can have: `x.test.<extension>` or `x.spec.<extension>`. */
10
11
  export const TEST_EXTENSIONS = [
package/dist/files.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,uEAAuE;AACvE,4EAA4E;AAC5E,qDAAqD;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5C,yFAAyF;AACzF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AACF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,qBAAqB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzE,mFAAmF;AACnF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC5C,0CAA0C;AAC1C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC;AACzC,qEAAqE;AACrE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS;IACT,YAAY;IACZ,UAAU;IACV,kBAAkB;IAClB,6BAA6B;IAC7B,+BAA+B;CAChC,CAAC"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,uEAAuE;AACvE,4EAA4E;AAC5E,qDAAqD;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAC5C,yFAAyF;AACzF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AACF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,qBAAqB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzE,mFAAmF;AACnF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC5C,0CAA0C;AAC1C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC;AACzC,qEAAqE;AACrE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAChD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS;IACT,YAAY;IACZ,UAAU;IACV,kBAAkB;IAClB,6BAA6B;IAC7B,+BAA+B;CAChC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { default } from './plugin.ts';
2
- export { noFloatingPromises, type NoFloatingPromisesOptions, noLet, type NoLetOptions, type SafeCall, } from './base/options.ts';
2
+ export { noFloatingPromises, type NoFloatingPromisesOptions, noLet, type NoLetOptions, type TypeOrValueSpecifier, } from './base/options.ts';
3
+ export { reactRouterOnlyThrowError, type ReactRouterOnlyThrowErrorOptions, } from './react-router/options.ts';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,EACL,KAAK,YAAY,EACjB,KAAK,QAAQ,GACd,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,EACL,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,KAAK,gCAAgC,GACtC,MAAM,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { default } from "./plugin.js";
2
2
  export { noFloatingPromises, noLet, } from "./base/options.js";
3
+ export { reactRouterOnlyThrowError, } from "./react-router/options.js";
3
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,kBAAkB,EAElB,KAAK,GAGN,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,kBAAkB,EAElB,KAAK,GAGN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,GAE1B,MAAM,2BAA2B,CAAC"}
@@ -13,9 +13,10 @@ export interface ManifestPolicyOptions extends Omit<DependencyPolicyOptions, 'in
13
13
  * The complete `@nx/dependency-checks` options for `project`: the shared
14
14
  * policy, the repo's entries, the project's own extras, and what its shape
15
15
  * demands. A bundled project declares the npm packages its workspace imports
16
- * pull in. No project declares the workspace packages its build inlines.
16
+ * pull in. No project declares the workspace packages its build inlines, or
17
+ * what a `testing/` folder that its manifest does not publish imports.
17
18
  */
18
- export declare function manifestPolicy(graph: ProjectGraph, project: ProjectGraphProjectNode, { projects, ignoredDependencies, ...options }?: ManifestPolicyOptions): {
19
+ export declare function manifestPolicy(graph: ProjectGraph, project: ProjectGraphProjectNode, { projects, ignoredDependencies, ignoredFiles, ...options }?: ManifestPolicyOptions): {
19
20
  ignoredFiles: string[];
20
21
  ignoredDependencies: string[];
21
22
  includeTransitiveDependencies: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-policy.d.ts","sourceRoot":"","sources":["../../src/manifest/manifest-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAExE,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,mCAAmC,CAAC;AAG3C,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,8FAA8F;AAC9F,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,uBAAuB,EACvB,+BAA+B,CAChC;IACC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,uBAAuB,EAChC,EACE,QAAa,EACb,mBAAwB,EACxB,GAAG,OAAO,EACX,GAAE,qBAA0B;;;;;;;;EAY9B"}
1
+ {"version":3,"file":"manifest-policy.d.ts","sourceRoot":"","sources":["../../src/manifest/manifest-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAExE,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,mCAAmC,CAAC;AAI3C,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,8FAA8F;AAC9F,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,uBAAuB,EACvB,+BAA+B,CAChC;IACC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,uBAAuB,EAChC,EACE,QAAa,EACb,mBAAwB,EACxB,YAAiB,EACjB,GAAG,OAAO,EACX,GAAE,qBAA0B;;;;;;;;EAiB9B"}
@@ -1,16 +1,23 @@
1
1
  import { dependencyPolicy, } from "../nx-policy/dependency-policy.js";
2
2
  import { ProjectBuild } from "./project-build.js";
3
+ import { testSupportFiles } from "./test-support.js";
3
4
  /**
4
5
  * The complete `@nx/dependency-checks` options for `project`: the shared
5
6
  * policy, the repo's entries, the project's own extras, and what its shape
6
7
  * demands. A bundled project declares the npm packages its workspace imports
7
- * pull in. No project declares the workspace packages its build inlines.
8
+ * pull in. No project declares the workspace packages its build inlines, or
9
+ * what a `testing/` folder that its manifest does not publish imports.
8
10
  */
9
- export function manifestPolicy(graph, project, { projects = {}, ignoredDependencies = [], ...options } = {}) {
11
+ export function manifestPolicy(graph, project, { projects = {}, ignoredDependencies = [], ignoredFiles = [], ...options } = {}) {
10
12
  const build = new ProjectBuild(graph, project);
13
+ const bundled = build.shape === 'bundled';
11
14
  return dependencyPolicy({
12
15
  ...options,
13
- includeTransitiveDependencies: build.shape === 'bundled',
16
+ includeTransitiveDependencies: bundled,
17
+ ignoredFiles: [
18
+ ...testSupportFiles(graph, project, bundled),
19
+ ...ignoredFiles,
20
+ ],
14
21
  ignoredDependencies: [
15
22
  ...build.inlined,
16
23
  ...ignoredDependencies,
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-policy.js","sourceRoot":"","sources":["../../src/manifest/manifest-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,gBAAgB,GACjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAgBlD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAmB,EACnB,OAAgC,EAChC,EACE,QAAQ,GAAG,EAAE,EACb,mBAAmB,GAAG,EAAE,EACxB,GAAG,OAAO,KACe,EAAE;IAE7B,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,gBAAgB,CAAC;QACtB,GAAG,OAAO;QACV,6BAA6B,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS;QACxD,mBAAmB,EAAE;YACnB,GAAG,KAAK,CAAC,OAAO;YAChB,GAAG,mBAAmB;YACtB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,mBAAmB,IAAI,EAAE,CAAC;SAC5D;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"manifest-policy.js","sourceRoot":"","sources":["../../src/manifest/manifest-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,gBAAgB,GACjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAgBrD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAmB,EACnB,OAAgC,EAChC,EACE,QAAQ,GAAG,EAAE,EACb,mBAAmB,GAAG,EAAE,EACxB,YAAY,GAAG,EAAE,EACjB,GAAG,OAAO,KACe,EAAE;IAE7B,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;IAC1C,OAAO,gBAAgB,CAAC;QACtB,GAAG,OAAO;QACV,6BAA6B,EAAE,OAAO;QACtC,YAAY,EAAE;YACZ,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;YAC5C,GAAG,YAAY;SAChB;QACD,mBAAmB,EAAE;YACnB,GAAG,KAAK,CAAC,OAAO;YAChB,GAAG,mBAAmB;YACtB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,mBAAmB,IAAI,EAAE,CAAC;SAC5D;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -14,11 +14,13 @@ export type ProjectShape = 'bundled' | 'unbundled';
14
14
  * as Nx resolves it: project.json, the target defaults in nx.json, and the
15
15
  * targets that Nx plugins infer.
16
16
  *
17
- * An application bundles unless its build is `nx:noop` (it ships what other
18
- * projects built), esbuild with `bundle: false` (it transpiles file by file),
19
- * or esbuild that leaves a workspace package it imports to node_modules (it
20
- * installs that package, and inlines only the others). esbuild bundles by
21
- * default.
17
+ * An application bundles unless its build compiles with tsc (it emits file by
18
+ * file and keeps each import), as `@nx/js:tsc` or the `tsc --build` target
19
+ * that the `@nx/js/typescript` plugin infers, is `nx:noop` (it ships what
20
+ * other projects built), esbuild with `bundle: false` (it transpiles file by
21
+ * file), or esbuild that leaves a workspace package it imports to
22
+ * node_modules (it installs that package, and inlines only the others).
23
+ * esbuild bundles by default.
22
24
  */
23
25
  export declare class ProjectBuild {
24
26
  readonly shape: ProjectShape;
@@ -1 +1 @@
1
- {"version":3,"file":"project-build.d.ts","sourceRoot":"","sources":["../../src/manifest/project-build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAKxE;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AA4BnD;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,2GAA2G;IAC3G,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;gBAExB,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB;CAyBlE"}
1
+ {"version":3,"file":"project-build.d.ts","sourceRoot":"","sources":["../../src/manifest/project-build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAKxE;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AA4BnD;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,2GAA2G;IAC3G,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;gBAExB,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB;CA8BlE"}
@@ -29,11 +29,13 @@ function matchesExternal(name, pattern) {
29
29
  * as Nx resolves it: project.json, the target defaults in nx.json, and the
30
30
  * targets that Nx plugins infer.
31
31
  *
32
- * An application bundles unless its build is `nx:noop` (it ships what other
33
- * projects built), esbuild with `bundle: false` (it transpiles file by file),
34
- * or esbuild that leaves a workspace package it imports to node_modules (it
35
- * installs that package, and inlines only the others). esbuild bundles by
36
- * default.
32
+ * An application bundles unless its build compiles with tsc (it emits file by
33
+ * file and keeps each import), as `@nx/js:tsc` or the `tsc --build` target
34
+ * that the `@nx/js/typescript` plugin infers, is `nx:noop` (it ships what
35
+ * other projects built), esbuild with `bundle: false` (it transpiles file by
36
+ * file), or esbuild that leaves a workspace package it imports to
37
+ * node_modules (it installs that package, and inlines only the others).
38
+ * esbuild bundles by default.
37
39
  */
38
40
  export class ProjectBuild {
39
41
  shape;
@@ -42,7 +44,11 @@ export class ProjectBuild {
42
44
  constructor(graph, project) {
43
45
  const build = project.data.targets?.['build'];
44
46
  const esbuild = build?.executor?.includes('esbuild') === true;
47
+ const typescript = build?.executor === '@nx/js:tsc' ||
48
+ (build?.executor === 'nx:run-commands' &&
49
+ build.metadata?.technologies?.includes('typescript') === true);
45
50
  if (project.data.projectType !== 'application' ||
51
+ typescript ||
46
52
  build?.executor === 'nx:noop' ||
47
53
  (esbuild && build?.options?.bundle === false)) {
48
54
  this.shape = 'unbundled';
@@ -1 +1 @@
1
- {"version":3,"file":"project-build.js","sourceRoot":"","sources":["../../src/manifest/project-build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-build.js","sourceRoot":"","sources":["../../src/manifest/project-build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type ProjectGraph, type ProjectGraphProjectNode } from '@nx/devkit';
2
+ /**
3
+ * The `testing/` folders that hold test support, as `ignoredFiles` globs. A
4
+ * `testing/` folder is test support unless its project's manifest publishes it,
5
+ * because a package can ship a testing subpath for its consumers. The globs
6
+ * are relative to the workspace root, not `{projectRoot}`, because Nx applies
7
+ * one `ignoredFiles` list to every project a bundled app inlines.
8
+ */
9
+ export declare function testSupportFiles(graph: ProjectGraph, project: ProjectGraphProjectNode, bundled: boolean): string[];
10
+ //# sourceMappingURL=test-support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-support.d.ts","sourceRoot":"","sources":["../../src/manifest/test-support.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAE7B,MAAM,YAAY,CAAC;AA+CpB;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,OAAO,GACf,MAAM,EAAE,CASV"}
@@ -0,0 +1,52 @@
1
+ import { join, posix } from 'node:path';
2
+ import { workspaceRoot, } from '@nx/devkit';
3
+ import { isRecord, stringsAt } from "../unknown-values.js";
4
+ import { readJson } from "../workspace/project-manifest.js";
5
+ /** The file paths a manifest's `exports` maps to, in any of its forms. */
6
+ function exportTargets(exports) {
7
+ if (typeof exports === 'string')
8
+ return [exports];
9
+ if (Array.isArray(exports))
10
+ return exports.flatMap(exportTargets);
11
+ return isRecord(exports) ? Object.values(exports).flatMap(exportTargets) : [];
12
+ }
13
+ /**
14
+ * Whether the manifest publishes a `testing/` folder: an `exports` target or
15
+ * a `files` entry names a `testing` segment, or an `exports` target has a
16
+ * `*`, which can reach any folder.
17
+ */
18
+ function publishesTesting(manifest) {
19
+ const exports = isRecord(manifest) ? exportTargets(manifest['exports']) : [];
20
+ return (exports.some((path) => path.includes('*')) ||
21
+ [...exports, ...stringsAt(manifest, 'files')].some((path) => path.split('/').includes('testing')));
22
+ }
23
+ /** `project` and, when its build inlines them, the workspace projects it imports, transitively. */
24
+ function checkedProjects(graph, project, bundled) {
25
+ const seen = new Map([[project.name, project]]);
26
+ if (!bundled)
27
+ return [...seen.values()];
28
+ const visit = (name) => {
29
+ for (const { target } of graph.dependencies[name] ?? []) {
30
+ const node = graph.nodes[target];
31
+ if (!node || seen.has(target))
32
+ continue;
33
+ seen.set(target, node);
34
+ visit(target);
35
+ }
36
+ };
37
+ visit(project.name);
38
+ return [...seen.values()];
39
+ }
40
+ /**
41
+ * The `testing/` folders that hold test support, as `ignoredFiles` globs. A
42
+ * `testing/` folder is test support unless its project's manifest publishes it,
43
+ * because a package can ship a testing subpath for its consumers. The globs
44
+ * are relative to the workspace root, not `{projectRoot}`, because Nx applies
45
+ * one `ignoredFiles` list to every project a bundled app inlines.
46
+ */
47
+ export function testSupportFiles(graph, project, bundled) {
48
+ return checkedProjects(graph, project, bundled)
49
+ .filter(({ data }) => !publishesTesting(readJson(join(workspaceRoot, data.root, 'package.json'))))
50
+ .map(({ data }) => posix.join(data.root, '**/testing/**'));
51
+ }
52
+ //# sourceMappingURL=test-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-support.js","sourceRoot":"","sources":["../../src/manifest/test-support.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/react-router/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,eAAe,CAAC;AAYrD,eAAO,MAAM,WAAW,EAAE,OAsBzB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/react-router/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,eAAe,CAAC;AAarD,eAAO,MAAM,WAAW,EAAE,OAmCzB,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { enable } from "../concept.js";
2
- import { SOURCE, TESTS } from "../files.js";
2
+ import { SOURCE, TESTS, TYPESCRIPT } from "../files.js";
3
3
  import noInternalAnchor from "./no-internal-anchor.js";
4
4
  import noRawRoutePath from "./no-raw-route-path.js";
5
+ import { reactRouterOnlyThrowError } from "./options.js";
5
6
  import requireLoaderDataTypeArgument from "./require-loader-data-type-argument.js";
6
7
  const rules = {
7
8
  'require-loader-data-type-argument': requireLoaderDataTypeArgument,
@@ -29,6 +30,19 @@ export const reactRouter = {
29
30
  'no-internal-anchor': noInternalAnchor,
30
31
  }),
31
32
  },
33
+ {
34
+ // `base` turns the rule on with no allow list. Loader helpers live
35
+ // outside the route modules, so the allow list covers every file of
36
+ // this config, not only a routes folder.
37
+ name: 'zukhruf/react-router/throws',
38
+ files: TYPESCRIPT,
39
+ rules: {
40
+ '@typescript-eslint/only-throw-error': [
41
+ 'error',
42
+ reactRouterOnlyThrowError(),
43
+ ],
44
+ },
45
+ },
32
46
  ],
33
47
  };
34
48
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/react-router/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,cAAc,MAAM,wBAAwB,CAAC;AACpD,OAAO,6BAA6B,MAAM,wCAAwC,CAAC;AAEnF,MAAM,KAAK,GAAG;IACZ,mCAAmC,EAAE,6BAA6B;IAClE,mBAAmB,EAAE,cAAc;IACnC,oBAAoB,EAAE,gBAAgB;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,IAAI,EAAE,cAAc;IACpB,KAAK;IACL,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QACnB;YACE,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,MAAM;YACb,OAAO;YACP,KAAK,EAAE,EAAE,2CAA2C,EAAE,OAAO,EAAE;SAChE;QACD;YACE,oDAAoD;YACpD,IAAI,EAAE,4BAA4B;YAClC,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,KAAK;YACd,OAAO;YACP,KAAK,EAAE,MAAM,CAAC;gBACZ,mBAAmB,EAAE,cAAc;gBACnC,oBAAoB,EAAE,gBAAgB;aACvC,CAAC;SACH;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/react-router/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,cAAc,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,6BAA6B,MAAM,wCAAwC,CAAC;AAEnF,MAAM,KAAK,GAAG;IACZ,mCAAmC,EAAE,6BAA6B;IAClE,mBAAmB,EAAE,cAAc;IACnC,oBAAoB,EAAE,gBAAgB;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,IAAI,EAAE,cAAc;IACpB,KAAK;IACL,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QACnB;YACE,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,MAAM;YACb,OAAO;YACP,KAAK,EAAE,EAAE,2CAA2C,EAAE,OAAO,EAAE;SAChE;QACD;YACE,oDAAoD;YACpD,IAAI,EAAE,4BAA4B;YAClC,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,KAAK;YACd,OAAO;YACP,KAAK,EAAE,MAAM,CAAC;gBACZ,mBAAmB,EAAE,cAAc;gBACnC,oBAAoB,EAAE,gBAAgB;aACvC,CAAC;SACH;QACD;YACE,mEAAmE;YACnE,oEAAoE;YACpE,yCAAyC;YACzC,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE;gBACL,qCAAqC,EAAE;oBACrC,OAAO;oBACP,yBAAyB,EAAE;iBAC5B;aACF;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { TypeOrValueSpecifier } from '../base/options.ts';
2
+ export interface ReactRouterOnlyThrowErrorOptions {
3
+ /** More types that a react-router file may throw. */
4
+ allow?: TypeOrValueSpecifier[];
5
+ }
6
+ /** Options for `@typescript-eslint/only-throw-error` in react-router files, with React Router's thrown types already allowed. */
7
+ export declare function reactRouterOnlyThrowError({ allow, }?: ReactRouterOnlyThrowErrorOptions): {
8
+ allow: TypeOrValueSpecifier[];
9
+ };
10
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/react-router/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,WAAW,gCAAgC;IAC/C,qDAAqD;IACrD,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAWD,iIAAiI;AACjI,wBAAgB,yBAAyB,CAAC,EACxC,KAAU,GACX,GAAE,gCAAqC;;EAEvC"}
@@ -0,0 +1,13 @@
1
+ // A loader or an action throws `redirect()`, `replace()` (a Response) or
2
+ // `data()` (a DataWithResponseInit) to stop and answer at once. React Router
3
+ // catches the thrown value and renders it, so it is not an error that loses
4
+ // its stack.
5
+ const ROUTER_THROWS = [
6
+ { from: 'lib', name: 'Response' },
7
+ { from: 'package', package: 'react-router', name: 'DataWithResponseInit' },
8
+ ];
9
+ /** Options for `@typescript-eslint/only-throw-error` in react-router files, with React Router's thrown types already allowed. */
10
+ export function reactRouterOnlyThrowError({ allow = [], } = {}) {
11
+ return { allow: [...ROUTER_THROWS, ...allow] };
12
+ }
13
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/react-router/options.ts"],"names":[],"mappings":"AAOA,yEAAyE;AACzE,6EAA6E;AAC7E,4EAA4E;AAC5E,aAAa;AACb,MAAM,aAAa,GAA2B;IAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;IACjC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,sBAAsB,EAAE;CAC3E,CAAC;AAEF,iIAAiI;AACjI,MAAM,UAAU,yBAAyB,CAAC,EACxC,KAAK,GAAG,EAAE,MAC0B,EAAE;IACtC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AACjD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zukhruf/eslint",
3
- "version": "0.3.41",
3
+ "version": "0.3.42",
4
4
  "description": "ESLint rules and configs shared across workspaces. Every check is its own named rule, so a repo's own config cannot silently erase it.",
5
5
  "license": "MIT",
6
6
  "repository": {