@stll/oxlint-config 2.1.3 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -1
- package/dist/toolchain-check-cli.cjs +1 -1
- package/dist/toolchain-check-cli.cjs.map +1 -1
- package/dist/toolchain-check-cli.mjs +1 -1
- package/dist/toolchain-check-cli.mjs.map +1 -1
- package/dist/toolchain-guard.cjs +184 -102
- package/dist/toolchain-guard.cjs.map +1 -1
- package/dist/toolchain-guard.mjs +184 -102
- package/dist/toolchain-guard.mjs.map +1 -1
- package/dist/toolchain-inputs.cjs +9 -2
- package/dist/toolchain-inputs.cjs.map +1 -1
- package/dist/toolchain-inputs.mjs +9 -2
- package/dist/toolchain-inputs.mjs.map +1 -1
- package/package.json +4 -4
- package/toolchain.json +6 -6
package/README.md
CHANGED
|
@@ -1040,7 +1040,7 @@ Cargo/rustup commands in scripts, and Rust Docker/service images. An omitted
|
|
|
1040
1040
|
`dtolnay/rust-toolchain` version selects a floating action default and fails.
|
|
1041
1041
|
Cargo manifest `rust-version` remains an MSRV floor at or below the shared pin.
|
|
1042
1042
|
|
|
1043
|
-
|
|
1043
|
+
`rustExceptions` in the consumer's root `stll-toolchain.json` can authorize
|
|
1044
1044
|
another exact stable release. Each record contains exactly `pin`, `reason`,
|
|
1045
1045
|
`tracking` (a GitHub issue URL) and `expires` (a `YYYY-MM-DD` date).
|
|
1046
1046
|
Channels and `rust-version` rule opt-outs fail validation. A record expires on
|
|
@@ -1048,6 +1048,15 @@ its date and then follows the same expiry scope as quarantine excludes (see
|
|
|
1048
1048
|
[Quarantine preset and expiry checks](#quarantine-preset-and-expiry-checks)).
|
|
1049
1049
|
See the [root policy guide](../../README.md) for a complete declaration.
|
|
1050
1050
|
|
|
1051
|
+
Historical offline install probes can instead declare `rustInstallFixtures` with
|
|
1052
|
+
an exact tracked shell `path`, stable or dated-nightly `pin`, `reason` (including
|
|
1053
|
+
the removal condition), GitHub issue/pull-request `tracking` URL, and `expires`.
|
|
1054
|
+
Only `rustup toolchain install` without `--default` in that file is covered;
|
|
1055
|
+
compiler execution, environment selectors, workflows and Docker remain checked.
|
|
1056
|
+
Unused declarations fail, and expiry follows the same scope as Rust exceptions.
|
|
1057
|
+
The fixture owns its isolated Rust home and offline setup; this declaration is
|
|
1058
|
+
not a sandbox or a general permission to execute historical compilers.
|
|
1059
|
+
|
|
1051
1060
|
`stll-toolchain-check` requires tracked JavaScript and TypeScript files selected by type-aware lint to belong to declared TypeScript projects. See the [Node scripts project recipe](https://github.com/stella/tooling/blob/main/README.md) for scripts outside the library project. The check inventories Oxlint-selected files and expands compiler configurations; it does not run lint or type checking.
|
|
1052
1061
|
|
|
1053
1062
|
The project-ownership guard models declared package-manager scripts, including
|
|
@@ -18,7 +18,7 @@ try {
|
|
|
18
18
|
policy,
|
|
19
19
|
expiryScope: require_quarantine_policy.resolveExpiryScope(process.cwd()),
|
|
20
20
|
onWarning: ({ path, line, rule, message }) => process.stderr.write(`${path}:${line}: [${rule}] warning: ${message}\n`),
|
|
21
|
-
onDelegated: ({ path, line, tool, selector, ref }) => process.stdout.write(`${path}:${line}: [runtime-delegated] setup-${tool} ${selector} delegates its version to checkout ref ${ref}\n`)
|
|
21
|
+
onDelegated: ({ path, line, tool, selector, ref }) => process.stdout.write(tool === "action" ? `${path}:${line}: [runtime-delegated] local action ${selector} delegates source validation to checkout ref ${ref}\n` : `${path}:${line}: [runtime-delegated] setup-${tool} ${selector} delegates its version to checkout ref ${ref}\n`)
|
|
22
22
|
});
|
|
23
23
|
for (const diagnostic of diagnostics) process.stderr.write(`${diagnostic.path}:${diagnostic.line}: [${diagnostic.rule}] ${diagnostic.message}\n`);
|
|
24
24
|
if (diagnostics.length > 0) process.exitCode = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolchain-check-cli.cjs","names":["parseToolchainPolicy","readFileSync","checkToolchain","resolveExpiryScope"],"sources":["../src/toolchain-check-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { readFileSync } from \"node:fs\";\n\nimport { resolveExpiryScope } from \"./dated-entry-scope\";\nimport { checkToolchain } from \"./toolchain-guard\";\nimport { parseToolchainPolicy } from \"./toolchain-schema\";\n\ntry {\n const args = process.argv.slice(2);\n if (args.length === 1 && args[0] === \"--help\") {\n process.stdout.write(\n \"Usage: stll-toolchain-check (opt-outs: tracked stll-toolchain.json)\\n\",\n );\n process.exit(0);\n }\n if (args.length !== 0) throw new Error(`unexpected argument: ${args.at(0)}`);\n const policy = parseToolchainPolicy(\n JSON.parse(\n readFileSync(new URL(\"../toolchain.json\", import.meta.url), \"utf8\"),\n ),\n );\n const diagnostics = checkToolchain({\n root: process.cwd(),\n policy,\n expiryScope: resolveExpiryScope(process.cwd()),\n onWarning: ({ path, line, rule, message }) =>\n process.stderr.write(`${path}:${line}: [${rule}] warning: ${message}\\n`),\n onDelegated: ({ path, line, tool, selector, ref }) =>\n process.stdout.write(\n `${path}:${line}: [runtime-delegated] setup-${tool} ${selector} delegates its version to checkout ref ${ref}\\n`,\n ),\n });\n for (const diagnostic of diagnostics)\n process.stderr.write(\n `${diagnostic.path}:${diagnostic.line}: [${diagnostic.rule}] ${diagnostic.message}\\n`,\n );\n if (diagnostics.length > 0) process.exitCode = 1;\n} catch (error) {\n process.stderr.write(\n `toolchain-check:1: ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n process.exitCode = 1;\n}\n"],"mappings":";;;;;;;AAOA,IAAI;CACF,MAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;CACjC,IAAI,KAAK,WAAW,KAAK,KAAK,OAAO,UAAU;EAC7C,QAAQ,OAAO,MACb,uEACF;EACA,QAAQ,KAAK,CAAC;CAChB;CACA,IAAI,KAAK,WAAW,GAAG,MAAM,IAAI,MAAM,wBAAwB,KAAK,GAAG,CAAC,GAAG;CAC3E,MAAM,SAASA,yBAAAA,qBACb,KAAK,OAAA,GACHC,QAAAA,aAAAA,CAAa,IAAI,IAAI,qBAAA,QAAA,KAAA,CAAA,CAAA,cAAA,UAAA,CAAA,CAAA,IAAoC,GAAG,MAAM,CACpE,CACF;CACA,MAAM,cAAcC,wBAAAA,eAAe;EACjC,MAAM,QAAQ,IAAI;EAClB;EACA,aAAaC,0BAAAA,mBAAmB,QAAQ,IAAI,CAAC;EAC7C,YAAY,EAAE,MAAM,MAAM,MAAM,cAC9B,QAAQ,OAAO,MAAM,GAAG,KAAK,GAAG,KAAK,KAAK,KAAK,aAAa,QAAQ,GAAG;EACzE,cAAc,EAAE,MAAM,MAAM,MAAM,UAAU,UAC1C,QAAQ,OAAO,MACb,GAAG,KAAK,GAAG,KAAK,8BAA8B,KAAK,GAAG,SAAS,yCAAyC,IAAI,
|
|
1
|
+
{"version":3,"file":"toolchain-check-cli.cjs","names":["parseToolchainPolicy","readFileSync","checkToolchain","resolveExpiryScope"],"sources":["../src/toolchain-check-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { readFileSync } from \"node:fs\";\n\nimport { resolveExpiryScope } from \"./dated-entry-scope\";\nimport { checkToolchain } from \"./toolchain-guard\";\nimport { parseToolchainPolicy } from \"./toolchain-schema\";\n\ntry {\n const args = process.argv.slice(2);\n if (args.length === 1 && args[0] === \"--help\") {\n process.stdout.write(\n \"Usage: stll-toolchain-check (opt-outs: tracked stll-toolchain.json)\\n\",\n );\n process.exit(0);\n }\n if (args.length !== 0) throw new Error(`unexpected argument: ${args.at(0)}`);\n const policy = parseToolchainPolicy(\n JSON.parse(\n readFileSync(new URL(\"../toolchain.json\", import.meta.url), \"utf8\"),\n ),\n );\n const diagnostics = checkToolchain({\n root: process.cwd(),\n policy,\n expiryScope: resolveExpiryScope(process.cwd()),\n onWarning: ({ path, line, rule, message }) =>\n process.stderr.write(`${path}:${line}: [${rule}] warning: ${message}\\n`),\n onDelegated: ({ path, line, tool, selector, ref }) =>\n process.stdout.write(\n tool === \"action\"\n ? `${path}:${line}: [runtime-delegated] local action ${selector} delegates source validation to checkout ref ${ref}\\n`\n : `${path}:${line}: [runtime-delegated] setup-${tool} ${selector} delegates its version to checkout ref ${ref}\\n`,\n ),\n });\n for (const diagnostic of diagnostics)\n process.stderr.write(\n `${diagnostic.path}:${diagnostic.line}: [${diagnostic.rule}] ${diagnostic.message}\\n`,\n );\n if (diagnostics.length > 0) process.exitCode = 1;\n} catch (error) {\n process.stderr.write(\n `toolchain-check:1: ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n process.exitCode = 1;\n}\n"],"mappings":";;;;;;;AAOA,IAAI;CACF,MAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;CACjC,IAAI,KAAK,WAAW,KAAK,KAAK,OAAO,UAAU;EAC7C,QAAQ,OAAO,MACb,uEACF;EACA,QAAQ,KAAK,CAAC;CAChB;CACA,IAAI,KAAK,WAAW,GAAG,MAAM,IAAI,MAAM,wBAAwB,KAAK,GAAG,CAAC,GAAG;CAC3E,MAAM,SAASA,yBAAAA,qBACb,KAAK,OAAA,GACHC,QAAAA,aAAAA,CAAa,IAAI,IAAI,qBAAA,QAAA,KAAA,CAAA,CAAA,cAAA,UAAA,CAAA,CAAA,IAAoC,GAAG,MAAM,CACpE,CACF;CACA,MAAM,cAAcC,wBAAAA,eAAe;EACjC,MAAM,QAAQ,IAAI;EAClB;EACA,aAAaC,0BAAAA,mBAAmB,QAAQ,IAAI,CAAC;EAC7C,YAAY,EAAE,MAAM,MAAM,MAAM,cAC9B,QAAQ,OAAO,MAAM,GAAG,KAAK,GAAG,KAAK,KAAK,KAAK,aAAa,QAAQ,GAAG;EACzE,cAAc,EAAE,MAAM,MAAM,MAAM,UAAU,UAC1C,QAAQ,OAAO,MACb,SAAS,WACL,GAAG,KAAK,GAAG,KAAK,qCAAqC,SAAS,+CAA+C,IAAI,MACjH,GAAG,KAAK,GAAG,KAAK,8BAA8B,KAAK,GAAG,SAAS,yCAAyC,IAAI,GAClH;CACJ,CAAC;CACD,KAAK,MAAM,cAAc,aACvB,QAAQ,OAAO,MACb,GAAG,WAAW,KAAK,GAAG,WAAW,KAAK,KAAK,WAAW,KAAK,IAAI,WAAW,QAAQ,GACpF;CACF,IAAI,YAAY,SAAS,GAAG,QAAQ,WAAW;AACjD,SAAS,OAAO;CACd,QAAQ,OAAO,MACb,sBAAsB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE,GAC/E;CACA,QAAQ,WAAW;AACrB"}
|
|
@@ -17,7 +17,7 @@ try {
|
|
|
17
17
|
policy,
|
|
18
18
|
expiryScope: resolveExpiryScope(process.cwd()),
|
|
19
19
|
onWarning: ({ path, line, rule, message }) => process.stderr.write(`${path}:${line}: [${rule}] warning: ${message}\n`),
|
|
20
|
-
onDelegated: ({ path, line, tool, selector, ref }) => process.stdout.write(`${path}:${line}: [runtime-delegated] setup-${tool} ${selector} delegates its version to checkout ref ${ref}\n`)
|
|
20
|
+
onDelegated: ({ path, line, tool, selector, ref }) => process.stdout.write(tool === "action" ? `${path}:${line}: [runtime-delegated] local action ${selector} delegates source validation to checkout ref ${ref}\n` : `${path}:${line}: [runtime-delegated] setup-${tool} ${selector} delegates its version to checkout ref ${ref}\n`)
|
|
21
21
|
});
|
|
22
22
|
for (const diagnostic of diagnostics) process.stderr.write(`${diagnostic.path}:${diagnostic.line}: [${diagnostic.rule}] ${diagnostic.message}\n`);
|
|
23
23
|
if (diagnostics.length > 0) process.exitCode = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolchain-check-cli.mjs","names":[],"sources":["../src/toolchain-check-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { readFileSync } from \"node:fs\";\n\nimport { resolveExpiryScope } from \"./dated-entry-scope\";\nimport { checkToolchain } from \"./toolchain-guard\";\nimport { parseToolchainPolicy } from \"./toolchain-schema\";\n\ntry {\n const args = process.argv.slice(2);\n if (args.length === 1 && args[0] === \"--help\") {\n process.stdout.write(\n \"Usage: stll-toolchain-check (opt-outs: tracked stll-toolchain.json)\\n\",\n );\n process.exit(0);\n }\n if (args.length !== 0) throw new Error(`unexpected argument: ${args.at(0)}`);\n const policy = parseToolchainPolicy(\n JSON.parse(\n readFileSync(new URL(\"../toolchain.json\", import.meta.url), \"utf8\"),\n ),\n );\n const diagnostics = checkToolchain({\n root: process.cwd(),\n policy,\n expiryScope: resolveExpiryScope(process.cwd()),\n onWarning: ({ path, line, rule, message }) =>\n process.stderr.write(`${path}:${line}: [${rule}] warning: ${message}\\n`),\n onDelegated: ({ path, line, tool, selector, ref }) =>\n process.stdout.write(\n `${path}:${line}: [runtime-delegated] setup-${tool} ${selector} delegates its version to checkout ref ${ref}\\n`,\n ),\n });\n for (const diagnostic of diagnostics)\n process.stderr.write(\n `${diagnostic.path}:${diagnostic.line}: [${diagnostic.rule}] ${diagnostic.message}\\n`,\n );\n if (diagnostics.length > 0) process.exitCode = 1;\n} catch (error) {\n process.stderr.write(\n `toolchain-check:1: ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n process.exitCode = 1;\n}\n"],"mappings":";;;;;;AAOA,IAAI;CACF,MAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;CACjC,IAAI,KAAK,WAAW,KAAK,KAAK,OAAO,UAAU;EAC7C,QAAQ,OAAO,MACb,uEACF;EACA,QAAQ,KAAK,CAAC;CAChB;CACA,IAAI,KAAK,WAAW,GAAG,MAAM,IAAI,MAAM,wBAAwB,KAAK,GAAG,CAAC,GAAG;CAC3E,MAAM,SAAS,qBACb,KAAK,MACH,aAAa,IAAI,IAAI,qBAAqB,YAAY,GAAG,GAAG,MAAM,CACpE,CACF;CACA,MAAM,cAAc,eAAe;EACjC,MAAM,QAAQ,IAAI;EAClB;EACA,aAAa,mBAAmB,QAAQ,IAAI,CAAC;EAC7C,YAAY,EAAE,MAAM,MAAM,MAAM,cAC9B,QAAQ,OAAO,MAAM,GAAG,KAAK,GAAG,KAAK,KAAK,KAAK,aAAa,QAAQ,GAAG;EACzE,cAAc,EAAE,MAAM,MAAM,MAAM,UAAU,UAC1C,QAAQ,OAAO,MACb,GAAG,KAAK,GAAG,KAAK,8BAA8B,KAAK,GAAG,SAAS,yCAAyC,IAAI,
|
|
1
|
+
{"version":3,"file":"toolchain-check-cli.mjs","names":[],"sources":["../src/toolchain-check-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { readFileSync } from \"node:fs\";\n\nimport { resolveExpiryScope } from \"./dated-entry-scope\";\nimport { checkToolchain } from \"./toolchain-guard\";\nimport { parseToolchainPolicy } from \"./toolchain-schema\";\n\ntry {\n const args = process.argv.slice(2);\n if (args.length === 1 && args[0] === \"--help\") {\n process.stdout.write(\n \"Usage: stll-toolchain-check (opt-outs: tracked stll-toolchain.json)\\n\",\n );\n process.exit(0);\n }\n if (args.length !== 0) throw new Error(`unexpected argument: ${args.at(0)}`);\n const policy = parseToolchainPolicy(\n JSON.parse(\n readFileSync(new URL(\"../toolchain.json\", import.meta.url), \"utf8\"),\n ),\n );\n const diagnostics = checkToolchain({\n root: process.cwd(),\n policy,\n expiryScope: resolveExpiryScope(process.cwd()),\n onWarning: ({ path, line, rule, message }) =>\n process.stderr.write(`${path}:${line}: [${rule}] warning: ${message}\\n`),\n onDelegated: ({ path, line, tool, selector, ref }) =>\n process.stdout.write(\n tool === \"action\"\n ? `${path}:${line}: [runtime-delegated] local action ${selector} delegates source validation to checkout ref ${ref}\\n`\n : `${path}:${line}: [runtime-delegated] setup-${tool} ${selector} delegates its version to checkout ref ${ref}\\n`,\n ),\n });\n for (const diagnostic of diagnostics)\n process.stderr.write(\n `${diagnostic.path}:${diagnostic.line}: [${diagnostic.rule}] ${diagnostic.message}\\n`,\n );\n if (diagnostics.length > 0) process.exitCode = 1;\n} catch (error) {\n process.stderr.write(\n `toolchain-check:1: ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n process.exitCode = 1;\n}\n"],"mappings":";;;;;;AAOA,IAAI;CACF,MAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;CACjC,IAAI,KAAK,WAAW,KAAK,KAAK,OAAO,UAAU;EAC7C,QAAQ,OAAO,MACb,uEACF;EACA,QAAQ,KAAK,CAAC;CAChB;CACA,IAAI,KAAK,WAAW,GAAG,MAAM,IAAI,MAAM,wBAAwB,KAAK,GAAG,CAAC,GAAG;CAC3E,MAAM,SAAS,qBACb,KAAK,MACH,aAAa,IAAI,IAAI,qBAAqB,YAAY,GAAG,GAAG,MAAM,CACpE,CACF;CACA,MAAM,cAAc,eAAe;EACjC,MAAM,QAAQ,IAAI;EAClB;EACA,aAAa,mBAAmB,QAAQ,IAAI,CAAC;EAC7C,YAAY,EAAE,MAAM,MAAM,MAAM,cAC9B,QAAQ,OAAO,MAAM,GAAG,KAAK,GAAG,KAAK,KAAK,KAAK,aAAa,QAAQ,GAAG;EACzE,cAAc,EAAE,MAAM,MAAM,MAAM,UAAU,UAC1C,QAAQ,OAAO,MACb,SAAS,WACL,GAAG,KAAK,GAAG,KAAK,qCAAqC,SAAS,+CAA+C,IAAI,MACjH,GAAG,KAAK,GAAG,KAAK,8BAA8B,KAAK,GAAG,SAAS,yCAAyC,IAAI,GAClH;CACJ,CAAC;CACD,KAAK,MAAM,cAAc,aACvB,QAAQ,OAAO,MACb,GAAG,WAAW,KAAK,GAAG,WAAW,KAAK,KAAK,WAAW,KAAK,IAAI,WAAW,QAAQ,GACpF;CACF,IAAI,YAAY,SAAS,GAAG,QAAQ,WAAW;AACjD,SAAS,OAAO;CACd,QAAQ,OAAO,MACb,sBAAsB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE,GAC/E;CACA,QAAQ,WAAW;AACrB"}
|