diff --git a/.husky/pre-commit b/.husky/pre-commit index e46f99119..70cf0af45 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,3 +1,4 @@ make prereqs npx lint-staged --verbose +node ./etc/scripts/check-frontend-imports.js python3 ./etc/scripts/util/propscheck.py diff --git a/CLAUDE.md b/CLAUDE.md index 54e9c6272..225207486 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -60,6 +60,13 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co - Use British English spellings for things like "initialise" and "colour", but only in new code. It's a preference not a hard requirement - Use modern Typescript features like optional chaining when updating existing code or adding new code +## Architecture Guidelines +- **Frontend/Backend Separation**: Frontend code (`static/`) MUST NOT import from backend code (`lib/`) + - Frontend should use API calls to communicate with backend + - Shared types should be imported from `types/` directory instead + - This separation is enforced by pre-commit hooks (`npm run check-frontend-imports`) + - Violations will cause build failures and prevent commits + ## Testing Guidelines - Use Vitest for unit tests (compatible with Jest syntax) - Tests are in the `/test` directory, typically named like the source files they test diff --git a/Makefile b/Makefile index 97747af74..c7f5e9d5a 100644 --- a/Makefile +++ b/Makefile @@ -70,8 +70,12 @@ test-min: $(NODE_MODULES) ## Runs the minimal tests .PHONY: check check: $(NODE_MODULES) lint test ## Runs all checks required before committing (fixing trivial things automatically) +.PHONY: check-frontend-imports +check-frontend-imports: node-installed ## Check that frontend doesn't import from backend + @$(NODE) ./etc/scripts/check-frontend-imports.js + .PHONY: pre-commit -pre-commit: $(NODE_MODULES) test-min lint +pre-commit: $(NODE_MODULES) test-min lint check-frontend-imports .PHONY: clean clean: ## Cleans up everything diff --git a/etc/scripts/check-frontend-imports.js b/etc/scripts/check-frontend-imports.js new file mode 100644 index 000000000..34e6b2b37 --- /dev/null +++ b/etc/scripts/check-frontend-imports.js @@ -0,0 +1,29 @@ +#!/usr/bin/env node +// Check that frontend (static/) code doesn't import from backend (lib/) + +import {execSync} from 'child_process'; + +try { + const violations = execSync( + 'git grep -n "from [\'\\\"]\\.\\./.*lib/" -- "static/*.ts" "static/**/*.ts"', + {encoding: 'utf8'} + ).trim(); + + if (violations) { + console.error('❌ Error: Frontend code cannot import from backend (lib/) directory!'); + console.error(''); + console.error('Found violations:'); + console.error(violations); + console.error(''); + console.error('Frontend code should use API calls or import from types/ instead of directly importing backend code.'); + process.exit(1); + } +} catch (e) { + // git grep returns non-zero when no matches found, which is what we want + if (e.status !== 1) { + console.error('Error running git grep:', e.message); + process.exit(1); + } +} + +process.exit(0); diff --git a/lib/asm-docs/amd64.ts b/lib/asm-docs/amd64.ts index 2392f59da..efae455c8 100644 --- a/lib/asm-docs/amd64.ts +++ b/lib/asm-docs/amd64.ts @@ -22,7 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; +import {BaseAssemblyDocumentationProvider} from './base.js'; import {getAsmOpcode} from './generated/asm-docs-amd64.js'; export class Amd64DocumentationProvider extends BaseAssemblyDocumentationProvider { diff --git a/lib/asm-docs/arm.ts b/lib/asm-docs/arm.ts index 6f7bece70..6aa7a761e 100644 --- a/lib/asm-docs/arm.ts +++ b/lib/asm-docs/arm.ts @@ -22,7 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; +import {BaseAssemblyDocumentationProvider} from './base.js'; import {getAsmOpcode as getAsmOpcode64} from './generated/asm-docs-aarch64.js'; import {getAsmOpcode as getAsmOpcode32} from './generated/asm-docs-arm32.js'; diff --git a/lib/asm-docs/avr.ts b/lib/asm-docs/avr.ts index d1a96d6db..f4109d410 100644 --- a/lib/asm-docs/avr.ts +++ b/lib/asm-docs/avr.ts @@ -22,7 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; +import {BaseAssemblyDocumentationProvider} from './base.js'; import {getAsmOpcode} from './generated/asm-docs-avr.js'; export class AvrDocumentationProvider extends BaseAssemblyDocumentationProvider { diff --git a/lib/asm-docs/base.ts b/lib/asm-docs/base.ts index 5a35225b5..75658ee2c 100644 --- a/lib/asm-docs/base.ts +++ b/lib/asm-docs/base.ts @@ -22,7 +22,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -export type AssemblyInstructionInfo = Record<'tooltip' | 'html' | 'url', string>; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; /** * Base class for all assembly documentation generators. diff --git a/lib/asm-docs/evm.ts b/lib/asm-docs/evm.ts index 9a71fc821..9d423ff5b 100644 --- a/lib/asm-docs/evm.ts +++ b/lib/asm-docs/evm.ts @@ -22,7 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; +import {BaseAssemblyDocumentationProvider} from './base.js'; import {getAsmOpcode} from './generated/asm-docs-evm.js'; export class EvmDocumentationProvider extends BaseAssemblyDocumentationProvider { diff --git a/lib/asm-docs/generated/asm-docs-6502.ts b/lib/asm-docs/generated/asm-docs-6502.ts index 0775e999b..08151ae3e 100644 --- a/lib/asm-docs/generated/asm-docs-6502.ts +++ b/lib/asm-docs/generated/asm-docs-6502.ts @@ -1,4 +1,4 @@ -import {AssemblyInstructionInfo} from '../base.js'; +import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js'; export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { if (!opcode) return; diff --git a/lib/asm-docs/generated/asm-docs-65c816.ts b/lib/asm-docs/generated/asm-docs-65c816.ts index 94fdb35da..cd24ca247 100644 --- a/lib/asm-docs/generated/asm-docs-65c816.ts +++ b/lib/asm-docs/generated/asm-docs-65c816.ts @@ -1,4 +1,4 @@ -import {AssemblyInstructionInfo} from '../base.js'; +import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js'; export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { if (!opcode) return; diff --git a/lib/asm-docs/generated/asm-docs-aarch64.ts b/lib/asm-docs/generated/asm-docs-aarch64.ts index cc387f23c..02dbc9cc7 100644 --- a/lib/asm-docs/generated/asm-docs-aarch64.ts +++ b/lib/asm-docs/generated/asm-docs-aarch64.ts @@ -1,4 +1,4 @@ -import {AssemblyInstructionInfo} from '../base.js'; +import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js'; export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { if (!opcode) return; diff --git a/lib/asm-docs/generated/asm-docs-amd64.ts b/lib/asm-docs/generated/asm-docs-amd64.ts index 56e40a09d..45912d978 100644 --- a/lib/asm-docs/generated/asm-docs-amd64.ts +++ b/lib/asm-docs/generated/asm-docs-amd64.ts @@ -1,4 +1,4 @@ -import {AssemblyInstructionInfo} from '../base.js'; +import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js'; export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { if (!opcode) return; diff --git a/lib/asm-docs/generated/asm-docs-arm32.ts b/lib/asm-docs/generated/asm-docs-arm32.ts index fdfafc57e..7344bbc6f 100644 --- a/lib/asm-docs/generated/asm-docs-arm32.ts +++ b/lib/asm-docs/generated/asm-docs-arm32.ts @@ -1,4 +1,4 @@ -import {AssemblyInstructionInfo} from '../base.js'; +import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js'; export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { if (!opcode) return; diff --git a/lib/asm-docs/generated/asm-docs-avr.ts b/lib/asm-docs/generated/asm-docs-avr.ts index 1a1c54f45..dcb495d9d 100644 --- a/lib/asm-docs/generated/asm-docs-avr.ts +++ b/lib/asm-docs/generated/asm-docs-avr.ts @@ -1,4 +1,4 @@ -import {AssemblyInstructionInfo} from '../base.js'; +import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js'; export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { if (!opcode) return; diff --git a/lib/asm-docs/generated/asm-docs-evm.ts b/lib/asm-docs/generated/asm-docs-evm.ts index 975e527a1..b59132740 100644 --- a/lib/asm-docs/generated/asm-docs-evm.ts +++ b/lib/asm-docs/generated/asm-docs-evm.ts @@ -1,4 +1,4 @@ -import {AssemblyInstructionInfo} from '../base.js'; +import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js'; export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { if (!opcode) return; diff --git a/lib/asm-docs/generated/asm-docs-java.ts b/lib/asm-docs/generated/asm-docs-java.ts index 9fa10c36a..6398753f4 100644 --- a/lib/asm-docs/generated/asm-docs-java.ts +++ b/lib/asm-docs/generated/asm-docs-java.ts @@ -1,4 +1,4 @@ -import {AssemblyInstructionInfo} from '../base.js'; +import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js'; export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { if (!opcode) return; diff --git a/lib/asm-docs/generated/asm-docs-llvm.ts b/lib/asm-docs/generated/asm-docs-llvm.ts index d2f76b572..ac3975577 100644 --- a/lib/asm-docs/generated/asm-docs-llvm.ts +++ b/lib/asm-docs/generated/asm-docs-llvm.ts @@ -1,4 +1,4 @@ -import {AssemblyInstructionInfo} from '../base.js'; +import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js'; export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { if (!opcode) return; diff --git a/lib/asm-docs/generated/asm-docs-power.ts b/lib/asm-docs/generated/asm-docs-power.ts index 6f9b967a1..7b4dcadd7 100644 --- a/lib/asm-docs/generated/asm-docs-power.ts +++ b/lib/asm-docs/generated/asm-docs-power.ts @@ -1,4 +1,4 @@ -import { AssemblyInstructionInfo } from "../base.js"; +import type { AssemblyInstructionInfo } from "../../../types/assembly-docs.interfaces.js"; // Based on the IBM documentation of assembly instructions for AIX 7.3 (https://www.ibm.com/docs/en/aix/7.3?topic=reference-instruction-set). // diff --git a/lib/asm-docs/generated/asm-docs-ptx.ts b/lib/asm-docs/generated/asm-docs-ptx.ts index fbdd7c751..f319848cd 100644 --- a/lib/asm-docs/generated/asm-docs-ptx.ts +++ b/lib/asm-docs/generated/asm-docs-ptx.ts @@ -1,4 +1,4 @@ -import {AssemblyInstructionInfo} from '../base.js'; +import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js'; export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { if (!opcode) return; diff --git a/lib/asm-docs/generated/asm-docs-python.ts b/lib/asm-docs/generated/asm-docs-python.ts index 8104de574..e8d4df9eb 100644 --- a/lib/asm-docs/generated/asm-docs-python.ts +++ b/lib/asm-docs/generated/asm-docs-python.ts @@ -1,4 +1,4 @@ -import {AssemblyInstructionInfo} from '../base.js'; +import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js'; export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { if (!opcode) return; diff --git a/lib/asm-docs/generated/asm-docs-riscv64.ts b/lib/asm-docs/generated/asm-docs-riscv64.ts index fb10614ce..a3ade2459 100644 --- a/lib/asm-docs/generated/asm-docs-riscv64.ts +++ b/lib/asm-docs/generated/asm-docs-riscv64.ts @@ -1,4 +1,4 @@ -import {AssemblyInstructionInfo} from '../base.js'; +import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js'; export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { if (!opcode) return; diff --git a/lib/asm-docs/generated/asm-docs-sass.ts b/lib/asm-docs/generated/asm-docs-sass.ts index d118d0648..d7f9d4f5a 100644 --- a/lib/asm-docs/generated/asm-docs-sass.ts +++ b/lib/asm-docs/generated/asm-docs-sass.ts @@ -1,4 +1,4 @@ -import {AssemblyInstructionInfo} from '../base.js'; +import type {AssemblyInstructionInfo} from '../../../types/assembly-docs.interfaces.js'; export function getAsmOpcode(opcode: string | undefined): AssemblyInstructionInfo | undefined { if (!opcode) return; diff --git a/lib/asm-docs/java.ts b/lib/asm-docs/java.ts index 2881cd14d..62005427b 100644 --- a/lib/asm-docs/java.ts +++ b/lib/asm-docs/java.ts @@ -22,7 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; +import {BaseAssemblyDocumentationProvider} from './base.js'; import {getAsmOpcode} from './generated/asm-docs-java.js'; export class JavaDocumentationProvider extends BaseAssemblyDocumentationProvider { diff --git a/lib/asm-docs/llvm.ts b/lib/asm-docs/llvm.ts index aad856691..df7ec15d7 100644 --- a/lib/asm-docs/llvm.ts +++ b/lib/asm-docs/llvm.ts @@ -22,7 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; +import {BaseAssemblyDocumentationProvider} from './base.js'; import {getAsmOpcode} from './generated/asm-docs-llvm.js'; export class LLVMDocumentationProvider extends BaseAssemblyDocumentationProvider { diff --git a/lib/asm-docs/mos6502.ts b/lib/asm-docs/mos6502.ts index b30dcef12..7722b0708 100644 --- a/lib/asm-docs/mos6502.ts +++ b/lib/asm-docs/mos6502.ts @@ -22,7 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; +import {BaseAssemblyDocumentationProvider} from './base.js'; import {getAsmOpcode} from './generated/asm-docs-6502.js'; export class Mos6502DocumentationProvider extends BaseAssemblyDocumentationProvider { diff --git a/lib/asm-docs/power.ts b/lib/asm-docs/power.ts index 6f54ac384..5b6ebf1fc 100644 --- a/lib/asm-docs/power.ts +++ b/lib/asm-docs/power.ts @@ -22,7 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; +import {BaseAssemblyDocumentationProvider} from './base.js'; import {getAsmOpcode} from './generated/asm-docs-power.js'; export class PowerDocumentationProvider extends BaseAssemblyDocumentationProvider { diff --git a/lib/asm-docs/ptx.ts b/lib/asm-docs/ptx.ts index cbea9f26e..626303b5f 100644 --- a/lib/asm-docs/ptx.ts +++ b/lib/asm-docs/ptx.ts @@ -22,7 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; +import {BaseAssemblyDocumentationProvider} from './base.js'; import {getAsmOpcode} from './generated/asm-docs-ptx.js'; export class PTXDocumentationProvider extends BaseAssemblyDocumentationProvider { diff --git a/lib/asm-docs/python.ts b/lib/asm-docs/python.ts index 51190abcc..dbf1498bf 100644 --- a/lib/asm-docs/python.ts +++ b/lib/asm-docs/python.ts @@ -22,7 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; +import {BaseAssemblyDocumentationProvider} from './base.js'; import {getAsmOpcode} from './generated/asm-docs-python.js'; export class PythonDocumentationProvider extends BaseAssemblyDocumentationProvider { diff --git a/lib/asm-docs/riscv64.ts b/lib/asm-docs/riscv64.ts index 529d72588..61fae585d 100644 --- a/lib/asm-docs/riscv64.ts +++ b/lib/asm-docs/riscv64.ts @@ -22,7 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; +import {BaseAssemblyDocumentationProvider} from './base.js'; import {getAsmOpcode} from './generated/asm-docs-riscv64.js'; export class Riscv64DocumentationProvider extends BaseAssemblyDocumentationProvider { diff --git a/lib/asm-docs/sass.ts b/lib/asm-docs/sass.ts index 6f6d536ce..c95dae887 100644 --- a/lib/asm-docs/sass.ts +++ b/lib/asm-docs/sass.ts @@ -22,7 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; +import {BaseAssemblyDocumentationProvider} from './base.js'; import {getAsmOpcode} from './generated/asm-docs-sass.js'; export class SASSDocumentationProvider extends BaseAssemblyDocumentationProvider { diff --git a/lib/asm-docs/wdc65c816.ts b/lib/asm-docs/wdc65c816.ts index 9bfeed303..51ce873d5 100644 --- a/lib/asm-docs/wdc65c816.ts +++ b/lib/asm-docs/wdc65c816.ts @@ -22,7 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo, BaseAssemblyDocumentationProvider} from './base.js'; +import type {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; +import {BaseAssemblyDocumentationProvider} from './base.js'; import {getAsmOpcode} from './generated/asm-docs-65c816.js'; export class WDC65c816DocumentationProvider extends BaseAssemblyDocumentationProvider { diff --git a/package.json b/package.json index 2a34a8ec8..ea93fec93 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,8 @@ "test": "vitest run", "test:watch": "vitest", "test-min": "vitest run --exclude test/filter-tests.ts", - "check": "npm run ts-check && npm run lint-check && npm run test-min -- --reporter dot", + "check": "npm run ts-check && npm run lint-check && npm run check-frontend-imports && npm run test-min -- --reporter dot", + "check-frontend-imports": "node ./etc/scripts/check-frontend-imports.js", "dev": "cross-env NODE_ENV=DEV node --no-warnings=ExperimentalWarning --import=tsx app.ts", "debugger": "cross-env NODE_ENV=DEV node --import=tsx --inspect-brk app.ts", "debug": "cross-env NODE_ENV=DEV node --no-warnings=ExperimentalWarning --import=tsx app.ts --debug", diff --git a/static/compiler-shared.interfaces.ts b/static/compiler-shared.interfaces.ts index 70e103182..ed29e391f 100644 --- a/static/compiler-shared.interfaces.ts +++ b/static/compiler-shared.interfaces.ts @@ -22,8 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import type {ConfiguredOverrides} from './compilation/compiler-overrides.interfaces.js'; -import type {ConfiguredRuntimeTools} from './execution/execution.interfaces.js'; +import type {ConfiguredOverrides} from '../types/compilation/compiler-overrides.interfaces.js'; +import type {ConfiguredRuntimeTools} from '../types/execution/execution.interfaces.js'; import type {CompilerState} from './panes/compiler.interfaces.js'; import type {ExecutorState} from './panes/executor.interfaces.js'; diff --git a/static/compiler-shared.ts b/static/compiler-shared.ts index b440c4c94..a7ec9a3a2 100644 --- a/static/compiler-shared.ts +++ b/static/compiler-shared.ts @@ -22,9 +22,9 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import type {ConfiguredOverrides} from './compilation/compiler-overrides.interfaces.js'; +import type {ConfiguredOverrides} from '../types/compilation/compiler-overrides.interfaces.js'; +import {ConfiguredRuntimeTools} from '../types/execution/execution.interfaces.js'; import type {ICompilerShared} from './compiler-shared.interfaces.js'; -import {ConfiguredRuntimeTools} from './execution/execution.interfaces.js'; import type {CompilerState} from './panes/compiler.interfaces.js'; import type {ExecutorState} from './panes/executor.interfaces.js'; import {CompilerOverridesWidget} from './widgets/compiler-overrides.js'; diff --git a/static/components.interfaces.ts b/static/components.interfaces.ts index 5aa9cf04a..ccff0080e 100644 --- a/static/components.interfaces.ts +++ b/static/components.interfaces.ts @@ -22,9 +22,9 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. +import {ConfiguredOverrides} from '../types/compilation/compiler-overrides.interfaces.js'; +import {ConfiguredRuntimeTools} from '../types/execution/execution.interfaces.js'; import {CompilerOutputOptions} from '../types/features/filters.interfaces.js'; -import {ConfiguredOverrides} from './compilation/compiler-overrides.interfaces.js'; -import {ConfiguredRuntimeTools} from './execution/execution.interfaces.js'; import {CfgState} from './panes/cfg-view.interfaces.js'; import {ClangirState} from './panes/clangir-view.interfaces.js'; import {GccDumpViewState} from './panes/gccdump-view.interfaces.js'; diff --git a/static/components.ts b/static/components.ts index 02e508435..d98fd3cca 100644 --- a/static/components.ts +++ b/static/components.ts @@ -25,7 +25,9 @@ import {ParseFiltersAndOutputOptions} from '../types/features/filters.interfaces.js'; import {GccDumpViewState} from './panes/gccdump-view.interfaces.js'; -import {ConfiguredOverrides} from './compilation/compiler-overrides.interfaces.js'; +import {ConfiguredOverrides} from '../types/compilation/compiler-overrides.interfaces.js'; +import {ConfiguredRuntimeTools} from '../types/execution/execution.interfaces.js'; +import {LanguageKey} from '../types/languages.interfaces.js'; import { AST_VIEW_COMPONENT_NAME, CFG_VIEW_COMPONENT_NAME, @@ -111,8 +113,6 @@ import { TREE_COMPONENT_NAME, ToolViewState, } from './components.interfaces.js'; -import {ConfiguredRuntimeTools} from './execution/execution.interfaces.js'; -import {LanguageKey} from './languages.interfaces.js'; /** Get an empty compiler component. */ export function getCompiler(editorId: number, lang: string): ComponentConfig { diff --git a/static/event-map.ts b/static/event-map.ts index c76811294..62e675f92 100644 --- a/static/event-map.ts +++ b/static/event-map.ts @@ -22,13 +22,13 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. +import {ClangirBackendOptions} from '../types/compilation/clangir.interfaces.js'; import {CompilationResult} from '../types/compilation/compilation.interfaces.js'; +import {LLVMIrBackendOptions} from '../types/compilation/ir.interfaces.js'; +import {OptPipelineBackendOptions} from '../types/compilation/opt-pipeline-output.interfaces.js'; import {CompilerInfo} from '../types/compiler.interfaces.js'; import {Language, LanguageKey} from '../types/languages.interfaces.js'; import {MessageWithLocation} from '../types/resultline/resultline.interfaces.js'; -import {ClangirBackendOptions} from './compilation/clangir.interfaces.js'; -import {LLVMIrBackendOptions} from './compilation/ir.interfaces.js'; -import {OptPipelineBackendOptions} from './compilation/opt-pipeline-output.interfaces.js'; import {NewToolSettings, ToolState} from './components.interfaces.js'; import {Motd} from './motd.interfaces.js'; import {GccDumpFiltersState, GccDumpViewSelectedPass} from './panes/gccdump-view.interfaces.js'; diff --git a/static/hub.ts b/static/hub.ts index 0f4aa496f..d201ab448 100644 --- a/static/hub.ts +++ b/static/hub.ts @@ -26,6 +26,7 @@ import GoldenLayout, {ContentItem} from 'golden-layout'; type GLC = GoldenLayout.Container; import _ from 'underscore'; +import {LanguageKey} from '../types/languages.interfaces.js'; import {CompilerService} from './compiler-service.js'; import { AST_VIEW_COMPONENT_NAME, @@ -61,7 +62,6 @@ import { import {EventHub} from './event-hub.js'; import {EventMap} from './event-map.js'; import {IdentifierSet} from './identifier-set.js'; -import {LanguageKey} from './languages.interfaces.js'; import {Ast as AstView} from './panes/ast-view.js'; import {Cfg as CfgView} from './panes/cfg-view.js'; import {Clangir as ClangirView} from './panes/clangir-view.js'; diff --git a/static/lib-utils.ts b/static/lib-utils.ts index f1a5b2b68..15f80325f 100644 --- a/static/lib-utils.ts +++ b/static/lib-utils.ts @@ -23,7 +23,7 @@ // POSSIBILITY OF SUCH DAMAGE. import {getRemoteId} from '../shared/remote-utils.js'; -import {Remote} from './compiler.interfaces.js'; +import {Remote} from '../types/compiler.interfaces.js'; import {LanguageLibs, Library} from './options.interfaces.js'; import {options} from './options.js'; diff --git a/static/line-colouring.ts b/static/line-colouring.ts index 731160cc1..ab0da4207 100644 --- a/static/line-colouring.ts +++ b/static/line-colouring.ts @@ -23,8 +23,8 @@ // POSSIBILITY OF SUCH DAMAGE. import _ from 'underscore'; +import {ResultLine} from '../types/resultline/resultline.interfaces.js'; import {MultifileService} from './multifile-service.js'; -import {ResultLine} from './resultline/resultline.interfaces.js'; interface ColouredSourcelineInfo { sourceLine: number; diff --git a/static/main.ts b/static/main.ts index 2fa1f661d..dfcb0e8e2 100644 --- a/static/main.ts +++ b/static/main.ts @@ -62,8 +62,8 @@ import {ComponentConfig, EmptyCompilerState, StateWithId, StateWithLanguage} fro import {CompilerExplorerOptions} from './global.js'; import * as utils from '../shared/common-utils.js'; +import {ParseFiltersAndOutputOptions} from '../types/features/filters.interfaces.js'; import * as BootstrapUtils from './bootstrap-utils.js'; -import {ParseFiltersAndOutputOptions} from './features/filters.interfaces.js'; import {localStorage, sessionThenLocalStorage} from './local.js'; import {Printerinator} from './print-view.js'; import {setupRealDark, takeUsersOutOfRealDark} from './real-dark.js'; diff --git a/static/multifile-service.ts b/static/multifile-service.ts index 99b026de7..ea38ac583 100644 --- a/static/multifile-service.ts +++ b/static/multifile-service.ts @@ -27,9 +27,9 @@ import JSZip from 'jszip'; import path from 'path-browserify'; import _ from 'underscore'; import {FiledataPair} from '../types/compilation/compilation.interfaces.js'; +import {LanguageKey} from '../types/languages.interfaces.js'; import {unwrap} from './assert.js'; import {Hub} from './hub.js'; -import {LanguageKey} from './languages.interfaces.js'; import * as options from './options.js'; import {Alert} from './widgets/alert.js'; diff --git a/static/panes/ast-view.ts b/static/panes/ast-view.ts index 2cf538827..94423204c 100644 --- a/static/panes/ast-view.ts +++ b/static/panes/ast-view.ts @@ -33,11 +33,11 @@ import {AstState} from './ast-view.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPane} from './pane.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; +import {ResultLine} from '../../types/resultline/resultline.interfaces.js'; import {unwrap} from '../assert.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; import {Hub} from '../hub.js'; -import {ResultLine} from '../resultline/resultline.interfaces.js'; type DecorationEntry = { linkedCode: any[]; diff --git a/static/panes/cfg-view.ts b/static/panes/cfg-view.ts index 4c62e668a..0119ae187 100644 --- a/static/panes/cfg-view.ts +++ b/static/panes/cfg-view.ts @@ -43,9 +43,9 @@ import { CFGResult, CfgDescriptor, } from '../../types/compilation/cfg.interfaces.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {assert, unwrap} from '../assert.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; import {GraphLayoutCore} from '../graph-layout-core.js'; import * as MonacoConfig from '../monaco-config.js'; diff --git a/static/panes/clangir-view.ts b/static/panes/clangir-view.ts index 8946dc333..f25fb5629 100644 --- a/static/panes/clangir-view.ts +++ b/static/panes/clangir-view.ts @@ -32,8 +32,8 @@ import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPane} from './pane.js'; import {ClangirBackendOptions} from '../../types/compilation/clangir.interfaces.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {Hub} from '../hub.js'; import {extendConfig} from '../monaco-config.js'; import {Toggles} from '../widgets/toggles.js'; diff --git a/static/panes/compiler.interfaces.ts b/static/panes/compiler.interfaces.ts index d1afaba0d..92891e171 100644 --- a/static/panes/compiler.interfaces.ts +++ b/static/panes/compiler.interfaces.ts @@ -22,8 +22,8 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import type {ConfiguredOverrides} from '../compilation/compiler-overrides.interfaces.js'; -import {ConfiguredRuntimeTools} from '../execution/execution.interfaces.js'; +import type {ConfiguredOverrides} from '../../types/compilation/compiler-overrides.interfaces.js'; +import {ConfiguredRuntimeTools} from '../../types/execution/execution.interfaces.js'; import {WidgetState} from '../widgets/libs-widget.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js'; diff --git a/static/panes/compiler.ts b/static/panes/compiler.ts index 70bf51c15..22b889886 100644 --- a/static/panes/compiler.ts +++ b/static/panes/compiler.ts @@ -29,7 +29,7 @@ import {LRUCache} from 'lru-cache'; import * as monaco from 'monaco-editor'; import {editor} from 'monaco-editor'; import _ from 'underscore'; -import {AssemblyInstructionInfo} from '../../lib/asm-docs/base.js'; +import {AssemblyInstructionInfo} from '../../types/assembly-docs.interfaces.js'; import { ActiveTool, BypassCache, @@ -39,13 +39,13 @@ import { FiledataPair, GccDumpFlags, } from '../../types/compilation/compilation.interfaces.js'; +import {OptPipelineBackendOptions} from '../../types/compilation/opt-pipeline-output.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {ResultLine} from '../../types/resultline/resultline.interfaces.js'; import {getAssemblyDocumentation} from '../api/api.js'; import * as BootstrapUtils from '../bootstrap-utils.js'; import * as codeLensHandler from '../codelens-handler.js'; import * as colour from '../colour.js'; -import {OptPipelineBackendOptions} from '../compilation/opt-pipeline-output.interfaces.js'; import {CompilationStatus} from '../compiler-service.interfaces.js'; import {CompilerService} from '../compiler-service.js'; import {ComponentConfig, NewToolSettings, ToolViewState} from '../components.interfaces.js'; @@ -71,16 +71,16 @@ import {PPOptions} from './pp-view.interfaces.js'; import IEditorMouseEvent = editor.IEditorMouseEvent; import fileSaver from 'file-saver'; import {escapeHTML, splitArguments} from '../../shared/common-utils.js'; +import {ClangirBackendOptions} from '../../types/compilation/clangir.interfaces.js'; +import {LLVMIrBackendOptions} from '../../types/compilation/ir.interfaces.js'; import {CompilerOutputOptions} from '../../types/features/filters.interfaces.js'; +import {InstructionSet} from '../../types/instructionsets.js'; +import {LanguageKey} from '../../types/languages.interfaces.js'; import {Artifact, ArtifactType, Tool} from '../../types/tool.interfaces.js'; import {assert, unwrap, unwrapString} from '../assert.js'; -import {ClangirBackendOptions} from '../compilation/clangir.interfaces.js'; -import {LLVMIrBackendOptions} from '../compilation/ir.interfaces.js'; import {ICompilerShared} from '../compiler-shared.interfaces.js'; import {CompilerShared} from '../compiler-shared.js'; import {SourceAndFiles} from '../download-service.js'; -import {InstructionSet} from '../instructionsets.js'; -import {LanguageKey} from '../languages.interfaces.js'; import {SentryCapture} from '../sentry.js'; import {CompilerVersionInfo, setCompilerVersionPopoverForPane} from '../widgets/compiler-version-info.js'; diff --git a/static/panes/conformance-view.ts b/static/panes/conformance-view.ts index 0e1a4a0e6..26fadcedd 100644 --- a/static/panes/conformance-view.ts +++ b/static/panes/conformance-view.ts @@ -28,6 +28,7 @@ import _ from 'underscore'; import {escapeHTML, unique} from '../../shared/common-utils.js'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js'; +import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces.js'; import {unwrapString} from '../assert.js'; import * as BootstrapUtils from '../bootstrap-utils.js'; import {CompilationStatus} from '../compiler-service.interfaces.js'; @@ -36,7 +37,6 @@ import * as Components from '../components.js'; import {SourceAndFiles} from '../download-service.js'; import {Hub} from '../hub.js'; import * as LibUtils from '../lib-utils.js'; -import {SelectedLibraryVersion} from '../libraries/libraries.interfaces.js'; import {Library, LibraryVersion} from '../options.interfaces.js'; import {options} from '../options.js'; import * as utils from '../utils.js'; diff --git a/static/panes/device-view.ts b/static/panes/device-view.ts index 70b4114a9..e85c76d7b 100644 --- a/static/panes/device-view.ts +++ b/static/panes/device-view.ts @@ -29,11 +29,11 @@ import TomSelect from 'tom-select'; import _ from 'underscore'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js'; +import {InstructionSet} from '../../types/instructionsets.js'; import {ResultLine} from '../../types/resultline/resultline.interfaces.js'; import {assert} from '../assert.js'; import * as colour from '../colour.js'; import {Hub} from '../hub.js'; -import {InstructionSet} from '../instructionsets.js'; import * as monacoConfig from '../monaco-config.js'; import * as utils from '../utils.js'; import {Alert} from '../widgets/alert.js'; diff --git a/static/panes/diff.ts b/static/panes/diff.ts index 972aeb72e..ead0c801f 100644 --- a/static/panes/diff.ts +++ b/static/panes/diff.ts @@ -29,8 +29,8 @@ import TomSelect from 'tom-select'; import {Container} from 'golden-layout'; import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; import {CompilerInfo} from '../../types/compiler.interfaces.js'; +import {ResultLine} from '../../types/resultline/resultline.interfaces.js'; import {Hub} from '../hub.js'; -import {ResultLine} from '../resultline/resultline.interfaces.js'; import {DiffState, DiffType} from './diff.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPane} from './pane.js'; diff --git a/static/panes/flags-view.ts b/static/panes/flags-view.ts index f7de9d3f6..5505646bb 100644 --- a/static/panes/flags-view.ts +++ b/static/panes/flags-view.ts @@ -26,8 +26,8 @@ import {Container} from 'golden-layout'; import $ from 'jquery'; import * as monaco from 'monaco-editor'; import _ from 'underscore'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {Hub} from '../hub.js'; import * as monacoConfig from '../monaco-config.js'; import {Settings, SiteSettings} from '../settings.js'; diff --git a/static/panes/gccdump-view.ts b/static/panes/gccdump-view.ts index fc9f890ae..5a4514594 100644 --- a/static/panes/gccdump-view.ts +++ b/static/panes/gccdump-view.ts @@ -39,9 +39,9 @@ import {MonacoPane} from './pane.js'; import {GccDumpFiltersState, GccDumpViewSelectedPass, GccDumpViewState} from './gccdump-view.interfaces.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {assert, unwrap} from '../assert.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; export class GccDump extends MonacoPane { selectize: TomSelect; diff --git a/static/panes/gnatdebug-view.ts b/static/panes/gnatdebug-view.ts index 66ac033eb..dc9299fb8 100644 --- a/static/panes/gnatdebug-view.ts +++ b/static/panes/gnatdebug-view.ts @@ -31,9 +31,9 @@ import {GnatDebugState} from './gnatdebug-view.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPane} from './pane.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {unwrap} from '../assert.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; import {Hub} from '../hub.js'; import {extendConfig} from '../monaco-config.js'; diff --git a/static/panes/gnatdebugtree-view.ts b/static/panes/gnatdebugtree-view.ts index 94be08d29..1baebd38e 100644 --- a/static/panes/gnatdebugtree-view.ts +++ b/static/panes/gnatdebugtree-view.ts @@ -31,9 +31,9 @@ import {GnatDebugTreeState} from './gnatdebugtree-view.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPane} from './pane.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {unwrap} from '../assert.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; import {Hub} from '../hub.js'; import {extendConfig} from '../monaco-config.js'; diff --git a/static/panes/haskellcmm-view.ts b/static/panes/haskellcmm-view.ts index 9cad8504f..34164cd41 100644 --- a/static/panes/haskellcmm-view.ts +++ b/static/panes/haskellcmm-view.ts @@ -31,8 +31,8 @@ import {HaskellCmmState} from './haskellcmm-view.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPane} from './pane.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {Hub} from '../hub.js'; import {extendConfig} from '../monaco-config.js'; diff --git a/static/panes/haskellcore-view.ts b/static/panes/haskellcore-view.ts index 66e163f4d..681011bbf 100644 --- a/static/panes/haskellcore-view.ts +++ b/static/panes/haskellcore-view.ts @@ -31,8 +31,8 @@ import {HaskellCoreState} from './haskellcore-view.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPane} from './pane.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {Hub} from '../hub.js'; import {extendConfig} from '../monaco-config.js'; diff --git a/static/panes/haskellstg-view.ts b/static/panes/haskellstg-view.ts index 8128d264f..5f8ebc526 100644 --- a/static/panes/haskellstg-view.ts +++ b/static/panes/haskellstg-view.ts @@ -31,8 +31,8 @@ import {HaskellStgState} from './haskellstg-view.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPane} from './pane.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {Hub} from '../hub.js'; import {extendConfig} from '../monaco-config.js'; diff --git a/static/panes/ir-view.ts b/static/panes/ir-view.ts index 58afeebbd..9162118fe 100644 --- a/static/panes/ir-view.ts +++ b/static/panes/ir-view.ts @@ -42,9 +42,9 @@ import * as Components from '../components.js'; import {Hub} from '../hub.js'; import {Toggles} from '../widgets/toggles.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; import {LLVMIrBackendOptions} from '../../types/compilation/ir.interfaces.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {SentryCapture} from '../sentry.js'; import {Alert} from '../widgets/alert.js'; import {Compiler} from './compiler.js'; diff --git a/static/panes/opt-pipeline.ts b/static/panes/opt-pipeline.ts index cdb9f2ecd..c09ffd7f9 100644 --- a/static/panes/opt-pipeline.ts +++ b/static/panes/opt-pipeline.ts @@ -40,14 +40,14 @@ import * as utils from '../utils.js'; import {Toggles} from '../widgets/toggles.js'; import {escapeHTML} from '../../shared/common-utils.js'; -import {unwrap, unwrapString} from '../assert.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; import { OptPipelineBackendOptions, OptPipelineOutput, OptPipelineResults, -} from '../compilation/opt-pipeline-output.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; +} from '../../types/compilation/opt-pipeline-output.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; +import {unwrap, unwrapString} from '../assert.js'; const MIN_SIDEBAR_WIDTH = 100; diff --git a/static/panes/opt-view.ts b/static/panes/opt-view.ts index 99454566d..b5ae0bdf1 100644 --- a/static/panes/opt-view.ts +++ b/static/panes/opt-view.ts @@ -31,9 +31,9 @@ import {OptRemark, OptState} from './opt-view.interfaces.js'; import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPane} from './pane.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {unwrap} from '../assert.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; import {Hub} from '../hub.js'; import {extendConfig} from '../monaco-config.js'; import {Toggles} from '../widgets/toggles.js'; diff --git a/static/panes/pane.ts b/static/panes/pane.ts index 2405fdc48..103ced69b 100644 --- a/static/panes/pane.ts +++ b/static/panes/pane.ts @@ -33,9 +33,9 @@ import * as utils from '../utils.js'; import {FontScale} from '../widgets/fontscale.js'; import {escapeHTML} from '../../shared/common-utils.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {unwrap} from '../assert.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; import {EventHub} from '../event-hub.js'; import {Hub} from '../hub.js'; import {PaneRenaming} from '../widgets/pane-renaming.js'; diff --git a/static/panes/pp-view.ts b/static/panes/pp-view.ts index 1843de68d..679b7038a 100644 --- a/static/panes/pp-view.ts +++ b/static/panes/pp-view.ts @@ -26,9 +26,9 @@ import {Container} from 'golden-layout'; import $ from 'jquery'; import * as monaco from 'monaco-editor'; import _ from 'underscore'; +import {CompilationResult, PPOutput} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {unwrap} from '../assert.js'; -import {CompilationResult, PPOutput} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; import {Hub} from '../hub.js'; import * as monacoConfig from '../monaco-config.js'; import {Toggles} from '../widgets/toggles.js'; diff --git a/static/panes/rusthir-view.ts b/static/panes/rusthir-view.ts index fa969b322..868e94665 100644 --- a/static/panes/rusthir-view.ts +++ b/static/panes/rusthir-view.ts @@ -31,8 +31,8 @@ import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPane} from './pane.js'; import {RustHirState} from './rusthir-view.interfaces.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {Hub} from '../hub.js'; import {extendConfig} from '../monaco-config.js'; diff --git a/static/panes/rustmacroexp-view.ts b/static/panes/rustmacroexp-view.ts index 42b962240..2a05be544 100644 --- a/static/panes/rustmacroexp-view.ts +++ b/static/panes/rustmacroexp-view.ts @@ -31,8 +31,8 @@ import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPane} from './pane.js'; import {RustMacroExpState} from './rustmacroexp-view.interfaces.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {Hub} from '../hub.js'; import {extendConfig} from '../monaco-config.js'; diff --git a/static/panes/rustmir-view.ts b/static/panes/rustmir-view.ts index a9ffcb02a..3e7c71dbe 100644 --- a/static/panes/rustmir-view.ts +++ b/static/panes/rustmir-view.ts @@ -31,8 +31,8 @@ import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPane} from './pane.js'; import {RustMirState} from './rustmir-view.interfaces.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {Hub} from '../hub.js'; import {extendConfig} from '../monaco-config.js'; diff --git a/static/panes/stack-usage-view.ts b/static/panes/stack-usage-view.ts index 47060cc80..0e5365f42 100644 --- a/static/panes/stack-usage-view.ts +++ b/static/panes/stack-usage-view.ts @@ -31,9 +31,9 @@ import {MonacoPaneState} from './pane.interfaces.js'; import {MonacoPane} from './pane.js'; import {StackUsageState, suCodeEntry} from './stack-usage-view.interfaces.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {unwrap} from '../assert.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; import {Hub} from '../hub.js'; import {extendConfig} from '../monaco-config.js'; import {SentryCapture} from '../sentry.js'; diff --git a/static/panes/tool-input-view.ts b/static/panes/tool-input-view.ts index 44de7e4a5..eb4ad5073 100644 --- a/static/panes/tool-input-view.ts +++ b/static/panes/tool-input-view.ts @@ -26,8 +26,8 @@ import {Container} from 'golden-layout'; import $ from 'jquery'; import * as monaco from 'monaco-editor'; import _ from 'underscore'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {ToolState} from '../components.interfaces.js'; import {Hub} from '../hub.js'; import * as monacoConfig from '../monaco-config.js'; diff --git a/static/panes/tool.ts b/static/panes/tool.ts index cb603e8ea..95c5e47ed 100644 --- a/static/panes/tool.ts +++ b/static/panes/tool.ts @@ -27,15 +27,15 @@ import {Container} from 'golden-layout'; import $ from 'jquery'; import * as monaco from 'monaco-editor'; import _ from 'underscore'; +import {CompilationResult} from '../../types/compilation/compilation.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; +import {LanguageKey} from '../../types/languages.interfaces.js'; import * as AnsiToHtml from '../ansi-to-html.js'; import {unwrap, unwrapString} from '../assert.js'; -import {CompilationResult} from '../compilation/compilation.interfaces.js'; import {CompilerService} from '../compiler-service.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; import {ComponentConfig, NewToolSettings, PopulatedToolInputViewState, ToolState} from '../components.interfaces.js'; import * as Components from '../components.js'; import {Hub} from '../hub.js'; -import {LanguageKey} from '../languages.interfaces.js'; import * as monacoConfig from '../monaco-config.js'; import {options as ceoptions} from '../options.js'; import * as utils from '../utils.js'; diff --git a/static/panes/tree.ts b/static/panes/tree.ts index f255047bf..bf0087a76 100644 --- a/static/panes/tree.ts +++ b/static/panes/tree.ts @@ -28,16 +28,16 @@ import $ from 'jquery'; import TomSelect from 'tom-select'; import _ from 'underscore'; import {escapeHTML} from '../../shared/common-utils.js'; +import {LanguageKey} from '../../types/languages.interfaces.js'; +import {ResultLine} from '../../types/resultline/resultline.interfaces.js'; import {assert, unwrap, unwrapString} from '../assert.js'; import * as BootstrapUtils from '../bootstrap-utils.js'; import * as Components from '../components.js'; import {EventHub} from '../event-hub.js'; import {Hub} from '../hub.js'; -import {LanguageKey} from '../languages.interfaces.js'; import {LineColouring} from '../line-colouring.js'; import {MultifileFile, MultifileService, MultifileServiceState} from '../multifile-service.js'; import {options} from '../options.js'; -import {ResultLine} from '../resultline/resultline.interfaces.js'; import {Settings, SiteSettings} from '../settings.js'; import * as utils from '../utils.js'; import {Alert} from '../widgets/alert.js'; diff --git a/static/widgets/compiler-overrides.ts b/static/widgets/compiler-overrides.ts index e54048854..db752f2da 100644 --- a/static/widgets/compiler-overrides.ts +++ b/static/widgets/compiler-overrides.ts @@ -29,9 +29,9 @@ import { ConfiguredOverrides, EnvVarOverrides, } from '../../types/compilation/compiler-overrides.interfaces.js'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import {assert, unwrap} from '../assert.js'; import * as BootstrapUtils from '../bootstrap-utils.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; import {localStorage} from '../local.js'; import {options} from '../options.js'; diff --git a/static/widgets/runtime-tools.ts b/static/widgets/runtime-tools.ts index 6ce2d6b57..c42430ab1 100644 --- a/static/widgets/runtime-tools.ts +++ b/static/widgets/runtime-tools.ts @@ -23,6 +23,7 @@ // POSSIBILITY OF SUCH DAMAGE. import $ from 'jquery'; +import {CompilerInfo} from '../../types/compiler.interfaces.js'; import { ConfiguredRuntimeTool, ConfiguredRuntimeTools, @@ -33,7 +34,6 @@ import { } from '../../types/execution/execution.interfaces.js'; import {assert} from '../assert.js'; import * as BootstrapUtils from '../bootstrap-utils.js'; -import {CompilerInfo} from '../compiler.interfaces.js'; import {localStorage} from '../local.js'; import {options} from '../options.js'; diff --git a/tsconfig.frontend.json b/tsconfig.frontend.json index e0317fc7e..b489f9da2 100644 --- a/tsconfig.frontend.json +++ b/tsconfig.frontend.json @@ -3,7 +3,6 @@ "compilerOptions": { /* Module resolution */ "target": "es5", - "rootDirs": ["./static", "./types"], /* Code generation */ "inlineSources": true, "strictPropertyInitialization": false, diff --git a/types/assembly-docs.interfaces.ts b/types/assembly-docs.interfaces.ts new file mode 100644 index 000000000..8f42652a1 --- /dev/null +++ b/types/assembly-docs.interfaces.ts @@ -0,0 +1,25 @@ +// Copyright (c) 2021, Compiler Explorer Authors +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +export type AssemblyInstructionInfo = Record<'tooltip' | 'html' | 'url', string>; diff --git a/types/features/assembly-documentation.interfaces.ts b/types/features/assembly-documentation.interfaces.ts index fce10a592..677ed85f6 100644 --- a/types/features/assembly-documentation.interfaces.ts +++ b/types/features/assembly-documentation.interfaces.ts @@ -22,7 +22,7 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -import {AssemblyInstructionInfo} from '../../lib/asm-docs/base.js'; +import {AssemblyInstructionInfo} from '../assembly-docs.interfaces.js'; import {InstructionSet} from '../instructionsets.js'; export interface AssemblyDocumentationRequest { diff --git a/webpack.config.esm.ts b/webpack.config.esm.ts index 10fa5a19c..b35d4679e 100644 --- a/webpack.config.esm.ts +++ b/webpack.config.esm.ts @@ -52,7 +52,7 @@ const hasGit = fs.existsSync(path.resolve(__dirname, '.git')); // Hack alert: due to a variety of issues, sometimes we need to change // the name here. Mostly it's things like webpack changes that affect // how minification is done, even though that's supposed not to matter. -const webpackJsHack = '.v58.'; +const webpackJsHack = '.v59.'; const plugins: Webpack.WebpackPluginInstance[] = [ new MonacoEditorWebpackPlugin({ languages: [