Merge pull request #43 from DeterminateSystems/graham/fh-272-detsys-ts-create-a-helper-to-assert-nix-is-available-ahead

Preflight nix, or don't fail
This commit is contained in:
Graham Christensen 2024-04-18 14:31:51 -04:00 committed by GitHub
commit 6025e25baf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 363 additions and 39 deletions

View file

@ -10,7 +10,7 @@ jobs:
name: Build name: Build
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Install Nix - name: Install Nix
uses: DeterminateSystems/nix-installer-action@main uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main - uses: DeterminateSystems/magic-nix-cache-action@main
@ -31,6 +31,19 @@ jobs:
- run: git status --porcelain=v1 - run: git status --porcelain=v1
- run: test $(git status --porcelain=v1 2>/dev/null | wc -l) -eq 0 - run: test $(git status --porcelain=v1 2>/dev/null | wc -l) -eq 0
test-no-nix:
name: "Test: Nix not installed"
runs-on: ubuntu-22.04
permissions:
id-token: "write"
contents: "read"
env:
ACTIONS_STEP_DEBUG: true
steps:
- uses: actions/checkout@v4
- name: Cache the store
uses: ./
run-x86_64-linux: run-x86_64-linux:
name: Run x86_64 Linux name: Run x86_64 Linux
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
@ -40,7 +53,7 @@ jobs:
env: env:
ACTIONS_STEP_DEBUG: true ACTIONS_STEP_DEBUG: true
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Install Nix - name: Install Nix
uses: DeterminateSystems/nix-installer-action@main uses: DeterminateSystems/nix-installer-action@main
with: with:
@ -62,7 +75,7 @@ jobs:
env: env:
ACTIONS_STEP_DEBUG: true ACTIONS_STEP_DEBUG: true
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Install Nix - name: Install Nix
uses: DeterminateSystems/nix-installer-action@main uses: DeterminateSystems/nix-installer-action@main
with: with:
@ -85,7 +98,7 @@ jobs:
env: env:
ACTIONS_STEP_DEBUG: true ACTIONS_STEP_DEBUG: true
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Install Nix - name: Install Nix
uses: DeterminateSystems/nix-installer-action@main uses: DeterminateSystems/nix-installer-action@main
with: with:

View file

@ -22,7 +22,7 @@ jobs:
- nix-system: "x86_64-linux" - nix-system: "x86_64-linux"
runner: "ubuntu-22.04" runner: "ubuntu-22.04"
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main - uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main - uses: DeterminateSystems/magic-nix-cache-action@main
with: with:

View file

@ -45,7 +45,7 @@ jobs:
id-token: "write" id-token: "write"
contents: "read" contents: "read"
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main - uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main - uses: DeterminateSystems/magic-nix-cache-action@main
- uses: DeterminateSystems/flake-checker-action@main - uses: DeterminateSystems/flake-checker-action@main

166
dist/index.js generated vendored
View file

@ -94412,9 +94412,10 @@ const got = source_create(defaults);
;// CONCATENATED MODULE: ./node_modules/.pnpm/github.com+DeterminateSystems+detsys-ts@3a315cdffd83d4b229d4fb16548d22a3756baf28_lprtsns3vmnabnzqpk64lag6gi/node_modules/detsys-ts/dist/correlation.js ;// CONCATENATED MODULE: ./node_modules/.pnpm/github.com+DeterminateSystems+detsys-ts@1b12595783709c71515245d26437934a9f336598_b6j756lg3cqeptkcpq5wzeu4sa/node_modules/detsys-ts/dist/correlation.js
const OPTIONAL_VARIABLES = ["INVOCATION_ID"];
function identify(projectName) { function identify(projectName) {
const ident = { const ident = {
correlation_source: "github-actions", correlation_source: "github-actions",
@ -94463,6 +94464,7 @@ function identify(projectName) {
"GITHUB_RUN_ID", "GITHUB_RUN_ID",
"GITHUB_RUN_NUMBER", "GITHUB_RUN_NUMBER",
"GITHUB_RUN_ATTEMPT", "GITHUB_RUN_ATTEMPT",
"INVOCATION_ID",
]), ]),
groups: { groups: {
ci: "github-actions", ci: "github-actions",
@ -94481,23 +94483,34 @@ function identify(projectName) {
function hashEnvironmentVariables(prefix, variables) { function hashEnvironmentVariables(prefix, variables) {
const hash = (0,external_node_crypto_namespaceObject.createHash)("sha256"); const hash = (0,external_node_crypto_namespaceObject.createHash)("sha256");
for (const varName of variables) { for (const varName of variables) {
const value = process.env[varName]; let value = process.env[varName];
if (value === undefined) { if (value === undefined) {
if (OPTIONAL_VARIABLES.includes(varName)) {
core.debug(`Optional environment variable not set: ${varName} -- substituting with the variable name`);
value = varName;
}
else {
core.debug(`Environment variable not set: ${varName} -- can't generate the requested identity`); core.debug(`Environment variable not set: ${varName} -- can't generate the requested identity`);
return undefined; return undefined;
} }
else { }
hash.update(value); hash.update(value);
hash.update("\0"); hash.update("\0");
} }
}
return `${prefix}-${hash.digest("hex")}`; return `${prefix}-${hash.digest("hex")}`;
} }
;// CONCATENATED MODULE: ./node_modules/.pnpm/github.com+DeterminateSystems+detsys-ts@3a315cdffd83d4b229d4fb16548d22a3756baf28_lprtsns3vmnabnzqpk64lag6gi/node_modules/detsys-ts/dist/package.json ;// CONCATENATED MODULE: ./node_modules/.pnpm/github.com+DeterminateSystems+detsys-ts@1b12595783709c71515245d26437934a9f336598_b6j756lg3cqeptkcpq5wzeu4sa/node_modules/detsys-ts/dist/package.json
const package_namespaceObject = {"i8":"1.0.0"}; const package_namespaceObject = {"i8":"1.0.0"};
;// CONCATENATED MODULE: ./node_modules/.pnpm/github.com+DeterminateSystems+detsys-ts@3a315cdffd83d4b229d4fb16548d22a3756baf28_lprtsns3vmnabnzqpk64lag6gi/node_modules/detsys-ts/dist/platform.js ;// CONCATENATED MODULE: ./node_modules/.pnpm/github.com+DeterminateSystems+detsys-ts@1b12595783709c71515245d26437934a9f336598_b6j756lg3cqeptkcpq5wzeu4sa/node_modules/detsys-ts/dist/platform.js
/**
* @packageDocumentation
* Helpers for determining system attributes of the current runner.
*/
/**
* Get the current architecture plus OS. Examples include `X64-Linux` and `ARM64-macOS`.
*/
function getArchOs() { function getArchOs() {
const envArch = process.env.RUNNER_ARCH; const envArch = process.env.RUNNER_ARCH;
const envOs = process.env.RUNNER_OS; const envOs = process.env.RUNNER_OS;
@ -94509,6 +94522,9 @@ function getArchOs() {
throw new Error("RUNNER_ARCH and/or RUNNER_OS is not defined"); throw new Error("RUNNER_ARCH and/or RUNNER_OS is not defined");
} }
} }
/**
* Get the current Nix system. Examples include `x86_64-linux` and `aarch64-darwin`.
*/
function getNixPlatform(archOs) { function getNixPlatform(archOs) {
const archOsMap = new Map([ const archOsMap = new Map([
["X64-macOS", "x86_64-darwin"], ["X64-macOS", "x86_64-darwin"],
@ -94526,17 +94542,86 @@ function getNixPlatform(archOs) {
} }
} }
;// CONCATENATED MODULE: ./node_modules/.pnpm/github.com+DeterminateSystems+detsys-ts@3a315cdffd83d4b229d4fb16548d22a3756baf28_lprtsns3vmnabnzqpk64lag6gi/node_modules/detsys-ts/dist/sourcedef.js ;// CONCATENATED MODULE: ./node_modules/.pnpm/github.com+DeterminateSystems+detsys-ts@1b12595783709c71515245d26437934a9f336598_b6j756lg3cqeptkcpq5wzeu4sa/node_modules/detsys-ts/dist/inputs.js
/**
* @packageDocumentation
* Helpers for getting values from an Action's configuration.
*/
/**
* Get a Boolean input from the Action's configuration by name.
*/
const getBool = (name) => {
return actionsCore.getBooleanInput(name);
};
/**
* Get a multi-line string input from the Action's configuration by name or return `null` if not set.
*/
const getMultilineStringOrNull = (name) => {
const value = actionsCore.getMultilineInput(name);
if (value.length === 0) {
return null;
}
else {
return value;
}
};
/**
* Get a number input from the Action's configuration by name or return `null` if not set.
*/
const getNumberOrNull = (name) => {
const value = actionsCore.getInput(name);
if (value === "") {
return null;
}
else {
return Number(value);
}
};
/**
* Get a string input from the Action's configuration.
*/
const getString = (name) => {
return actionsCore.getInput(name);
};
/**
* Get a string input from the Action's configuration by name or return `null` if not set.
*/
const getStringOrNull = (name) => {
const value = actionsCore.getInput(name);
if (value === "") {
return null;
}
else {
return value;
}
};
/**
* Get a string input from the Action's configuration by name or return `undefined` if not set.
*/
const getStringOrUndefined = (name) => {
const value = core.getInput(name);
if (value === "") {
return undefined;
}
else {
return value;
}
};
;// CONCATENATED MODULE: ./node_modules/.pnpm/github.com+DeterminateSystems+detsys-ts@1b12595783709c71515245d26437934a9f336598_b6j756lg3cqeptkcpq5wzeu4sa/node_modules/detsys-ts/dist/sourcedef.js
function constructSourceParameters(legacyPrefix) { function constructSourceParameters(legacyPrefix) {
const noisilyGetInput = (suffix) => { const noisilyGetInput = (suffix) => {
const preferredInput = inputStringOrUndef(`source-${suffix}`); const preferredInput = getStringOrUndefined(`source-${suffix}`);
if (!legacyPrefix) { if (!legacyPrefix) {
return preferredInput; return preferredInput;
} }
// Remaining is for handling cases where the legacy prefix // Remaining is for handling cases where the legacy prefix
// should be examined. // should be examined.
const legacyInput = inputStringOrUndef(`${legacyPrefix}-${suffix}`); const legacyInput = getStringOrUndefined(`${legacyPrefix}-${suffix}`);
if (preferredInput && legacyInput) { if (preferredInput && legacyInput) {
core.warning(`The supported option source-${suffix} and the legacy option ${legacyPrefix}-${suffix} are both set. Preferring source-${suffix}. Please stop setting ${legacyPrefix}-${suffix}.`); core.warning(`The supported option source-${suffix} and the legacy option ${legacyPrefix}-${suffix} are both set. Preferring source-${suffix}. Please stop setting ${legacyPrefix}-${suffix}.`);
return preferredInput; return preferredInput;
@ -94558,15 +94643,6 @@ function constructSourceParameters(legacyPrefix) {
revision: noisilyGetInput("revision"), revision: noisilyGetInput("revision"),
}; };
} }
function inputStringOrUndef(name) {
const value = core.getInput(name);
if (value === "") {
return undefined;
}
else {
return value;
}
}
// EXTERNAL MODULE: ./node_modules/.pnpm/@actions+cache@3.2.4/node_modules/@actions/cache/lib/cache.js // EXTERNAL MODULE: ./node_modules/.pnpm/@actions+cache@3.2.4/node_modules/@actions/cache/lib/cache.js
var cache = __nccwpck_require__(6878); var cache = __nccwpck_require__(6878);
@ -94586,7 +94662,11 @@ const validate = uuid_dist/* validate */.Gu;
const stringify = uuid_dist/* stringify */.Pz; const stringify = uuid_dist/* stringify */.Pz;
const parse = uuid_dist/* parse */.Qc; const parse = uuid_dist/* parse */.Qc;
;// CONCATENATED MODULE: ./node_modules/.pnpm/github.com+DeterminateSystems+detsys-ts@3a315cdffd83d4b229d4fb16548d22a3756baf28_lprtsns3vmnabnzqpk64lag6gi/node_modules/detsys-ts/dist/main.js ;// CONCATENATED MODULE: ./node_modules/.pnpm/github.com+DeterminateSystems+detsys-ts@1b12595783709c71515245d26437934a9f336598_b6j756lg3cqeptkcpq5wzeu4sa/node_modules/detsys-ts/dist/main.js
/**
* @packageDocumentation
* Determinate Systems' TypeScript library for creating GitHub Actions logic.
*/
// eslint-disable-next-line import/extensions // eslint-disable-next-line import/extensions
@ -94695,6 +94775,10 @@ class IdsToolbox {
async executeAsync() { async executeAsync() {
try { try {
process.env.DETSYS_CORRELATION = JSON.stringify(this.getCorrelationHashes()); process.env.DETSYS_CORRELATION = JSON.stringify(this.getCorrelationHashes());
if (!(await this.preflightRequireNix())) {
this.recordEvent("preflight-require-nix-denied");
return;
}
if (this.executionPhase === "main" && this.hookMain) { if (this.executionPhase === "main" && this.hookMain) {
await this.hookMain(); await this.hookMain();
} }
@ -94858,6 +94942,45 @@ class IdsToolbox {
process.chdir(startCwd); process.chdir(startCwd);
} }
} }
async preflightRequireNix() {
let nixLocation;
const pathParts = (process.env["PATH"] || "").split(":");
for (const location of pathParts) {
const candidateNix = external_node_path_namespaceObject.join(location, "nix");
try {
await promises_namespaceObject.access(candidateNix, promises_namespaceObject.constants.X_OK);
core.debug(`Found Nix at ${candidateNix}`);
nixLocation = candidateNix;
}
catch {
core.debug(`Nix not at ${candidateNix}`);
}
}
this.addFact("nix_location", nixLocation || "");
if (this.actionOptions.requireNix === "ignore") {
return true;
}
const currentNotFoundState = core.getState("idstoolbox_nix_not_found");
if (currentNotFoundState === "not-found") {
// It was previously not found, so don't run subsequent actions
return false;
}
if (nixLocation !== undefined) {
return true;
}
core.saveState("idstoolbox_nix_not_found", "not-found");
switch (this.actionOptions.requireNix) {
case "fail":
core.setFailed("This action can only be used when Nix is installed." +
" Add `- uses: DeterminateSystems/nix-installer-action@main` earlier in your workflow.");
break;
case "warn":
core.warning("This action is in no-op mode because Nix is not installed." +
" Add `- uses: DeterminateSystems/nix-installer-action@main` earlier in your workflow.");
break;
}
return false;
}
async submitEvents() { async submitEvents() {
if (!this.actionOptions.diagnosticsUrl) { if (!this.actionOptions.diagnosticsUrl) {
core.debug("Diagnostics are disabled. Not sending the following events:"); core.debug("Diagnostics are disabled. Not sending the following events:");
@ -94892,6 +95015,7 @@ function makeOptionsConfident(actionOptions) {
eventPrefix: actionOptions.eventPrefix || "action:", eventPrefix: actionOptions.eventPrefix || "action:",
fetchStyle: actionOptions.fetchStyle, fetchStyle: actionOptions.fetchStyle,
legacySourcePrefix: actionOptions.legacySourcePrefix, legacySourcePrefix: actionOptions.legacySourcePrefix,
requireNix: actionOptions.requireNix,
diagnosticsUrl: determineDiagnosticsUrl(idsProjectName, actionOptions.diagnosticsUrl), diagnosticsUrl: determineDiagnosticsUrl(idsProjectName, actionOptions.diagnosticsUrl),
}; };
core.debug("idslib options:"); core.debug("idslib options:");
@ -94957,6 +95081,9 @@ function mungeDiagnosticEndpoint(inputUrl) {
} }
return inputUrl; return inputUrl;
} }
// Public exports from other files
;// CONCATENATED MODULE: ./dist/index.js ;// CONCATENATED MODULE: ./dist/index.js
@ -95220,6 +95347,7 @@ const idslib = new IdsToolbox({
name: "magic-nix-cache", name: "magic-nix-cache",
fetchStyle: "gh-env-style", fetchStyle: "gh-env-style",
idsProjectName: "magic-nix-cache-closure", idsProjectName: "magic-nix-cache-closure",
requireNix: "warn",
}); });
idslib.onMain(async () => { idslib.onMain(async () => {
await setUpAutoCache(idslib); await setUpAutoCache(idslib);

View file

@ -19,7 +19,7 @@ dependencies:
version: 2.0.1 version: 2.0.1
detsys-ts: detsys-ts:
specifier: github:DeterminateSystems/detsys-ts specifier: github:DeterminateSystems/detsys-ts
version: github.com/DeterminateSystems/detsys-ts/3a315cdffd83d4b229d4fb16548d22a3756baf28 version: github.com/DeterminateSystems/detsys-ts/1b12595783709c71515245d26437934a9f336598
fetch-retry: fetch-retry:
specifier: ^5.0.6 specifier: ^5.0.6
version: 5.0.6 version: 5.0.6
@ -48,7 +48,7 @@ devDependencies:
version: 9.0.8 version: 9.0.8
"@typescript-eslint/eslint-plugin": "@typescript-eslint/eslint-plugin":
specifier: ^7.6.0 specifier: ^7.6.0
version: 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.5) version: 7.6.0(@typescript-eslint/parser@7.7.0)(eslint@8.57.0)(typescript@5.4.5)
"@vercel/ncc": "@vercel/ncc":
specifier: ^0.38.1 specifier: ^0.38.1
version: 0.38.1 version: 0.38.1
@ -57,13 +57,13 @@ devDependencies:
version: 8.57.0 version: 8.57.0
eslint-import-resolver-typescript: eslint-import-resolver-typescript:
specifier: ^3.6.1 specifier: ^3.6.1
version: 3.6.1(@typescript-eslint/parser@7.6.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) version: 3.6.1(@typescript-eslint/parser@7.7.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
eslint-plugin-github: eslint-plugin-github:
specifier: ^4.10.2 specifier: ^4.10.2
version: 4.10.2(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)(typescript@5.4.5) version: 4.10.2(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)(typescript@5.4.5)
eslint-plugin-import: eslint-plugin-import:
specifier: ^2.29.1 specifier: ^2.29.1
version: 2.29.1(@typescript-eslint/parser@7.6.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) version: 2.29.1(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
eslint-plugin-prettier: eslint-plugin-prettier:
specifier: ^5.1.3 specifier: ^5.1.3
version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5)
@ -951,6 +951,38 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/eslint-plugin@7.6.0(@typescript-eslint/parser@7.7.0)(eslint@8.57.0)(typescript@5.4.5):
resolution:
{
integrity: sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==,
}
engines: { node: ^18.18.0 || >=20.0.0 }
peerDependencies:
"@typescript-eslint/parser": ^7.0.0
eslint: ^8.56.0
typescript: "*"
peerDependenciesMeta:
typescript:
optional: true
dependencies:
"@eslint-community/regexpp": 4.10.0
"@typescript-eslint/parser": 7.7.0(eslint@8.57.0)(typescript@5.4.5)
"@typescript-eslint/scope-manager": 7.6.0
"@typescript-eslint/type-utils": 7.6.0(eslint@8.57.0)(typescript@5.4.5)
"@typescript-eslint/utils": 7.6.0(eslint@8.57.0)(typescript@5.4.5)
"@typescript-eslint/visitor-keys": 7.6.0
debug: 4.3.4
eslint: 8.57.0
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
semver: 7.6.0
ts-api-utils: 1.3.0(typescript@5.4.5)
typescript: 5.4.5
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5): /@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5):
resolution: resolution:
{ {
@ -975,6 +1007,30 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.4.5):
resolution:
{
integrity: sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==,
}
engines: { node: ^18.18.0 || >=20.0.0 }
peerDependencies:
eslint: ^8.56.0
typescript: "*"
peerDependenciesMeta:
typescript:
optional: true
dependencies:
"@typescript-eslint/scope-manager": 7.7.0
"@typescript-eslint/types": 7.7.0
"@typescript-eslint/typescript-estree": 7.7.0(typescript@5.4.5)
"@typescript-eslint/visitor-keys": 7.7.0
debug: 4.3.4
eslint: 8.57.0
typescript: 5.4.5
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/scope-manager@7.6.0: /@typescript-eslint/scope-manager@7.6.0:
resolution: resolution:
{ {
@ -986,6 +1042,17 @@ packages:
"@typescript-eslint/visitor-keys": 7.6.0 "@typescript-eslint/visitor-keys": 7.6.0
dev: true dev: true
/@typescript-eslint/scope-manager@7.7.0:
resolution:
{
integrity: sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==,
}
engines: { node: ^18.18.0 || >=20.0.0 }
dependencies:
"@typescript-eslint/types": 7.7.0
"@typescript-eslint/visitor-keys": 7.7.0
dev: true
/@typescript-eslint/type-utils@7.6.0(eslint@8.57.0)(typescript@5.4.5): /@typescript-eslint/type-utils@7.6.0(eslint@8.57.0)(typescript@5.4.5):
resolution: resolution:
{ {
@ -1017,6 +1084,14 @@ packages:
engines: { node: ^18.18.0 || >=20.0.0 } engines: { node: ^18.18.0 || >=20.0.0 }
dev: true dev: true
/@typescript-eslint/types@7.7.0:
resolution:
{
integrity: sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==,
}
engines: { node: ^18.18.0 || >=20.0.0 }
dev: true
/@typescript-eslint/typescript-estree@7.6.0(typescript@5.4.5): /@typescript-eslint/typescript-estree@7.6.0(typescript@5.4.5):
resolution: resolution:
{ {
@ -1042,6 +1117,31 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/typescript-estree@7.7.0(typescript@5.4.5):
resolution:
{
integrity: sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==,
}
engines: { node: ^18.18.0 || >=20.0.0 }
peerDependencies:
typescript: "*"
peerDependenciesMeta:
typescript:
optional: true
dependencies:
"@typescript-eslint/types": 7.7.0
"@typescript-eslint/visitor-keys": 7.7.0
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.4
semver: 7.6.0
ts-api-utils: 1.3.0(typescript@5.4.5)
typescript: 5.4.5
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/utils@7.6.0(eslint@8.57.0)(typescript@5.4.5): /@typescript-eslint/utils@7.6.0(eslint@8.57.0)(typescript@5.4.5):
resolution: resolution:
{ {
@ -1075,6 +1175,17 @@ packages:
eslint-visitor-keys: 3.4.3 eslint-visitor-keys: 3.4.3
dev: true dev: true
/@typescript-eslint/visitor-keys@7.7.0:
resolution:
{
integrity: sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==,
}
engines: { node: ^18.18.0 || >=20.0.0 }
dependencies:
"@typescript-eslint/types": 7.7.0
eslint-visitor-keys: 3.4.3
dev: true
/@ungap/structured-clone@1.2.0: /@ungap/structured-clone@1.2.0:
resolution: resolution:
{ {
@ -1888,7 +1999,7 @@ packages:
- supports-color - supports-color
dev: true dev: true
/eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.6.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.7.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
resolution: resolution:
{ {
integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==, integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==,
@ -1901,8 +2012,8 @@ packages:
debug: 4.3.4 debug: 4.3.4
enhanced-resolve: 5.16.0 enhanced-resolve: 5.16.0
eslint: 8.57.0 eslint: 8.57.0
eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.6.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.6.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
fast-glob: 3.3.2 fast-glob: 3.3.2
get-tsconfig: 4.7.3 get-tsconfig: 4.7.3
is-core-module: 2.13.1 is-core-module: 2.13.1
@ -1942,7 +2053,40 @@ packages:
debug: 3.2.7 debug: 3.2.7
eslint: 8.57.0 eslint: 8.57.0
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.6.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.7.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
transitivePeerDependencies:
- supports-color
dev: true
/eslint-module-utils@2.8.1(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
resolution:
{
integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==,
}
engines: { node: ">=4" }
peerDependencies:
"@typescript-eslint/parser": "*"
eslint: "*"
eslint-import-resolver-node: "*"
eslint-import-resolver-typescript: "*"
eslint-import-resolver-webpack: "*"
peerDependenciesMeta:
"@typescript-eslint/parser":
optional: true
eslint:
optional: true
eslint-import-resolver-node:
optional: true
eslint-import-resolver-typescript:
optional: true
eslint-import-resolver-webpack:
optional: true
dependencies:
"@typescript-eslint/parser": 7.7.0(eslint@8.57.0)(typescript@5.4.5)
debug: 3.2.7
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.7.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -2072,6 +2216,44 @@ packages:
- supports-color - supports-color
dev: true dev: true
/eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
resolution:
{
integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==,
}
engines: { node: ">=4" }
peerDependencies:
"@typescript-eslint/parser": "*"
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
peerDependenciesMeta:
"@typescript-eslint/parser":
optional: true
dependencies:
"@typescript-eslint/parser": 7.7.0(eslint@8.57.0)(typescript@5.4.5)
array-includes: 3.1.8
array.prototype.findlastindex: 1.2.5
array.prototype.flat: 1.3.2
array.prototype.flatmap: 1.3.2
debug: 3.2.7
doctrine: 2.1.0
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
hasown: 2.0.2
is-core-module: 2.13.1
is-glob: 4.0.3
minimatch: 3.1.2
object.fromentries: 2.0.8
object.groupby: 1.0.3
object.values: 1.2.0
semver: 6.3.1
tsconfig-paths: 3.15.0
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
dev: true
/eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0):
resolution: resolution:
{ {
@ -4353,10 +4535,10 @@ packages:
engines: { node: ">=10" } engines: { node: ">=10" }
dev: true dev: true
github.com/DeterminateSystems/detsys-ts/3a315cdffd83d4b229d4fb16548d22a3756baf28: github.com/DeterminateSystems/detsys-ts/1b12595783709c71515245d26437934a9f336598:
resolution: resolution:
{ {
tarball: https://codeload.github.com/DeterminateSystems/detsys-ts/tar.gz/3a315cdffd83d4b229d4fb16548d22a3756baf28, tarball: https://codeload.github.com/DeterminateSystems/detsys-ts/tar.gz/1b12595783709c71515245d26437934a9f336598,
} }
name: detsys-ts name: detsys-ts
version: 1.0.0 version: 1.0.0

View file

@ -305,6 +305,7 @@ const idslib = new IdsToolbox({
name: "magic-nix-cache", name: "magic-nix-cache",
fetchStyle: "gh-env-style", fetchStyle: "gh-env-style",
idsProjectName: "magic-nix-cache-closure", idsProjectName: "magic-nix-cache-closure",
requireNix: "warn",
}); });
idslib.onMain(async () => { idslib.onMain(async () => {