diff --git a/package.json b/package.json index c557c52..b1ec529 100644 --- a/package.json +++ b/package.json @@ -40,5 +40,8 @@ "bugs": { "url": "https://github.com/source-academy/plugins/issues" }, - "homepage": "https://github.com/source-academy/plugins#readme" + "homepage": "https://github.com/source-academy/plugins#readme", + "resolutions": { + "@sourceacademy/conductor": "^0.5.0" + } } diff --git a/src/common/remoteExecution/manifest.json b/src/common/remoteExecution/manifest.json new file mode 100644 index 0000000..e263f73 --- /dev/null +++ b/src/common/remoteExecution/manifest.json @@ -0,0 +1,3 @@ +{ + "type": "installable" +} diff --git a/src/common/remoteExecution/package.json b/src/common/remoteExecution/package.json new file mode 100644 index 0000000..e6abf59 --- /dev/null +++ b/src/common/remoteExecution/package.json @@ -0,0 +1,33 @@ +{ + "name": "@sourceacademy/common-remote-execution", + "version": "0.0.1", + "packageManager": "yarn@4.6.0", + "description": "Shared types/constants for the transport-only remote-execution runner plugin and its web-side counterpart", + "scripts": { + "build": "rollup -c", + "prepack": "yarn build" + }, + "license": "ISC", + "files": [ + "dist" + ], + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "devDependencies": { + "@rollup/plugin-node-resolve": "^16.0.3", + "@rollup/plugin-terser": "^1.0.0", + "@rollup/plugin-typescript": "^12.3.0", + "rollup": "^4.60.2", + "tslib": "^2.8.1", + "typescript": "^6.0.3", + "vitest": "^4.1.9" + } +} diff --git a/src/common/remoteExecution/rollup.config.mjs b/src/common/remoteExecution/rollup.config.mjs new file mode 100644 index 0000000..238a07c --- /dev/null +++ b/src/common/remoteExecution/rollup.config.mjs @@ -0,0 +1,21 @@ +import nodeResolve from "@rollup/plugin-node-resolve"; +import terser from "@rollup/plugin-terser"; +import typescript from "@rollup/plugin-typescript"; + +/** + * @type {import('rollup').RollupOptions} + */ +export default { + input: "src/index.ts", + output: [ + { + file: "dist/index.cjs", + format: "cjs", + }, + { + file: "dist/index.mjs", + format: "esm", + }, + ], + plugins: [nodeResolve(), typescript(), terser()], +}; diff --git a/src/common/remoteExecution/src/index.ts b/src/common/remoteExecution/src/index.ts new file mode 100644 index 0000000..dc87863 --- /dev/null +++ b/src/common/remoteExecution/src/index.ts @@ -0,0 +1,18 @@ +export const WEB_ID = "__web_remote_execution"; +export const RUNNER_ID = "__runner_remote_execution"; + +export const CHANNEL_ID = "remote-execution"; + +export const MESSAGE_TYPE_CONNECTION_STATUS = "connectionStatus"; + +/** + * Mirrors the existing `DeviceConnection['status']` union from the frontend's + * (non-conductor) remoteExecution feature, so a web-side consumer can reuse + * the same state machine it already has for the legacy connection flow. + */ +export type ConnectionStatus = "CONNECTING" | "CONNECTED" | "FAILED"; + +export type ConnectionStatusMessage = { + type: typeof MESSAGE_TYPE_CONNECTION_STATUS; + status: ConnectionStatus; +}; diff --git a/src/common/remoteExecution/tsconfig.json b/src/common/remoteExecution/tsconfig.json new file mode 100644 index 0000000..c7482f9 --- /dev/null +++ b/src/common/remoteExecution/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.json", + "exclude": ["./dist"], + "include": ["./src"], + "compilerOptions": { + "declaration": true, + "outDir": "./dist", + "rootDir": "./src" + } +} diff --git a/src/common/test/tsconfig.json b/src/common/test/tsconfig.json index c7482f9..2c2e7cc 100644 --- a/src/common/test/tsconfig.json +++ b/src/common/test/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "exclude": ["./dist"], - "include": ["./src"], + "include": ["./src", "../../runner/test/src/__tests__/runner.test.ts"], "compilerOptions": { "declaration": true, "outDir": "./dist", diff --git a/src/runner/remoteExecution/index.ts b/src/runner/remoteExecution/index.ts index b57bc7e..8fad08d 100644 --- a/src/runner/remoteExecution/index.ts +++ b/src/runner/remoteExecution/index.ts @@ -1,24 +1,2 @@ -import { CHANNEL_ID, RUNNER_ID, type PySlangMessage } from "@sourceacademy/common-test"; -import type { IPlugin, IChannel, IConduit } from "@sourceacademy/conductor/conduit"; -import { EV3Engine } from "py-slang/src/engines/ev3/EV3Engine"; - -export class remoteRunnerPlugin implements IPlugin { - readonly id: string = RUNNER_ID; - static readonly channelAttach = [CHANNEL_ID]; - private readonly __channel: IChannel; - private readonly engine: EV3Engine; - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - constructor(_conduit: IConduit, [channel]: IChannel[]) { - this.__channel = channel; - this.engine = new EV3Engine(); - - this.__channel.subscribe(async message => { - if (message.type === "run") { - const result = await this.engine.execute(message.code); - console.log("Engine response:", result); - this.__channel.send({ type: "result", output: JSON.stringify(result) }); - } - }); - } -} +export { RemoteExecutionPlugin } from "./src"; +export type { ConnectionStatus, ConnectionStatusMessage } from "./src"; diff --git a/src/runner/remoteExecution/package.json b/src/runner/remoteExecution/package.json index 672e8ae..cc6e0ba 100644 --- a/src/runner/remoteExecution/package.json +++ b/src/runner/remoteExecution/package.json @@ -22,20 +22,22 @@ "build": "rollup -c", "prepack": "yarn build" }, - "dependencies": { - "py-slang": "github:proto-aiken-13/py-slang#branch-ev3-engine" - }, "peerDependencies": { + "@sourceacademy/common-remote-execution": "workspace:*", "@sourceacademy/conductor": "^0.8.0" }, "devDependencies": { + "@rollup/plugin-commonjs": "^29.0.3", "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-terser": "^1.0.0", "@rollup/plugin-typescript": "^12.3.0", + "@sourceacademy/common-remote-execution": "workspace:*", "@sourceacademy/common-test": "workspace:*", "@sourceacademy/conductor": "^0.8.0", "@vitest/coverage-istanbul": "^4.1.9", - "rollup": "^4.60.2", + "esbuild": "^0.28.1", + "rollup": "^4.62.2", + "rollup-plugin-esbuild": "^6.2.1", "tslib": "^2.8.1", "typescript": "^6.0.3", "vitest": "^4.1.9" diff --git a/src/runner/remoteExecution/rollup.config.mjs b/src/runner/remoteExecution/rollup.config.mjs index 75b8ba5..85ef413 100644 --- a/src/runner/remoteExecution/rollup.config.mjs +++ b/src/runner/remoteExecution/rollup.config.mjs @@ -2,21 +2,13 @@ import nodeResolve from "@rollup/plugin-node-resolve"; import terser from "@rollup/plugin-terser"; import typescript from "@rollup/plugin-typescript"; -/** - * @type {import('rollup').RollupOptions} - */ -export default { - input: "src/index.ts", - external: id => id.includes("py-slang"), - output: [ - { - file: "dist/index.cjs", - format: "cjs", - }, - { - file: "dist/index.mjs", - format: "esm", - }, - ], - plugins: [nodeResolve(), typescript(), terser()], -}; +export default [ + { + input: "src/index.ts", + output: [ + { file: "dist/index.cjs", format: "cjs" }, + { file: "dist/index.mjs", format: "esm" }, + ], + plugins: [nodeResolve(), typescript(), terser()], + }, +]; diff --git a/src/runner/remoteExecution/src/index.ts b/src/runner/remoteExecution/src/index.ts index e337998..53ec407 100644 --- a/src/runner/remoteExecution/src/index.ts +++ b/src/runner/remoteExecution/src/index.ts @@ -1 +1,25 @@ -export { remoteRunnerPlugin } from "../index"; +import { + CHANNEL_ID, + RUNNER_ID, + MESSAGE_TYPE_CONNECTION_STATUS, + type ConnectionStatusMessage, + type ConnectionStatus, +} from "@sourceacademy/common-remote-execution"; +import type { IPlugin, IChannel, IConduit } from "@sourceacademy/conductor/conduit"; + +export class RemoteExecutionPlugin implements IPlugin { + readonly id: string = RUNNER_ID; + static readonly channelAttach = [CHANNEL_ID]; + private readonly __channel: IChannel; + + constructor(_conduit: IConduit, [channel]: IChannel[]) { + if (!channel) { + throw new Error("Remote execution channel is required but was not provided."); + } + this.__channel = channel; + } + + sendConnectionStatus(status: ConnectionStatus): void { + this.__channel.send({ type: MESSAGE_TYPE_CONNECTION_STATUS, status }); + } +} diff --git a/src/runner/test/package.json b/src/runner/test/package.json index 42106f6..20b0daa 100644 --- a/src/runner/test/package.json +++ b/src/runner/test/package.json @@ -28,6 +28,7 @@ "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-terser": "^1.0.0", "@rollup/plugin-typescript": "^12.3.0", + "@sourceacademy/common-remote-execution": "workspace:*", "@sourceacademy/common-test": "workspace:*", "@sourceacademy/conductor": "^0.8.0", "@sourceacademy/runner-remote-execution": "workspace:*", @@ -36,8 +37,5 @@ "tslib": "^2.8.1", "typescript": "^6.0.3", "vitest": "^4.1.9" - }, - "dependencies": { - "py-slang": "github:proto-aiken-13/py-slang#branch-ev3-engine" } } diff --git a/src/runner/test/src/__tests__/runner.test.ts b/src/runner/test/src/__tests__/runner.test.ts index 9fd886c..f35180c 100644 --- a/src/runner/test/src/__tests__/runner.test.ts +++ b/src/runner/test/src/__tests__/runner.test.ts @@ -1,39 +1,32 @@ import { vi, test, expect } from "vitest"; +import { RemoteExecutionPlugin } from "@sourceacademy/runner-remote-execution"; +import type { ConnectionStatusMessage } from "@sourceacademy/common-remote-execution"; -vi.mock("py-slang/src/engines/ev3/EV3Engine", () => ({ - EV3Engine: class MockEV3Engine { - execute(code: string) { - return Promise.resolve({ output: `mock: ${code}` }); - } - }, -})); - -import { remoteRunnerPlugin } from "@sourceacademy/runner-remote-execution"; -import type { PySlangMessage } from "@sourceacademy/common-test"; - -test("plugin subscribes to channel and sends result on run message", async () => { - const sentMessages: PySlangMessage[] = []; - let messageHandler: (msg: PySlangMessage) => void = () => {}; +test("plugin forwards connection status over its channel without touching execution", () => { + const sentMessages: ConnectionStatusMessage[] = []; const mockChannel = { - name: "py_slang_channel", - send: (msg: PySlangMessage) => { + name: "remote-execution", + send: (msg: ConnectionStatusMessage) => { sentMessages.push(msg); }, - subscribe: (handler: (msg: PySlangMessage) => void) => { - messageHandler = handler; - }, - unsubscribe: () => {}, - close: () => {}, + subscribe: vi.fn(), + unsubscribe: vi.fn(), + close: vi.fn(), }; // eslint-disable-next-line @typescript-eslint/no-explicit-any const mockConduit = {} as any; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - new remoteRunnerPlugin(mockConduit, [mockChannel as any]); + const plugin = new RemoteExecutionPlugin(mockConduit, [mockChannel]); + + plugin.sendConnectionStatus("CONNECTED"); - await messageHandler({ type: "run", code: "1 + 1" }); + expect(sentMessages).toStrictEqual([{ type: "connectionStatus", status: "CONNECTED" }]); +}); + +test("plugin construction throws if no channel is attached", () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const mockConduit = {} as any; - expect(sentMessages.length).toBeGreaterThan(0); - expect(sentMessages[0]).toMatchObject({ type: "result" }); + expect(() => new RemoteExecutionPlugin(mockConduit, [])).toThrow(); }); diff --git a/yarn.lock b/yarn.lock index 4d838e8..2458532 100644 --- a/yarn.lock +++ b/yarn.lock @@ -338,7 +338,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.26.10, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": +"@babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": version: 7.29.7 resolution: "@babel/runtime@npm:7.29.7" checksum: 10c0/ca11572f7146b21e0bde6a9ed4bb6a89eafbee5f0944c7eb54d0d8a2dac962c33638a1d611e14faa71dfbb92b4b5f9236232208568a6b7d5c6f3f39ddb91771e @@ -710,6 +710,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/aix-ppc64@npm:0.28.2" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/android-arm64@npm:0.28.1" @@ -717,6 +724,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/android-arm64@npm:0.28.2" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/android-arm@npm:0.28.1" @@ -724,6 +738,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/android-arm@npm:0.28.2" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/android-x64@npm:0.28.1" @@ -731,6 +752,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/android-x64@npm:0.28.2" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/darwin-arm64@npm:0.28.1" @@ -738,6 +766,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/darwin-arm64@npm:0.28.2" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/darwin-x64@npm:0.28.1" @@ -745,6 +780,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/darwin-x64@npm:0.28.2" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/freebsd-arm64@npm:0.28.1" @@ -752,6 +794,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/freebsd-arm64@npm:0.28.2" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/freebsd-x64@npm:0.28.1" @@ -759,6 +808,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/freebsd-x64@npm:0.28.2" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/linux-arm64@npm:0.28.1" @@ -766,6 +822,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/linux-arm64@npm:0.28.2" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/linux-arm@npm:0.28.1" @@ -773,6 +836,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/linux-arm@npm:0.28.2" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/linux-ia32@npm:0.28.1" @@ -780,6 +850,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/linux-ia32@npm:0.28.2" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/linux-loong64@npm:0.28.1" @@ -787,6 +864,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/linux-loong64@npm:0.28.2" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/linux-mips64el@npm:0.28.1" @@ -794,6 +878,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/linux-mips64el@npm:0.28.2" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/linux-ppc64@npm:0.28.1" @@ -801,6 +892,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/linux-ppc64@npm:0.28.2" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/linux-riscv64@npm:0.28.1" @@ -808,6 +906,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/linux-riscv64@npm:0.28.2" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/linux-s390x@npm:0.28.1" @@ -815,6 +920,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/linux-s390x@npm:0.28.2" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/linux-x64@npm:0.28.1" @@ -822,6 +934,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/linux-x64@npm:0.28.2" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-arm64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/netbsd-arm64@npm:0.28.1" @@ -829,6 +948,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-arm64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/netbsd-arm64@npm:0.28.2" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/netbsd-x64@npm:0.28.1" @@ -836,6 +962,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/netbsd-x64@npm:0.28.2" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-arm64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/openbsd-arm64@npm:0.28.1" @@ -843,6 +976,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-arm64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/openbsd-arm64@npm:0.28.2" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/openbsd-x64@npm:0.28.1" @@ -850,6 +990,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/openbsd-x64@npm:0.28.2" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openharmony-arm64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/openharmony-arm64@npm:0.28.1" @@ -857,6 +1004,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openharmony-arm64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/openharmony-arm64@npm:0.28.2" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/sunos-x64@npm:0.28.1" @@ -864,6 +1018,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/sunos-x64@npm:0.28.2" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/win32-arm64@npm:0.28.1" @@ -871,6 +1032,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/win32-arm64@npm:0.28.2" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/win32-ia32@npm:0.28.1" @@ -878,6 +1046,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/win32-ia32@npm:0.28.2" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.28.1": version: 0.28.1 resolution: "@esbuild/win32-x64@npm:0.28.1" @@ -885,6 +1060,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.28.2": + version: 0.28.2 + resolution: "@esbuild/win32-x64@npm:0.28.2" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.8.0, @eslint-community/eslint-utils@npm:^4.9.1": version: 4.9.1 resolution: "@eslint-community/eslint-utils@npm:4.9.1" @@ -1454,6 +1636,13 @@ __metadata: languageName: node linkType: hard +"@napi-rs/lzma-linux-x64-gnu@npm:1.5.1": + version: 1.5.1 + resolution: "@napi-rs/lzma-linux-x64-gnu@npm:1.5.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@napi-rs/wasm-runtime@npm:^1.1.4": version: 1.1.5 resolution: "@napi-rs/wasm-runtime@npm:1.1.5" @@ -1768,6 +1957,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.63.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@rollup/rollup-android-arm64@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-android-arm64@npm:4.60.4" @@ -1775,6 +1971,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm64@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-android-arm64@npm:4.63.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-arm64@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-darwin-arm64@npm:4.60.4" @@ -1782,6 +1985,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-arm64@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.63.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-x64@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-darwin-x64@npm:4.60.4" @@ -1789,6 +1999,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-x64@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.63.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-freebsd-arm64@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-freebsd-arm64@npm:4.60.4" @@ -1796,6 +2013,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-freebsd-arm64@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.63.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-freebsd-x64@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-freebsd-x64@npm:4.60.4" @@ -1803,6 +2027,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-freebsd-x64@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-freebsd-x64@npm:4.63.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-gnueabihf@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.60.4" @@ -1810,6 +2041,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-gnueabihf@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.63.1" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-musleabihf@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.60.4" @@ -1817,6 +2055,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-musleabihf@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.63.1" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-gnu@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.60.4" @@ -1824,6 +2069,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-gnu@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.63.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-musl@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.60.4" @@ -1831,6 +2083,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-musl@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.63.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-loong64-gnu@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.60.4" @@ -1838,6 +2097,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-loong64-gnu@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.63.1" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-loong64-musl@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-linux-loong64-musl@npm:4.60.4" @@ -1845,6 +2111,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-loong64-musl@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-linux-loong64-musl@npm:4.63.1" + conditions: os=linux & cpu=loong64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-ppc64-gnu@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.60.4" @@ -1852,6 +2125,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-ppc64-gnu@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.63.1" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-ppc64-musl@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.60.4" @@ -1859,6 +2139,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-ppc64-musl@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.63.1" + conditions: os=linux & cpu=ppc64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-gnu@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.60.4" @@ -1866,6 +2153,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-gnu@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.63.1" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-musl@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.60.4" @@ -1873,6 +2167,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-musl@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.63.1" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-s390x-gnu@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.60.4" @@ -1880,6 +2181,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-s390x-gnu@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.63.1" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-gnu@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.60.4" @@ -1887,6 +2195,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-gnu@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.63.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-musl@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-linux-x64-musl@npm:4.60.4" @@ -1894,6 +2209,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-musl@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.63.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-openbsd-x64@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-openbsd-x64@npm:4.60.4" @@ -1901,6 +2223,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-openbsd-x64@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-openbsd-x64@npm:4.63.1" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-openharmony-arm64@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-openharmony-arm64@npm:4.60.4" @@ -1908,6 +2237,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-openharmony-arm64@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.63.1" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-arm64-msvc@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.60.4" @@ -1915,6 +2251,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-arm64-msvc@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.63.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-ia32-msvc@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.60.4" @@ -1922,6 +2265,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-ia32-msvc@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.63.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-gnu@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-win32-x64-gnu@npm:4.60.4" @@ -1929,6 +2279,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-x64-gnu@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.63.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-msvc@npm:4.60.4": version: 4.60.4 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.60.4" @@ -1936,6 +2293,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-x64-msvc@npm:4.63.1": + version: 4.63.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.63.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@sinclair/typebox@npm:^0.34.0": version: 0.34.49 resolution: "@sinclair/typebox@npm:0.34.49" @@ -2020,6 +2384,20 @@ __metadata: languageName: unknown linkType: soft +"@sourceacademy/common-remote-execution@workspace:*, @sourceacademy/common-remote-execution@workspace:src/common/remoteExecution": + version: 0.0.0-use.local + resolution: "@sourceacademy/common-remote-execution@workspace:src/common/remoteExecution" + dependencies: + "@rollup/plugin-node-resolve": "npm:^16.0.3" + "@rollup/plugin-terser": "npm:^1.0.0" + "@rollup/plugin-typescript": "npm:^12.3.0" + rollup: "npm:^4.60.2" + tslib: "npm:^2.8.1" + typescript: "npm:^6.0.3" + vitest: "npm:^4.1.9" + languageName: unknown + linkType: soft + "@sourceacademy/common-stepper@workspace:*, @sourceacademy/common-stepper@workspace:src/common/stepper": version: 0.0.0-use.local resolution: "@sourceacademy/common-stepper@workspace:src/common/stepper" @@ -2068,17 +2446,10 @@ __metadata: languageName: unknown linkType: soft -"@sourceacademy/conductor@npm:^0.3.0": - version: 0.3.0 - resolution: "@sourceacademy/conductor@npm:0.3.0" - checksum: 10c0/e6d50cc0b9188fa5ec54c3bb2e6b9a0f9391ba37449e74a326c89c4e14deb00c4882700062427737e6f6fca556fd95d91fa9d7f6e125fe1d43938a65cc3c0c4d - languageName: node - linkType: hard - -"@sourceacademy/conductor@npm:^0.8.0": - version: 0.8.3 - resolution: "@sourceacademy/conductor@npm:0.8.3" - checksum: 10c0/25a35004fd92abc3f9342c1928a6be884388d3a8465cdc26491ccf56566121dd7a68a0c305defe668dfe7b96eebe61e93059631f80a92e0d9a4dc2775090f3e5 +"@sourceacademy/conductor@npm:^0.5.0": + version: 0.5.0 + resolution: "@sourceacademy/conductor@npm:0.5.0" + checksum: 10c0/e87c54febc0c68498ba4ebb29de79028798fa2d3183e2f4b09ba8d7992f44f8a04600409fa08a7b2e07d38261e23ee300140e6c982181d0a549636c0a944813d languageName: node linkType: hard @@ -2171,18 +2542,22 @@ __metadata: version: 0.0.0-use.local resolution: "@sourceacademy/runner-remote-execution@workspace:src/runner/remoteExecution" dependencies: + "@rollup/plugin-commonjs": "npm:^29.0.3" "@rollup/plugin-node-resolve": "npm:^16.0.3" "@rollup/plugin-terser": "npm:^1.0.0" "@rollup/plugin-typescript": "npm:^12.3.0" + "@sourceacademy/common-remote-execution": "workspace:*" "@sourceacademy/common-test": "workspace:*" "@sourceacademy/conductor": "npm:^0.8.0" "@vitest/coverage-istanbul": "npm:^4.1.9" - py-slang: "github:proto-aiken-13/py-slang#branch-ev3-engine" - rollup: "npm:^4.60.2" + esbuild: "npm:^0.28.1" + rollup: "npm:^4.62.2" + rollup-plugin-esbuild: "npm:^6.2.1" tslib: "npm:^2.8.1" typescript: "npm:^6.0.3" vitest: "npm:^4.1.9" peerDependencies: + "@sourceacademy/common-remote-execution": "workspace:*" "@sourceacademy/conductor": ^0.8.0 languageName: unknown linkType: soft @@ -2214,11 +2589,11 @@ __metadata: "@rollup/plugin-node-resolve": "npm:^16.0.3" "@rollup/plugin-terser": "npm:^1.0.0" "@rollup/plugin-typescript": "npm:^12.3.0" + "@sourceacademy/common-remote-execution": "workspace:*" "@sourceacademy/common-test": "workspace:*" "@sourceacademy/conductor": "npm:^0.8.0" "@sourceacademy/runner-remote-execution": "workspace:*" "@vitest/coverage-istanbul": "npm:^4.1.9" - py-slang: "github:proto-aiken-13/py-slang#branch-ev3-engine" rollup: "npm:^4.60.2" tslib: "npm:^2.8.1" typescript: "npm:^6.0.3" @@ -2228,13 +2603,6 @@ __metadata: languageName: unknown linkType: soft -"@sourceacademy/wasm-util@npm:^1.0.6": - version: 1.0.6 - resolution: "@sourceacademy/wasm-util@npm:1.0.6" - checksum: 10c0/5f86a348c79142c062d5b8b3c45418bc0358ceb2fc4ace0393ea75797b9d66d06ab270c4ec12d304066e0879016db36a017c1696b9f14a62ae59c42d012b47ed - languageName: node - linkType: hard - "@sourceacademy/web-autocomplete@workspace:src/web/autocomplete": version: 0.0.0-use.local resolution: "@sourceacademy/web-autocomplete@workspace:src/web/autocomplete" @@ -2460,7 +2828,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8": +"@types/estree@npm:*, @types/estree@npm:1.0.9, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8": version: 1.0.9 resolution: "@types/estree@npm:1.0.9" checksum: 10c0/3ad3286ca2988cd550dafb8f2ad599c8474868e954fa601a36655bdfefd8039f7c714b8c1c7f2ae219ffbd58bd4660e66fa7479a0120fc02d4777057d4865387 @@ -3500,7 +3868,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.19.0, commander@npm:^2.20.0": +"commander@npm:^2.20.0": version: 2.20.3 resolution: "commander@npm:2.20.3" checksum: 10c0/74c781a5248c2402a0a3e966a0a2bba3c054aad144f5c023364be83265e796b20565aa9feff624132ff629aa64e16999fa40a743c10c12f7c61e96a794b99288 @@ -3514,13 +3882,6 @@ __metadata: languageName: node linkType: hard -"complex.js@npm:^2.2.5": - version: 2.4.3 - resolution: "complex.js@npm:2.4.3" - checksum: 10c0/c61b225c4c2925c922ebaf2c4c6d7d0c2f9cebf4fb5eb8dce231aea7508f15db0920b52107279fdd9947b54a0320eae2911d430a421c2db8d0d24df6c2cb2cf8 - languageName: node - linkType: hard - "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -3564,7 +3925,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.4.3": +"debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.4.0, debug@npm:^4.4.3": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -3576,13 +3937,6 @@ __metadata: languageName: node linkType: hard -"decimal.js@npm:^10.4.3": - version: 10.6.0 - resolution: "decimal.js@npm:10.6.0" - checksum: 10c0/07d69fbcc54167a340d2d97de95f546f9ff1f69d2b45a02fd7a5292412df3cd9eb7e23065e532a318f5474a2e1bccf8392fdf0443ef467f97f3bf8cb0477e5aa - languageName: node - linkType: hard - "dedent@npm:^1.6.0": version: 1.7.2 resolution: "dedent@npm:1.7.2" @@ -3639,13 +3993,6 @@ __metadata: languageName: node linkType: hard -"discontinuous-range@npm:1.0.0": - version: 1.0.0 - resolution: "discontinuous-range@npm:1.0.0" - checksum: 10c0/487b105f83c1cc528e25e65d3c4b73958ec79769b7bd0e264414702a23a7e2b282c72982b4bef4af29fcab53f47816c3f0a5c40d85a99a490f4bc35b83dc00f8 - languageName: node - linkType: hard - "dom-helpers@npm:^5.0.1": version: 5.2.1 resolution: "dom-helpers@npm:5.2.1" @@ -3734,6 +4081,13 @@ __metadata: languageName: node linkType: hard +"es-module-lexer@npm:^1.6.0": + version: 1.7.0 + resolution: "es-module-lexer@npm:1.7.0" + checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b + languageName: node + linkType: hard + "es-module-lexer@npm:^2.0.0": version: 2.1.0 resolution: "es-module-lexer@npm:2.1.0" @@ -3741,6 +4095,95 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.28.1": + version: 0.28.2 + resolution: "esbuild@npm:0.28.2" + dependencies: + "@esbuild/aix-ppc64": "npm:0.28.2" + "@esbuild/android-arm": "npm:0.28.2" + "@esbuild/android-arm64": "npm:0.28.2" + "@esbuild/android-x64": "npm:0.28.2" + "@esbuild/darwin-arm64": "npm:0.28.2" + "@esbuild/darwin-x64": "npm:0.28.2" + "@esbuild/freebsd-arm64": "npm:0.28.2" + "@esbuild/freebsd-x64": "npm:0.28.2" + "@esbuild/linux-arm": "npm:0.28.2" + "@esbuild/linux-arm64": "npm:0.28.2" + "@esbuild/linux-ia32": "npm:0.28.2" + "@esbuild/linux-loong64": "npm:0.28.2" + "@esbuild/linux-mips64el": "npm:0.28.2" + "@esbuild/linux-ppc64": "npm:0.28.2" + "@esbuild/linux-riscv64": "npm:0.28.2" + "@esbuild/linux-s390x": "npm:0.28.2" + "@esbuild/linux-x64": "npm:0.28.2" + "@esbuild/netbsd-arm64": "npm:0.28.2" + "@esbuild/netbsd-x64": "npm:0.28.2" + "@esbuild/openbsd-arm64": "npm:0.28.2" + "@esbuild/openbsd-x64": "npm:0.28.2" + "@esbuild/openharmony-arm64": "npm:0.28.2" + "@esbuild/sunos-x64": "npm:0.28.2" + "@esbuild/win32-arm64": "npm:0.28.2" + "@esbuild/win32-ia32": "npm:0.28.2" + "@esbuild/win32-x64": "npm:0.28.2" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/openharmony-arm64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/9b19edb63bd7780fd2e8e65a1394a0e8a05a17d697f73f0647ffe3c134709d8dbe744ab3fd57b35c9470db268cae7678fafd3dcd3ce1f34fc590568c2433f5d2 + languageName: node + linkType: hard + "esbuild@npm:~0.28.0": version: 0.28.1 resolution: "esbuild@npm:0.28.1" @@ -3837,13 +4280,6 @@ __metadata: languageName: node linkType: hard -"escape-latex@npm:^1.2.0": - version: 1.2.0 - resolution: "escape-latex@npm:1.2.0" - checksum: 10c0/b77ea1594a38625295793a61105222c283c1792d1b2511bbfd6338cf02cc427dcabce7e7c1e22ec2f5c40baf3eaf2eeaf229a62dbbb74c6e69bb4a4209f2544f - languageName: node - linkType: hard - "escape-string-regexp@npm:^2.0.0": version: 2.0.0 resolution: "escape-string-regexp@npm:2.0.0" @@ -4102,22 +4538,6 @@ __metadata: languageName: node linkType: hard -"fast-levenshtein@npm:^3.0.0": - version: 3.0.0 - resolution: "fast-levenshtein@npm:3.0.0" - dependencies: - fastest-levenshtein: "npm:^1.0.7" - checksum: 10c0/9e147c682bd0ca54474f1cbf906f6c45262fd2e7c051d2caf2cc92729dcf66949dc809f2392de6adbe1c8716fdf012f91ce38c9422aef63b5732fc688eee4046 - languageName: node - linkType: hard - -"fastest-levenshtein@npm:^1.0.7": - version: 1.0.16 - resolution: "fastest-levenshtein@npm:1.0.16" - checksum: 10c0/7e3d8ae812a7f4fdf8cad18e9cde436a39addf266a5986f653ea0d81e0de0900f50c0f27c6d5aff3f686bcb48acbd45be115ae2216f36a6a13a7dbbf5cad878b - languageName: node - linkType: hard - "fastq@npm:^1.6.0": version: 1.20.1 resolution: "fastq@npm:1.20.1" @@ -4213,13 +4633,6 @@ __metadata: languageName: node linkType: hard -"fraction.js@npm:^5.2.1": - version: 5.3.4 - resolution: "fraction.js@npm:5.3.4" - checksum: 10c0/f90079fe9bfc665e0a07079938e8ff71115bce9462f17b32fc283f163b0540ec34dc33df8ed41bb56f028316b04361b9a9995b9ee9258617f8338e0b05c5f95a - languageName: node - linkType: hard - "fs-extra@npm:^7.0.1": version: 7.0.1 resolution: "fs-extra@npm:7.0.1" @@ -4303,6 +4716,15 @@ __metadata: languageName: node linkType: hard +"get-tsconfig@npm:^4.10.0": + version: 4.14.3 + resolution: "get-tsconfig@npm:4.14.3" + dependencies: + resolve-pkg-maps: "npm:^1.0.0" + checksum: 10c0/22119bb5b7e37b922a973bfb50deac89ca845cef50a24cd27b6c628f314e91a2bccceb186e0b5183e231ad6480d7173738912975332caf60678af39b7236eeac + languageName: node + linkType: hard + "glob-parent@npm:^5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -4680,13 +5102,6 @@ __metadata: languageName: node linkType: hard -"javascript-natural-sort@npm:^0.7.1": - version: 0.7.1 - resolution: "javascript-natural-sort@npm:0.7.1" - checksum: 10c0/340f8ffc5d30fb516e06dc540e8fa9e0b93c865cf49d791fed3eac3bdc5fc71f0066fc81d44ec1433edc87caecaf9f13eec4a1fce8c5beafc709a71eaedae6fe - languageName: node - linkType: hard - "jest-changed-files@npm:30.4.1": version: 30.4.1 resolution: "jest-changed-files@npm:30.4.1" @@ -5486,25 +5901,6 @@ __metadata: languageName: node linkType: hard -"mathjs@npm:^14.9.1": - version: 14.9.1 - resolution: "mathjs@npm:14.9.1" - dependencies: - "@babel/runtime": "npm:^7.26.10" - complex.js: "npm:^2.2.5" - decimal.js: "npm:^10.4.3" - escape-latex: "npm:^1.2.0" - fraction.js: "npm:^5.2.1" - javascript-natural-sort: "npm:^0.7.1" - seedrandom: "npm:^3.0.5" - tiny-emitter: "npm:^2.1.0" - typed-function: "npm:^4.2.1" - bin: - mathjs: bin/cli.js - checksum: 10c0/7ae1f0445e12e3d8843764182c82c066c03c50bb0903cfe4c6c34869f8b1bb6648082006135176412a04cba7ea12f7756d7fc59d96ff0b803cd19a3d7de6ba8f - languageName: node - linkType: hard - "merge-stream@npm:^2.0.0": version: 2.0.0 resolution: "merge-stream@npm:2.0.0" @@ -5586,13 +5982,6 @@ __metadata: languageName: node linkType: hard -"moo@npm:^0.5.0, moo@npm:^0.5.2": - version: 0.5.3 - resolution: "moo@npm:0.5.3" - checksum: 10c0/5c5e00d7c57a69ce1cc2f21a90655ff10556481cc10fa70528c01e91f00deff8a65fa8da6dc7b27d136d66085055aab238fd1b19a75070263e0028e8f07c8213 - languageName: node - linkType: hard - "mri@npm:^1.2.0": version: 1.2.0 resolution: "mri@npm:1.2.0" @@ -5632,23 +6021,6 @@ __metadata: languageName: node linkType: hard -"nearley@npm:^2.20.1": - version: 2.20.1 - resolution: "nearley@npm:2.20.1" - dependencies: - commander: "npm:^2.19.0" - moo: "npm:^0.5.0" - railroad-diagrams: "npm:^1.0.0" - randexp: "npm:0.4.6" - bin: - nearley-railroad: bin/nearley-railroad.js - nearley-test: bin/nearley-test.js - nearley-unparse: bin/nearley-unparse.js - nearleyc: bin/nearleyc.js - checksum: 10c0/d25e1fd40b19c53a0ada6a688670f4a39063fd9553ab62885e81a82927d51572ce47193b946afa3d85efa608ba2c68f433c421f69b854bfb7f599eacb5fae37e - languageName: node - linkType: hard - "neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" @@ -6100,21 +6472,6 @@ __metadata: languageName: node linkType: hard -"py-slang@github:proto-aiken-13/py-slang#branch-ev3-engine": - version: 1.0.0 - resolution: "py-slang@https://github.com/proto-aiken-13/py-slang.git#commit=da6c3870cd7c4319d250484c8edf15ef4de21555" - dependencies: - "@sourceacademy/conductor": "npm:^0.3.0" - "@sourceacademy/wasm-util": "npm:^1.0.6" - fast-levenshtein: "npm:^3.0.0" - mathjs: "npm:^14.9.1" - moo: "npm:^0.5.2" - nearley: "npm:^2.20.1" - wabt: "npm:^1.0.37" - checksum: 10c0/32d77bc88033f6aa7b8942c97c4952cc945cc368f6caed59b9ef5ab836965e24dea33c4e3f08e7976b5b9b520a21628ed3fb3712b29a8a4973dcaf7fe07b13d9 - languageName: node - linkType: hard - "quansync@npm:^0.2.7": version: 0.2.11 resolution: "quansync@npm:0.2.11" @@ -6129,23 +6486,6 @@ __metadata: languageName: node linkType: hard -"railroad-diagrams@npm:^1.0.0": - version: 1.0.0 - resolution: "railroad-diagrams@npm:1.0.0" - checksum: 10c0/81bf8f86870a69fb9ed243102db9ad6416d09c4cb83964490d44717690e07dd982f671503236a1f8af28f4cb79d5d7a87613930f10ac08defa845ceb6764e364 - languageName: node - linkType: hard - -"randexp@npm:0.4.6": - version: 0.4.6 - resolution: "randexp@npm:0.4.6" - dependencies: - discontinuous-range: "npm:1.0.0" - ret: "npm:~0.1.10" - checksum: 10c0/14ee14b6d7f5ce69609b51cc914fb7a7c82ad337820a141c5f762c5ad1fe868f5191ea6e82359aee019b625ee1359486628fa833909d12c3b5dd9571908c3345 - languageName: node - linkType: hard - "react-dom@npm:^19.0.0": version: 19.2.7 resolution: "react-dom@npm:19.2.7" @@ -6302,6 +6642,13 @@ __metadata: languageName: node linkType: hard +"resolve-pkg-maps@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-pkg-maps@npm:1.0.0" + checksum: 10c0/fb8f7bbe2ca281a73b7ef423a1cbc786fb244bd7a95cbe5c3fba25b27d327150beca8ba02f622baea65919a57e061eb5005204daa5f93ed590d9b77463a567ab + languageName: node + linkType: hard + "resolve@npm:^1.22.1": version: 1.22.12 resolution: "resolve@npm:1.22.12" @@ -6330,13 +6677,6 @@ __metadata: languageName: node linkType: hard -"ret@npm:~0.1.10": - version: 0.1.15 - resolution: "ret@npm:0.1.15" - checksum: 10c0/01f77cad0f7ea4f955852c03d66982609893edc1240c0c964b4c9251d0f9fb6705150634060d169939b096d3b77f4c84d6b6098a5b5d340160898c8581f1f63f - languageName: node - linkType: hard - "reusify@npm:^1.0.4": version: 1.1.0 resolution: "reusify@npm:1.1.0" @@ -6402,6 +6742,21 @@ __metadata: languageName: node linkType: hard +"rollup-plugin-esbuild@npm:^6.2.1": + version: 6.2.1 + resolution: "rollup-plugin-esbuild@npm:6.2.1" + dependencies: + debug: "npm:^4.4.0" + es-module-lexer: "npm:^1.6.0" + get-tsconfig: "npm:^4.10.0" + unplugin-utils: "npm:^0.2.4" + peerDependencies: + esbuild: ">=0.18.0" + rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + checksum: 10c0/cbde8deb1926756b02ba6d5c4b400a54e8a7636669fb74f4350138091a31d58df8423cf7b2b16315a5118476d3789aca2942eab37c66adfeb7ec209bb61566cf + languageName: node + linkType: hard + "rollup@npm:^4.60.2": version: 4.60.4 resolution: "rollup@npm:4.60.4" @@ -6492,6 +6847,99 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.62.2": + version: 4.63.1 + resolution: "rollup@npm:4.63.1" + dependencies: + "@napi-rs/lzma-linux-x64-gnu": "npm:1.5.1" + "@rollup/rollup-android-arm-eabi": "npm:4.63.1" + "@rollup/rollup-android-arm64": "npm:4.63.1" + "@rollup/rollup-darwin-arm64": "npm:4.63.1" + "@rollup/rollup-darwin-x64": "npm:4.63.1" + "@rollup/rollup-freebsd-arm64": "npm:4.63.1" + "@rollup/rollup-freebsd-x64": "npm:4.63.1" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.63.1" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.63.1" + "@rollup/rollup-linux-arm64-gnu": "npm:4.63.1" + "@rollup/rollup-linux-arm64-musl": "npm:4.63.1" + "@rollup/rollup-linux-loong64-gnu": "npm:4.63.1" + "@rollup/rollup-linux-loong64-musl": "npm:4.63.1" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.63.1" + "@rollup/rollup-linux-ppc64-musl": "npm:4.63.1" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.63.1" + "@rollup/rollup-linux-riscv64-musl": "npm:4.63.1" + "@rollup/rollup-linux-s390x-gnu": "npm:4.63.1" + "@rollup/rollup-linux-x64-gnu": "npm:4.63.1" + "@rollup/rollup-linux-x64-musl": "npm:4.63.1" + "@rollup/rollup-openbsd-x64": "npm:4.63.1" + "@rollup/rollup-openharmony-arm64": "npm:4.63.1" + "@rollup/rollup-win32-arm64-msvc": "npm:4.63.1" + "@rollup/rollup-win32-ia32-msvc": "npm:4.63.1" + "@rollup/rollup-win32-x64-gnu": "npm:4.63.1" + "@rollup/rollup-win32-x64-msvc": "npm:4.63.1" + "@types/estree": "npm:1.0.9" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@napi-rs/lzma-linux-x64-gnu": + optional: true + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loong64-gnu": + optional: true + "@rollup/rollup-linux-loong64-musl": + optional: true + "@rollup/rollup-linux-ppc64-gnu": + optional: true + "@rollup/rollup-linux-ppc64-musl": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-openbsd-x64": + optional: true + "@rollup/rollup-openharmony-arm64": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-gnu": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/90cac5c59bdeb7762483b502f1b547057b0a5e18d044a971b9fbd5629ee262518d00c526e92244726c91e11c4fd5005e9e48359787af034035f0668bb5949ab0 + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -6515,13 +6963,6 @@ __metadata: languageName: node linkType: hard -"seedrandom@npm:^3.0.5": - version: 3.0.5 - resolution: "seedrandom@npm:3.0.5" - checksum: 10c0/929752ac098ff4990b3f8e0ac39136534916e72879d6eb625230141d20db26e2f44c4d03d153d457682e8cbaab0fb7d58a1e7267a157cf23fd8cf34e25044e88 - languageName: node - linkType: hard - "semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" @@ -6857,13 +7298,6 @@ __metadata: languageName: node linkType: hard -"tiny-emitter@npm:^2.1.0": - version: 2.1.0 - resolution: "tiny-emitter@npm:2.1.0" - checksum: 10c0/459c0bd6e636e80909898220eb390e1cba2b15c430b7b06cec6ac29d87acd29ef618b9b32532283af749f5d37af3534d0e3bde29fdf6bcefbf122784333c953d - languageName: node - linkType: hard - "tinybench@npm:^2.9.0": version: 2.9.0 resolution: "tinybench@npm:2.9.0" @@ -7019,13 +7453,6 @@ __metadata: languageName: node linkType: hard -"typed-function@npm:^4.2.1": - version: 4.2.2 - resolution: "typed-function@npm:4.2.2" - checksum: 10c0/92f2acc7e6d94431f4b37c2219d131cc90c1f43c19c097b7e337408cfd91336e481680d3362e30b5616318272950480ba670572b4585e8c690ca509d65c97554 - languageName: node - linkType: hard - "typescript-eslint@npm:^8.57.1": version: 8.68.0 resolution: "typescript-eslint@npm:8.68.0" @@ -7098,6 +7525,16 @@ __metadata: languageName: node linkType: hard +"unplugin-utils@npm:^0.2.4": + version: 0.2.5 + resolution: "unplugin-utils@npm:0.2.5" + dependencies: + pathe: "npm:^2.0.3" + picomatch: "npm:^4.0.3" + checksum: 10c0/51541892216a0505210866f956228ffe8c64792b0f7397d919e68aece7ac18cc4bed9cceaf0b59f777183701e4b1f2d95776b18e7d4a75ac64e2cfa4737bd9e5 + languageName: node + linkType: hard + "unrs-resolver@npm:^1.7.11": version: 1.12.2 resolution: "unrs-resolver@npm:1.12.2" @@ -7351,23 +7788,6 @@ __metadata: languageName: node linkType: hard -"wabt@npm:^1.0.37": - version: 1.0.39 - resolution: "wabt@npm:1.0.39" - bin: - wasm-decompile: bin/wasm-decompile - wasm-interp: bin/wasm-interp - wasm-objdump: bin/wasm-objdump - wasm-stats: bin/wasm-stats - wasm-strip: bin/wasm-strip - wasm-validate: bin/wasm-validate - wasm2c: bin/wasm2c - wasm2wat: bin/wasm2wat - wat2wasm: bin/wat2wasm - checksum: 10c0/6ada63c4c882688bf8d15f3b3a2a1d7edb9b83a976afa2d5754c6a991ae6372600f8ff2337aa1da8f8cb18b91cec8d93cd04e8f48e8f22b06f70915041cd6a89 - languageName: node - linkType: hard - "walker@npm:^1.0.8": version: 1.0.8 resolution: "walker@npm:1.0.8"