Author SHA1 Message Date
Philipp cfb97819ae refactor: migrate to screeps-api v2 and update actions to node 22
Test / Run Tests (push) Failing after 1s
Recompile dist/ on Renovate PR / recompile (pull_request) Failing after 0s
Test / Run Tests (pull_request) Failing after 0s
Philipp/Global-Workflows: Pre-commit Lint (Scoped) / pre-commit (pull_request) Failing after 1s
2026-09-04 23:56:04 +02:00
Renovate d644b19b47 fix(deps): update dependency screeps-api to v2
renovate/stability-days Updates have met minimum release age requirement
Test / Run Tests (push) Failing after 0s
Recompile dist/ on Renovate PR / recompile (pull_request) Failing after 0s
Test / Run Tests (pull_request) Failing after 0s
Philipp/Global-Workflows: Pre-commit Lint (Scoped) / pre-commit (pull_request) Failing after 0s
2026-09-04 21:24:57 +00:00
10 changed files with 224 additions and 262 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with: with:
node-version: '24' node-version: '22'
cache: pnpm cache: pnpm
- run: pnpm install --frozen-lockfile - run: pnpm install --frozen-lockfile
shell: bash shell: bash
+1
View File
@@ -34,6 +34,7 @@ repos:
hooks: hooks:
- id: check-renovate - id: check-renovate
- id: check-github-actions - id: check-github-actions
exclude: ^action\.yaml$
- id: check-github-workflows - id: check-github-workflows
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
+18 -8
View File
@@ -24,16 +24,23 @@ vi.mock("../monitor.js", () => ({
vi.mock("screeps-api", () => { vi.mock("screeps-api", () => {
const mockApi = { const mockApi = {
auth: vi.fn().mockResolvedValue(), auth: vi.fn().mockResolvedValue(),
authSignin: vi.fn().mockResolvedValue({ ok: 1, token: "test_token" }),
userCodeGet: vi
.fn()
.mockResolvedValue({ ok: 1, modules: { main: "old_code" } }),
userCodeSet: vi.fn().mockResolvedValue({ ok: 1 }),
code: { code: {
get: vi.fn().mockResolvedValue({ ok: 1, modules: { main: "old_code" } }), get: vi.fn().mockResolvedValue({ ok: 1, modules: { main: "old_code" } }),
set: vi.fn().mockResolvedValue({ ok: 1 }), set: vi.fn().mockResolvedValue({ ok: 1 }),
}, },
}; };
// Use a regular function so it can be called with `new` // Use a regular function so it can be called with `new`
return { const MockClient = vi.fn(function () {
ScreepsAPI: vi.fn(function () {
return mockApi; return mockApi;
}), });
return {
ScreepsHttpClient: MockClient,
ScreepsAPI: MockClient,
}; };
}); });
@@ -48,7 +55,7 @@ import {
applyOnAction, applyOnAction,
postCode, postCode,
} from "../index.js"; } from "../index.js";
import { ScreepsAPI } from "screeps-api"; import { ScreepsHttpClient } from "screeps-api";
import fs from "fs"; import fs from "fs";
import path from "path"; import path from "path";
import os from "os"; import os from "os";
@@ -330,14 +337,17 @@ describe("postCode — monitor wiring", () => {
await postCode(); await postCode();
// Verify rollback was performed // Verify rollback was performed
const mockApiInstance = new ScreepsAPI(); const mockApiInstance = new ScreepsHttpClient();
// `code.set` should be called twice: // `userCodeSet` should be called twice:
// 1st time: uploading the new files // 1st time: uploading the new files
// 2nd time: rolling back to oldCode // 2nd time: rolling back to oldCode
expect(mockApiInstance.code.set).toHaveBeenCalledTimes(2); expect(mockApiInstance.userCodeSet).toHaveBeenCalledTimes(2);
expect(mockApiInstance.code.set).toHaveBeenNthCalledWith(2, "default", { expect(mockApiInstance.userCodeSet).toHaveBeenNthCalledWith(2, {
branch: "default",
modules: {
main: "old_code", main: "old_code",
},
}); });
// Verify it called core.setFailed due to traceback // Verify it called core.setFailed due to traceback
+12 -4
View File
@@ -382,13 +382,21 @@ function buildMockApi({
disconnect: vi.fn(), disconnect: vi.fn(),
}; };
const api = { const getTime = vi.fn().mockImplementation(() => {
opts: { hostname },
time: vi.fn().mockImplementation(() => {
const t = ticks[Math.min(tickIndex, ticks.length - 1)]; const t = ticks[Math.min(tickIndex, ticks.length - 1)];
tickIndex++; tickIndex++;
return Promise.resolve({ time: t }); return Promise.resolve({ time: t });
}), });
const api = {
opts: { hostname },
time: getTime,
get gameTime() {
return this.time;
},
set gameTime(fn) {
this.time = fn;
},
socket, socket,
// Expose so tests can fire console events // Expose so tests can fire console events
_fireConsole: (eventData) => { _fireConsole: (eventData) => {
+1 -1
View File
@@ -79,5 +79,5 @@ outputs:
saw_warning_log: saw_warning_log:
description: true if console.warn output was detected during monitoring. description: true if console.warn output was detected during monitoring.
runs: runs:
using: node20 using: node22
main: dist/index.js main: dist/index.js
+7 -7
View File
File diff suppressed because one or more lines are too long
+16 -4
View File
@@ -1,4 +1,4 @@
import { ScreepsAPI } from "screeps-api"; import { ScreepsHttpClient } from "screeps-api";
import * as core from "@actions/core"; import * as core from "@actions/core";
import fs from "fs"; import fs from "fs";
import { glob } from "glob"; import { glob } from "glob";
@@ -180,12 +180,16 @@ export async function postCode() {
core.error(errorMessage); core.error(errorMessage);
return; return;
} }
let api = new ScreepsAPI(login_arguments); let api = new ScreepsHttpClient(login_arguments);
if (!token) { if (!token) {
core.info(`Logging in as user ${username}`); core.info(`Logging in as user ${username}`);
try { try {
if (typeof api.authSignin === "function") {
await api.authSignin(username, password);
} else {
await api.auth(username, password, login_arguments); await api.auth(username, password, login_arguments);
}
} catch (err) { } catch (err) {
core.error(`Authentication error: ${err}`); core.error(`Authentication error: ${err}`);
throw err; throw err;
@@ -205,7 +209,9 @@ export async function postCode() {
`Downloading existing code from branch ${branch} for potential rollback...`, `Downloading existing code from branch ${branch} for potential rollback...`,
); );
try { try {
const getResponse = await api.code.get(branch); const getResponse = await (api.userCodeGet
? api.userCodeGet(branch)
: api.code.get(branch));
if (getResponse && getResponse.ok && getResponse.modules) { if (getResponse && getResponse.ok && getResponse.modules) {
oldCode = getResponse.modules; oldCode = getResponse.modules;
core.info( core.info(
@@ -226,7 +232,9 @@ export async function postCode() {
} }
try { try {
const response = await api.code.set(branch, files_to_push); const response = await (api.userCodeSet
? api.userCodeSet({ branch, modules: files_to_push })
: api.code.set(branch, files_to_push));
core.info(JSON.stringify(response, null, 2)); core.info(JSON.stringify(response, null, 2));
core.info(`Code set successfully to ${branch}`); core.info(`Code set successfully to ${branch}`);
} catch (err) { } catch (err) {
@@ -279,7 +287,11 @@ export async function postCode() {
"Action failed based on monitor configuration. Rolling back to previous code...", "Action failed based on monitor configuration. Rolling back to previous code...",
); );
try { try {
if (typeof api.userCodeSet === "function") {
await api.userCodeSet({ branch, modules: oldCode });
} else {
await api.code.set(branch, oldCode); await api.code.set(branch, oldCode);
}
core.info( core.info(
`Successfully rolled back to previous code on branch ${branch}.`, `Successfully rolled back to previous code on branch ${branch}.`,
); );
+8 -4
View File
@@ -250,7 +250,7 @@ function sleep(ms) {
* Calls `onProgress(elapsed, targetTicks)` on every poll so the caller can * Calls `onProgress(elapsed, targetTicks)` on every poll so the caller can
* log progress at whatever cadence it chooses. * log progress at whatever cadence it chooses.
* *
* @param {import('screeps-api').ScreepsAPI} api * @param {import('screeps-api').ScreepsHttpClient} api
* @param {number} startTick - Tick number recorded before monitoring started * @param {number} startTick - Tick number recorded before monitoring started
* @param {number} targetTicks - Stop when (currentTick - startTick) >= this * @param {number} targetTicks - Stop when (currentTick - startTick) >= this
* @param {string|undefined} shard - "shard0" for official, undefined for private * @param {string|undefined} shard - "shard0" for official, undefined for private
@@ -270,7 +270,9 @@ export async function pollUntilDone(
let elapsed = 0; let elapsed = 0;
while (elapsed < targetTicks && !shouldStop()) { while (elapsed < targetTicks && !shouldStop()) {
await sleep(intervalMs); await sleep(intervalMs);
const { time } = await api.time(shard); const { time } = await (typeof api.gameTime === "function"
? api.gameTime(shard)
: api.time(shard));
elapsed = time - startTick; elapsed = time - startTick;
onProgress(elapsed, targetTicks); onProgress(elapsed, targetTicks);
} }
@@ -309,7 +311,7 @@ export async function pollUntilDone(
* 6. If logToFile=true: write buffered stdout to a temp file and upload artifact. * 6. If logToFile=true: write buffered stdout to a temp file and upload artifact.
* 7. Return MonitorResult. * 7. Return MonitorResult.
* *
* @param {import('screeps-api').ScreepsAPI} api * @param {import('screeps-api').ScreepsHttpClient} api
* @param {MonitorOptions} opts * @param {MonitorOptions} opts
* @returns {Promise<MonitorResult>} * @returns {Promise<MonitorResult>}
*/ */
@@ -337,7 +339,9 @@ export async function monitorConsole(api, opts) {
let lastProgressTick = 0; let lastProgressTick = 0;
// Step 1: record starting tick // Step 1: record starting tick
const { time: startTick } = await api.time(shard); const { time: startTick } = await (typeof api.gameTime === "function"
? api.gameTime(shard)
: api.time(shard));
// Step 2: connect socket + subscribe // Step 2: connect socket + subscribe
await api.socket.connect(); await api.socket.connect();
+1 -1
View File
@@ -14,7 +14,7 @@
"@actions/artifact": "^1.1.2", "@actions/artifact": "^1.1.2",
"@actions/core": "^3.0.0", "@actions/core": "^3.0.0",
"glob": "^13.0.0", "glob": "^13.0.0",
"screeps-api": "^1.7.2" "screeps-api": "^2.0.0"
}, },
"devDependencies": { "devDependencies": {
"@vercel/ncc": "^0.44.1", "@vercel/ncc": "^0.44.1",
+155 -228
View File
@@ -18,8 +18,8 @@ importers:
specifier: ^13.0.0 specifier: ^13.0.0
version: 13.0.6 version: 13.0.6
screeps-api: screeps-api:
specifier: ^1.7.2 specifier: ^2.0.0
version: 1.16.1(supports-color@7.2.0) version: 2.1.0(supports-color@7.2.0)
devDependencies: devDependencies:
'@vercel/ncc': '@vercel/ncc':
specifier: ^0.44.1 specifier: ^0.44.1
@@ -29,7 +29,7 @@ importers:
version: 4.1.11(vitest@4.1.11) version: 4.1.11(vitest@4.1.11)
vitest: vitest:
specifier: ^4.1.11 specifier: ^4.1.11
version: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2) version: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.1(yaml@2.9.0))
packages: packages:
@@ -89,107 +89,101 @@ packages:
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'} engines: {node: '>=6.0.0'}
'@jridgewell/sourcemap-codec@1.6.0': '@jridgewell/sourcemap-codec@1.5.5':
resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==} resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
'@jridgewell/trace-mapping@0.3.31': '@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
'@oxc-project/types@0.148.0': '@oxc-project/types@0.143.0':
resolution: {integrity: sha512-Nm4s/jB+4FpFsPhWGEC4h7rzksesmtnMXomo6rCMcg/b8zLQuOziRgkCS1fxDCXOlJB/6Q8oABOZ/OP6RIPj9A==} resolution: {integrity: sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==}
'@rolldown/binding-android-arm-eabi@1.2.7': '@rolldown/binding-android-arm64@1.2.3':
resolution: {integrity: sha512-EypzgnYCwyVY4NDHKzGmNJT5b+XaQEBniHxsMdeIQLB/tcCzZnhqrzHpZFbX9iaxx+5RiB8caATBtfvZP7zVxQ==} resolution: {integrity: sha512-zrJtHDcaZJ1Fp7xf4hNl+7seH9Cn/N5TwLYkhgXREtBwAd/jaqW3uqeHxpDugJLVICWg4eW44kOQEGJ1r6jCGw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [android]
'@rolldown/binding-android-arm64@1.2.7':
resolution: {integrity: sha512-l17HE9EweWaqJZhuUuNBN/FzM62xw+DECVnJyvMsxn8vJFAGLy5QfLDoYAcronkAN8VxKZHezDpulHDPx95vFw==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
'@rolldown/binding-darwin-arm64@1.2.7': '@rolldown/binding-darwin-arm64@1.2.3':
resolution: {integrity: sha512-8ED8ELFvHXc6OCETIn4gXObPiaR6bckM/ipXtbzlPVDRMBfEGjCKgO90F9YtfdpDatVx/ZQw7aZ1vUMf/+T3Mw==} resolution: {integrity: sha512-ieIiibVCp0tX7TLu2cafoNPv8wJyYi01ekXpbf8q2j7F4rGAhhXb/eQh7ge9DRBY78GwmRQtvjZDux7EDbA8kA==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@rolldown/binding-darwin-x64@1.2.7': '@rolldown/binding-darwin-x64@1.2.3':
resolution: {integrity: sha512-/WPripjtiAIZ2tWY7ddijORT0Ujg87wxWW/qcoFVCKAWVDPhtY0xr7Dj0M3GyNGz60jGwTElhro/mkF9dT7dDQ==} resolution: {integrity: sha512-Zh9tCon19eDXJoihx0rqKhMUlMYqzwj3aPsSuHmI4RWZh62dWUL+DJN4C5YQya5TcQBJU/Fe8+rY0jhXTQITqA==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@rolldown/binding-freebsd-x64@1.2.7': '@rolldown/binding-freebsd-x64@1.2.3':
resolution: {integrity: sha512-14DI4NcqpvbICxSnGLx3PmtDaWqRP/KGSGb6C+JLLVPeZRl6dKdHba3pGsqT3vpdTqhEYIPG0MMQ8c0xYqoJxA==} resolution: {integrity: sha512-nGbJWewA1wrXXZiQhjAT5rhibGfns5ZNkDVqxsO6zJ3f3YvpoDNNmGMSbbhLuXKjNScaBJVOAboztAWVespQMg==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
'@rolldown/binding-linux-arm-gnueabihf@1.2.7': '@rolldown/binding-linux-arm-gnueabihf@1.2.3':
resolution: {integrity: sha512-bxrWIRvHWQvbJwi+VIie/kDJmQxcNE6xxWwZdqF/ExVAigtHkv54WTLQPb+QsZdnFy18fg7JPfWGL0RH6vwIlQ==} resolution: {integrity: sha512-QNniJr5Kml0kDEB98jiDOJjXNroxIIi0IXIbdYzY26Xt1pVbeP62+KnoIZLwirOymX/0jDk/2gI/bNUv7A7OIw==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@rolldown/binding-linux-arm64-gnu@1.2.7': '@rolldown/binding-linux-arm64-gnu@1.2.3':
resolution: {integrity: sha512-toOY2BChBZyuxU7OYX6Tn389di4IzAqPTycVcci0O7FSfBqzRB3RZn+K5Is6ANf4tmgRd/K1yZTsNTXbkXsnLg==} resolution: {integrity: sha512-TkqEAcmmvH3I/q4114NB4RVt6241Dao48pF45uLcFGrwAaIn0iITgTAKP/dLjbN0R4buJjGb91+UHSoFmpgIWw==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rolldown/binding-linux-arm64-musl@1.2.7': '@rolldown/binding-linux-arm64-musl@1.2.3':
resolution: {integrity: sha512-lAIXTH/aiLRLxsTgQvfhjo4K1ydWIp00+V0voOr9beb/9ZmkUFrSIb03dXNFRgMNvkE6oGsF10ioQ6UsI+vS5Q==} resolution: {integrity: sha512-NHqjnxpsndf4MPymxteFAWHHfkTL8HjWh1KB7z23ofZ6QO2euONuxDXjat69dKZRALnGypg8k8SsK8vZJoXv1Q==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rolldown/binding-linux-ppc64-gnu@1.2.7': '@rolldown/binding-linux-ppc64-gnu@1.2.3':
resolution: {integrity: sha512-kdnwS28Pkenp/mZMRwjXXXwxQ7pIsm+bF919LUK93BOyhcLsrVKdP2p9fxpiPNPAbNuch8ypQt0pm2P2LYCAGg==} resolution: {integrity: sha512-6tbrbwfz5GB9DQ4Jwo6hy9v+vR31xZlvzZ6n5Xut6Hhx5PvrA9q/HsK8KMaYQp063iqZGXwNvZtYNLD7EM/x0w==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rolldown/binding-linux-s390x-gnu@1.2.7': '@rolldown/binding-linux-s390x-gnu@1.2.3':
resolution: {integrity: sha512-516OdsyLdr5E65paF3yBF55t8mfm9+gmtCsK3xI7XKXIT7EfRlHhxL8K/NR6Hu8BWSgF5+1w74lTL0+nxcc8Qw==} resolution: {integrity: sha512-oyuXxXmoZHjXC917IAPFAAv4wWAa0cM9afk8nx1+9/jNNOX1uPf8yDA6p7G0RypOfw/X0PQt5IfoquY1um+zSg==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rolldown/binding-linux-x64-gnu@1.2.7': '@rolldown/binding-linux-x64-gnu@1.2.3':
resolution: {integrity: sha512-r8/z8n7GFaYRln3xmP1Cxy0HH/HLM0uBUPkEuSVEfKGDA89M0FsZRZJRSwe/tJjRx+fpH/gjorfhB8tmEbSFLA==} resolution: {integrity: sha512-TytMwF2KVGqP2tgd0I1OY0PAv78dZRAYcF5ssDzjM34SUXCED3uXvSd5+lHoC0bTD6eEdFz7LdQNCO1y0oVk9w==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rolldown/binding-linux-x64-musl@1.2.7': '@rolldown/binding-linux-x64-musl@1.2.3':
resolution: {integrity: sha512-pAsE8iiDxUg1xBqdhrTfg45AVDVpirjz00sblEYClGNNcMnDb+e8beQgqIAw6LvauX/APvgxUnwrgun/YYGBhw==} resolution: {integrity: sha512-/E9m3qstrJFVPoULV25mVQblSNExY2+kBsYe4sy0Tn0yOOgJ8wZbZt3KnRbF/XeU2Gl1STKUQnDNTqhIE5MD4A==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rolldown/binding-openharmony-arm64@1.2.7': '@rolldown/binding-openharmony-arm64@1.2.3':
resolution: {integrity: sha512-lTcIYmmnQQA8Or/2DatS6oSqcdLHvendjS+zLu+FwgToynWMRSmQdpM65fTANJgIS4mjbMOo5KT2lnT9SAb96w==} resolution: {integrity: sha512-Kr0OcsoQI816i6HOl3vFHpd1K0eZyh76zgfj4c1nTyaTsd5r2Mj1lwM4R90y/qaCfmTn9eHy0SKwi98eitRxug==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64] cpu: [arm64]
os: [openharmony] os: [openharmony]
'@rolldown/binding-win32-arm64-msvc@1.2.7': '@rolldown/binding-win32-arm64-msvc@1.2.3':
resolution: {integrity: sha512-e3Gu3WxbNk/UqQhxqU7YIYO+9ZBvWNz3U+h/qRFosscMFzdRPbXYSaSWgSnklv2fz1TgzBTcti2z35c/7irsHw==} resolution: {integrity: sha512-hOtMwTqnME+/gJcH/PCZ0wn0zPUjiWOgkHpxbSJpfGKMezHltx1S7/k1SitzVa7Ww2cqrDDaFbZEhcJZO8o+Jw==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@rolldown/binding-win32-x64-msvc@1.2.7': '@rolldown/binding-win32-x64-msvc@1.2.3':
resolution: {integrity: sha512-W/jg5qoRSqjsEv0+dZi4e687mcHqmVuU0P4fK6qS/xjetW2Gmc1W8j//z5nAeNcC8Ttm0hV46IjcYeuVwYhuiw==} resolution: {integrity: sha512-ekcqMMkI2PlhYnfzQnB/cEdYUVVJViWvoUyLrbzgDoi3Snfc1mVBwdnc306ufA5ejy8JSPjT2RlW1nQSjW7efg==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@@ -251,8 +245,9 @@ packages:
'@vitest/utils@4.1.11': '@vitest/utils@4.1.11':
resolution: {integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==} resolution: {integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==}
argparse@1.0.10: agent-base@6.0.2:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
engines: {node: '>= 6.0.0'}
assertion-error@2.0.1: assertion-error@2.0.1:
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
@@ -264,19 +259,13 @@ packages:
asynckit@0.4.0: asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
axios@0.28.1: axios@1.20.0:
resolution: {integrity: sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ==} resolution: {integrity: sha512-r8aOh8j9cGKpgQAqpzrUHnSIc6a59Y3Xf/cv8sy1DrHCkZHzQGEuoq1tARk6qSyDdtQGSDgpb9kFlruzPvrgwg==}
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
balanced-match@4.0.4: balanced-match@4.0.4:
resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
engines: {node: 18 || 20 || >=22} engines: {node: 18 || 20 || >=22}
brace-expansion@1.1.18:
resolution: {integrity: sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==}
brace-expansion@5.0.9: brace-expansion@5.0.9:
resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==}
engines: {node: 20 || >=22} engines: {node: 20 || >=22}
@@ -297,12 +286,9 @@ packages:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
commander@7.2.0: commander@14.0.3:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
engines: {node: '>= 10'} engines: {node: '>=20'}
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
convert-source-map@2.0.0: convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
@@ -336,8 +322,8 @@ packages:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
es-module-lexer@2.3.2: es-module-lexer@2.3.1:
resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} resolution: {integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==}
es-object-atoms@1.1.2: es-object-atoms@1.1.2:
resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==}
@@ -376,9 +362,6 @@ packages:
resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==}
engines: {node: '>= 6'} engines: {node: '>= 6'}
fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
fsevents@2.3.3: fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -399,10 +382,6 @@ packages:
resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==}
engines: {node: 18 || 20 || >=22} engines: {node: 18 || 20 || >=22}
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
gopd@1.2.0: gopd@1.2.0:
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@@ -426,12 +405,9 @@ packages:
html-escaper@2.0.2: html-escaper@2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
inflight@1.0.6: https-proxy-agent@5.0.1:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. engines: {node: '>= 6'}
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
istanbul-lib-coverage@3.2.2: istanbul-lib-coverage@3.2.2:
resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
@@ -552,9 +528,6 @@ packages:
resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==}
engines: {node: 18 || 20 || >=22} engines: {node: 18 || 20 || >=22}
minimatch@3.1.5:
resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
minipass@7.1.3: minipass@7.1.3:
resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==}
engines: {node: '>=16 || 14 >=14.17'} engines: {node: '>=16 || 14 >=14.17'}
@@ -575,13 +548,6 @@ packages:
resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==}
engines: {node: '>=12.20.0'} engines: {node: '>=12.20.0'}
once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
path-is-absolute@1.0.1:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'}
path-scurry@2.0.2: path-scurry@2.0.2:
resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==}
engines: {node: 18 || 20 || >=22} engines: {node: 18 || 20 || >=22}
@@ -592,24 +558,26 @@ packages:
picocolors@1.1.1: picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
picomatch@4.0.7: picomatch@4.0.5:
resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==}
engines: {node: '>=12'} engines: {node: '>=12'}
postcss@8.5.28: postcss@8.5.26:
resolution: {integrity: sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==} resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
proxy-from-env@1.1.0: proxy-from-env@2.1.0:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==}
engines: {node: '>=10'}
rolldown@1.2.7: rolldown@1.2.3:
resolution: {integrity: sha512-g0EtLvBjTUB7jhyV0S/TCup3v/XSVl45vUIGbOGU4QPiyjTenCe4mKuFvW9fEgYmS2Fo42AUssRmNuMziXdrig==} resolution: {integrity: sha512-rn9wpmxplLf7NLNyCk9FyWh3FM43DbY8jOzCdEPzH7uflhTftRbCEpqi6Ly2osgoU8OwObtmavMbWLaWy4LX7A==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true hasBin: true
screeps-api@1.16.1: screeps-api@2.1.0:
resolution: {integrity: sha512-VwgibYPCFXaRlNdFrC188s6juKdAbMIeLy6oRa030IRSUuIZFpe7m4NHzMxLC30qq3cZejdlOedXXthOnNkggA==} resolution: {integrity: sha512-6mweXGgmIhmXpqSGtRYI/sk+Sh3Ug1lElHQndA6bXV/ZmjUgBM5QSZoD0u83lazh2bNxbtLaigQ62yguxZ1Xdg==}
engines: {node: 22.x || 24.x}
hasBin: true hasBin: true
semver@7.8.5: semver@7.8.5:
@@ -624,9 +592,6 @@ packages:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
stackback@0.0.2: stackback@0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
@@ -640,8 +605,8 @@ packages:
tinybench@2.9.0: tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
tinyexec@1.3.1: tinyexec@1.3.0:
resolution: {integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==} resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
tinyglobby@0.2.17: tinyglobby@0.2.17:
@@ -671,17 +636,17 @@ packages:
resolution: {integrity: sha512-LIY910g9TI13YS95lrMFrs8Rm/u/irgHeTWoKCoteeJ04CUJ92eEfj0rVn+7VKMPBpUPiUoBKfhNyLI23EE/KA==} resolution: {integrity: sha512-LIY910g9TI13YS95lrMFrs8Rm/u/irgHeTWoKCoteeJ04CUJ92eEfj0rVn+7VKMPBpUPiUoBKfhNyLI23EE/KA==}
engines: {node: '>=18.17'} engines: {node: '>=18.17'}
utf-8-validate@5.0.10: utf-8-validate@6.0.6:
resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} resolution: {integrity: sha512-q3l3P9UtEEiAHcsgsqTgf9PPjctrDWoIXW3NpOHFdRDbLvu4DLIcxHangJ4RLrWkBcKjmcs/6NkerI8T/rE4LA==}
engines: {node: '>=6.14.2'} engines: {node: '>=6.14.2'}
vite@8.2.2: vite@8.2.1:
resolution: {integrity: sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==} resolution: {integrity: sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
'@types/node': ^20.19.0 || >=22.12.0 '@types/node': ^20.19.0 || >=22.12.0
'@vitejs/devtools': ^0.4.0 || ^0.5.0 '@vitejs/devtools': ^0.4.0
esbuild: ^0.27.0 || ^0.28.0 esbuild: ^0.27.0 || ^0.28.0
jiti: '>=1.21.0' jiti: '>=1.21.0'
less: ^4.0.0 less: ^4.0.0
@@ -764,23 +729,21 @@ packages:
engines: {node: '>=8'} engines: {node: '>=8'}
hasBin: true hasBin: true
wrappy@1.0.2: ws@8.21.3:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==}
engines: {node: '>=10.0.0'}
ws@7.5.13:
resolution: {integrity: sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA==}
engines: {node: '>=8.3.0'}
peerDependencies: peerDependencies:
bufferutil: ^4.0.1 bufferutil: ^4.0.1
utf-8-validate: ^5.0.2 utf-8-validate: '>=5.0.2'
peerDependenciesMeta: peerDependenciesMeta:
bufferutil: bufferutil:
optional: true optional: true
utf-8-validate: utf-8-validate:
optional: true optional: true
yamljs@0.3.0: yaml@2.9.0:
resolution: {integrity: sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==} resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==}
engines: {node: '>= 14.6'}
hasBin: true hasBin: true
snapshots: snapshots:
@@ -843,58 +806,55 @@ snapshots:
'@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/sourcemap-codec@1.6.0': {} '@jridgewell/sourcemap-codec@1.5.5': {}
'@jridgewell/trace-mapping@0.3.31': '@jridgewell/trace-mapping@0.3.31':
dependencies: dependencies:
'@jridgewell/resolve-uri': 3.1.2 '@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.6.0 '@jridgewell/sourcemap-codec': 1.5.5
'@oxc-project/types@0.148.0': {} '@oxc-project/types@0.143.0': {}
'@rolldown/binding-android-arm-eabi@1.2.7': '@rolldown/binding-android-arm64@1.2.3':
optional: true optional: true
'@rolldown/binding-android-arm64@1.2.7': '@rolldown/binding-darwin-arm64@1.2.3':
optional: true optional: true
'@rolldown/binding-darwin-arm64@1.2.7': '@rolldown/binding-darwin-x64@1.2.3':
optional: true optional: true
'@rolldown/binding-darwin-x64@1.2.7': '@rolldown/binding-freebsd-x64@1.2.3':
optional: true optional: true
'@rolldown/binding-freebsd-x64@1.2.7': '@rolldown/binding-linux-arm-gnueabihf@1.2.3':
optional: true optional: true
'@rolldown/binding-linux-arm-gnueabihf@1.2.7': '@rolldown/binding-linux-arm64-gnu@1.2.3':
optional: true optional: true
'@rolldown/binding-linux-arm64-gnu@1.2.7': '@rolldown/binding-linux-arm64-musl@1.2.3':
optional: true optional: true
'@rolldown/binding-linux-arm64-musl@1.2.7': '@rolldown/binding-linux-ppc64-gnu@1.2.3':
optional: true optional: true
'@rolldown/binding-linux-ppc64-gnu@1.2.7': '@rolldown/binding-linux-s390x-gnu@1.2.3':
optional: true optional: true
'@rolldown/binding-linux-s390x-gnu@1.2.7': '@rolldown/binding-linux-x64-gnu@1.2.3':
optional: true optional: true
'@rolldown/binding-linux-x64-gnu@1.2.7': '@rolldown/binding-linux-x64-musl@1.2.3':
optional: true optional: true
'@rolldown/binding-linux-x64-musl@1.2.7': '@rolldown/binding-openharmony-arm64@1.2.3':
optional: true optional: true
'@rolldown/binding-openharmony-arm64@1.2.7': '@rolldown/binding-win32-arm64-msvc@1.2.3':
optional: true optional: true
'@rolldown/binding-win32-arm64-msvc@1.2.7': '@rolldown/binding-win32-x64-msvc@1.2.3':
optional: true
'@rolldown/binding-win32-x64-msvc@1.2.7':
optional: true optional: true
'@rolldown/pluginutils@1.0.1': {} '@rolldown/pluginutils@1.0.1': {}
@@ -924,7 +884,7 @@ snapshots:
obug: 2.1.4 obug: 2.1.4
std-env: 4.2.0 std-env: 4.2.0
tinyrainbow: 3.1.1 tinyrainbow: 3.1.1
vitest: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2) vitest: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.1(yaml@2.9.0))
'@vitest/expect@4.1.11': '@vitest/expect@4.1.11':
dependencies: dependencies:
@@ -935,13 +895,13 @@ snapshots:
chai: 6.2.2 chai: 6.2.2
tinyrainbow: 3.1.1 tinyrainbow: 3.1.1
'@vitest/mocker@4.1.11(vite@8.2.2)': '@vitest/mocker@4.1.11(vite@8.2.1(yaml@2.9.0))':
dependencies: dependencies:
'@vitest/spy': 4.1.11 '@vitest/spy': 4.1.11
estree-walker: 3.0.3 estree-walker: 3.0.3
magic-string: 0.30.21 magic-string: 0.30.21
optionalDependencies: optionalDependencies:
vite: 8.2.2 vite: 8.2.1(yaml@2.9.0)
'@vitest/pretty-format@4.1.11': '@vitest/pretty-format@4.1.11':
dependencies: dependencies:
@@ -967,9 +927,11 @@ snapshots:
convert-source-map: 2.0.0 convert-source-map: 2.0.0
tinyrainbow: 3.1.1 tinyrainbow: 3.1.1
argparse@1.0.10: agent-base@6.0.2(supports-color@7.2.0):
dependencies: dependencies:
sprintf-js: 1.0.3 debug: 4.4.3(supports-color@7.2.0)
transitivePeerDependencies:
- supports-color
assertion-error@2.0.1: {} assertion-error@2.0.1: {}
@@ -981,23 +943,18 @@ snapshots:
asynckit@0.4.0: {} asynckit@0.4.0: {}
axios@0.28.1(debug@4.4.3(supports-color@7.2.0)): axios@1.20.0(debug@4.4.3(supports-color@7.2.0))(supports-color@7.2.0):
dependencies: dependencies:
follow-redirects: 1.16.0(debug@4.4.3(supports-color@7.2.0)) follow-redirects: 1.16.0(debug@4.4.3(supports-color@7.2.0))
form-data: 4.0.6 form-data: 4.0.6
proxy-from-env: 1.1.0 https-proxy-agent: 5.0.1(supports-color@7.2.0)
proxy-from-env: 2.1.0
transitivePeerDependencies: transitivePeerDependencies:
- debug - debug
- supports-color
balanced-match@1.0.2: {}
balanced-match@4.0.4: {} balanced-match@4.0.4: {}
brace-expansion@1.1.18:
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
brace-expansion@5.0.9: brace-expansion@5.0.9:
dependencies: dependencies:
balanced-match: 4.0.4 balanced-match: 4.0.4
@@ -1018,9 +975,7 @@ snapshots:
dependencies: dependencies:
delayed-stream: 1.0.0 delayed-stream: 1.0.0
commander@7.2.0: {} commander@14.0.3: {}
concat-map@0.0.1: {}
convert-source-map@2.0.0: {} convert-source-map@2.0.0: {}
@@ -1044,7 +999,7 @@ snapshots:
es-errors@1.3.0: {} es-errors@1.3.0: {}
es-module-lexer@2.3.2: {} es-module-lexer@2.3.1: {}
es-object-atoms@1.1.2: es-object-atoms@1.1.2:
dependencies: dependencies:
@@ -1063,9 +1018,9 @@ snapshots:
expect-type@1.4.0: {} expect-type@1.4.0: {}
fdir@6.5.0(picomatch@4.0.7): fdir@6.5.0(picomatch@4.0.5):
optionalDependencies: optionalDependencies:
picomatch: 4.0.7 picomatch: 4.0.5
follow-redirects@1.16.0(debug@4.4.3(supports-color@7.2.0)): follow-redirects@1.16.0(debug@4.4.3(supports-color@7.2.0)):
optionalDependencies: optionalDependencies:
@@ -1079,8 +1034,6 @@ snapshots:
hasown: 2.0.4 hasown: 2.0.4
mime-types: 2.1.35 mime-types: 2.1.35
fs.realpath@1.0.0: {}
fsevents@2.3.3: fsevents@2.3.3:
optional: true optional: true
@@ -1110,15 +1063,6 @@ snapshots:
minipass: 7.1.3 minipass: 7.1.3
path-scurry: 2.0.2 path-scurry: 2.0.2
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
minimatch: 3.1.5
once: 1.4.0
path-is-absolute: 1.0.1
gopd@1.2.0: {} gopd@1.2.0: {}
has-flag@4.0.0: {} has-flag@4.0.0: {}
@@ -1135,12 +1079,12 @@ snapshots:
html-escaper@2.0.2: {} html-escaper@2.0.2: {}
inflight@1.0.6: https-proxy-agent@5.0.1(supports-color@7.2.0):
dependencies: dependencies:
once: 1.4.0 agent-base: 6.0.2(supports-color@7.2.0)
wrappy: 1.0.2 debug: 4.4.3(supports-color@7.2.0)
transitivePeerDependencies:
inherits@2.0.4: {} - supports-color
istanbul-lib-coverage@3.2.2: {} istanbul-lib-coverage@3.2.2: {}
@@ -1210,7 +1154,7 @@ snapshots:
magic-string@0.30.21: magic-string@0.30.21:
dependencies: dependencies:
'@jridgewell/sourcemap-codec': 1.6.0 '@jridgewell/sourcemap-codec': 1.5.5
magicast@0.5.4: magicast@0.5.4:
dependencies: dependencies:
@@ -1234,10 +1178,6 @@ snapshots:
dependencies: dependencies:
brace-expansion: 5.0.9 brace-expansion: 5.0.9
minimatch@3.1.5:
dependencies:
brace-expansion: 1.1.18
minipass@7.1.3: {} minipass@7.1.3: {}
ms@2.1.3: {} ms@2.1.3: {}
@@ -1249,12 +1189,6 @@ snapshots:
obug@2.1.4: {} obug@2.1.4: {}
once@1.4.0:
dependencies:
wrappy: 1.0.2
path-is-absolute@1.0.1: {}
path-scurry@2.0.2: path-scurry@2.0.2:
dependencies: dependencies:
lru-cache: 11.5.2 lru-cache: 11.5.2
@@ -1264,47 +1198,46 @@ snapshots:
picocolors@1.1.1: {} picocolors@1.1.1: {}
picomatch@4.0.7: {} picomatch@4.0.5: {}
postcss@8.5.28: postcss@8.5.26:
dependencies: dependencies:
nanoid: 3.3.18 nanoid: 3.3.18
picocolors: 1.1.1 picocolors: 1.1.1
source-map-js: 1.2.1 source-map-js: 1.2.1
proxy-from-env@1.1.0: {} proxy-from-env@2.1.0: {}
rolldown@1.2.7: rolldown@1.2.3:
dependencies: dependencies:
'@oxc-project/types': 0.148.0 '@oxc-project/types': 0.143.0
'@rolldown/pluginutils': 1.0.1 '@rolldown/pluginutils': 1.0.1
optionalDependencies: optionalDependencies:
'@rolldown/binding-android-arm-eabi': 1.2.7 '@rolldown/binding-android-arm64': 1.2.3
'@rolldown/binding-android-arm64': 1.2.7 '@rolldown/binding-darwin-arm64': 1.2.3
'@rolldown/binding-darwin-arm64': 1.2.7 '@rolldown/binding-darwin-x64': 1.2.3
'@rolldown/binding-darwin-x64': 1.2.7 '@rolldown/binding-freebsd-x64': 1.2.3
'@rolldown/binding-freebsd-x64': 1.2.7 '@rolldown/binding-linux-arm-gnueabihf': 1.2.3
'@rolldown/binding-linux-arm-gnueabihf': 1.2.7 '@rolldown/binding-linux-arm64-gnu': 1.2.3
'@rolldown/binding-linux-arm64-gnu': 1.2.7 '@rolldown/binding-linux-arm64-musl': 1.2.3
'@rolldown/binding-linux-arm64-musl': 1.2.7 '@rolldown/binding-linux-ppc64-gnu': 1.2.3
'@rolldown/binding-linux-ppc64-gnu': 1.2.7 '@rolldown/binding-linux-s390x-gnu': 1.2.3
'@rolldown/binding-linux-s390x-gnu': 1.2.7 '@rolldown/binding-linux-x64-gnu': 1.2.3
'@rolldown/binding-linux-x64-gnu': 1.2.7 '@rolldown/binding-linux-x64-musl': 1.2.3
'@rolldown/binding-linux-x64-musl': 1.2.7 '@rolldown/binding-openharmony-arm64': 1.2.3
'@rolldown/binding-openharmony-arm64': 1.2.7 '@rolldown/binding-win32-arm64-msvc': 1.2.3
'@rolldown/binding-win32-arm64-msvc': 1.2.7 '@rolldown/binding-win32-x64-msvc': 1.2.3
'@rolldown/binding-win32-x64-msvc': 1.2.7
screeps-api@1.16.1(supports-color@7.2.0): screeps-api@2.1.0(supports-color@7.2.0):
dependencies: dependencies:
axios: 0.28.1(debug@4.4.3(supports-color@7.2.0)) axios: 1.20.0(debug@4.4.3(supports-color@7.2.0))(supports-color@7.2.0)
commander: 7.2.0 commander: 14.0.3
debug: 4.4.3(supports-color@7.2.0) debug: 4.4.3(supports-color@7.2.0)
ws: 7.5.13(bufferutil@4.1.0)(utf-8-validate@5.0.10) ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
yamljs: 0.3.0 yaml: 2.9.0
optionalDependencies: optionalDependencies:
bufferutil: 4.1.0 bufferutil: 4.1.0
utf-8-validate: 5.0.10 utf-8-validate: 6.0.6
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -1314,8 +1247,6 @@ snapshots:
source-map-js@1.2.1: {} source-map-js@1.2.1: {}
sprintf-js@1.0.3: {}
stackback@0.0.2: {} stackback@0.0.2: {}
std-env@4.2.0: {} std-env@4.2.0: {}
@@ -1326,12 +1257,12 @@ snapshots:
tinybench@2.9.0: {} tinybench@2.9.0: {}
tinyexec@1.3.1: {} tinyexec@1.3.0: {}
tinyglobby@0.2.17: tinyglobby@0.2.17:
dependencies: dependencies:
fdir: 6.5.0(picomatch@4.0.7) fdir: 6.5.0(picomatch@4.0.5)
picomatch: 4.0.7 picomatch: 4.0.5
tinyrainbow@3.1.1: {} tinyrainbow@3.1.1: {}
@@ -1349,42 +1280,43 @@ snapshots:
undici@6.28.0: {} undici@6.28.0: {}
utf-8-validate@5.0.10: utf-8-validate@6.0.6:
dependencies: dependencies:
node-gyp-build: 4.8.4 node-gyp-build: 4.8.4
optional: true optional: true
vite@8.2.2: vite@8.2.1(yaml@2.9.0):
dependencies: dependencies:
lightningcss: 1.33.0 lightningcss: 1.33.0
picomatch: 4.0.7 picomatch: 4.0.5
postcss: 8.5.28 postcss: 8.5.26
rolldown: 1.2.7 rolldown: 1.2.3
tinyglobby: 0.2.17 tinyglobby: 0.2.17
optionalDependencies: optionalDependencies:
fsevents: 2.3.3 fsevents: 2.3.3
yaml: 2.9.0
vitest@4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2): vitest@4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.1(yaml@2.9.0)):
dependencies: dependencies:
'@vitest/expect': 4.1.11 '@vitest/expect': 4.1.11
'@vitest/mocker': 4.1.11(vite@8.2.2) '@vitest/mocker': 4.1.11(vite@8.2.1(yaml@2.9.0))
'@vitest/pretty-format': 4.1.11 '@vitest/pretty-format': 4.1.11
'@vitest/runner': 4.1.11 '@vitest/runner': 4.1.11
'@vitest/snapshot': 4.1.11 '@vitest/snapshot': 4.1.11
'@vitest/spy': 4.1.11 '@vitest/spy': 4.1.11
'@vitest/utils': 4.1.11 '@vitest/utils': 4.1.11
es-module-lexer: 2.3.2 es-module-lexer: 2.3.1
expect-type: 1.4.0 expect-type: 1.4.0
magic-string: 0.30.21 magic-string: 0.30.21
obug: 2.1.4 obug: 2.1.4
pathe: 2.0.3 pathe: 2.0.3
picomatch: 4.0.7 picomatch: 4.0.5
std-env: 4.2.0 std-env: 4.2.0
tinybench: 2.9.0 tinybench: 2.9.0
tinyexec: 1.3.1 tinyexec: 1.3.0
tinyglobby: 0.2.17 tinyglobby: 0.2.17
tinyrainbow: 3.1.1 tinyrainbow: 3.1.1
vite: 8.2.2 vite: 8.2.1(yaml@2.9.0)
why-is-node-running: 2.3.0 why-is-node-running: 2.3.0
optionalDependencies: optionalDependencies:
'@vitest/coverage-v8': 4.1.11(vitest@4.1.11) '@vitest/coverage-v8': 4.1.11(vitest@4.1.11)
@@ -1396,14 +1328,9 @@ snapshots:
siginfo: 2.0.0 siginfo: 2.0.0
stackback: 0.0.2 stackback: 0.0.2
wrappy@1.0.2: {} ws@8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6):
ws@7.5.13(bufferutil@4.1.0)(utf-8-validate@5.0.10):
optionalDependencies: optionalDependencies:
bufferutil: 4.1.0 bufferutil: 4.1.0
utf-8-validate: 5.0.10 utf-8-validate: 6.0.6
yamljs@0.3.0: yaml@2.9.0: {}
dependencies:
argparse: 1.0.10
glob: 7.2.3