diff --git a/.changeset/deslop-engine-in-core.md b/.changeset/deslop-engine-in-core.md new file mode 100644 index 000000000..60cab02fc --- /dev/null +++ b/.changeset/deslop-engine-in-core.md @@ -0,0 +1,5 @@ +--- +"deslop-js": patch +--- + +Restructure internally: the deslop analysis engine now lives in `@react-doctor/core` (under `src/deslop`, exposed via the `@react-doctor/core/deslop` subpath) and `deslop-js` is a thin facade that re-exports it. `vp pack` still bundles the engine into this package's `dist` (CJS + ESM) alongside the sibling `parse-worker.mjs`, so the published tarball stays self-contained and runtime-dependency-free beyond the existing `oxc-parser`/`oxc-resolver`/`fast-glob`/`minimatch` externals. The public API (`analyze`, `defineConfig`, `isOxcAstNode`, and every exported type) is unchanged. diff --git a/.changeset/deslop-export-oxc-ast-node.md b/.changeset/deslop-export-oxc-ast-node.md new file mode 100644 index 000000000..88ee15684 --- /dev/null +++ b/.changeset/deslop-export-oxc-ast-node.md @@ -0,0 +1,5 @@ +--- +"deslop-js": patch +--- + +Expose the `isOxcAstNode` type guard and its `OxcAstNode` interface from the package entry. These were already internal utilities; publishing them lets consumers walk oxc ASTs without re-declaring the same guard. No runtime behavior changes. diff --git a/.changeset/scramble-diagnostic-snippets.md b/.changeset/scramble-diagnostic-snippets.md new file mode 100644 index 000000000..ab4548895 --- /dev/null +++ b/.changeset/scramble-diagnostic-snippets.md @@ -0,0 +1,5 @@ +--- +"react-doctor": patch +--- + +Ship anonymized diagnostic snippets to telemetry. When Sentry tracing is enabled, each scan now emits a small, deduplicated, capped sample of the structural shapes that rules fire on — identifiers and literals are blinded, only the AST structure is preserved — as child spans of the run trace. No real source, names, paths, or literals leave the machine, and the pass is a no-op when telemetry is off. diff --git a/packages/api/package.json b/packages/api/package.json index c55299461..bdb7b5cbc 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -19,6 +19,7 @@ }, "dependencies": { "@react-doctor/core": "workspace:*", + "deslop-js": "workspace:*", "effect": "4.0.0-beta.70" }, "devDependencies": { diff --git a/packages/core/package.json b/packages/core/package.json index 862965eca..22af6fc02 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -14,6 +14,10 @@ "./schemas": { "types": "./dist/schemas.d.ts", "default": "./dist/schemas.js" + }, + "./deslop": { + "types": "./dist/deslop.d.ts", + "default": "./dist/deslop.js" } }, "scripts": { @@ -23,11 +27,15 @@ }, "dependencies": { "@effect/platform-node-shared": "4.0.0-beta.70", + "@oxc-project/types": "^0.132.0", "confbox": "^0.2.4", - "deslop-js": "workspace:*", "effect": "4.0.0-beta.70", "eslint-plugin-react-hooks": "^7.1.1", + "fast-glob": "^3.3.3", "jiti": "^2.7.0", + "minimatch": "^10.2.5", + "oxc-parser": "^0.132.0", + "oxc-resolver": "^11.19.1", "oxlint": ">=1.66.0 <1.67.0", "oxlint-plugin-react-doctor": "workspace:*", "picomatch": "^4.0.4", @@ -36,9 +44,11 @@ }, "devDependencies": { "@effect/vitest": "4.0.0-beta.70", + "@types/minimatch": "^5.1.2", "@types/node": "^25.6.0", "@types/picomatch": "^4.0.3", - "@types/semver": "^7.7.1" + "@types/semver": "^7.7.1", + "tsx": "^4.21.0" }, "engines": { "node": "^20.19.0 || >=22.13.0" diff --git a/packages/deslop-js/src/collect/config-string-entries.ts b/packages/core/src/deslop/collect/config-string-entries.ts similarity index 100% rename from packages/deslop-js/src/collect/config-string-entries.ts rename to packages/core/src/deslop/collect/config-string-entries.ts diff --git a/packages/deslop-js/src/collect/entries.ts b/packages/core/src/deslop/collect/entries.ts similarity index 100% rename from packages/deslop-js/src/collect/entries.ts rename to packages/core/src/deslop/collect/entries.ts diff --git a/packages/deslop-js/src/collect/expo-config-plugin-entries.ts b/packages/core/src/deslop/collect/expo-config-plugin-entries.ts similarity index 100% rename from packages/deslop-js/src/collect/expo-config-plugin-entries.ts rename to packages/core/src/deslop/collect/expo-config-plugin-entries.ts diff --git a/packages/deslop-js/src/collect/parallel-parse.ts b/packages/core/src/deslop/collect/parallel-parse.ts similarity index 100% rename from packages/deslop-js/src/collect/parallel-parse.ts rename to packages/core/src/deslop/collect/parallel-parse.ts diff --git a/packages/deslop-js/src/collect/parse-worker.ts b/packages/core/src/deslop/collect/parse-worker.ts similarity index 100% rename from packages/deslop-js/src/collect/parse-worker.ts rename to packages/core/src/deslop/collect/parse-worker.ts diff --git a/packages/deslop-js/src/collect/parse.ts b/packages/core/src/deslop/collect/parse.ts similarity index 100% rename from packages/deslop-js/src/collect/parse.ts rename to packages/core/src/deslop/collect/parse.ts diff --git a/packages/deslop-js/src/collect/sections-module-entries.ts b/packages/core/src/deslop/collect/sections-module-entries.ts similarity index 100% rename from packages/deslop-js/src/collect/sections-module-entries.ts rename to packages/core/src/deslop/collect/sections-module-entries.ts diff --git a/packages/deslop-js/src/collect/sibling-workspace-import-entries.ts b/packages/core/src/deslop/collect/sibling-workspace-import-entries.ts similarity index 100% rename from packages/deslop-js/src/collect/sibling-workspace-import-entries.ts rename to packages/core/src/deslop/collect/sibling-workspace-import-entries.ts diff --git a/packages/deslop-js/src/collect/workspaces.ts b/packages/core/src/deslop/collect/workspaces.ts similarity index 100% rename from packages/deslop-js/src/collect/workspaces.ts rename to packages/core/src/deslop/collect/workspaces.ts diff --git a/packages/deslop-js/src/constants.ts b/packages/core/src/deslop/constants.ts similarity index 100% rename from packages/deslop-js/src/constants.ts rename to packages/core/src/deslop/constants.ts diff --git a/packages/deslop-js/src/duplicate-blocks/clusters.ts b/packages/core/src/deslop/duplicate-blocks/clusters.ts similarity index 100% rename from packages/deslop-js/src/duplicate-blocks/clusters.ts rename to packages/core/src/deslop/duplicate-blocks/clusters.ts diff --git a/packages/deslop-js/src/duplicate-blocks/concatenate.ts b/packages/core/src/deslop/duplicate-blocks/concatenate.ts similarity index 100% rename from packages/deslop-js/src/duplicate-blocks/concatenate.ts rename to packages/core/src/deslop/duplicate-blocks/concatenate.ts diff --git a/packages/deslop-js/src/duplicate-blocks/extract.ts b/packages/core/src/deslop/duplicate-blocks/extract.ts similarity index 100% rename from packages/deslop-js/src/duplicate-blocks/extract.ts rename to packages/core/src/deslop/duplicate-blocks/extract.ts diff --git a/packages/deslop-js/src/duplicate-blocks/index.ts b/packages/core/src/deslop/duplicate-blocks/index.ts similarity index 100% rename from packages/deslop-js/src/duplicate-blocks/index.ts rename to packages/core/src/deslop/duplicate-blocks/index.ts diff --git a/packages/deslop-js/src/duplicate-blocks/normalize.ts b/packages/core/src/deslop/duplicate-blocks/normalize.ts similarity index 100% rename from packages/deslop-js/src/duplicate-blocks/normalize.ts rename to packages/core/src/deslop/duplicate-blocks/normalize.ts diff --git a/packages/deslop-js/src/duplicate-blocks/shadowed-directory-pairs.ts b/packages/core/src/deslop/duplicate-blocks/shadowed-directory-pairs.ts similarity index 100% rename from packages/deslop-js/src/duplicate-blocks/shadowed-directory-pairs.ts rename to packages/core/src/deslop/duplicate-blocks/shadowed-directory-pairs.ts diff --git a/packages/deslop-js/src/duplicate-blocks/suffix-array.ts b/packages/core/src/deslop/duplicate-blocks/suffix-array.ts similarity index 100% rename from packages/deslop-js/src/duplicate-blocks/suffix-array.ts rename to packages/core/src/deslop/duplicate-blocks/suffix-array.ts diff --git a/packages/deslop-js/src/duplicate-blocks/token-types.ts b/packages/core/src/deslop/duplicate-blocks/token-types.ts similarity index 100% rename from packages/deslop-js/src/duplicate-blocks/token-types.ts rename to packages/core/src/deslop/duplicate-blocks/token-types.ts diff --git a/packages/deslop-js/src/duplicate-blocks/token-visitor.ts b/packages/core/src/deslop/duplicate-blocks/token-visitor.ts similarity index 100% rename from packages/deslop-js/src/duplicate-blocks/token-visitor.ts rename to packages/core/src/deslop/duplicate-blocks/token-visitor.ts diff --git a/packages/deslop-js/src/errors.ts b/packages/core/src/deslop/errors.ts similarity index 100% rename from packages/deslop-js/src/errors.ts rename to packages/core/src/deslop/errors.ts diff --git a/packages/core/src/deslop/index.ts b/packages/core/src/deslop/index.ts new file mode 100644 index 000000000..ec50eac55 --- /dev/null +++ b/packages/core/src/deslop/index.ts @@ -0,0 +1,730 @@ +import { resolve, dirname } from "node:path"; +import { existsSync, readFileSync } from "node:fs"; +import fg from "fast-glob"; +import type { DeslopConfig, DeslopError, ScanResult } from "./types.js"; +import { + ConfigError, + DetectorError, + ResolverError, + WorkspaceError, + describeUnknownError, +} from "./errors.js"; +import { + DEFAULT_DUPLICATE_BLOCK_MIN_LINES, + DEFAULT_DUPLICATE_BLOCK_MIN_OCCURRENCES, + DEFAULT_DUPLICATE_BLOCK_MIN_TOKENS, + DEFAULT_COGNITIVE_THRESHOLD, + DEFAULT_CYCLOMATIC_THRESHOLD, + DEFAULT_FUNCTION_LINE_THRESHOLD, + DEFAULT_PARAM_COUNT_THRESHOLD, + DEFAULT_ENTRY_GLOBS, + DEFAULT_EXTENSIONS, + DEFAULT_SEMANTIC_DECORATOR_ALLOWLIST, + OUTPUT_DIRECTORIES, +} from "./constants.js"; +import { collectSourceFiles, resolveEntries, getFrameworkExclusions } from "./collect/entries.js"; +import { resolveWorkspaces } from "./collect/workspaces.js"; +import { parseSourceFile } from "./collect/parse.js"; +import { parseFilesInParallel } from "./collect/parallel-parse.js"; +import { createResolver } from "./resolver/resolve.js"; +import { buildDependencyGraph, type ModuleLinkInput } from "./linker/build.js"; +import { traceReachability } from "./linker/reachability.js"; +import { resolveReExportChains } from "./linker/re-exports.js"; +import { generateReport } from "./report/generate.js"; +import { findMonorepoRoot } from "./utils/find-monorepo-root.js"; +import { collectGitIgnoredPaths } from "./utils/collect-git-ignored-paths.js"; + +const STYLE_EXTENSIONS = [".css", ".scss"]; + +const REACT_NATIVE_ENABLERS = ["react-native", "expo"]; + +const basenameFromPath = (filePath: string): string => { + const lastSlashIndex = filePath.lastIndexOf("/"); + return lastSlashIndex === -1 ? filePath : filePath.slice(lastSlashIndex + 1); +}; + +/** + * Dynamic registry pattern: many codebases use a central "schema/registry" + * module that lists tool/command/page filenames as string literals, then a + * runner spawns them via `path.resolve(dir, file)` or `import()`. Static + * analysis can't follow the indirection, so those targets get falsely + * flagged as unused. + * + * Heuristic: if a parsed string literal exactly matches the basename of + * exactly one file in the project, treat that file as an entry point. + * Uniqueness guards against false-positives from common names like + * `index.ts` matching dozens of unrelated files. + */ +const markFilenameRegistryEntries = ( + moduleGraph: ReturnType, +): void => { + const basenameToModuleIndex = new Map(); + for (const module of moduleGraph.modules) { + const basename = basenameFromPath(module.fileId.path); + const existing = basenameToModuleIndex.get(basename); + if (existing === undefined) { + basenameToModuleIndex.set(basename, module.fileId.index); + } else if (existing !== "ambiguous") { + basenameToModuleIndex.set(basename, "ambiguous"); + } + } + + for (const module of moduleGraph.modules) { + for (const referencedFilename of module.referencedFilenames) { + const targetIndex = basenameToModuleIndex.get(referencedFilename); + if (typeof targetIndex !== "number") continue; + const targetModule = moduleGraph.modules[targetIndex]; + if (!targetModule || targetModule.isEntryPoint) continue; + if (targetModule.fileId.index === module.fileId.index) continue; + targetModule.isEntryPoint = true; + } + } +}; + +const detectReactNative = ( + rootDir: string, + workspacePackages: Array<{ directory: string }>, +): boolean => { + const directoriesToCheck = [ + rootDir, + ...workspacePackages.map((workspacePackage) => workspacePackage.directory), + ]; + for (const directory of directoriesToCheck) { + const packageJsonPath = resolve(directory, "package.json"); + if (!existsSync(packageJsonPath)) continue; + try { + const content = readFileSync(packageJsonPath, "utf-8"); + const packageJson = JSON.parse(content); + const allDependencies = { + ...packageJson.dependencies, + ...packageJson.devDependencies, + ...packageJson.optionalDependencies, + }; + if (REACT_NATIVE_ENABLERS.some((enabler) => enabler in allDependencies)) return true; + } catch { + continue; + } + } + return false; +}; + +export type { + ScanResult, + DeslopConfig, + UnusedFile, + UnusedExport, + UnusedDependency, + CircularDependency, + UnusedType, + UnusedTypeKind, + SemanticConfig, + SemanticConfidence, + MisclassifiedDependency, + DependencyDeclaredAs, + UnusedEnumMember, + UnusedClassMember, + ClassMemberKind, + RedundantAlias, + RedundantAliasKind, + DuplicateExport, + DuplicateExportOccurrence, + DuplicateImport, + DuplicateImportOccurrence, + RedundantTypePattern, + RedundantTypePatternKind, + IdentityWrapper, + DuplicateTypeDefinition, + DuplicateTypeDefinitionInstance, + DuplicateInlineType, + InlineTypeOccurrence, + InlineTypeContext, + SimplifiableFunction, + SimplifiableFunctionKind, + SimplifiableExpression, + SimplifiableExpressionKind, + DuplicateConstant, + DuplicateConstantOccurrence, + CrossFileDuplicateExport, + CrossFileDuplicateExportLocation, + DuplicateBlock, + DuplicateBlockOccurrence, + DuplicateBlockCluster, + DuplicateBlockRefactoringKind, + DuplicateBlockRefactoringHint, + DuplicateBlockDetectionMode, + DuplicateBlocksConfig, + ShadowedDirectoryPair, + ReExportCycle, + ReExportCycleKind, + FeatureFlag, + FeatureFlagKind, + FeatureFlagsConfig, + FunctionComplexity, + ComplexityConfig, + PrivateTypeLeak, + UnnecessaryAssertion, + UnnecessaryAssertionKind, + LazyImportAtTopLevel, + LazyImportKind, + CommonjsInEsm, + CommonjsInEsmKind, + TypeScriptEscapeHatch, + TypeScriptEscapeHatchKind, + DeslopError, + DeslopErrorCode, + DeslopErrorModule, + DeslopErrorSeverity, +} from "./types.js"; + +export { isOxcAstNode } from "./utils/oxc-ast-node.js"; +export type { OxcAstNode } from "./utils/oxc-ast-node.js"; + +/** + * Default flags below mark rules off-by-default. Rationale for each: + * + * - `reportUnusedClassMembers: false` — class-member dead-code detection + * requires whole-program semantic analysis to be sound (subclass overrides, + * structural typing, framework method-by-name invocation like `@HttpGet`). + * When enabled on real React/Effect/NestJS codebases it produces a high + * rate of stylistic-FP findings (lifecycle methods, framework hooks). Off + * by default until the heuristics are tightened. Opt in via + * `semantic.reportUnusedClassMembers = true` when you accept the noise. + * + * - `reportTypes: false` — type-only exports are over-represented in + * barrel re-exports (the canonical `export type * from "./types"` pattern) + * and are rarely actionable signal. Off by default; opt in when auditing + * a type-heavy package. + * + * - `includeEntryExports: false` — exports from entry-point files are + * "API surface" and intentionally exported for external consumers; flagging + * them as "unused" is noise within a single repo scan. Opt in when auditing + * a package boundary (e.g. before deleting public APIs). + * + * - `reportRedundancy: true` — on because redundancy findings are mostly + * high-signal and the detectors carry their own confidence tiers. + * + * - `duplicateBlocks: undefined` — token-based copy-paste detection (suffix + * array + LCP) is opt-in. It re-parses every source + * file to emit a token stream and adds significant runtime to the scan. + * Pass `duplicateBlocks: { enabled: true }` to turn it on. + */ +const fillSemanticConfig = ( + semanticOverrides: Partial | undefined, +): DeslopConfig["semantic"] => { + const overrides = semanticOverrides ?? {}; + return { + enabled: overrides.enabled ?? true, + reportUnusedTypes: overrides.reportUnusedTypes ?? true, + reportUnusedEnumMembers: overrides.reportUnusedEnumMembers ?? true, + reportUnusedClassMembers: overrides.reportUnusedClassMembers ?? false, + reportRedundantVariableAliases: overrides.reportRedundantVariableAliases ?? true, + reportMisclassifiedDependencies: overrides.reportMisclassifiedDependencies ?? true, + reportRoundTripAliases: overrides.reportRoundTripAliases ?? true, + decoratorAllowlist: overrides.decoratorAllowlist ?? DEFAULT_SEMANTIC_DECORATOR_ALLOWLIST, + }; +}; + +const fillDuplicateBlocksConfig = ( + duplicateBlocksOverrides: Partial | undefined, +): DeslopConfig["duplicateBlocks"] => { + const overrides = duplicateBlocksOverrides ?? {}; + return { + enabled: overrides.enabled ?? true, + mode: overrides.mode ?? "semantic", + minTokens: overrides.minTokens ?? DEFAULT_DUPLICATE_BLOCK_MIN_TOKENS, + minLines: overrides.minLines ?? DEFAULT_DUPLICATE_BLOCK_MIN_LINES, + minOccurrences: overrides.minOccurrences ?? DEFAULT_DUPLICATE_BLOCK_MIN_OCCURRENCES, + skipLocal: overrides.skipLocal ?? false, + }; +}; + +const fillFeatureFlagsConfig = ( + flagsOverrides: Partial | undefined, +): DeslopConfig["featureFlags"] => { + const overrides = flagsOverrides ?? {}; + return { + enabled: overrides.enabled ?? true, + extraEnvPrefixes: overrides.extraEnvPrefixes ?? [], + extraSdkFunctionNames: overrides.extraSdkFunctionNames ?? [], + detectConfigObjects: overrides.detectConfigObjects ?? false, + }; +}; + +const fillComplexityConfig = ( + complexityOverrides: Partial | undefined, +): DeslopConfig["complexity"] => { + const overrides = complexityOverrides ?? {}; + return { + enabled: overrides.enabled ?? true, + cyclomaticThreshold: overrides.cyclomaticThreshold ?? DEFAULT_CYCLOMATIC_THRESHOLD, + cognitiveThreshold: overrides.cognitiveThreshold ?? DEFAULT_COGNITIVE_THRESHOLD, + paramCountThreshold: overrides.paramCountThreshold ?? DEFAULT_PARAM_COUNT_THRESHOLD, + functionLineThreshold: overrides.functionLineThreshold ?? DEFAULT_FUNCTION_LINE_THRESHOLD, + }; +}; +export const defineConfig = ( + options: Partial & { rootDir: string }, +): DeslopConfig => ({ + rootDir: resolve(options.rootDir), + entryPatterns: options.entryPatterns ?? DEFAULT_ENTRY_GLOBS, + ignorePatterns: options.ignorePatterns ?? [], + includeExtensions: options.includeExtensions ?? DEFAULT_EXTENSIONS, + tsConfigPath: options.tsConfigPath, + paths: options.paths, + reportTypes: options.reportTypes ?? false, + includeEntryExports: options.includeEntryExports ?? false, + reportRedundancy: options.reportRedundancy ?? true, + reportCodeQuality: options.reportCodeQuality ?? true, + semantic: fillSemanticConfig(options.semantic), + duplicateBlocks: fillDuplicateBlocksConfig(options.duplicateBlocks), + featureFlags: fillFeatureFlagsConfig(options.featureFlags), + complexity: fillComplexityConfig(options.complexity), +}); + +const buildEmptyScanResult = (errors: DeslopError[], elapsedMs: number): ScanResult => ({ + unusedFiles: [], + unusedExports: [], + unusedDependencies: [], + circularDependencies: [], + unusedTypes: [], + misclassifiedDependencies: [], + unusedEnumMembers: [], + unusedClassMembers: [], + redundantAliases: [], + duplicateExports: [], + duplicateImports: [], + redundantTypePatterns: [], + identityWrappers: [], + duplicateTypeDefinitions: [], + duplicateInlineTypes: [], + simplifiableFunctions: [], + simplifiableExpressions: [], + duplicateConstants: [], + crossFileDuplicateExports: [], + duplicateBlocks: [], + duplicateBlockClusters: [], + shadowedDirectoryPairs: [], + reExportCycles: [], + featureFlags: [], + complexFunctions: [], + privateTypeLeaks: [], + unnecessaryAssertions: [], + lazyImportsAtTopLevel: [], + commonjsInEsm: [], + typeScriptEscapeHatches: [], + analysisErrors: errors, + totalFiles: 0, + totalExports: 0, + analysisTimeMs: elapsedMs, +}); + +const validateConfig = (config: DeslopConfig): DeslopError | undefined => { + if (!config.rootDir || typeof config.rootDir !== "string") { + return new ConfigError({ message: "config.rootDir must be a non-empty string" }); + } + if (!existsSync(config.rootDir)) { + return new ConfigError({ + message: `config.rootDir does not exist: ${config.rootDir}`, + path: config.rootDir, + }); + } + return undefined; +}; + +export const analyze = async (config: DeslopConfig): Promise => { + const pipelineStartTime = performance.now(); + const setupErrors: DeslopError[] = []; + + const configValidationError = validateConfig(config); + if (configValidationError) { + return buildEmptyScanResult([configValidationError], performance.now() - pipelineStartTime); + } + + let workspaceDiscovery: ReturnType; + try { + workspaceDiscovery = resolveWorkspaces(resolve(config.rootDir)); + } catch (workspaceError) { + setupErrors.push( + new WorkspaceError({ + code: "workspace-discovery-failed", + message: "resolveWorkspaces threw — falling back to single-package mode", + path: config.rootDir, + detail: describeUnknownError(workspaceError), + }), + ); + workspaceDiscovery = { + packages: [], + excludedDirectories: [], + hasRootLevelWorkspacePatterns: false, + }; + } + const workspacePackages = [...workspaceDiscovery.packages]; + + let monorepoRoot: string | undefined; + try { + monorepoRoot = findMonorepoRoot(config.rootDir); + } catch (monorepoError) { + setupErrors.push( + new WorkspaceError({ + code: "monorepo-discovery-failed", + message: "findMonorepoRoot threw", + path: config.rootDir, + detail: describeUnknownError(monorepoError), + }), + ); + monorepoRoot = undefined; + } + if (monorepoRoot) { + try { + const monorepoWorkspaces = resolveWorkspaces(monorepoRoot); + const existingDirectories = new Set( + workspacePackages.map((workspacePackage) => workspacePackage.directory), + ); + for (const monorepoPackage of monorepoWorkspaces.packages) { + if (!existingDirectories.has(monorepoPackage.directory)) { + workspacePackages.push(monorepoPackage); + } + } + } catch (monorepoWorkspaceError) { + setupErrors.push( + new WorkspaceError({ + code: "workspace-discovery-failed", + message: "resolveWorkspaces threw on monorepo root", + path: monorepoRoot, + detail: describeUnknownError(monorepoWorkspaceError), + }), + ); + } + } + + let frameworkIgnorePatterns: string[] = []; + try { + frameworkIgnorePatterns = getFrameworkExclusions(config.rootDir); + } catch (frameworkError) { + setupErrors.push( + new WorkspaceError({ + code: "workspace-discovery-failed", + message: "getFrameworkExclusions failed — proceeding without framework exclusion patterns", + path: config.rootDir, + detail: describeUnknownError(frameworkError), + }), + ); + } + + const absoluteRoot = resolve(config.rootDir); + const outputDirectoryExclusions = OUTPUT_DIRECTORIES.flatMap((outputDirectory) => [ + `${absoluteRoot}/${outputDirectory}/**`, + `${absoluteRoot}/**/${outputDirectory}/**`, + ]); + + const allExclusionPatterns = [ + ...workspaceDiscovery.excludedDirectories.map((directory) => `${directory}/**`), + ...frameworkIgnorePatterns, + ...outputDirectoryExclusions, + ]; + + const configWithExclusions = + allExclusionPatterns.length > 0 + ? { + ...config, + ignorePatterns: [...config.ignorePatterns, ...allExclusionPatterns], + } + : config; + + let files: Awaited>; + let discoveredEntries: Awaited>; + try { + const [collectedFiles, resolvedEntries] = await Promise.all([ + collectSourceFiles(configWithExclusions), + resolveEntries(configWithExclusions).catch((entriesError: unknown) => { + setupErrors.push( + new WorkspaceError({ + code: "workspace-discovery-failed", + message: "resolveEntries failed — defaulting to empty entry set", + path: config.rootDir, + detail: describeUnknownError(entriesError), + }), + ); + return { + productionEntries: [] as string[], + testEntries: [] as string[], + alwaysUsedFiles: [] as string[], + }; + }), + ]); + files = collectedFiles; + discoveredEntries = resolvedEntries; + } catch (collectError) { + setupErrors.push( + new WorkspaceError({ + code: "workspace-discovery-failed", + severity: "fatal", + message: "collectSourceFiles failed", + path: config.rootDir, + detail: describeUnknownError(collectError), + }), + ); + return buildEmptyScanResult(setupErrors, performance.now() - pipelineStartTime); + } + const productionEntrySet = new Set(discoveredEntries.productionEntries); + const testEntrySet = new Set(discoveredEntries.testEntries); + const alwaysUsedFileSet = new Set(discoveredEntries.alwaysUsedFiles); + const gitIgnoreResult = collectGitIgnoredPaths( + resolve(config.rootDir), + files.map((file) => file.path), + ); + const gitIgnoredFileSet = gitIgnoreResult.ignoredPaths; + if (gitIgnoreResult.gitUnavailable) { + setupErrors.push( + new WorkspaceError({ + code: "gitignore-check-failed", + severity: "info", + message: "git unavailable — .gitignore filtering skipped", + path: config.rootDir, + }), + ); + } + + let hasReactNative = false; + try { + hasReactNative = detectReactNative(config.rootDir, workspacePackages); + } catch { + hasReactNative = false; + } + + let moduleResolver: ReturnType; + try { + moduleResolver = createResolver( + config, + workspacePackages.map((workspacePackage) => ({ + name: workspacePackage.name, + directory: workspacePackage.directory, + })), + { hasReactNative, monorepoRoot }, + ); + } catch (resolverError) { + setupErrors.push( + new ResolverError({ + message: "createResolver failed", + path: config.rootDir, + detail: describeUnknownError(resolverError), + }), + ); + return buildEmptyScanResult(setupErrors, performance.now() - pipelineStartTime); + } + const parsedModules = await parseFilesInParallel(files); + + const graphInputs: ModuleLinkInput[] = []; + + for (let fileIndex = 0; fileIndex < files.length; fileIndex++) { + const file = files[fileIndex]; + const parsedModule = parsedModules[fileIndex]; + const resolvedImportMap = new Map>(); + + const safeResolveImport = ( + specifier: string, + ): ReturnType => { + try { + return moduleResolver.resolveModule(specifier, file.path); + } catch (resolveError) { + setupErrors.push( + new ResolverError({ + severity: "warning", + message: `moduleResolver.resolveModule threw on specifier "${specifier}"`, + path: file.path, + detail: describeUnknownError(resolveError), + }), + ); + return { resolvedPath: undefined, isExternal: false, packageName: undefined }; + } + }; + + for (const importInfo of parsedModule.imports) { + if (importInfo.isGlob) { + const fileDir = dirname(file.path); + let expandedFiles: string[] = []; + try { + expandedFiles = fg.sync(importInfo.specifier, { + cwd: fileDir, + absolute: true, + onlyFiles: true, + ignore: ["**/node_modules/**"], + }); + } catch (globError) { + setupErrors.push( + new WorkspaceError({ + code: "workspace-discovery-failed", + message: `fast-glob threw on import glob "${importInfo.specifier}"`, + path: file.path, + detail: describeUnknownError(globError), + }), + ); + } + for (const expandedFile of expandedFiles) { + resolvedImportMap.set(expandedFile, { + resolvedPath: expandedFile, + isExternal: false, + packageName: undefined, + }); + } + resolvedImportMap.set(importInfo.specifier, { + resolvedPath: undefined, + isExternal: false, + packageName: undefined, + }); + continue; + } + resolvedImportMap.set(importInfo.specifier, safeResolveImport(importInfo.specifier)); + } + + for (const exportInfo of parsedModule.exports) { + if (exportInfo.isReExport && exportInfo.reExportSource) { + if (!resolvedImportMap.has(exportInfo.reExportSource)) { + resolvedImportMap.set( + exportInfo.reExportSource, + safeResolveImport(exportInfo.reExportSource), + ); + } + } + } + + const isAlwaysUsed = alwaysUsedFileSet.has(file.path); + graphInputs.push({ + fileId: file, + parsed: parsedModule, + resolvedImports: resolvedImportMap, + isEntryPoint: + isAlwaysUsed || productionEntrySet.has(file.path) || testEntrySet.has(file.path), + isTestEntry: testEntrySet.has(file.path), + isGitIgnored: gitIgnoredFileSet.has(file.path), + }); + } + + const discoveredFilePaths = new Set(files.map((file) => file.path)); + const styleFilesToAdd = new Set(); + + for (const input of graphInputs) { + for (const [, resolvedImport] of input.resolvedImports) { + if (!resolvedImport.resolvedPath || resolvedImport.isExternal) continue; + if (discoveredFilePaths.has(resolvedImport.resolvedPath)) continue; + const isStyleFile = STYLE_EXTENSIONS.some((ext) => + resolvedImport.resolvedPath!.endsWith(ext), + ); + if (isStyleFile && existsSync(resolvedImport.resolvedPath)) { + styleFilesToAdd.add(resolvedImport.resolvedPath); + } + } + } + + const sortedStyleFiles = [...styleFilesToAdd].sort(); + let nextFileIndex = files.length; + for (const styleFilePath of sortedStyleFiles) { + const styleSourceFile = { index: nextFileIndex, path: styleFilePath }; + const parsedStyleModule = parseSourceFile(styleFilePath); + const resolvedStyleImportMap = new Map< + string, + ReturnType + >(); + + for (const importInfo of parsedStyleModule.imports) { + let resolvedImport: ReturnType; + try { + resolvedImport = moduleResolver.resolveModule(importInfo.specifier, styleFilePath); + } catch (styleResolveError) { + setupErrors.push( + new ResolverError({ + severity: "warning", + message: `moduleResolver.resolveModule threw on style import "${importInfo.specifier}"`, + path: styleFilePath, + detail: describeUnknownError(styleResolveError), + }), + ); + resolvedImport = { resolvedPath: undefined, isExternal: false, packageName: undefined }; + } + resolvedStyleImportMap.set(importInfo.specifier, resolvedImport); + if (resolvedImport.resolvedPath && !discoveredFilePaths.has(resolvedImport.resolvedPath)) { + const isNestedStyle = STYLE_EXTENSIONS.some((ext) => + resolvedImport.resolvedPath!.endsWith(ext), + ); + if (isNestedStyle && existsSync(resolvedImport.resolvedPath)) { + styleFilesToAdd.add(resolvedImport.resolvedPath); + } + } + } + + graphInputs.push({ + fileId: styleSourceFile, + parsed: parsedStyleModule, + resolvedImports: resolvedStyleImportMap, + isEntryPoint: false, + isTestEntry: false, + isGitIgnored: gitIgnoredFileSet.has(styleFilePath), + }); + discoveredFilePaths.add(styleFilePath); + nextFileIndex++; + } + + let moduleGraph: ReturnType; + try { + moduleGraph = buildDependencyGraph(graphInputs); + } catch (graphError) { + setupErrors.push( + new DetectorError({ + module: "linker", + severity: "fatal", + message: "buildDependencyGraph threw", + detail: describeUnknownError(graphError), + }), + ); + return buildEmptyScanResult(setupErrors, performance.now() - pipelineStartTime); + } + + try { + resolveReExportChains(moduleGraph); + } catch (reExportError) { + setupErrors.push( + new DetectorError({ + module: "linker", + message: "resolveReExportChains threw — re-export propagation skipped", + detail: describeUnknownError(reExportError), + }), + ); + } + + markFilenameRegistryEntries(moduleGraph); + + try { + traceReachability(moduleGraph); + } catch (reachabilityError) { + setupErrors.push( + new DetectorError({ + module: "linker", + message: "traceReachability threw — every module marked reachable to avoid over-reporting", + detail: describeUnknownError(reachabilityError), + }), + ); + for (const module of moduleGraph.modules) module.isReachable = true; + } + + let analysisResult: ScanResult; + try { + analysisResult = generateReport(moduleGraph, config); + } catch (reportError) { + setupErrors.push( + new DetectorError({ + module: "report", + severity: "fatal", + message: "generateReport threw at the top level", + detail: describeUnknownError(reportError), + }), + ); + return buildEmptyScanResult(setupErrors, performance.now() - pipelineStartTime); + } + + if (setupErrors.length > 0) { + analysisResult.analysisErrors = [...setupErrors, ...analysisResult.analysisErrors]; + } + analysisResult.analysisTimeMs = performance.now() - pipelineStartTime; + + return analysisResult; +}; diff --git a/packages/deslop-js/src/linker/build.ts b/packages/core/src/deslop/linker/build.ts similarity index 100% rename from packages/deslop-js/src/linker/build.ts rename to packages/core/src/deslop/linker/build.ts diff --git a/packages/deslop-js/src/linker/re-exports.ts b/packages/core/src/deslop/linker/re-exports.ts similarity index 100% rename from packages/deslop-js/src/linker/re-exports.ts rename to packages/core/src/deslop/linker/re-exports.ts diff --git a/packages/deslop-js/src/linker/reachability.ts b/packages/core/src/deslop/linker/reachability.ts similarity index 100% rename from packages/deslop-js/src/linker/reachability.ts rename to packages/core/src/deslop/linker/reachability.ts diff --git a/packages/deslop-js/src/report/complexity.ts b/packages/core/src/deslop/report/complexity.ts similarity index 100% rename from packages/deslop-js/src/report/complexity.ts rename to packages/core/src/deslop/report/complexity.ts diff --git a/packages/deslop-js/src/report/cross-file-duplicate-exports.ts b/packages/core/src/deslop/report/cross-file-duplicate-exports.ts similarity index 100% rename from packages/deslop-js/src/report/cross-file-duplicate-exports.ts rename to packages/core/src/deslop/report/cross-file-duplicate-exports.ts diff --git a/packages/deslop-js/src/report/cycles.ts b/packages/core/src/deslop/report/cycles.ts similarity index 100% rename from packages/deslop-js/src/report/cycles.ts rename to packages/core/src/deslop/report/cycles.ts diff --git a/packages/deslop-js/src/report/dry-patterns.ts b/packages/core/src/deslop/report/dry-patterns.ts similarity index 100% rename from packages/deslop-js/src/report/dry-patterns.ts rename to packages/core/src/deslop/report/dry-patterns.ts diff --git a/packages/deslop-js/src/report/exports.ts b/packages/core/src/deslop/report/exports.ts similarity index 100% rename from packages/deslop-js/src/report/exports.ts rename to packages/core/src/deslop/report/exports.ts diff --git a/packages/deslop-js/src/report/feature-flags.ts b/packages/core/src/deslop/report/feature-flags.ts similarity index 100% rename from packages/deslop-js/src/report/feature-flags.ts rename to packages/core/src/deslop/report/feature-flags.ts diff --git a/packages/deslop-js/src/report/files.ts b/packages/core/src/deslop/report/files.ts similarity index 100% rename from packages/deslop-js/src/report/files.ts rename to packages/core/src/deslop/report/files.ts diff --git a/packages/deslop-js/src/report/generate.ts b/packages/core/src/deslop/report/generate.ts similarity index 100% rename from packages/deslop-js/src/report/generate.ts rename to packages/core/src/deslop/report/generate.ts diff --git a/packages/deslop-js/src/report/packages.ts b/packages/core/src/deslop/report/packages.ts similarity index 100% rename from packages/deslop-js/src/report/packages.ts rename to packages/core/src/deslop/report/packages.ts diff --git a/packages/deslop-js/src/report/private-type-leaks.ts b/packages/core/src/deslop/report/private-type-leaks.ts similarity index 100% rename from packages/deslop-js/src/report/private-type-leaks.ts rename to packages/core/src/deslop/report/private-type-leaks.ts diff --git a/packages/deslop-js/src/report/re-export-cycles.ts b/packages/core/src/deslop/report/re-export-cycles.ts similarity index 100% rename from packages/deslop-js/src/report/re-export-cycles.ts rename to packages/core/src/deslop/report/re-export-cycles.ts diff --git a/packages/deslop-js/src/report/redundancy.ts b/packages/core/src/deslop/report/redundancy.ts similarity index 100% rename from packages/deslop-js/src/report/redundancy.ts rename to packages/core/src/deslop/report/redundancy.ts diff --git a/packages/deslop-js/src/report/typescript-smells.ts b/packages/core/src/deslop/report/typescript-smells.ts similarity index 100% rename from packages/deslop-js/src/report/typescript-smells.ts rename to packages/core/src/deslop/report/typescript-smells.ts diff --git a/packages/deslop-js/src/resolver/resolve.ts b/packages/core/src/deslop/resolver/resolve.ts similarity index 100% rename from packages/deslop-js/src/resolver/resolve.ts rename to packages/core/src/deslop/resolver/resolve.ts diff --git a/packages/deslop-js/src/resolver/source-path.ts b/packages/core/src/deslop/resolver/source-path.ts similarity index 100% rename from packages/deslop-js/src/resolver/source-path.ts rename to packages/core/src/deslop/resolver/source-path.ts diff --git a/packages/deslop-js/src/semantic/index.ts b/packages/core/src/deslop/semantic/index.ts similarity index 100% rename from packages/deslop-js/src/semantic/index.ts rename to packages/core/src/deslop/semantic/index.ts diff --git a/packages/deslop-js/src/semantic/misclassified-dependencies.ts b/packages/core/src/deslop/semantic/misclassified-dependencies.ts similarity index 100% rename from packages/deslop-js/src/semantic/misclassified-dependencies.ts rename to packages/core/src/deslop/semantic/misclassified-dependencies.ts diff --git a/packages/deslop-js/src/semantic/program.ts b/packages/core/src/deslop/semantic/program.ts similarity index 100% rename from packages/deslop-js/src/semantic/program.ts rename to packages/core/src/deslop/semantic/program.ts diff --git a/packages/deslop-js/src/semantic/redundant-reexports.ts b/packages/core/src/deslop/semantic/redundant-reexports.ts similarity index 100% rename from packages/deslop-js/src/semantic/redundant-reexports.ts rename to packages/core/src/deslop/semantic/redundant-reexports.ts diff --git a/packages/deslop-js/src/semantic/references.ts b/packages/core/src/deslop/semantic/references.ts similarity index 100% rename from packages/deslop-js/src/semantic/references.ts rename to packages/core/src/deslop/semantic/references.ts diff --git a/packages/deslop-js/src/semantic/unused-class-members.ts b/packages/core/src/deslop/semantic/unused-class-members.ts similarity index 100% rename from packages/deslop-js/src/semantic/unused-class-members.ts rename to packages/core/src/deslop/semantic/unused-class-members.ts diff --git a/packages/deslop-js/src/semantic/unused-enum-members.ts b/packages/core/src/deslop/semantic/unused-enum-members.ts similarity index 100% rename from packages/deslop-js/src/semantic/unused-enum-members.ts rename to packages/core/src/deslop/semantic/unused-enum-members.ts diff --git a/packages/deslop-js/src/semantic/unused-types.ts b/packages/core/src/deslop/semantic/unused-types.ts similarity index 100% rename from packages/deslop-js/src/semantic/unused-types.ts rename to packages/core/src/deslop/semantic/unused-types.ts diff --git a/packages/deslop-js/src/semantic/utils/source-file-lookup.ts b/packages/core/src/deslop/semantic/utils/source-file-lookup.ts similarity index 100% rename from packages/deslop-js/src/semantic/utils/source-file-lookup.ts rename to packages/core/src/deslop/semantic/utils/source-file-lookup.ts diff --git a/packages/deslop-js/src/semantic/variable-aliases.ts b/packages/core/src/deslop/semantic/variable-aliases.ts similarity index 100% rename from packages/deslop-js/src/semantic/variable-aliases.ts rename to packages/core/src/deslop/semantic/variable-aliases.ts diff --git a/packages/deslop-js/src/types.ts b/packages/core/src/deslop/types.ts similarity index 100% rename from packages/deslop-js/src/types.ts rename to packages/core/src/deslop/types.ts diff --git a/packages/deslop-js/src/utils/collect-duplicate-constants.ts b/packages/core/src/deslop/utils/collect-duplicate-constants.ts similarity index 100% rename from packages/deslop-js/src/utils/collect-duplicate-constants.ts rename to packages/core/src/deslop/utils/collect-duplicate-constants.ts diff --git a/packages/deslop-js/src/utils/collect-git-ignored-paths.ts b/packages/core/src/deslop/utils/collect-git-ignored-paths.ts similarity index 100% rename from packages/deslop-js/src/utils/collect-git-ignored-paths.ts rename to packages/core/src/deslop/utils/collect-git-ignored-paths.ts diff --git a/packages/deslop-js/src/utils/collect-inline-type-literals.ts b/packages/core/src/deslop/utils/collect-inline-type-literals.ts similarity index 100% rename from packages/deslop-js/src/utils/collect-inline-type-literals.ts rename to packages/core/src/deslop/utils/collect-inline-type-literals.ts diff --git a/packages/deslop-js/src/utils/collect-override-mappings-from-record.ts b/packages/core/src/deslop/utils/collect-override-mappings-from-record.ts similarity index 100% rename from packages/deslop-js/src/utils/collect-override-mappings-from-record.ts rename to packages/core/src/deslop/utils/collect-override-mappings-from-record.ts diff --git a/packages/deslop-js/src/utils/collect-simplifiable-expressions.ts b/packages/core/src/deslop/utils/collect-simplifiable-expressions.ts similarity index 100% rename from packages/deslop-js/src/utils/collect-simplifiable-expressions.ts rename to packages/core/src/deslop/utils/collect-simplifiable-expressions.ts diff --git a/packages/deslop-js/src/utils/collect-simplifiable-functions.ts b/packages/core/src/deslop/utils/collect-simplifiable-functions.ts similarity index 100% rename from packages/deslop-js/src/utils/collect-simplifiable-functions.ts rename to packages/core/src/deslop/utils/collect-simplifiable-functions.ts diff --git a/packages/deslop-js/src/utils/compute-line-starts.ts b/packages/core/src/deslop/utils/compute-line-starts.ts similarity index 100% rename from packages/deslop-js/src/utils/compute-line-starts.ts rename to packages/core/src/deslop/utils/compute-line-starts.ts diff --git a/packages/deslop-js/src/utils/detect-identity-wrapper.ts b/packages/core/src/deslop/utils/detect-identity-wrapper.ts similarity index 100% rename from packages/deslop-js/src/utils/detect-identity-wrapper.ts rename to packages/core/src/deslop/utils/detect-identity-wrapper.ts diff --git a/packages/deslop-js/src/utils/detect-redundant-type-pattern.ts b/packages/core/src/deslop/utils/detect-redundant-type-pattern.ts similarity index 100% rename from packages/deslop-js/src/utils/detect-redundant-type-pattern.ts rename to packages/core/src/deslop/utils/detect-redundant-type-pattern.ts diff --git a/packages/deslop-js/src/utils/detect-simplifiable-function.ts b/packages/core/src/deslop/utils/detect-simplifiable-function.ts similarity index 100% rename from packages/deslop-js/src/utils/detect-simplifiable-function.ts rename to packages/core/src/deslop/utils/detect-simplifiable-function.ts diff --git a/packages/deslop-js/src/utils/escape-reg-exp.ts b/packages/core/src/deslop/utils/escape-reg-exp.ts similarity index 100% rename from packages/deslop-js/src/utils/escape-reg-exp.ts rename to packages/core/src/deslop/utils/escape-reg-exp.ts diff --git a/packages/deslop-js/src/utils/extract-default-export-local-name.ts b/packages/core/src/deslop/utils/extract-default-export-local-name.ts similarity index 100% rename from packages/deslop-js/src/utils/extract-default-export-local-name.ts rename to packages/core/src/deslop/utils/extract-default-export-local-name.ts diff --git a/packages/deslop-js/src/utils/extract-override-target.ts b/packages/core/src/deslop/utils/extract-override-target.ts similarity index 100% rename from packages/deslop-js/src/utils/extract-override-target.ts rename to packages/core/src/deslop/utils/extract-override-target.ts diff --git a/packages/deslop-js/src/utils/find-monorepo-root.ts b/packages/core/src/deslop/utils/find-monorepo-root.ts similarity index 100% rename from packages/deslop-js/src/utils/find-monorepo-root.ts rename to packages/core/src/deslop/utils/find-monorepo-root.ts diff --git a/packages/deslop-js/src/utils/is-ast-node.ts b/packages/core/src/deslop/utils/is-ast-node.ts similarity index 100% rename from packages/deslop-js/src/utils/is-ast-node.ts rename to packages/core/src/deslop/utils/is-ast-node.ts diff --git a/packages/deslop-js/src/utils/is-config-file.ts b/packages/core/src/deslop/utils/is-config-file.ts similarity index 100% rename from packages/deslop-js/src/utils/is-config-file.ts rename to packages/core/src/deslop/utils/is-config-file.ts diff --git a/packages/deslop-js/src/utils/is-framework-lifecycle-method.ts b/packages/core/src/deslop/utils/is-framework-lifecycle-method.ts similarity index 100% rename from packages/deslop-js/src/utils/is-framework-lifecycle-method.ts rename to packages/core/src/deslop/utils/is-framework-lifecycle-method.ts diff --git a/packages/deslop-js/src/utils/is-platform-builtin-or-virtual.ts b/packages/core/src/deslop/utils/is-platform-builtin-or-virtual.ts similarity index 100% rename from packages/deslop-js/src/utils/is-platform-builtin-or-virtual.ts rename to packages/core/src/deslop/utils/is-platform-builtin-or-virtual.ts diff --git a/packages/deslop-js/src/utils/line-column.ts b/packages/core/src/deslop/utils/line-column.ts similarity index 100% rename from packages/deslop-js/src/utils/line-column.ts rename to packages/core/src/deslop/utils/line-column.ts diff --git a/packages/deslop-js/src/utils/matches-package-import-reference.ts b/packages/core/src/deslop/utils/matches-package-import-reference.ts similarity index 100% rename from packages/deslop-js/src/utils/matches-package-import-reference.ts rename to packages/core/src/deslop/utils/matches-package-import-reference.ts diff --git a/packages/deslop-js/src/utils/matches-package-token-reference.ts b/packages/core/src/deslop/utils/matches-package-token-reference.ts similarity index 100% rename from packages/deslop-js/src/utils/matches-package-token-reference.ts rename to packages/core/src/deslop/utils/matches-package-token-reference.ts diff --git a/packages/deslop-js/src/utils/normalize-type-hash.ts b/packages/core/src/deslop/utils/normalize-type-hash.ts similarity index 100% rename from packages/deslop-js/src/utils/normalize-type-hash.ts rename to packages/core/src/deslop/utils/normalize-type-hash.ts diff --git a/packages/deslop-js/src/utils/offset-to-line-column.ts b/packages/core/src/deslop/utils/offset-to-line-column.ts similarity index 100% rename from packages/deslop-js/src/utils/offset-to-line-column.ts rename to packages/core/src/deslop/utils/offset-to-line-column.ts diff --git a/packages/deslop-js/src/utils/oxc-ast-node.ts b/packages/core/src/deslop/utils/oxc-ast-node.ts similarity index 100% rename from packages/deslop-js/src/utils/oxc-ast-node.ts rename to packages/core/src/deslop/utils/oxc-ast-node.ts diff --git a/packages/deslop-js/src/utils/package-name.ts b/packages/core/src/deslop/utils/package-name.ts similarity index 100% rename from packages/deslop-js/src/utils/package-name.ts rename to packages/core/src/deslop/utils/package-name.ts diff --git a/packages/deslop-js/src/utils/parse-pnpm-workspace-overrides.ts b/packages/core/src/deslop/utils/parse-pnpm-workspace-overrides.ts similarity index 100% rename from packages/deslop-js/src/utils/parse-pnpm-workspace-overrides.ts rename to packages/core/src/deslop/utils/parse-pnpm-workspace-overrides.ts diff --git a/packages/deslop-js/src/utils/resolve-available-concurrency.ts b/packages/core/src/deslop/utils/resolve-available-concurrency.ts similarity index 100% rename from packages/deslop-js/src/utils/resolve-available-concurrency.ts rename to packages/core/src/deslop/utils/resolve-available-concurrency.ts diff --git a/packages/deslop-js/src/utils/resolve-entry-with-extensions.ts b/packages/core/src/deslop/utils/resolve-entry-with-extensions.ts similarity index 100% rename from packages/deslop-js/src/utils/resolve-entry-with-extensions.ts rename to packages/core/src/deslop/utils/resolve-entry-with-extensions.ts diff --git a/packages/deslop-js/src/utils/run-safe-detector.ts b/packages/core/src/deslop/utils/run-safe-detector.ts similarity index 100% rename from packages/deslop-js/src/utils/run-safe-detector.ts rename to packages/core/src/deslop/utils/run-safe-detector.ts diff --git a/packages/deslop-js/src/utils/sanitize-import-specifier.ts b/packages/core/src/deslop/utils/sanitize-import-specifier.ts similarity index 100% rename from packages/deslop-js/src/utils/sanitize-import-specifier.ts rename to packages/core/src/deslop/utils/sanitize-import-specifier.ts diff --git a/packages/deslop-js/src/utils/to-posix-path.ts b/packages/core/src/deslop/utils/to-posix-path.ts similarity index 100% rename from packages/deslop-js/src/utils/to-posix-path.ts rename to packages/core/src/deslop/utils/to-posix-path.ts diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 8067efbe0..90beba705 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -101,6 +101,7 @@ export * from "./utils/resolve-lint-batch-ordering.js"; export * from "./utils/resolve-scan-concurrency.js"; export * from "./utils/sort-diagnostics-stable.js"; export * from "./utils/to-relative-path.js"; +export * from "./utils/utf8-offset-to-utf16.js"; export * from "./utils/warn-config-issue.js"; export * from "./runners/oxlint/capabilities.js"; export * from "./runners/oxlint/config.js"; diff --git a/packages/core/src/runners/oxlint/resolve-use-call-binding.ts b/packages/core/src/runners/oxlint/resolve-use-call-binding.ts index f7963adcc..348c626ba 100644 --- a/packages/core/src/runners/oxlint/resolve-use-call-binding.ts +++ b/packages/core/src/runners/oxlint/resolve-use-call-binding.ts @@ -1,4 +1,5 @@ import * as ts from "typescript"; +import { utf8OffsetToUtf16 } from "../../utils/utf8-offset-to-utf16.js"; interface ReactImportBindings { namespaceNames: Set; @@ -36,9 +37,6 @@ const getScriptKind = (filename: string): ts.ScriptKind => { return ts.ScriptKind.JS; }; -const getUtf16Offset = (sourceText: string, utf8Offset: number): number => - Buffer.from(sourceText).subarray(0, utf8Offset).toString("utf8").length; - const unwrapExpression = (expression: ts.Expression): ts.Expression => { let currentExpression = expression; while ( @@ -606,7 +604,7 @@ export const resolveUseCallBinding = ( true, getScriptKind(filename), ); - const useOffset = getUtf16Offset(sourceText, utf8Offset); + const useOffset = utf8OffsetToUtf16(sourceText, utf8Offset); const useIdentifier = findUseCallIdentifier(sourceFile, useOffset); if (!useIdentifier) return null; return resolveIdentifierBinding( diff --git a/packages/core/src/utils/utf8-offset-to-utf16.ts b/packages/core/src/utils/utf8-offset-to-utf16.ts new file mode 100644 index 000000000..8c646d988 --- /dev/null +++ b/packages/core/src/utils/utf8-offset-to-utf16.ts @@ -0,0 +1,9 @@ +/** + * Converts a UTF-8 byte offset (oxlint / oxc diagnostics report locations in + * bytes) into the UTF-16 code-unit index that `String.prototype.slice` and oxc + * AST `start`/`end` spans use. The two diverge on any non-ASCII source, so a + * caller crossing that boundary (e.g. slicing a snippet around a diagnostic) + * must convert first or it indexes the wrong character. + */ +export const utf8OffsetToUtf16 = (sourceText: string, utf8Offset: number): number => + Buffer.from(sourceText).subarray(0, utf8Offset).toString("utf8").length; diff --git a/packages/core/tests/check-dead-code.test.ts b/packages/core/tests/check-dead-code.test.ts index 41b8faff3..6282b4af2 100644 --- a/packages/core/tests/check-dead-code.test.ts +++ b/packages/core/tests/check-dead-code.test.ts @@ -3,6 +3,7 @@ import os from "node:os"; import * as path from "node:path"; import { afterAll, describe, expect, it } from "vite-plus/test"; import { checkDeadCode } from "../src/check-dead-code.js"; +import { inProcessDeadCodeWorker } from "./helpers/in-process-dead-code-worker.js"; const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), "rd-check-dead-code-")); @@ -76,7 +77,7 @@ const setupAliasProject = (caseId: string): string => { }; const flaggedUnusedFiles = async (rootDirectory: string): Promise => - (await checkDeadCode({ rootDirectory })) + (await checkDeadCode({ rootDirectory, createWorker: inProcessDeadCodeWorker })) .filter((diagnostic) => diagnostic.rule === "unused-file") .map((diagnostic) => diagnostic.filePath) .sort(); @@ -93,7 +94,10 @@ describe("checkDeadCode", () => { "src/index.ts": "export const used = 1;\n", "src/orphan.ts": "export const orphan = 1;\n", }); - const diagnostics = await checkDeadCode({ rootDirectory: directory }); + const diagnostics = await checkDeadCode({ + rootDirectory: directory, + createWorker: inProcessDeadCodeWorker, + }); const orphan = diagnostics.find( (diagnostic) => diagnostic.rule === "unused-file" && diagnostic.filePath.endsWith("orphan.ts"), @@ -127,6 +131,7 @@ describe("checkDeadCode", () => { const diagnostics = await checkDeadCode({ rootDirectory: directory, userConfig: { ignore: { files: ["src/sanity/components/**"] } }, + createWorker: inProcessDeadCodeWorker, }); const flagged = diagnostics .filter((diagnostic) => diagnostic.rule === "unused-file") diff --git a/packages/deslop-js/tests/analyze.test.ts b/packages/core/tests/deslop/analyze.test.ts similarity index 99% rename from packages/deslop-js/tests/analyze.test.ts rename to packages/core/tests/deslop/analyze.test.ts index b9bb5ec66..8567fd866 100644 --- a/packages/deslop-js/tests/analyze.test.ts +++ b/packages/core/tests/deslop/analyze.test.ts @@ -1,8 +1,8 @@ -import { describe, it, test } from "node:test"; +import { describe, it, it as test } from "vite-plus/test"; import assert from "node:assert/strict"; import { resolve, relative } from "node:path"; -import { analyze, defineConfig } from "../src/index.js"; -import type { ScanResult } from "../src/types.js"; +import { analyze, defineConfig } from "../../src/deslop/index.js"; +import type { ScanResult } from "../../src/deslop/types.js"; import { FIXTURES_DIR } from "./helpers/fixtures-dir.js"; const scanFixture = async ( diff --git a/packages/deslop-js/tests/collect-git-ignored-paths.test.ts b/packages/core/tests/deslop/collect-git-ignored-paths.test.ts similarity index 90% rename from packages/deslop-js/tests/collect-git-ignored-paths.test.ts rename to packages/core/tests/deslop/collect-git-ignored-paths.test.ts index 2f87e29c4..74002f101 100644 --- a/packages/deslop-js/tests/collect-git-ignored-paths.test.ts +++ b/packages/core/tests/deslop/collect-git-ignored-paths.test.ts @@ -1,11 +1,11 @@ -import { describe, it } from "node:test"; +import { describe, it } from "vite-plus/test"; import assert from "node:assert/strict"; import { execFileSync } from "node:child_process"; import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join, resolve } from "node:path"; -import { collectGitIgnoredPaths } from "../src/utils/collect-git-ignored-paths.js"; -import { toPosixPath } from "../src/utils/to-posix-path.js"; +import { collectGitIgnoredPaths } from "../../src/deslop/utils/collect-git-ignored-paths.js"; +import { toPosixPath } from "../../src/deslop/utils/to-posix-path.js"; const createTempProject = (): string => mkdtempSync(join(tmpdir(), "deslop-gitignore-")); diff --git a/packages/deslop-js/tests/dependency-utils.test.ts b/packages/core/tests/deslop/dependency-utils.test.ts similarity index 85% rename from packages/deslop-js/tests/dependency-utils.test.ts rename to packages/core/tests/deslop/dependency-utils.test.ts index 49d8fc370..7a1f7905e 100644 --- a/packages/deslop-js/tests/dependency-utils.test.ts +++ b/packages/core/tests/deslop/dependency-utils.test.ts @@ -1,9 +1,9 @@ -import { describe, it } from "node:test"; +import { describe, it } from "vite-plus/test"; import assert from "node:assert/strict"; -import { collectOverrideMappingsFromRecord } from "../src/utils/collect-override-mappings-from-record.js"; -import { collectPnpmWorkspaceOverrideMappings } from "../src/utils/parse-pnpm-workspace-overrides.js"; -import { matchesPackageImportReference } from "../src/utils/matches-package-import-reference.js"; -import { matchesPackageTokenReference } from "../src/utils/matches-package-token-reference.js"; +import { collectOverrideMappingsFromRecord } from "../../src/deslop/utils/collect-override-mappings-from-record.js"; +import { collectPnpmWorkspaceOverrideMappings } from "../../src/deslop/utils/parse-pnpm-workspace-overrides.js"; +import { matchesPackageImportReference } from "../../src/deslop/utils/matches-package-import-reference.js"; +import { matchesPackageTokenReference } from "../../src/deslop/utils/matches-package-token-reference.js"; import { resolve } from "node:path"; describe("collectOverrideMappingsFromRecord", () => { diff --git a/packages/deslop-js/tests/errors.test.ts b/packages/core/tests/deslop/errors.test.ts similarity index 97% rename from packages/deslop-js/tests/errors.test.ts rename to packages/core/tests/deslop/errors.test.ts index d3c6ec3b7..d9e4914e2 100644 --- a/packages/deslop-js/tests/errors.test.ts +++ b/packages/core/tests/deslop/errors.test.ts @@ -1,7 +1,7 @@ -import { describe, it } from "node:test"; +import { describe, it } from "vite-plus/test"; import assert from "node:assert/strict"; import { resolve } from "node:path"; -import { analyze, defineConfig } from "../src/index.js"; +import { analyze, defineConfig } from "../../src/deslop/index.js"; import { ConfigError, DeslopError, @@ -13,7 +13,7 @@ import { WorkspaceError, createDeslopError, DeslopErrorCollector, -} from "../src/errors.js"; +} from "../../src/deslop/errors.js"; import { FIXTURES_DIR } from "./helpers/fixtures-dir.js"; describe("errors / DeslopError class hierarchy", () => { diff --git a/packages/deslop-js/tests/fixtures/alias-mixed-exports/package.json b/packages/core/tests/deslop/fixtures/alias-mixed-exports/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-mixed-exports/package.json rename to packages/core/tests/deslop/fixtures/alias-mixed-exports/package.json diff --git a/packages/deslop-js/tests/fixtures/alias-mixed-exports/src/helpers.ts b/packages/core/tests/deslop/fixtures/alias-mixed-exports/src/helpers.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-mixed-exports/src/helpers.ts rename to packages/core/tests/deslop/fixtures/alias-mixed-exports/src/helpers.ts diff --git a/packages/deslop-js/tests/fixtures/alias-mixed-exports/src/index.ts b/packages/core/tests/deslop/fixtures/alias-mixed-exports/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-mixed-exports/src/index.ts rename to packages/core/tests/deslop/fixtures/alias-mixed-exports/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/alias-mixed-exports/src/orphan.ts b/packages/core/tests/deslop/fixtures/alias-mixed-exports/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-mixed-exports/src/orphan.ts rename to packages/core/tests/deslop/fixtures/alias-mixed-exports/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/alias-mixed-exports/src/types.ts b/packages/core/tests/deslop/fixtures/alias-mixed-exports/src/types.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-mixed-exports/src/types.ts rename to packages/core/tests/deslop/fixtures/alias-mixed-exports/src/types.ts diff --git a/packages/deslop-js/tests/fixtures/alias-mixed-exports/tsconfig.json b/packages/core/tests/deslop/fixtures/alias-mixed-exports/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-mixed-exports/tsconfig.json rename to packages/core/tests/deslop/fixtures/alias-mixed-exports/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/alias-named-exports/barrel.ts b/packages/core/tests/deslop/fixtures/alias-named-exports/barrel.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-named-exports/barrel.ts rename to packages/core/tests/deslop/fixtures/alias-named-exports/barrel.ts diff --git a/packages/deslop-js/tests/fixtures/alias-named-exports/greetings.ts b/packages/core/tests/deslop/fixtures/alias-named-exports/greetings.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-named-exports/greetings.ts rename to packages/core/tests/deslop/fixtures/alias-named-exports/greetings.ts diff --git a/packages/deslop-js/tests/fixtures/alias-named-exports/index.ts b/packages/core/tests/deslop/fixtures/alias-named-exports/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-named-exports/index.ts rename to packages/core/tests/deslop/fixtures/alias-named-exports/index.ts diff --git a/packages/deslop-js/tests/fixtures/alias-named-exports/package.json b/packages/core/tests/deslop/fixtures/alias-named-exports/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-named-exports/package.json rename to packages/core/tests/deslop/fixtures/alias-named-exports/package.json diff --git a/packages/deslop-js/tests/fixtures/alias-paths/package.json b/packages/core/tests/deslop/fixtures/alias-paths/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-paths/package.json rename to packages/core/tests/deslop/fixtures/alias-paths/package.json diff --git a/packages/deslop-js/tests/fixtures/alias-paths/src/index.ts b/packages/core/tests/deslop/fixtures/alias-paths/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-paths/src/index.ts rename to packages/core/tests/deslop/fixtures/alias-paths/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/alias-paths/src/utils.ts b/packages/core/tests/deslop/fixtures/alias-paths/src/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-paths/src/utils.ts rename to packages/core/tests/deslop/fixtures/alias-paths/src/utils.ts diff --git a/packages/deslop-js/tests/fixtures/alias-paths/tsconfig.json b/packages/core/tests/deslop/fixtures/alias-paths/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/alias-paths/tsconfig.json rename to packages/core/tests/deslop/fixtures/alias-paths/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/angular-workspace/angular.json b/packages/core/tests/deslop/fixtures/angular-workspace/angular.json similarity index 100% rename from packages/deslop-js/tests/fixtures/angular-workspace/angular.json rename to packages/core/tests/deslop/fixtures/angular-workspace/angular.json diff --git a/packages/deslop-js/tests/fixtures/angular-workspace/orphan.ts b/packages/core/tests/deslop/fixtures/angular-workspace/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/angular-workspace/orphan.ts rename to packages/core/tests/deslop/fixtures/angular-workspace/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/angular-workspace/package.json b/packages/core/tests/deslop/fixtures/angular-workspace/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/angular-workspace/package.json rename to packages/core/tests/deslop/fixtures/angular-workspace/package.json diff --git a/packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/app/app.component.css b/packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/app/app.component.css similarity index 100% rename from packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/app/app.component.css rename to packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/app/app.component.css diff --git a/packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/app/app.component.html b/packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/app/app.component.html similarity index 100% rename from packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/app/app.component.html rename to packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/app/app.component.html diff --git a/packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/app/app.component.ts b/packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/app/app.component.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/app/app.component.ts rename to packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/app/app.component.ts diff --git a/packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/app/app.module.ts b/packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/app/app.module.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/app/app.module.ts rename to packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/app/app.module.ts diff --git a/packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/app/orphan.css b/packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/app/orphan.css similarity index 100% rename from packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/app/orphan.css rename to packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/app/orphan.css diff --git a/packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/environments/environment.ts b/packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/environments/environment.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/environments/environment.ts rename to packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/environments/environment.ts diff --git a/packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/main.ts b/packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/main.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/main.ts rename to packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/main.ts diff --git a/packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/polyfills.ts b/packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/polyfills.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/polyfills.ts rename to packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/polyfills.ts diff --git a/packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/styles.css b/packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/styles.css similarity index 100% rename from packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/styles.css rename to packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/styles.css diff --git a/packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/test.ts b/packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/angular-workspace/projects/demo/src/test.ts rename to packages/core/tests/deslop/fixtures/angular-workspace/projects/demo/src/test.ts diff --git a/packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/package.json b/packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/package.json rename to packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/package.json diff --git a/packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/src/Bar.tsx b/packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/src/Bar.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/src/Bar.tsx rename to packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/src/Bar.tsx diff --git a/packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/src/Baz.tsx b/packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/src/Baz.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/src/Baz.tsx rename to packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/src/Baz.tsx diff --git a/packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/src/Foo.tsx b/packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/src/Foo.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/src/Foo.tsx rename to packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/src/Foo.tsx diff --git a/packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/src/feature.routes.ts b/packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/src/feature.routes.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/src/feature.routes.ts rename to packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/src/feature.routes.ts diff --git a/packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/src/index.tsx b/packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/src/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/src/index.tsx rename to packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/src/index.tsx diff --git a/packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/src/orphan.ts b/packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/arrow-wrapped-import-dynamic/src/orphan.ts rename to packages/core/tests/deslop/fixtures/arrow-wrapped-import-dynamic/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/astro-content/astro.config.ts b/packages/core/tests/deslop/fixtures/astro-content/astro.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-content/astro.config.ts rename to packages/core/tests/deslop/fixtures/astro-content/astro.config.ts diff --git a/packages/deslop-js/tests/fixtures/astro-content/package.json b/packages/core/tests/deslop/fixtures/astro-content/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-content/package.json rename to packages/core/tests/deslop/fixtures/astro-content/package.json diff --git a/packages/deslop-js/tests/fixtures/astro-content/src/content.config.ts b/packages/core/tests/deslop/fixtures/astro-content/src/content.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-content/src/content.config.ts rename to packages/core/tests/deslop/fixtures/astro-content/src/content.config.ts diff --git a/packages/deslop-js/tests/fixtures/astro-content/src/content/config.ts b/packages/core/tests/deslop/fixtures/astro-content/src/content/config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-content/src/content/config.ts rename to packages/core/tests/deslop/fixtures/astro-content/src/content/config.ts diff --git a/packages/deslop-js/tests/fixtures/astro-content/src/orphan.ts b/packages/core/tests/deslop/fixtures/astro-content/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-content/src/orphan.ts rename to packages/core/tests/deslop/fixtures/astro-content/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/astro-content/src/pages/index.astro b/packages/core/tests/deslop/fixtures/astro-content/src/pages/index.astro similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-content/src/pages/index.astro rename to packages/core/tests/deslop/fixtures/astro-content/src/pages/index.astro diff --git a/packages/deslop-js/tests/fixtures/astro-frontmatter-return/package.json b/packages/core/tests/deslop/fixtures/astro-frontmatter-return/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-frontmatter-return/package.json rename to packages/core/tests/deslop/fixtures/astro-frontmatter-return/package.json diff --git a/packages/deslop-js/tests/fixtures/astro-frontmatter-return/src/components/Greeting.tsx b/packages/core/tests/deslop/fixtures/astro-frontmatter-return/src/components/Greeting.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-frontmatter-return/src/components/Greeting.tsx rename to packages/core/tests/deslop/fixtures/astro-frontmatter-return/src/components/Greeting.tsx diff --git a/packages/deslop-js/tests/fixtures/astro-frontmatter-return/src/components/orphan.ts b/packages/core/tests/deslop/fixtures/astro-frontmatter-return/src/components/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-frontmatter-return/src/components/orphan.ts rename to packages/core/tests/deslop/fixtures/astro-frontmatter-return/src/components/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/astro-frontmatter-return/src/pages/[...slug].astro b/packages/core/tests/deslop/fixtures/astro-frontmatter-return/src/pages/[...slug].astro similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-frontmatter-return/src/pages/[...slug].astro rename to packages/core/tests/deslop/fixtures/astro-frontmatter-return/src/pages/[...slug].astro diff --git a/packages/deslop-js/tests/fixtures/astro-frontmatter-return/src/scripts/analytics.ts b/packages/core/tests/deslop/fixtures/astro-frontmatter-return/src/scripts/analytics.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-frontmatter-return/src/scripts/analytics.ts rename to packages/core/tests/deslop/fixtures/astro-frontmatter-return/src/scripts/analytics.ts diff --git a/packages/deslop-js/tests/fixtures/astro-frontmatter-return/src/scripts/inline-helper.ts b/packages/core/tests/deslop/fixtures/astro-frontmatter-return/src/scripts/inline-helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-frontmatter-return/src/scripts/inline-helper.ts rename to packages/core/tests/deslop/fixtures/astro-frontmatter-return/src/scripts/inline-helper.ts diff --git a/packages/deslop-js/tests/fixtures/astro-live-config/astro.config.ts b/packages/core/tests/deslop/fixtures/astro-live-config/astro.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-live-config/astro.config.ts rename to packages/core/tests/deslop/fixtures/astro-live-config/astro.config.ts diff --git a/packages/deslop-js/tests/fixtures/astro-live-config/package.json b/packages/core/tests/deslop/fixtures/astro-live-config/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-live-config/package.json rename to packages/core/tests/deslop/fixtures/astro-live-config/package.json diff --git a/packages/deslop-js/tests/fixtures/astro-live-config/src/live.config.ts b/packages/core/tests/deslop/fixtures/astro-live-config/src/live.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-live-config/src/live.config.ts rename to packages/core/tests/deslop/fixtures/astro-live-config/src/live.config.ts diff --git a/packages/deslop-js/tests/fixtures/astro-live-config/src/loaders/wordpress-loader.ts b/packages/core/tests/deslop/fixtures/astro-live-config/src/loaders/wordpress-loader.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-live-config/src/loaders/wordpress-loader.ts rename to packages/core/tests/deslop/fixtures/astro-live-config/src/loaders/wordpress-loader.ts diff --git a/packages/deslop-js/tests/fixtures/astro-live-config/src/orphan.ts b/packages/core/tests/deslop/fixtures/astro-live-config/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-live-config/src/orphan.ts rename to packages/core/tests/deslop/fixtures/astro-live-config/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/astro-live-config/src/pages/index.astro b/packages/core/tests/deslop/fixtures/astro-live-config/src/pages/index.astro similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-live-config/src/pages/index.astro rename to packages/core/tests/deslop/fixtures/astro-live-config/src/pages/index.astro diff --git a/packages/deslop-js/tests/fixtures/astro-mw/orphan.ts b/packages/core/tests/deslop/fixtures/astro-mw/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-mw/orphan.ts rename to packages/core/tests/deslop/fixtures/astro-mw/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/astro-mw/package.json b/packages/core/tests/deslop/fixtures/astro-mw/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-mw/package.json rename to packages/core/tests/deslop/fixtures/astro-mw/package.json diff --git a/packages/deslop-js/tests/fixtures/astro-mw/src/middleware.ts b/packages/core/tests/deslop/fixtures/astro-mw/src/middleware.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-mw/src/middleware.ts rename to packages/core/tests/deslop/fixtures/astro-mw/src/middleware.ts diff --git a/packages/deslop-js/tests/fixtures/astro-mw/src/pages/index.astro b/packages/core/tests/deslop/fixtures/astro-mw/src/pages/index.astro similarity index 100% rename from packages/deslop-js/tests/fixtures/astro-mw/src/pages/index.astro rename to packages/core/tests/deslop/fixtures/astro-mw/src/pages/index.astro diff --git a/packages/deslop-js/tests/fixtures/ava-app/package.json b/packages/core/tests/deslop/fixtures/ava-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/ava-app/package.json rename to packages/core/tests/deslop/fixtures/ava-app/package.json diff --git a/packages/deslop-js/tests/fixtures/ava-app/src/index.ts b/packages/core/tests/deslop/fixtures/ava-app/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ava-app/src/index.ts rename to packages/core/tests/deslop/fixtures/ava-app/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/ava-app/src/math.ts b/packages/core/tests/deslop/fixtures/ava-app/src/math.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ava-app/src/math.ts rename to packages/core/tests/deslop/fixtures/ava-app/src/math.ts diff --git a/packages/deslop-js/tests/fixtures/ava-app/src/orphan.ts b/packages/core/tests/deslop/fixtures/ava-app/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ava-app/src/orphan.ts rename to packages/core/tests/deslop/fixtures/ava-app/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/ava-app/test/math.test.ts b/packages/core/tests/deslop/fixtures/ava-app/test/math.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ava-app/test/math.test.ts rename to packages/core/tests/deslop/fixtures/ava-app/test/math.test.ts diff --git a/packages/deslop-js/tests/fixtures/babel-module-resolver/babel.config.js b/packages/core/tests/deslop/fixtures/babel-module-resolver/babel.config.js similarity index 100% rename from packages/deslop-js/tests/fixtures/babel-module-resolver/babel.config.js rename to packages/core/tests/deslop/fixtures/babel-module-resolver/babel.config.js diff --git a/packages/deslop-js/tests/fixtures/babel-module-resolver/package.json b/packages/core/tests/deslop/fixtures/babel-module-resolver/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/babel-module-resolver/package.json rename to packages/core/tests/deslop/fixtures/babel-module-resolver/package.json diff --git a/packages/deslop-js/tests/fixtures/babel-module-resolver/src/components/button.ts b/packages/core/tests/deslop/fixtures/babel-module-resolver/src/components/button.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/babel-module-resolver/src/components/button.ts rename to packages/core/tests/deslop/fixtures/babel-module-resolver/src/components/button.ts diff --git a/packages/deslop-js/tests/fixtures/babel-module-resolver/src/components/orphan.ts b/packages/core/tests/deslop/fixtures/babel-module-resolver/src/components/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/babel-module-resolver/src/components/orphan.ts rename to packages/core/tests/deslop/fixtures/babel-module-resolver/src/components/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/babel-module-resolver/src/index.ts b/packages/core/tests/deslop/fixtures/babel-module-resolver/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/babel-module-resolver/src/index.ts rename to packages/core/tests/deslop/fixtures/babel-module-resolver/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/broken-tsconfig/package.json b/packages/core/tests/deslop/fixtures/broken-tsconfig/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/broken-tsconfig/package.json rename to packages/core/tests/deslop/fixtures/broken-tsconfig/package.json diff --git a/packages/deslop-js/tests/fixtures/broken-tsconfig/src/index.ts b/packages/core/tests/deslop/fixtures/broken-tsconfig/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/broken-tsconfig/src/index.ts rename to packages/core/tests/deslop/fixtures/broken-tsconfig/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/broken-tsconfig/tsconfig.json b/packages/core/tests/deslop/fixtures/broken-tsconfig/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/broken-tsconfig/tsconfig.json rename to packages/core/tests/deslop/fixtures/broken-tsconfig/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/build-root-fallback/bin/server.js b/packages/core/tests/deslop/fixtures/build-root-fallback/bin/server.js similarity index 100% rename from packages/deslop-js/tests/fixtures/build-root-fallback/bin/server.js rename to packages/core/tests/deslop/fixtures/build-root-fallback/bin/server.js diff --git a/packages/deslop-js/tests/fixtures/build-root-fallback/package.json b/packages/core/tests/deslop/fixtures/build-root-fallback/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/build-root-fallback/package.json rename to packages/core/tests/deslop/fixtures/build-root-fallback/package.json diff --git a/packages/deslop-js/tests/fixtures/build-root-fallback/src/app.ts b/packages/core/tests/deslop/fixtures/build-root-fallback/src/app.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/build-root-fallback/src/app.ts rename to packages/core/tests/deslop/fixtures/build-root-fallback/src/app.ts diff --git a/packages/deslop-js/tests/fixtures/build-root-fallback/src/db.ts b/packages/core/tests/deslop/fixtures/build-root-fallback/src/db.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/build-root-fallback/src/db.ts rename to packages/core/tests/deslop/fixtures/build-root-fallback/src/db.ts diff --git a/packages/deslop-js/tests/fixtures/build-root-fallback/src/orphan.ts b/packages/core/tests/deslop/fixtures/build-root-fallback/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/build-root-fallback/src/orphan.ts rename to packages/core/tests/deslop/fixtures/build-root-fallback/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/build-script-map/package.json b/packages/core/tests/deslop/fixtures/build-script-map/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/build-script-map/package.json rename to packages/core/tests/deslop/fixtures/build-script-map/package.json diff --git a/packages/deslop-js/tests/fixtures/build-script-map/src/index.ts b/packages/core/tests/deslop/fixtures/build-script-map/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/build-script-map/src/index.ts rename to packages/core/tests/deslop/fixtures/build-script-map/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/build-script-map/src/orphan.ts b/packages/core/tests/deslop/fixtures/build-script-map/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/build-script-map/src/orphan.ts rename to packages/core/tests/deslop/fixtures/build-script-map/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/build-script-map/src/scripts/health-check.ts b/packages/core/tests/deslop/fixtures/build-script-map/src/scripts/health-check.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/build-script-map/src/scripts/health-check.ts rename to packages/core/tests/deslop/fixtures/build-script-map/src/scripts/health-check.ts diff --git a/packages/deslop-js/tests/fixtures/build-script-map/src/scripts/migrate.ts b/packages/core/tests/deslop/fixtures/build-script-map/src/scripts/migrate.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/build-script-map/src/scripts/migrate.ts rename to packages/core/tests/deslop/fixtures/build-script-map/src/scripts/migrate.ts diff --git a/packages/deslop-js/tests/fixtures/bun-test/__tests__/integration.test.ts b/packages/core/tests/deslop/fixtures/bun-test/__tests__/integration.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/bun-test/__tests__/integration.test.ts rename to packages/core/tests/deslop/fixtures/bun-test/__tests__/integration.test.ts diff --git a/packages/deslop-js/tests/fixtures/bun-test/orphan.ts b/packages/core/tests/deslop/fixtures/bun-test/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/bun-test/orphan.ts rename to packages/core/tests/deslop/fixtures/bun-test/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/bun-test/package.json b/packages/core/tests/deslop/fixtures/bun-test/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/bun-test/package.json rename to packages/core/tests/deslop/fixtures/bun-test/package.json diff --git a/packages/deslop-js/tests/fixtures/bun-test/src/__tests__/build-output.test.ts b/packages/core/tests/deslop/fixtures/bun-test/src/__tests__/build-output.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/bun-test/src/__tests__/build-output.test.ts rename to packages/core/tests/deslop/fixtures/bun-test/src/__tests__/build-output.test.ts diff --git a/packages/deslop-js/tests/fixtures/bun-test/src/add.test.ts b/packages/core/tests/deslop/fixtures/bun-test/src/add.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/bun-test/src/add.test.ts rename to packages/core/tests/deslop/fixtures/bun-test/src/add.test.ts diff --git a/packages/deslop-js/tests/fixtures/bun-test/src/index.ts b/packages/core/tests/deslop/fixtures/bun-test/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/bun-test/src/index.ts rename to packages/core/tests/deslop/fixtures/bun-test/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/bun-test/src/orphan.ts b/packages/core/tests/deslop/fixtures/bun-test/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/bun-test/src/orphan.ts rename to packages/core/tests/deslop/fixtures/bun-test/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/bun-test/src/utils_test.ts b/packages/core/tests/deslop/fixtures/bun-test/src/utils_test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/bun-test/src/utils_test.ts rename to packages/core/tests/deslop/fixtures/bun-test/src/utils_test.ts diff --git a/packages/deslop-js/tests/fixtures/ci-scripts/.github/workflows/release.yml b/packages/core/tests/deslop/fixtures/ci-scripts/.github/workflows/release.yml similarity index 100% rename from packages/deslop-js/tests/fixtures/ci-scripts/.github/workflows/release.yml rename to packages/core/tests/deslop/fixtures/ci-scripts/.github/workflows/release.yml diff --git a/packages/deslop-js/tests/fixtures/ci-scripts/package.json b/packages/core/tests/deslop/fixtures/ci-scripts/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/ci-scripts/package.json rename to packages/core/tests/deslop/fixtures/ci-scripts/package.json diff --git a/packages/deslop-js/tests/fixtures/ci-scripts/scripts/build-release.ts b/packages/core/tests/deslop/fixtures/ci-scripts/scripts/build-release.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ci-scripts/scripts/build-release.ts rename to packages/core/tests/deslop/fixtures/ci-scripts/scripts/build-release.ts diff --git a/packages/deslop-js/tests/fixtures/ci-scripts/scripts/deploy.mjs b/packages/core/tests/deslop/fixtures/ci-scripts/scripts/deploy.mjs similarity index 100% rename from packages/deslop-js/tests/fixtures/ci-scripts/scripts/deploy.mjs rename to packages/core/tests/deslop/fixtures/ci-scripts/scripts/deploy.mjs diff --git a/packages/deslop-js/tests/fixtures/ci-scripts/src/index.ts b/packages/core/tests/deslop/fixtures/ci-scripts/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ci-scripts/src/index.ts rename to packages/core/tests/deslop/fixtures/ci-scripts/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/ci-scripts/src/orphan.ts b/packages/core/tests/deslop/fixtures/ci-scripts/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ci-scripts/src/orphan.ts rename to packages/core/tests/deslop/fixtures/ci-scripts/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/ci-yaml-non-run/.github/changelog/changelog.js b/packages/core/tests/deslop/fixtures/ci-yaml-non-run/.github/changelog/changelog.js similarity index 100% rename from packages/deslop-js/tests/fixtures/ci-yaml-non-run/.github/changelog/changelog.js rename to packages/core/tests/deslop/fixtures/ci-yaml-non-run/.github/changelog/changelog.js diff --git a/packages/deslop-js/tests/fixtures/ci-yaml-non-run/.github/workflows/release.yml b/packages/core/tests/deslop/fixtures/ci-yaml-non-run/.github/workflows/release.yml similarity index 100% rename from packages/deslop-js/tests/fixtures/ci-yaml-non-run/.github/workflows/release.yml rename to packages/core/tests/deslop/fixtures/ci-yaml-non-run/.github/workflows/release.yml diff --git a/packages/deslop-js/tests/fixtures/ci-yaml-non-run/package.json b/packages/core/tests/deslop/fixtures/ci-yaml-non-run/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/ci-yaml-non-run/package.json rename to packages/core/tests/deslop/fixtures/ci-yaml-non-run/package.json diff --git a/packages/deslop-js/tests/fixtures/ci-yaml-non-run/scripts/deploy.mjs b/packages/core/tests/deslop/fixtures/ci-yaml-non-run/scripts/deploy.mjs similarity index 100% rename from packages/deslop-js/tests/fixtures/ci-yaml-non-run/scripts/deploy.mjs rename to packages/core/tests/deslop/fixtures/ci-yaml-non-run/scripts/deploy.mjs diff --git a/packages/deslop-js/tests/fixtures/ci-yaml-non-run/src/index.ts b/packages/core/tests/deslop/fixtures/ci-yaml-non-run/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ci-yaml-non-run/src/index.ts rename to packages/core/tests/deslop/fixtures/ci-yaml-non-run/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/cloudflare-worker/package.json b/packages/core/tests/deslop/fixtures/cloudflare-worker/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cloudflare-worker/package.json rename to packages/core/tests/deslop/fixtures/cloudflare-worker/package.json diff --git a/packages/deslop-js/tests/fixtures/cloudflare-worker/src/index.ts b/packages/core/tests/deslop/fixtures/cloudflare-worker/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cloudflare-worker/src/index.ts rename to packages/core/tests/deslop/fixtures/cloudflare-worker/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/cloudflare-worker/src/orphan.ts b/packages/core/tests/deslop/fixtures/cloudflare-worker/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cloudflare-worker/src/orphan.ts rename to packages/core/tests/deslop/fixtures/cloudflare-worker/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/commonjs-app/package.json b/packages/core/tests/deslop/fixtures/commonjs-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/commonjs-app/package.json rename to packages/core/tests/deslop/fixtures/commonjs-app/package.json diff --git a/packages/deslop-js/tests/fixtures/commonjs-app/src/index.js b/packages/core/tests/deslop/fixtures/commonjs-app/src/index.js similarity index 100% rename from packages/deslop-js/tests/fixtures/commonjs-app/src/index.js rename to packages/core/tests/deslop/fixtures/commonjs-app/src/index.js diff --git a/packages/deslop-js/tests/fixtures/commonjs-app/src/orphan.js b/packages/core/tests/deslop/fixtures/commonjs-app/src/orphan.js similarity index 100% rename from packages/deslop-js/tests/fixtures/commonjs-app/src/orphan.js rename to packages/core/tests/deslop/fixtures/commonjs-app/src/orphan.js diff --git a/packages/deslop-js/tests/fixtures/commonjs-app/src/utils.js b/packages/core/tests/deslop/fixtures/commonjs-app/src/utils.js similarity index 100% rename from packages/deslop-js/tests/fixtures/commonjs-app/src/utils.js rename to packages/core/tests/deslop/fixtures/commonjs-app/src/utils.js diff --git a/packages/deslop-js/tests/fixtures/complex-functions/package.json b/packages/core/tests/deslop/fixtures/complex-functions/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/complex-functions/package.json rename to packages/core/tests/deslop/fixtures/complex-functions/package.json diff --git a/packages/deslop-js/tests/fixtures/complex-functions/src/index.ts b/packages/core/tests/deslop/fixtures/complex-functions/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/complex-functions/src/index.ts rename to packages/core/tests/deslop/fixtures/complex-functions/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/config-compound-name/cypress.config.contract.js b/packages/core/tests/deslop/fixtures/config-compound-name/cypress.config.contract.js similarity index 100% rename from packages/deslop-js/tests/fixtures/config-compound-name/cypress.config.contract.js rename to packages/core/tests/deslop/fixtures/config-compound-name/cypress.config.contract.js diff --git a/packages/deslop-js/tests/fixtures/config-compound-name/package.json b/packages/core/tests/deslop/fixtures/config-compound-name/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/config-compound-name/package.json rename to packages/core/tests/deslop/fixtures/config-compound-name/package.json diff --git a/packages/deslop-js/tests/fixtures/config-compound-name/src/index.ts b/packages/core/tests/deslop/fixtures/config-compound-name/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-compound-name/src/index.ts rename to packages/core/tests/deslop/fixtures/config-compound-name/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/config-compound-name/src/orphan.ts b/packages/core/tests/deslop/fixtures/config-compound-name/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-compound-name/src/orphan.ts rename to packages/core/tests/deslop/fixtures/config-compound-name/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/config-compound-name/vitest.config.unit.ts b/packages/core/tests/deslop/fixtures/config-compound-name/vitest.config.unit.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-compound-name/vitest.config.unit.ts rename to packages/core/tests/deslop/fixtures/config-compound-name/vitest.config.unit.ts diff --git a/packages/deslop-js/tests/fixtures/config-detection/.desloprc.json b/packages/core/tests/deslop/fixtures/config-detection/.desloprc.json similarity index 100% rename from packages/deslop-js/tests/fixtures/config-detection/.desloprc.json rename to packages/core/tests/deslop/fixtures/config-detection/.desloprc.json diff --git a/packages/deslop-js/tests/fixtures/config-detection/package.json b/packages/core/tests/deslop/fixtures/config-detection/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/config-detection/package.json rename to packages/core/tests/deslop/fixtures/config-detection/package.json diff --git a/packages/deslop-js/tests/fixtures/config-detection/src/index.ts b/packages/core/tests/deslop/fixtures/config-detection/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-detection/src/index.ts rename to packages/core/tests/deslop/fixtures/config-detection/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/config-detection/src/orphan.ts b/packages/core/tests/deslop/fixtures/config-detection/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-detection/src/orphan.ts rename to packages/core/tests/deslop/fixtures/config-detection/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/config-detection/src/utils.ts b/packages/core/tests/deslop/fixtures/config-detection/src/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-detection/src/utils.ts rename to packages/core/tests/deslop/fixtures/config-detection/src/utils.ts diff --git a/packages/deslop-js/tests/fixtures/config-entry-seed/package.json b/packages/core/tests/deslop/fixtures/config-entry-seed/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/config-entry-seed/package.json rename to packages/core/tests/deslop/fixtures/config-entry-seed/package.json diff --git a/packages/deslop-js/tests/fixtures/config-entry-seed/src/helper.ts b/packages/core/tests/deslop/fixtures/config-entry-seed/src/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-entry-seed/src/helper.ts rename to packages/core/tests/deslop/fixtures/config-entry-seed/src/helper.ts diff --git a/packages/deslop-js/tests/fixtures/config-entry-seed/src/index.ts b/packages/core/tests/deslop/fixtures/config-entry-seed/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-entry-seed/src/index.ts rename to packages/core/tests/deslop/fixtures/config-entry-seed/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/config-entry-seed/src/orphan.ts b/packages/core/tests/deslop/fixtures/config-entry-seed/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-entry-seed/src/orphan.ts rename to packages/core/tests/deslop/fixtures/config-entry-seed/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/config-entry-seed/src/vite-plugin.ts b/packages/core/tests/deslop/fixtures/config-entry-seed/src/vite-plugin.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-entry-seed/src/vite-plugin.ts rename to packages/core/tests/deslop/fixtures/config-entry-seed/src/vite-plugin.ts diff --git a/packages/deslop-js/tests/fixtures/config-entry-seed/vite.config.ts b/packages/core/tests/deslop/fixtures/config-entry-seed/vite.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-entry-seed/vite.config.ts rename to packages/core/tests/deslop/fixtures/config-entry-seed/vite.config.ts diff --git a/packages/deslop-js/tests/fixtures/config-exclusion/package.json b/packages/core/tests/deslop/fixtures/config-exclusion/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/config-exclusion/package.json rename to packages/core/tests/deslop/fixtures/config-exclusion/package.json diff --git a/packages/deslop-js/tests/fixtures/config-exclusion/playwright.smoke.config.mjs b/packages/core/tests/deslop/fixtures/config-exclusion/playwright.smoke.config.mjs similarity index 100% rename from packages/deslop-js/tests/fixtures/config-exclusion/playwright.smoke.config.mjs rename to packages/core/tests/deslop/fixtures/config-exclusion/playwright.smoke.config.mjs diff --git a/packages/deslop-js/tests/fixtures/config-exclusion/sanity.cli.ts b/packages/core/tests/deslop/fixtures/config-exclusion/sanity.cli.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-exclusion/sanity.cli.ts rename to packages/core/tests/deslop/fixtures/config-exclusion/sanity.cli.ts diff --git a/packages/deslop-js/tests/fixtures/config-exclusion/sanity.config.ts b/packages/core/tests/deslop/fixtures/config-exclusion/sanity.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-exclusion/sanity.config.ts rename to packages/core/tests/deslop/fixtures/config-exclusion/sanity.config.ts diff --git a/packages/deslop-js/tests/fixtures/config-exclusion/src/index.ts b/packages/core/tests/deslop/fixtures/config-exclusion/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-exclusion/src/index.ts rename to packages/core/tests/deslop/fixtures/config-exclusion/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/config-exclusion/src/orphan.ts b/packages/core/tests/deslop/fixtures/config-exclusion/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-exclusion/src/orphan.ts rename to packages/core/tests/deslop/fixtures/config-exclusion/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/config-exclusion/vitest.config.ts b/packages/core/tests/deslop/fixtures/config-exclusion/vitest.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-exclusion/vitest.config.ts rename to packages/core/tests/deslop/fixtures/config-exclusion/vitest.config.ts diff --git a/packages/deslop-js/tests/fixtures/config-global-scope/package.json b/packages/core/tests/deslop/fixtures/config-global-scope/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/config-global-scope/package.json rename to packages/core/tests/deslop/fixtures/config-global-scope/package.json diff --git a/packages/deslop-js/tests/fixtures/config-global-scope/src/index.ts b/packages/core/tests/deslop/fixtures/config-global-scope/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-global-scope/src/index.ts rename to packages/core/tests/deslop/fixtures/config-global-scope/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/config-global-scope/templates/next-app/eslint.config.js b/packages/core/tests/deslop/fixtures/config-global-scope/templates/next-app/eslint.config.js similarity index 100% rename from packages/deslop-js/tests/fixtures/config-global-scope/templates/next-app/eslint.config.js rename to packages/core/tests/deslop/fixtures/config-global-scope/templates/next-app/eslint.config.js diff --git a/packages/deslop-js/tests/fixtures/config-global-scope/templates/next-app/orphan.ts b/packages/core/tests/deslop/fixtures/config-global-scope/templates/next-app/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-global-scope/templates/next-app/orphan.ts rename to packages/core/tests/deslop/fixtures/config-global-scope/templates/next-app/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/config-global-scope/templates/next-app/postcss.config.mjs b/packages/core/tests/deslop/fixtures/config-global-scope/templates/next-app/postcss.config.mjs similarity index 100% rename from packages/deslop-js/tests/fixtures/config-global-scope/templates/next-app/postcss.config.mjs rename to packages/core/tests/deslop/fixtures/config-global-scope/templates/next-app/postcss.config.mjs diff --git a/packages/deslop-js/tests/fixtures/config-imports/my-vite-plugin.ts b/packages/core/tests/deslop/fixtures/config-imports/my-vite-plugin.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-imports/my-vite-plugin.ts rename to packages/core/tests/deslop/fixtures/config-imports/my-vite-plugin.ts diff --git a/packages/deslop-js/tests/fixtures/config-imports/package.json b/packages/core/tests/deslop/fixtures/config-imports/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/config-imports/package.json rename to packages/core/tests/deslop/fixtures/config-imports/package.json diff --git a/packages/deslop-js/tests/fixtures/config-imports/src/app.ts b/packages/core/tests/deslop/fixtures/config-imports/src/app.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-imports/src/app.ts rename to packages/core/tests/deslop/fixtures/config-imports/src/app.ts diff --git a/packages/deslop-js/tests/fixtures/config-imports/src/index.ts b/packages/core/tests/deslop/fixtures/config-imports/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-imports/src/index.ts rename to packages/core/tests/deslop/fixtures/config-imports/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/config-imports/src/shared-util.ts b/packages/core/tests/deslop/fixtures/config-imports/src/shared-util.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-imports/src/shared-util.ts rename to packages/core/tests/deslop/fixtures/config-imports/src/shared-util.ts diff --git a/packages/deslop-js/tests/fixtures/config-imports/vite.config.ts b/packages/core/tests/deslop/fixtures/config-imports/vite.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-imports/vite.config.ts rename to packages/core/tests/deslop/fixtures/config-imports/vite.config.ts diff --git a/packages/deslop-js/tests/fixtures/config-mixed-formats/lage.config.cjs b/packages/core/tests/deslop/fixtures/config-mixed-formats/lage.config.cjs similarity index 100% rename from packages/deslop-js/tests/fixtures/config-mixed-formats/lage.config.cjs rename to packages/core/tests/deslop/fixtures/config-mixed-formats/lage.config.cjs diff --git a/packages/deslop-js/tests/fixtures/config-mixed-formats/package.json b/packages/core/tests/deslop/fixtures/config-mixed-formats/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/config-mixed-formats/package.json rename to packages/core/tests/deslop/fixtures/config-mixed-formats/package.json diff --git a/packages/deslop-js/tests/fixtures/config-mixed-formats/prettier.config.mjs b/packages/core/tests/deslop/fixtures/config-mixed-formats/prettier.config.mjs similarity index 100% rename from packages/deslop-js/tests/fixtures/config-mixed-formats/prettier.config.mjs rename to packages/core/tests/deslop/fixtures/config-mixed-formats/prettier.config.mjs diff --git a/packages/deslop-js/tests/fixtures/config-mixed-formats/src/index.ts b/packages/core/tests/deslop/fixtures/config-mixed-formats/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-mixed-formats/src/index.ts rename to packages/core/tests/deslop/fixtures/config-mixed-formats/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/config-mixed-formats/src/orphan.ts b/packages/core/tests/deslop/fixtures/config-mixed-formats/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-mixed-formats/src/orphan.ts rename to packages/core/tests/deslop/fixtures/config-mixed-formats/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/config-mixed-formats/vitest.config.mts b/packages/core/tests/deslop/fixtures/config-mixed-formats/vitest.config.mts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-mixed-formats/vitest.config.mts rename to packages/core/tests/deslop/fixtures/config-mixed-formats/vitest.config.mts diff --git a/packages/deslop-js/tests/fixtures/config-paths-only/lib/orphan.ts b/packages/core/tests/deslop/fixtures/config-paths-only/lib/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-paths-only/lib/orphan.ts rename to packages/core/tests/deslop/fixtures/config-paths-only/lib/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/config-paths-only/lib/thing.ts b/packages/core/tests/deslop/fixtures/config-paths-only/lib/thing.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-paths-only/lib/thing.ts rename to packages/core/tests/deslop/fixtures/config-paths-only/lib/thing.ts diff --git a/packages/deslop-js/tests/fixtures/config-paths-only/package.json b/packages/core/tests/deslop/fixtures/config-paths-only/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/config-paths-only/package.json rename to packages/core/tests/deslop/fixtures/config-paths-only/package.json diff --git a/packages/deslop-js/tests/fixtures/config-paths-only/src/index.ts b/packages/core/tests/deslop/fixtures/config-paths-only/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-paths-only/src/index.ts rename to packages/core/tests/deslop/fixtures/config-paths-only/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/config-script-flags/db/drizzle.config.ts b/packages/core/tests/deslop/fixtures/config-script-flags/db/drizzle.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-script-flags/db/drizzle.config.ts rename to packages/core/tests/deslop/fixtures/config-script-flags/db/drizzle.config.ts diff --git a/packages/deslop-js/tests/fixtures/config-script-flags/package.json b/packages/core/tests/deslop/fixtures/config-script-flags/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/config-script-flags/package.json rename to packages/core/tests/deslop/fixtures/config-script-flags/package.json diff --git a/packages/deslop-js/tests/fixtures/config-script-flags/scripts/seed.ts b/packages/core/tests/deslop/fixtures/config-script-flags/scripts/seed.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-script-flags/scripts/seed.ts rename to packages/core/tests/deslop/fixtures/config-script-flags/scripts/seed.ts diff --git a/packages/deslop-js/tests/fixtures/config-script-flags/src/index.ts b/packages/core/tests/deslop/fixtures/config-script-flags/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-script-flags/src/index.ts rename to packages/core/tests/deslop/fixtures/config-script-flags/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/config-script-flags/src/orphan.ts b/packages/core/tests/deslop/fixtures/config-script-flags/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/config-script-flags/src/orphan.ts rename to packages/core/tests/deslop/fixtures/config-script-flags/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/cra-jest-transforms/config/jest/babelTransform.js b/packages/core/tests/deslop/fixtures/cra-jest-transforms/config/jest/babelTransform.js similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-jest-transforms/config/jest/babelTransform.js rename to packages/core/tests/deslop/fixtures/cra-jest-transforms/config/jest/babelTransform.js diff --git a/packages/deslop-js/tests/fixtures/cra-jest-transforms/config/jest/cssTransform.js b/packages/core/tests/deslop/fixtures/cra-jest-transforms/config/jest/cssTransform.js similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-jest-transforms/config/jest/cssTransform.js rename to packages/core/tests/deslop/fixtures/cra-jest-transforms/config/jest/cssTransform.js diff --git a/packages/deslop-js/tests/fixtures/cra-jest-transforms/config/jest/fileTransform.js b/packages/core/tests/deslop/fixtures/cra-jest-transforms/config/jest/fileTransform.js similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-jest-transforms/config/jest/fileTransform.js rename to packages/core/tests/deslop/fixtures/cra-jest-transforms/config/jest/fileTransform.js diff --git a/packages/deslop-js/tests/fixtures/cra-jest-transforms/config/jest/orphanTransform.js b/packages/core/tests/deslop/fixtures/cra-jest-transforms/config/jest/orphanTransform.js similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-jest-transforms/config/jest/orphanTransform.js rename to packages/core/tests/deslop/fixtures/cra-jest-transforms/config/jest/orphanTransform.js diff --git a/packages/deslop-js/tests/fixtures/cra-jest-transforms/package.json b/packages/core/tests/deslop/fixtures/cra-jest-transforms/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-jest-transforms/package.json rename to packages/core/tests/deslop/fixtures/cra-jest-transforms/package.json diff --git a/packages/deslop-js/tests/fixtures/cra-jest-transforms/scripts/utils/createJestConfig.js b/packages/core/tests/deslop/fixtures/cra-jest-transforms/scripts/utils/createJestConfig.js similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-jest-transforms/scripts/utils/createJestConfig.js rename to packages/core/tests/deslop/fixtures/cra-jest-transforms/scripts/utils/createJestConfig.js diff --git a/packages/deslop-js/tests/fixtures/cra-jest-transforms/src/index.js b/packages/core/tests/deslop/fixtures/cra-jest-transforms/src/index.js similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-jest-transforms/src/index.js rename to packages/core/tests/deslop/fixtures/cra-jest-transforms/src/index.js diff --git a/packages/deslop-js/tests/fixtures/cra-monorepo-scope/package.json b/packages/core/tests/deslop/fixtures/cra-monorepo-scope/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-monorepo-scope/package.json rename to packages/core/tests/deslop/fixtures/cra-monorepo-scope/package.json diff --git a/packages/deslop-js/tests/fixtures/cra-monorepo-scope/packages/app/package.json b/packages/core/tests/deslop/fixtures/cra-monorepo-scope/packages/app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-monorepo-scope/packages/app/package.json rename to packages/core/tests/deslop/fixtures/cra-monorepo-scope/packages/app/package.json diff --git a/packages/deslop-js/tests/fixtures/cra-monorepo-scope/packages/app/src/App.ts b/packages/core/tests/deslop/fixtures/cra-monorepo-scope/packages/app/src/App.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-monorepo-scope/packages/app/src/App.ts rename to packages/core/tests/deslop/fixtures/cra-monorepo-scope/packages/app/src/App.ts diff --git a/packages/deslop-js/tests/fixtures/cra-monorepo-scope/packages/app/src/index.ts b/packages/core/tests/deslop/fixtures/cra-monorepo-scope/packages/app/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-monorepo-scope/packages/app/src/index.ts rename to packages/core/tests/deslop/fixtures/cra-monorepo-scope/packages/app/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/cra-monorepo-scope/packages/lib/package.json b/packages/core/tests/deslop/fixtures/cra-monorepo-scope/packages/lib/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-monorepo-scope/packages/lib/package.json rename to packages/core/tests/deslop/fixtures/cra-monorepo-scope/packages/lib/package.json diff --git a/packages/deslop-js/tests/fixtures/cra-monorepo-scope/packages/lib/src/RootOnly.ts b/packages/core/tests/deslop/fixtures/cra-monorepo-scope/packages/lib/src/RootOnly.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-monorepo-scope/packages/lib/src/RootOnly.ts rename to packages/core/tests/deslop/fixtures/cra-monorepo-scope/packages/lib/src/RootOnly.ts diff --git a/packages/deslop-js/tests/fixtures/cra-monorepo-scope/packages/lib/src/index.ts b/packages/core/tests/deslop/fixtures/cra-monorepo-scope/packages/lib/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-monorepo-scope/packages/lib/src/index.ts rename to packages/core/tests/deslop/fixtures/cra-monorepo-scope/packages/lib/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/cra-rewired/package.json b/packages/core/tests/deslop/fixtures/cra-rewired/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-rewired/package.json rename to packages/core/tests/deslop/fixtures/cra-rewired/package.json diff --git a/packages/deslop-js/tests/fixtures/cra-rewired/src/App.tsx b/packages/core/tests/deslop/fixtures/cra-rewired/src/App.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-rewired/src/App.tsx rename to packages/core/tests/deslop/fixtures/cra-rewired/src/App.tsx diff --git a/packages/deslop-js/tests/fixtures/cra-rewired/src/components/Header.tsx b/packages/core/tests/deslop/fixtures/cra-rewired/src/components/Header.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-rewired/src/components/Header.tsx rename to packages/core/tests/deslop/fixtures/cra-rewired/src/components/Header.tsx diff --git a/packages/deslop-js/tests/fixtures/cra-rewired/src/index.tsx b/packages/core/tests/deslop/fixtures/cra-rewired/src/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-rewired/src/index.tsx rename to packages/core/tests/deslop/fixtures/cra-rewired/src/index.tsx diff --git a/packages/deslop-js/tests/fixtures/cra-rewired/src/orphan.ts b/packages/core/tests/deslop/fixtures/cra-rewired/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-rewired/src/orphan.ts rename to packages/core/tests/deslop/fixtures/cra-rewired/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/cra-src-baseurl/package.json b/packages/core/tests/deslop/fixtures/cra-src-baseurl/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-src-baseurl/package.json rename to packages/core/tests/deslop/fixtures/cra-src-baseurl/package.json diff --git a/packages/deslop-js/tests/fixtures/cra-src-baseurl/src/App.tsx b/packages/core/tests/deslop/fixtures/cra-src-baseurl/src/App.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-src-baseurl/src/App.tsx rename to packages/core/tests/deslop/fixtures/cra-src-baseurl/src/App.tsx diff --git a/packages/deslop-js/tests/fixtures/cra-src-baseurl/src/components/Header.tsx b/packages/core/tests/deslop/fixtures/cra-src-baseurl/src/components/Header.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-src-baseurl/src/components/Header.tsx rename to packages/core/tests/deslop/fixtures/cra-src-baseurl/src/components/Header.tsx diff --git a/packages/deslop-js/tests/fixtures/cra-src-baseurl/src/index.tsx b/packages/core/tests/deslop/fixtures/cra-src-baseurl/src/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-src-baseurl/src/index.tsx rename to packages/core/tests/deslop/fixtures/cra-src-baseurl/src/index.tsx diff --git a/packages/deslop-js/tests/fixtures/cra-src-baseurl/src/orphan.ts b/packages/core/tests/deslop/fixtures/cra-src-baseurl/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cra-src-baseurl/src/orphan.ts rename to packages/core/tests/deslop/fixtures/cra-src-baseurl/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/cross-ext-js-ts/generators.ts b/packages/core/tests/deslop/fixtures/cross-ext-js-ts/generators.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-ext-js-ts/generators.ts rename to packages/core/tests/deslop/fixtures/cross-ext-js-ts/generators.ts diff --git a/packages/deslop-js/tests/fixtures/cross-ext-js-ts/orphan.ts b/packages/core/tests/deslop/fixtures/cross-ext-js-ts/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-ext-js-ts/orphan.ts rename to packages/core/tests/deslop/fixtures/cross-ext-js-ts/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/cross-ext-js-ts/package.json b/packages/core/tests/deslop/fixtures/cross-ext-js-ts/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-ext-js-ts/package.json rename to packages/core/tests/deslop/fixtures/cross-ext-js-ts/package.json diff --git a/packages/deslop-js/tests/fixtures/cross-ext-js-ts/plugin.ts b/packages/core/tests/deslop/fixtures/cross-ext-js-ts/plugin.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-ext-js-ts/plugin.ts rename to packages/core/tests/deslop/fixtures/cross-ext-js-ts/plugin.ts diff --git a/packages/deslop-js/tests/fixtures/cross-ext-js-ts/src/utils/index.ts b/packages/core/tests/deslop/fixtures/cross-ext-js-ts/src/utils/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-ext-js-ts/src/utils/index.ts rename to packages/core/tests/deslop/fixtures/cross-ext-js-ts/src/utils/index.ts diff --git a/packages/deslop-js/tests/fixtures/cross-ext-ts-tsx/package.json b/packages/core/tests/deslop/fixtures/cross-ext-ts-tsx/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-ext-ts-tsx/package.json rename to packages/core/tests/deslop/fixtures/cross-ext-ts-tsx/package.json diff --git a/packages/deslop-js/tests/fixtures/cross-ext-ts-tsx/src/App.tsx b/packages/core/tests/deslop/fixtures/cross-ext-ts-tsx/src/App.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-ext-ts-tsx/src/App.tsx rename to packages/core/tests/deslop/fixtures/cross-ext-ts-tsx/src/App.tsx diff --git a/packages/deslop-js/tests/fixtures/cross-ext-ts-tsx/src/components/Button.tsx b/packages/core/tests/deslop/fixtures/cross-ext-ts-tsx/src/components/Button.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-ext-ts-tsx/src/components/Button.tsx rename to packages/core/tests/deslop/fixtures/cross-ext-ts-tsx/src/components/Button.tsx diff --git a/packages/deslop-js/tests/fixtures/cross-ext-ts-tsx/src/index.ts b/packages/core/tests/deslop/fixtures/cross-ext-ts-tsx/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-ext-ts-tsx/src/index.ts rename to packages/core/tests/deslop/fixtures/cross-ext-ts-tsx/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/cross-ext-ts-tsx/src/orphan.ts b/packages/core/tests/deslop/fixtures/cross-ext-ts-tsx/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-ext-ts-tsx/src/orphan.ts rename to packages/core/tests/deslop/fixtures/cross-ext-ts-tsx/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/cross-file-duplicate-exports-unrelated/package.json b/packages/core/tests/deslop/fixtures/cross-file-duplicate-exports-unrelated/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-file-duplicate-exports-unrelated/package.json rename to packages/core/tests/deslop/fixtures/cross-file-duplicate-exports-unrelated/package.json diff --git a/packages/deslop-js/tests/fixtures/cross-file-duplicate-exports-unrelated/src/index.ts b/packages/core/tests/deslop/fixtures/cross-file-duplicate-exports-unrelated/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-file-duplicate-exports-unrelated/src/index.ts rename to packages/core/tests/deslop/fixtures/cross-file-duplicate-exports-unrelated/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/cross-file-duplicate-exports-unrelated/src/routes/alpha/handler.ts b/packages/core/tests/deslop/fixtures/cross-file-duplicate-exports-unrelated/src/routes/alpha/handler.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-file-duplicate-exports-unrelated/src/routes/alpha/handler.ts rename to packages/core/tests/deslop/fixtures/cross-file-duplicate-exports-unrelated/src/routes/alpha/handler.ts diff --git a/packages/deslop-js/tests/fixtures/cross-file-duplicate-exports-unrelated/src/routes/beta/handler.ts b/packages/core/tests/deslop/fixtures/cross-file-duplicate-exports-unrelated/src/routes/beta/handler.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-file-duplicate-exports-unrelated/src/routes/beta/handler.ts rename to packages/core/tests/deslop/fixtures/cross-file-duplicate-exports-unrelated/src/routes/beta/handler.ts diff --git a/packages/deslop-js/tests/fixtures/cross-file-duplicate-exports/package.json b/packages/core/tests/deslop/fixtures/cross-file-duplicate-exports/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-file-duplicate-exports/package.json rename to packages/core/tests/deslop/fixtures/cross-file-duplicate-exports/package.json diff --git a/packages/deslop-js/tests/fixtures/cross-file-duplicate-exports/src/alpha.ts b/packages/core/tests/deslop/fixtures/cross-file-duplicate-exports/src/alpha.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-file-duplicate-exports/src/alpha.ts rename to packages/core/tests/deslop/fixtures/cross-file-duplicate-exports/src/alpha.ts diff --git a/packages/deslop-js/tests/fixtures/cross-file-duplicate-exports/src/beta.ts b/packages/core/tests/deslop/fixtures/cross-file-duplicate-exports/src/beta.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-file-duplicate-exports/src/beta.ts rename to packages/core/tests/deslop/fixtures/cross-file-duplicate-exports/src/beta.ts diff --git a/packages/deslop-js/tests/fixtures/cross-file-duplicate-exports/src/gamma.ts b/packages/core/tests/deslop/fixtures/cross-file-duplicate-exports/src/gamma.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-file-duplicate-exports/src/gamma.ts rename to packages/core/tests/deslop/fixtures/cross-file-duplicate-exports/src/gamma.ts diff --git a/packages/deslop-js/tests/fixtures/cross-file-duplicate-exports/src/index.ts b/packages/core/tests/deslop/fixtures/cross-file-duplicate-exports/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cross-file-duplicate-exports/src/index.ts rename to packages/core/tests/deslop/fixtures/cross-file-duplicate-exports/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/css-tilde-import/package.json b/packages/core/tests/deslop/fixtures/css-tilde-import/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/css-tilde-import/package.json rename to packages/core/tests/deslop/fixtures/css-tilde-import/package.json diff --git a/packages/deslop-js/tests/fixtures/css-tilde-import/src/index.ts b/packages/core/tests/deslop/fixtures/css-tilde-import/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/css-tilde-import/src/index.ts rename to packages/core/tests/deslop/fixtures/css-tilde-import/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/css-tilde-import/src/styles.scss b/packages/core/tests/deslop/fixtures/css-tilde-import/src/styles.scss similarity index 100% rename from packages/deslop-js/tests/fixtures/css-tilde-import/src/styles.scss rename to packages/core/tests/deslop/fixtures/css-tilde-import/src/styles.scss diff --git a/packages/deslop-js/tests/fixtures/cycle-chain/package.json b/packages/core/tests/deslop/fixtures/cycle-chain/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-chain/package.json rename to packages/core/tests/deslop/fixtures/cycle-chain/package.json diff --git a/packages/deslop-js/tests/fixtures/cycle-chain/src/a.ts b/packages/core/tests/deslop/fixtures/cycle-chain/src/a.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-chain/src/a.ts rename to packages/core/tests/deslop/fixtures/cycle-chain/src/a.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-chain/src/b.ts b/packages/core/tests/deslop/fixtures/cycle-chain/src/b.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-chain/src/b.ts rename to packages/core/tests/deslop/fixtures/cycle-chain/src/b.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-chain/src/c.ts b/packages/core/tests/deslop/fixtures/cycle-chain/src/c.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-chain/src/c.ts rename to packages/core/tests/deslop/fixtures/cycle-chain/src/c.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-chain/src/index.ts b/packages/core/tests/deslop/fixtures/cycle-chain/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-chain/src/index.ts rename to packages/core/tests/deslop/fixtures/cycle-chain/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-none/package.json b/packages/core/tests/deslop/fixtures/cycle-none/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-none/package.json rename to packages/core/tests/deslop/fixtures/cycle-none/package.json diff --git a/packages/deslop-js/tests/fixtures/cycle-none/src/helper.ts b/packages/core/tests/deslop/fixtures/cycle-none/src/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-none/src/helper.ts rename to packages/core/tests/deslop/fixtures/cycle-none/src/helper.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-none/src/index.ts b/packages/core/tests/deslop/fixtures/cycle-none/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-none/src/index.ts rename to packages/core/tests/deslop/fixtures/cycle-none/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-none/src/util.ts b/packages/core/tests/deslop/fixtures/cycle-none/src/util.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-none/src/util.ts rename to packages/core/tests/deslop/fixtures/cycle-none/src/util.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-reexport/package.json b/packages/core/tests/deslop/fixtures/cycle-reexport/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-reexport/package.json rename to packages/core/tests/deslop/fixtures/cycle-reexport/package.json diff --git a/packages/deslop-js/tests/fixtures/cycle-reexport/src/index.ts b/packages/core/tests/deslop/fixtures/cycle-reexport/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-reexport/src/index.ts rename to packages/core/tests/deslop/fixtures/cycle-reexport/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-reexport/src/module-a.ts b/packages/core/tests/deslop/fixtures/cycle-reexport/src/module-a.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-reexport/src/module-a.ts rename to packages/core/tests/deslop/fixtures/cycle-reexport/src/module-a.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-reexport/src/module-b.ts b/packages/core/tests/deslop/fixtures/cycle-reexport/src/module-b.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-reexport/src/module-b.ts rename to packages/core/tests/deslop/fixtures/cycle-reexport/src/module-b.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-simple/package.json b/packages/core/tests/deslop/fixtures/cycle-simple/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-simple/package.json rename to packages/core/tests/deslop/fixtures/cycle-simple/package.json diff --git a/packages/deslop-js/tests/fixtures/cycle-simple/src/a.ts b/packages/core/tests/deslop/fixtures/cycle-simple/src/a.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-simple/src/a.ts rename to packages/core/tests/deslop/fixtures/cycle-simple/src/a.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-simple/src/b.ts b/packages/core/tests/deslop/fixtures/cycle-simple/src/b.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-simple/src/b.ts rename to packages/core/tests/deslop/fixtures/cycle-simple/src/b.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-simple/src/index.ts b/packages/core/tests/deslop/fixtures/cycle-simple/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-simple/src/index.ts rename to packages/core/tests/deslop/fixtures/cycle-simple/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-type-only/package.json b/packages/core/tests/deslop/fixtures/cycle-type-only/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-type-only/package.json rename to packages/core/tests/deslop/fixtures/cycle-type-only/package.json diff --git a/packages/deslop-js/tests/fixtures/cycle-type-only/src/a.ts b/packages/core/tests/deslop/fixtures/cycle-type-only/src/a.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-type-only/src/a.ts rename to packages/core/tests/deslop/fixtures/cycle-type-only/src/a.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-type-only/src/b.ts b/packages/core/tests/deslop/fixtures/cycle-type-only/src/b.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-type-only/src/b.ts rename to packages/core/tests/deslop/fixtures/cycle-type-only/src/b.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-type-only/src/index.ts b/packages/core/tests/deslop/fixtures/cycle-type-only/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-type-only/src/index.ts rename to packages/core/tests/deslop/fixtures/cycle-type-only/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-with-orphans/index.ts b/packages/core/tests/deslop/fixtures/cycle-with-orphans/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-with-orphans/index.ts rename to packages/core/tests/deslop/fixtures/cycle-with-orphans/index.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-with-orphans/module-a.ts b/packages/core/tests/deslop/fixtures/cycle-with-orphans/module-a.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-with-orphans/module-a.ts rename to packages/core/tests/deslop/fixtures/cycle-with-orphans/module-a.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-with-orphans/module-b.ts b/packages/core/tests/deslop/fixtures/cycle-with-orphans/module-b.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-with-orphans/module-b.ts rename to packages/core/tests/deslop/fixtures/cycle-with-orphans/module-b.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-with-orphans/orphan.ts b/packages/core/tests/deslop/fixtures/cycle-with-orphans/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-with-orphans/orphan.ts rename to packages/core/tests/deslop/fixtures/cycle-with-orphans/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/cycle-with-orphans/package.json b/packages/core/tests/deslop/fixtures/cycle-with-orphans/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/cycle-with-orphans/package.json rename to packages/core/tests/deslop/fixtures/cycle-with-orphans/package.json diff --git a/packages/deslop-js/tests/fixtures/deep-reexport-chain/consumer.ts b/packages/core/tests/deslop/fixtures/deep-reexport-chain/consumer.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/deep-reexport-chain/consumer.ts rename to packages/core/tests/deslop/fixtures/deep-reexport-chain/consumer.ts diff --git a/packages/deslop-js/tests/fixtures/deep-reexport-chain/index.ts b/packages/core/tests/deslop/fixtures/deep-reexport-chain/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/deep-reexport-chain/index.ts rename to packages/core/tests/deslop/fixtures/deep-reexport-chain/index.ts diff --git a/packages/deslop-js/tests/fixtures/deep-reexport-chain/level-1.ts b/packages/core/tests/deslop/fixtures/deep-reexport-chain/level-1.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/deep-reexport-chain/level-1.ts rename to packages/core/tests/deslop/fixtures/deep-reexport-chain/level-1.ts diff --git a/packages/deslop-js/tests/fixtures/deep-reexport-chain/level-2.ts b/packages/core/tests/deslop/fixtures/deep-reexport-chain/level-2.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/deep-reexport-chain/level-2.ts rename to packages/core/tests/deslop/fixtures/deep-reexport-chain/level-2.ts diff --git a/packages/deslop-js/tests/fixtures/deep-reexport-chain/level-3.ts b/packages/core/tests/deslop/fixtures/deep-reexport-chain/level-3.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/deep-reexport-chain/level-3.ts rename to packages/core/tests/deslop/fixtures/deep-reexport-chain/level-3.ts diff --git a/packages/deslop-js/tests/fixtures/deep-reexport-chain/package.json b/packages/core/tests/deslop/fixtures/deep-reexport-chain/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/deep-reexport-chain/package.json rename to packages/core/tests/deslop/fixtures/deep-reexport-chain/package.json diff --git a/packages/deslop-js/tests/fixtures/deep-reexport-tracking/package.json b/packages/core/tests/deslop/fixtures/deep-reexport-tracking/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/deep-reexport-tracking/package.json rename to packages/core/tests/deslop/fixtures/deep-reexport-tracking/package.json diff --git a/packages/deslop-js/tests/fixtures/deep-reexport-tracking/src/barrel-mid.ts b/packages/core/tests/deslop/fixtures/deep-reexport-tracking/src/barrel-mid.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/deep-reexport-tracking/src/barrel-mid.ts rename to packages/core/tests/deslop/fixtures/deep-reexport-tracking/src/barrel-mid.ts diff --git a/packages/deslop-js/tests/fixtures/deep-reexport-tracking/src/barrel-top.ts b/packages/core/tests/deslop/fixtures/deep-reexport-tracking/src/barrel-top.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/deep-reexport-tracking/src/barrel-top.ts rename to packages/core/tests/deslop/fixtures/deep-reexport-tracking/src/barrel-top.ts diff --git a/packages/deslop-js/tests/fixtures/deep-reexport-tracking/src/index.ts b/packages/core/tests/deslop/fixtures/deep-reexport-tracking/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/deep-reexport-tracking/src/index.ts rename to packages/core/tests/deslop/fixtures/deep-reexport-tracking/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/deep-reexport-tracking/src/orphan.ts b/packages/core/tests/deslop/fixtures/deep-reexport-tracking/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/deep-reexport-tracking/src/orphan.ts rename to packages/core/tests/deslop/fixtures/deep-reexport-tracking/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/deep-reexport-tracking/src/unused-source.ts b/packages/core/tests/deslop/fixtures/deep-reexport-tracking/src/unused-source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/deep-reexport-tracking/src/unused-source.ts rename to packages/core/tests/deslop/fixtures/deep-reexport-tracking/src/unused-source.ts diff --git a/packages/deslop-js/tests/fixtures/deep-reexport-tracking/src/used-source.ts b/packages/core/tests/deslop/fixtures/deep-reexport-tracking/src/used-source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/deep-reexport-tracking/src/used-source.ts rename to packages/core/tests/deslop/fixtures/deep-reexport-tracking/src/used-source.ts diff --git a/packages/deslop-js/tests/fixtures/default-import-named-export/package.json b/packages/core/tests/deslop/fixtures/default-import-named-export/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/default-import-named-export/package.json rename to packages/core/tests/deslop/fixtures/default-import-named-export/package.json diff --git a/packages/deslop-js/tests/fixtures/default-import-named-export/src/index.ts b/packages/core/tests/deslop/fixtures/default-import-named-export/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/default-import-named-export/src/index.ts rename to packages/core/tests/deslop/fixtures/default-import-named-export/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/default-import-named-export/src/orphan.ts b/packages/core/tests/deslop/fixtures/default-import-named-export/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/default-import-named-export/src/orphan.ts rename to packages/core/tests/deslop/fixtures/default-import-named-export/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/default-import-named-export/src/settings-panel.test.tsx b/packages/core/tests/deslop/fixtures/default-import-named-export/src/settings-panel.test.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/default-import-named-export/src/settings-panel.test.tsx rename to packages/core/tests/deslop/fixtures/default-import-named-export/src/settings-panel.test.tsx diff --git a/packages/deslop-js/tests/fixtures/default-import-named-export/src/settings-panel.tsx b/packages/core/tests/deslop/fixtures/default-import-named-export/src/settings-panel.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/default-import-named-export/src/settings-panel.tsx rename to packages/core/tests/deslop/fixtures/default-import-named-export/src/settings-panel.tsx diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/.eslintrc.json b/packages/core/tests/deslop/fixtures/dependency-tooling/.eslintrc.json similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/.eslintrc.json rename to packages/core/tests/deslop/fixtures/dependency-tooling/.eslintrc.json diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/.gitignore b/packages/core/tests/deslop/fixtures/dependency-tooling/.gitignore similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/.gitignore rename to packages/core/tests/deslop/fixtures/dependency-tooling/.gitignore diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/jest.config.js b/packages/core/tests/deslop/fixtures/dependency-tooling/jest.config.js similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/jest.config.js rename to packages/core/tests/deslop/fixtures/dependency-tooling/jest.config.js diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/@babel/cli/package.json b/packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/@babel/cli/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/@babel/cli/package.json rename to packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/@babel/cli/package.json diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/@formatjs/cli/package.json b/packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/@formatjs/cli/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/@formatjs/cli/package.json rename to packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/@formatjs/cli/package.json diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/@tauri-apps/cli/package.json b/packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/@tauri-apps/cli/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/@tauri-apps/cli/package.json rename to packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/@tauri-apps/cli/package.json diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/@tinacms/cli/package.json b/packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/@tinacms/cli/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/@tinacms/cli/package.json rename to packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/@tinacms/cli/package.json diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/chokidar-cli/package.json b/packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/chokidar-cli/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/chokidar-cli/package.json rename to packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/chokidar-cli/package.json diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/jest-cli/package.json b/packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/jest-cli/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/jest-cli/package.json rename to packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/jest-cli/package.json diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/react-chartjs-2/package.json b/packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/react-chartjs-2/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/react-chartjs-2/package.json rename to packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/react-chartjs-2/package.json diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/react-redux/package.json b/packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/react-redux/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/node_modules/react-redux/package.json rename to packages/core/tests/deslop/fixtures/dependency-tooling/node_modules/react-redux/package.json diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/package.json b/packages/core/tests/deslop/fixtures/dependency-tooling/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/package.json rename to packages/core/tests/deslop/fixtures/dependency-tooling/package.json diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/project.json b/packages/core/tests/deslop/fixtures/dependency-tooling/project.json similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/project.json rename to packages/core/tests/deslop/fixtures/dependency-tooling/project.json diff --git a/packages/deslop-js/tests/fixtures/dependency-tooling/src/index.ts b/packages/core/tests/deslop/fixtures/dependency-tooling/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/dependency-tooling/src/index.ts rename to packages/core/tests/deslop/fixtures/dependency-tooling/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/docusaurus-docs/blog/first-post.mdx b/packages/core/tests/deslop/fixtures/docusaurus-docs/blog/first-post.mdx similarity index 100% rename from packages/deslop-js/tests/fixtures/docusaurus-docs/blog/first-post.mdx rename to packages/core/tests/deslop/fixtures/docusaurus-docs/blog/first-post.mdx diff --git a/packages/deslop-js/tests/fixtures/docusaurus-docs/docs/intro.mdx b/packages/core/tests/deslop/fixtures/docusaurus-docs/docs/intro.mdx similarity index 100% rename from packages/deslop-js/tests/fixtures/docusaurus-docs/docs/intro.mdx rename to packages/core/tests/deslop/fixtures/docusaurus-docs/docs/intro.mdx diff --git a/packages/deslop-js/tests/fixtures/docusaurus-docs/docusaurus.config.ts b/packages/core/tests/deslop/fixtures/docusaurus-docs/docusaurus.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/docusaurus-docs/docusaurus.config.ts rename to packages/core/tests/deslop/fixtures/docusaurus-docs/docusaurus.config.ts diff --git a/packages/deslop-js/tests/fixtures/docusaurus-docs/package.json b/packages/core/tests/deslop/fixtures/docusaurus-docs/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/docusaurus-docs/package.json rename to packages/core/tests/deslop/fixtures/docusaurus-docs/package.json diff --git a/packages/deslop-js/tests/fixtures/docusaurus-docs/src/components/orphan.tsx b/packages/core/tests/deslop/fixtures/docusaurus-docs/src/components/orphan.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/docusaurus-docs/src/components/orphan.tsx rename to packages/core/tests/deslop/fixtures/docusaurus-docs/src/components/orphan.tsx diff --git a/packages/deslop-js/tests/fixtures/docusaurus-docs/src/components/used.tsx b/packages/core/tests/deslop/fixtures/docusaurus-docs/src/components/used.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/docusaurus-docs/src/components/used.tsx rename to packages/core/tests/deslop/fixtures/docusaurus-docs/src/components/used.tsx diff --git a/packages/deslop-js/tests/fixtures/docusaurus-docs/src/pages/index.tsx b/packages/core/tests/deslop/fixtures/docusaurus-docs/src/pages/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/docusaurus-docs/src/pages/index.tsx rename to packages/core/tests/deslop/fixtures/docusaurus-docs/src/pages/index.tsx diff --git a/packages/deslop-js/tests/fixtures/dry-patterns-syntactic/package.json b/packages/core/tests/deslop/fixtures/dry-patterns-syntactic/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/dry-patterns-syntactic/package.json rename to packages/core/tests/deslop/fixtures/dry-patterns-syntactic/package.json diff --git a/packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/duplicate-imports.ts b/packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/duplicate-imports.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/duplicate-imports.ts rename to packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/duplicate-imports.ts diff --git a/packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/duplicate-type-other/types.ts b/packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/duplicate-type-other/types.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/duplicate-type-other/types.ts rename to packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/duplicate-type-other/types.ts diff --git a/packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/helpers.ts b/packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/helpers.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/helpers.ts rename to packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/helpers.ts diff --git a/packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/index.ts b/packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/index.ts rename to packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/other.ts b/packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/other.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/other.ts rename to packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/other.ts diff --git a/packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/types.ts b/packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/types.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/types.ts rename to packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/types.ts diff --git a/packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/wrappers.ts b/packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/wrappers.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/dry-patterns-syntactic/src/wrappers.ts rename to packages/core/tests/deslop/fixtures/dry-patterns-syntactic/src/wrappers.ts diff --git a/packages/deslop-js/tests/fixtures/dts-imports/orphan.ts b/packages/core/tests/deslop/fixtures/dts-imports/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/dts-imports/orphan.ts rename to packages/core/tests/deslop/fixtures/dts-imports/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/dts-imports/package.json b/packages/core/tests/deslop/fixtures/dts-imports/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/dts-imports/package.json rename to packages/core/tests/deslop/fixtures/dts-imports/package.json diff --git a/packages/deslop-js/tests/fixtures/dts-imports/src/helper.ts b/packages/core/tests/deslop/fixtures/dts-imports/src/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/dts-imports/src/helper.ts rename to packages/core/tests/deslop/fixtures/dts-imports/src/helper.ts diff --git a/packages/deslop-js/tests/fixtures/dts-imports/src/index.ts b/packages/core/tests/deslop/fixtures/dts-imports/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/dts-imports/src/index.ts rename to packages/core/tests/deslop/fixtures/dts-imports/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/dts-imports/src/types.d.ts b/packages/core/tests/deslop/fixtures/dts-imports/src/types.d.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/dts-imports/src/types.d.ts rename to packages/core/tests/deslop/fixtures/dts-imports/src/types.d.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-blocks-basic/package.json b/packages/core/tests/deslop/fixtures/duplicate-blocks-basic/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-blocks-basic/package.json rename to packages/core/tests/deslop/fixtures/duplicate-blocks-basic/package.json diff --git a/packages/deslop-js/tests/fixtures/duplicate-blocks-basic/src/index.ts b/packages/core/tests/deslop/fixtures/duplicate-blocks-basic/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-blocks-basic/src/index.ts rename to packages/core/tests/deslop/fixtures/duplicate-blocks-basic/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-blocks-basic/src/invoices.ts b/packages/core/tests/deslop/fixtures/duplicate-blocks-basic/src/invoices.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-blocks-basic/src/invoices.ts rename to packages/core/tests/deslop/fixtures/duplicate-blocks-basic/src/invoices.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-blocks-basic/src/orders.ts b/packages/core/tests/deslop/fixtures/duplicate-blocks-basic/src/orders.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-blocks-basic/src/orders.ts rename to packages/core/tests/deslop/fixtures/duplicate-blocks-basic/src/orders.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/package.json b/packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/package.json rename to packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/package.json diff --git a/packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/feature-cache.ts b/packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/feature-cache.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/feature-cache.ts rename to packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/feature-cache.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/feature-pixels.ts b/packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/feature-pixels.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/feature-pixels.ts rename to packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/feature-pixels.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/feature-poll.ts b/packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/feature-poll.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/feature-poll.ts rename to packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/feature-poll.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/feature-reconnect.ts b/packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/feature-reconnect.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/feature-reconnect.ts rename to packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/feature-reconnect.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/feature-time.ts b/packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/feature-time.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/feature-time.ts rename to packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/feature-time.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/feature-tokens.ts b/packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/feature-tokens.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/feature-tokens.ts rename to packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/feature-tokens.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/index.ts b/packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-constants-unit-mismatch/src/index.ts rename to packages/core/tests/deslop/fixtures/duplicate-constants-unit-mismatch/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-constants/package.json b/packages/core/tests/deslop/fixtures/duplicate-constants/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-constants/package.json rename to packages/core/tests/deslop/fixtures/duplicate-constants/package.json diff --git a/packages/deslop-js/tests/fixtures/duplicate-constants/src/feature-one.ts b/packages/core/tests/deslop/fixtures/duplicate-constants/src/feature-one.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-constants/src/feature-one.ts rename to packages/core/tests/deslop/fixtures/duplicate-constants/src/feature-one.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-constants/src/feature-three.ts b/packages/core/tests/deslop/fixtures/duplicate-constants/src/feature-three.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-constants/src/feature-three.ts rename to packages/core/tests/deslop/fixtures/duplicate-constants/src/feature-three.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-constants/src/feature-two.ts b/packages/core/tests/deslop/fixtures/duplicate-constants/src/feature-two.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-constants/src/feature-two.ts rename to packages/core/tests/deslop/fixtures/duplicate-constants/src/feature-two.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-constants/src/index.ts b/packages/core/tests/deslop/fixtures/duplicate-constants/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-constants/src/index.ts rename to packages/core/tests/deslop/fixtures/duplicate-constants/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-exports-barrel/package.json b/packages/core/tests/deslop/fixtures/duplicate-exports-barrel/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-exports-barrel/package.json rename to packages/core/tests/deslop/fixtures/duplicate-exports-barrel/package.json diff --git a/packages/deslop-js/tests/fixtures/duplicate-exports-barrel/src/alpha.ts b/packages/core/tests/deslop/fixtures/duplicate-exports-barrel/src/alpha.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-exports-barrel/src/alpha.ts rename to packages/core/tests/deslop/fixtures/duplicate-exports-barrel/src/alpha.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-exports-barrel/src/barrel.ts b/packages/core/tests/deslop/fixtures/duplicate-exports-barrel/src/barrel.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-exports-barrel/src/barrel.ts rename to packages/core/tests/deslop/fixtures/duplicate-exports-barrel/src/barrel.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-exports-barrel/src/beta.ts b/packages/core/tests/deslop/fixtures/duplicate-exports-barrel/src/beta.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-exports-barrel/src/beta.ts rename to packages/core/tests/deslop/fixtures/duplicate-exports-barrel/src/beta.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-exports-barrel/src/index.ts b/packages/core/tests/deslop/fixtures/duplicate-exports-barrel/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-exports-barrel/src/index.ts rename to packages/core/tests/deslop/fixtures/duplicate-exports-barrel/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-import-type-value/package.json b/packages/core/tests/deslop/fixtures/duplicate-import-type-value/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-import-type-value/package.json rename to packages/core/tests/deslop/fixtures/duplicate-import-type-value/package.json diff --git a/packages/deslop-js/tests/fixtures/duplicate-import-type-value/src/api.ts b/packages/core/tests/deslop/fixtures/duplicate-import-type-value/src/api.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-import-type-value/src/api.ts rename to packages/core/tests/deslop/fixtures/duplicate-import-type-value/src/api.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-import-type-value/src/consumer-split.ts b/packages/core/tests/deslop/fixtures/duplicate-import-type-value/src/consumer-split.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-import-type-value/src/consumer-split.ts rename to packages/core/tests/deslop/fixtures/duplicate-import-type-value/src/consumer-split.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-inline-types/package.json b/packages/core/tests/deslop/fixtures/duplicate-inline-types/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-inline-types/package.json rename to packages/core/tests/deslop/fixtures/duplicate-inline-types/package.json diff --git a/packages/deslop-js/tests/fixtures/duplicate-inline-types/src/elsewhere.ts b/packages/core/tests/deslop/fixtures/duplicate-inline-types/src/elsewhere.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-inline-types/src/elsewhere.ts rename to packages/core/tests/deslop/fixtures/duplicate-inline-types/src/elsewhere.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-inline-types/src/index.ts b/packages/core/tests/deslop/fixtures/duplicate-inline-types/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-inline-types/src/index.ts rename to packages/core/tests/deslop/fixtures/duplicate-inline-types/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/duplicate-inline-types/src/operations.ts b/packages/core/tests/deslop/fixtures/duplicate-inline-types/src/operations.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/duplicate-inline-types/src/operations.ts rename to packages/core/tests/deslop/fixtures/duplicate-inline-types/src/operations.ts diff --git a/packages/deslop-js/tests/fixtures/electron-app/orphan.ts b/packages/core/tests/deslop/fixtures/electron-app/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-app/orphan.ts rename to packages/core/tests/deslop/fixtures/electron-app/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/electron-app/package.json b/packages/core/tests/deslop/fixtures/electron-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-app/package.json rename to packages/core/tests/deslop/fixtures/electron-app/package.json diff --git a/packages/deslop-js/tests/fixtures/electron-app/src/main/index.ts b/packages/core/tests/deslop/fixtures/electron-app/src/main/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-app/src/main/index.ts rename to packages/core/tests/deslop/fixtures/electron-app/src/main/index.ts diff --git a/packages/deslop-js/tests/fixtures/electron-app/src/main/window.ts b/packages/core/tests/deslop/fixtures/electron-app/src/main/window.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-app/src/main/window.ts rename to packages/core/tests/deslop/fixtures/electron-app/src/main/window.ts diff --git a/packages/deslop-js/tests/fixtures/electron-app/src/preload.ts b/packages/core/tests/deslop/fixtures/electron-app/src/preload.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-app/src/preload.ts rename to packages/core/tests/deslop/fixtures/electron-app/src/preload.ts diff --git a/packages/deslop-js/tests/fixtures/electron-app/src/preload/preload.ts b/packages/core/tests/deslop/fixtures/electron-app/src/preload/preload.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-app/src/preload/preload.ts rename to packages/core/tests/deslop/fixtures/electron-app/src/preload/preload.ts diff --git a/packages/deslop-js/tests/fixtures/electron-builder-files/package.json b/packages/core/tests/deslop/fixtures/electron-builder-files/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-builder-files/package.json rename to packages/core/tests/deslop/fixtures/electron-builder-files/package.json diff --git a/packages/deslop-js/tests/fixtures/electron-builder-files/src/main.ts b/packages/core/tests/deslop/fixtures/electron-builder-files/src/main.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-builder-files/src/main.ts rename to packages/core/tests/deslop/fixtures/electron-builder-files/src/main.ts diff --git a/packages/deslop-js/tests/fixtures/electron-builder-files/src/orphan.ts b/packages/core/tests/deslop/fixtures/electron-builder-files/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-builder-files/src/orphan.ts rename to packages/core/tests/deslop/fixtures/electron-builder-files/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/electron-builder-files/src/preload.ts b/packages/core/tests/deslop/fixtures/electron-builder-files/src/preload.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-builder-files/src/preload.ts rename to packages/core/tests/deslop/fixtures/electron-builder-files/src/preload.ts diff --git a/packages/deslop-js/tests/fixtures/electron-builder-files/src/worker.ts b/packages/core/tests/deslop/fixtures/electron-builder-files/src/worker.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-builder-files/src/worker.ts rename to packages/core/tests/deslop/fixtures/electron-builder-files/src/worker.ts diff --git a/packages/deslop-js/tests/fixtures/electron-detection/package.json b/packages/core/tests/deslop/fixtures/electron-detection/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-detection/package.json rename to packages/core/tests/deslop/fixtures/electron-detection/package.json diff --git a/packages/deslop-js/tests/fixtures/electron-detection/src/main.ts b/packages/core/tests/deslop/fixtures/electron-detection/src/main.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-detection/src/main.ts rename to packages/core/tests/deslop/fixtures/electron-detection/src/main.ts diff --git a/packages/deslop-js/tests/fixtures/electron-detection/src/orphan.ts b/packages/core/tests/deslop/fixtures/electron-detection/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-detection/src/orphan.ts rename to packages/core/tests/deslop/fixtures/electron-detection/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/electron-detection/src/preload/index.ts b/packages/core/tests/deslop/fixtures/electron-detection/src/preload/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-detection/src/preload/index.ts rename to packages/core/tests/deslop/fixtures/electron-detection/src/preload/index.ts diff --git a/packages/deslop-js/tests/fixtures/electron-detection/src/window.ts b/packages/core/tests/deslop/fixtures/electron-detection/src/window.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-detection/src/window.ts rename to packages/core/tests/deslop/fixtures/electron-detection/src/window.ts diff --git a/packages/deslop-js/tests/fixtures/electron-entries/package.json b/packages/core/tests/deslop/fixtures/electron-entries/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-entries/package.json rename to packages/core/tests/deslop/fixtures/electron-entries/package.json diff --git a/packages/deslop-js/tests/fixtures/electron-entries/src/app.ts b/packages/core/tests/deslop/fixtures/electron-entries/src/app.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-entries/src/app.ts rename to packages/core/tests/deslop/fixtures/electron-entries/src/app.ts diff --git a/packages/deslop-js/tests/fixtures/electron-entries/src/main.ts b/packages/core/tests/deslop/fixtures/electron-entries/src/main.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-entries/src/main.ts rename to packages/core/tests/deslop/fixtures/electron-entries/src/main.ts diff --git a/packages/deslop-js/tests/fixtures/electron-entries/src/orphan.ts b/packages/core/tests/deslop/fixtures/electron-entries/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-entries/src/orphan.ts rename to packages/core/tests/deslop/fixtures/electron-entries/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/electron-entries/src/preload/bridge.ts b/packages/core/tests/deslop/fixtures/electron-entries/src/preload/bridge.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-entries/src/preload/bridge.ts rename to packages/core/tests/deslop/fixtures/electron-entries/src/preload/bridge.ts diff --git a/packages/deslop-js/tests/fixtures/electron-entries/src/preload/index.ts b/packages/core/tests/deslop/fixtures/electron-entries/src/preload/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/electron-entries/src/preload/index.ts rename to packages/core/tests/deslop/fixtures/electron-entries/src/preload/index.ts diff --git a/packages/deslop-js/tests/fixtures/empty-and-binary-files/package.json b/packages/core/tests/deslop/fixtures/empty-and-binary-files/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/empty-and-binary-files/package.json rename to packages/core/tests/deslop/fixtures/empty-and-binary-files/package.json diff --git a/packages/deslop-js/tests/fixtures/empty-and-binary-files/src/binary-file.ts b/packages/core/tests/deslop/fixtures/empty-and-binary-files/src/binary-file.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/empty-and-binary-files/src/binary-file.ts rename to packages/core/tests/deslop/fixtures/empty-and-binary-files/src/binary-file.ts diff --git a/packages/deslop-js/tests/fixtures/empty-and-binary-files/src/empty-file.ts b/packages/core/tests/deslop/fixtures/empty-and-binary-files/src/empty-file.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/empty-and-binary-files/src/empty-file.ts rename to packages/core/tests/deslop/fixtures/empty-and-binary-files/src/empty-file.ts diff --git a/packages/deslop-js/tests/fixtures/empty-and-binary-files/src/index.ts b/packages/core/tests/deslop/fixtures/empty-and-binary-files/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/empty-and-binary-files/src/index.ts rename to packages/core/tests/deslop/fixtures/empty-and-binary-files/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/empty-and-binary-files/src/minified-bundle.js b/packages/core/tests/deslop/fixtures/empty-and-binary-files/src/minified-bundle.js similarity index 100% rename from packages/deslop-js/tests/fixtures/empty-and-binary-files/src/minified-bundle.js rename to packages/core/tests/deslop/fixtures/empty-and-binary-files/src/minified-bundle.js diff --git a/packages/deslop-js/tests/fixtures/entry-validation/package.json b/packages/core/tests/deslop/fixtures/entry-validation/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/entry-validation/package.json rename to packages/core/tests/deslop/fixtures/entry-validation/package.json diff --git a/packages/deslop-js/tests/fixtures/entry-validation/src/consumer.ts b/packages/core/tests/deslop/fixtures/entry-validation/src/consumer.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/entry-validation/src/consumer.ts rename to packages/core/tests/deslop/fixtures/entry-validation/src/consumer.ts diff --git a/packages/deslop-js/tests/fixtures/entry-validation/src/index.ts b/packages/core/tests/deslop/fixtures/entry-validation/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/entry-validation/src/index.ts rename to packages/core/tests/deslop/fixtures/entry-validation/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/enum-export/index.ts b/packages/core/tests/deslop/fixtures/enum-export/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/enum-export/index.ts rename to packages/core/tests/deslop/fixtures/enum-export/index.ts diff --git a/packages/deslop-js/tests/fixtures/enum-export/package.json b/packages/core/tests/deslop/fixtures/enum-export/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/enum-export/package.json rename to packages/core/tests/deslop/fixtures/enum-export/package.json diff --git a/packages/deslop-js/tests/fixtures/enum-export/status.ts b/packages/core/tests/deslop/fixtures/enum-export/status.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/enum-export/status.ts rename to packages/core/tests/deslop/fixtures/enum-export/status.ts diff --git a/packages/deslop-js/tests/fixtures/env-wrapper/orphan.js b/packages/core/tests/deslop/fixtures/env-wrapper/orphan.js similarity index 100% rename from packages/deslop-js/tests/fixtures/env-wrapper/orphan.js rename to packages/core/tests/deslop/fixtures/env-wrapper/orphan.js diff --git a/packages/deslop-js/tests/fixtures/env-wrapper/package.json b/packages/core/tests/deslop/fixtures/env-wrapper/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/env-wrapper/package.json rename to packages/core/tests/deslop/fixtures/env-wrapper/package.json diff --git a/packages/deslop-js/tests/fixtures/env-wrapper/src/dev-entry.js b/packages/core/tests/deslop/fixtures/env-wrapper/src/dev-entry.js similarity index 100% rename from packages/deslop-js/tests/fixtures/env-wrapper/src/dev-entry.js rename to packages/core/tests/deslop/fixtures/env-wrapper/src/dev-entry.js diff --git a/packages/deslop-js/tests/fixtures/env-wrapper/src/helper.js b/packages/core/tests/deslop/fixtures/env-wrapper/src/helper.js similarity index 100% rename from packages/deslop-js/tests/fixtures/env-wrapper/src/helper.js rename to packages/core/tests/deslop/fixtures/env-wrapper/src/helper.js diff --git a/packages/deslop-js/tests/fixtures/env-wrapper/src/main.js b/packages/core/tests/deslop/fixtures/env-wrapper/src/main.js similarity index 100% rename from packages/deslop-js/tests/fixtures/env-wrapper/src/main.js rename to packages/core/tests/deslop/fixtures/env-wrapper/src/main.js diff --git a/packages/deslop-js/tests/fixtures/expo-config-plugins/app.config.ts b/packages/core/tests/deslop/fixtures/expo-config-plugins/app.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-config-plugins/app.config.ts rename to packages/core/tests/deslop/fixtures/expo-config-plugins/app.config.ts diff --git a/packages/deslop-js/tests/fixtures/expo-config-plugins/app.json b/packages/core/tests/deslop/fixtures/expo-config-plugins/app.json similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-config-plugins/app.json rename to packages/core/tests/deslop/fixtures/expo-config-plugins/app.json diff --git a/packages/deslop-js/tests/fixtures/expo-config-plugins/apps/mobile/app.config.js b/packages/core/tests/deslop/fixtures/expo-config-plugins/apps/mobile/app.config.js similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-config-plugins/apps/mobile/app.config.js rename to packages/core/tests/deslop/fixtures/expo-config-plugins/apps/mobile/app.config.js diff --git a/packages/deslop-js/tests/fixtures/expo-config-plugins/apps/mobile/package.json b/packages/core/tests/deslop/fixtures/expo-config-plugins/apps/mobile/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-config-plugins/apps/mobile/package.json rename to packages/core/tests/deslop/fixtures/expo-config-plugins/apps/mobile/package.json diff --git a/packages/deslop-js/tests/fixtures/expo-config-plugins/apps/shared/cross-workspace-plugin.ts b/packages/core/tests/deslop/fixtures/expo-config-plugins/apps/shared/cross-workspace-plugin.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-config-plugins/apps/shared/cross-workspace-plugin.ts rename to packages/core/tests/deslop/fixtures/expo-config-plugins/apps/shared/cross-workspace-plugin.ts diff --git a/packages/deslop-js/tests/fixtures/expo-config-plugins/expo-camera.ts b/packages/core/tests/deslop/fixtures/expo-config-plugins/expo-camera.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-config-plugins/expo-camera.ts rename to packages/core/tests/deslop/fixtures/expo-config-plugins/expo-camera.ts diff --git a/packages/deslop-js/tests/fixtures/expo-config-plugins/package.json b/packages/core/tests/deslop/fixtures/expo-config-plugins/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-config-plugins/package.json rename to packages/core/tests/deslop/fixtures/expo-config-plugins/package.json diff --git a/packages/deslop-js/tests/fixtures/expo-config-plugins/plugins/directory-index-plugin/index.ts b/packages/core/tests/deslop/fixtures/expo-config-plugins/plugins/directory-index-plugin/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-config-plugins/plugins/directory-index-plugin/index.ts rename to packages/core/tests/deslop/fixtures/expo-config-plugins/plugins/directory-index-plugin/index.ts diff --git a/packages/deslop-js/tests/fixtures/expo-config-plugins/plugins/expo-json-extensionless-plugin.ts b/packages/core/tests/deslop/fixtures/expo-config-plugins/plugins/expo-json-extensionless-plugin.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-config-plugins/plugins/expo-json-extensionless-plugin.ts rename to packages/core/tests/deslop/fixtures/expo-config-plugins/plugins/expo-json-extensionless-plugin.ts diff --git a/packages/deslop-js/tests/fixtures/expo-config-plugins/plugins/false-positive-target.ts b/packages/core/tests/deslop/fixtures/expo-config-plugins/plugins/false-positive-target.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-config-plugins/plugins/false-positive-target.ts rename to packages/core/tests/deslop/fixtures/expo-config-plugins/plugins/false-positive-target.ts diff --git a/packages/deslop-js/tests/fixtures/expo-config-plugins/plugins/root-json-plugin.ts b/packages/core/tests/deslop/fixtures/expo-config-plugins/plugins/root-json-plugin.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-config-plugins/plugins/root-json-plugin.ts rename to packages/core/tests/deslop/fixtures/expo-config-plugins/plugins/root-json-plugin.ts diff --git a/packages/deslop-js/tests/fixtures/expo-config-plugins/plugins/template-literal-plugin.ts b/packages/core/tests/deslop/fixtures/expo-config-plugins/plugins/template-literal-plugin.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-config-plugins/plugins/template-literal-plugin.ts rename to packages/core/tests/deslop/fixtures/expo-config-plugins/plugins/template-literal-plugin.ts diff --git a/packages/deslop-js/tests/fixtures/expo-config-plugins/src/index.ts b/packages/core/tests/deslop/fixtures/expo-config-plugins/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-config-plugins/src/index.ts rename to packages/core/tests/deslop/fixtures/expo-config-plugins/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/expo-router-app/app/(tabs)/_layout.tsx b/packages/core/tests/deslop/fixtures/expo-router-app/app/(tabs)/_layout.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-app/app/(tabs)/_layout.tsx rename to packages/core/tests/deslop/fixtures/expo-router-app/app/(tabs)/_layout.tsx diff --git a/packages/deslop-js/tests/fixtures/expo-router-app/app/(tabs)/index.tsx b/packages/core/tests/deslop/fixtures/expo-router-app/app/(tabs)/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-app/app/(tabs)/index.tsx rename to packages/core/tests/deslop/fixtures/expo-router-app/app/(tabs)/index.tsx diff --git a/packages/deslop-js/tests/fixtures/expo-router-app/app/(tabs)/settings.tsx b/packages/core/tests/deslop/fixtures/expo-router-app/app/(tabs)/settings.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-app/app/(tabs)/settings.tsx rename to packages/core/tests/deslop/fixtures/expo-router-app/app/(tabs)/settings.tsx diff --git a/packages/deslop-js/tests/fixtures/expo-router-app/app/_layout.tsx b/packages/core/tests/deslop/fixtures/expo-router-app/app/_layout.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-app/app/_layout.tsx rename to packages/core/tests/deslop/fixtures/expo-router-app/app/_layout.tsx diff --git a/packages/deslop-js/tests/fixtures/expo-router-app/package.json b/packages/core/tests/deslop/fixtures/expo-router-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-app/package.json rename to packages/core/tests/deslop/fixtures/expo-router-app/package.json diff --git a/packages/deslop-js/tests/fixtures/expo-router-src-app-orphan/package.json b/packages/core/tests/deslop/fixtures/expo-router-src-app-orphan/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-src-app-orphan/package.json rename to packages/core/tests/deslop/fixtures/expo-router-src-app-orphan/package.json diff --git a/packages/deslop-js/tests/fixtures/expo-router-src-app-orphan/src/app/(tabs)/_layout.tsx b/packages/core/tests/deslop/fixtures/expo-router-src-app-orphan/src/app/(tabs)/_layout.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-src-app-orphan/src/app/(tabs)/_layout.tsx rename to packages/core/tests/deslop/fixtures/expo-router-src-app-orphan/src/app/(tabs)/_layout.tsx diff --git a/packages/deslop-js/tests/fixtures/expo-router-src-app-orphan/src/app/(tabs)/index.tsx b/packages/core/tests/deslop/fixtures/expo-router-src-app-orphan/src/app/(tabs)/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-src-app-orphan/src/app/(tabs)/index.tsx rename to packages/core/tests/deslop/fixtures/expo-router-src-app-orphan/src/app/(tabs)/index.tsx diff --git a/packages/deslop-js/tests/fixtures/expo-router-src-app-orphan/src/app/_layout.tsx b/packages/core/tests/deslop/fixtures/expo-router-src-app-orphan/src/app/_layout.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-src-app-orphan/src/app/_layout.tsx rename to packages/core/tests/deslop/fixtures/expo-router-src-app-orphan/src/app/_layout.tsx diff --git a/packages/deslop-js/tests/fixtures/expo-router-src-app-orphan/src/utils/orphan.ts b/packages/core/tests/deslop/fixtures/expo-router-src-app-orphan/src/utils/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-src-app-orphan/src/utils/orphan.ts rename to packages/core/tests/deslop/fixtures/expo-router-src-app-orphan/src/utils/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/expo-router-src-app/package.json b/packages/core/tests/deslop/fixtures/expo-router-src-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-src-app/package.json rename to packages/core/tests/deslop/fixtures/expo-router-src-app/package.json diff --git a/packages/deslop-js/tests/fixtures/expo-router-src-app/src/app/(tabs)/_layout.tsx b/packages/core/tests/deslop/fixtures/expo-router-src-app/src/app/(tabs)/_layout.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-src-app/src/app/(tabs)/_layout.tsx rename to packages/core/tests/deslop/fixtures/expo-router-src-app/src/app/(tabs)/_layout.tsx diff --git a/packages/deslop-js/tests/fixtures/expo-router-src-app/src/app/(tabs)/index.tsx b/packages/core/tests/deslop/fixtures/expo-router-src-app/src/app/(tabs)/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-src-app/src/app/(tabs)/index.tsx rename to packages/core/tests/deslop/fixtures/expo-router-src-app/src/app/(tabs)/index.tsx diff --git a/packages/deslop-js/tests/fixtures/expo-router-src-app/src/app/(tabs)/settings.tsx b/packages/core/tests/deslop/fixtures/expo-router-src-app/src/app/(tabs)/settings.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-src-app/src/app/(tabs)/settings.tsx rename to packages/core/tests/deslop/fixtures/expo-router-src-app/src/app/(tabs)/settings.tsx diff --git a/packages/deslop-js/tests/fixtures/expo-router-src-app/src/app/_layout.tsx b/packages/core/tests/deslop/fixtures/expo-router-src-app/src/app/_layout.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/expo-router-src-app/src/app/_layout.tsx rename to packages/core/tests/deslop/fixtures/expo-router-src-app/src/app/_layout.tsx diff --git a/packages/deslop-js/tests/fixtures/export-default/package.json b/packages/core/tests/deslop/fixtures/export-default/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/export-default/package.json rename to packages/core/tests/deslop/fixtures/export-default/package.json diff --git a/packages/deslop-js/tests/fixtures/export-default/src/component.ts b/packages/core/tests/deslop/fixtures/export-default/src/component.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/export-default/src/component.ts rename to packages/core/tests/deslop/fixtures/export-default/src/component.ts diff --git a/packages/deslop-js/tests/fixtures/export-default/src/index.ts b/packages/core/tests/deslop/fixtures/export-default/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/export-default/src/index.ts rename to packages/core/tests/deslop/fixtures/export-default/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/export-default/src/unused-default.ts b/packages/core/tests/deslop/fixtures/export-default/src/unused-default.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/export-default/src/unused-default.ts rename to packages/core/tests/deslop/fixtures/export-default/src/unused-default.ts diff --git a/packages/deslop-js/tests/fixtures/extensionless-relative-import/package.json b/packages/core/tests/deslop/fixtures/extensionless-relative-import/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/extensionless-relative-import/package.json rename to packages/core/tests/deslop/fixtures/extensionless-relative-import/package.json diff --git a/packages/deslop-js/tests/fixtures/extensionless-relative-import/src/App.tsx b/packages/core/tests/deslop/fixtures/extensionless-relative-import/src/App.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/extensionless-relative-import/src/App.tsx rename to packages/core/tests/deslop/fixtures/extensionless-relative-import/src/App.tsx diff --git a/packages/deslop-js/tests/fixtures/extensionless-relative-import/src/Radio.tsx b/packages/core/tests/deslop/fixtures/extensionless-relative-import/src/Radio.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/extensionless-relative-import/src/Radio.tsx rename to packages/core/tests/deslop/fixtures/extensionless-relative-import/src/Radio.tsx diff --git a/packages/deslop-js/tests/fixtures/extensionless-relative-import/src/index.tsx b/packages/core/tests/deslop/fixtures/extensionless-relative-import/src/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/extensionless-relative-import/src/index.tsx rename to packages/core/tests/deslop/fixtures/extensionless-relative-import/src/index.tsx diff --git a/packages/deslop-js/tests/fixtures/extensionless-relative-import/src/orphan.ts b/packages/core/tests/deslop/fixtures/extensionless-relative-import/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/extensionless-relative-import/src/orphan.ts rename to packages/core/tests/deslop/fixtures/extensionless-relative-import/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/feature-flags-basic/package.json b/packages/core/tests/deslop/fixtures/feature-flags-basic/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/feature-flags-basic/package.json rename to packages/core/tests/deslop/fixtures/feature-flags-basic/package.json diff --git a/packages/deslop-js/tests/fixtures/feature-flags-basic/src/index.ts b/packages/core/tests/deslop/fixtures/feature-flags-basic/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/feature-flags-basic/src/index.ts rename to packages/core/tests/deslop/fixtures/feature-flags-basic/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/filename-registry-entries/package.json b/packages/core/tests/deslop/fixtures/filename-registry-entries/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/filename-registry-entries/package.json rename to packages/core/tests/deslop/fixtures/filename-registry-entries/package.json diff --git a/packages/deslop-js/tests/fixtures/filename-registry-entries/src/index.ts b/packages/core/tests/deslop/fixtures/filename-registry-entries/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/filename-registry-entries/src/index.ts rename to packages/core/tests/deslop/fixtures/filename-registry-entries/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/filename-registry-entries/src/registry.ts b/packages/core/tests/deslop/fixtures/filename-registry-entries/src/registry.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/filename-registry-entries/src/registry.ts rename to packages/core/tests/deslop/fixtures/filename-registry-entries/src/registry.ts diff --git a/packages/deslop-js/tests/fixtures/filename-registry-entries/tools/diagnose-user.ts b/packages/core/tests/deslop/fixtures/filename-registry-entries/tools/diagnose-user.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/filename-registry-entries/tools/diagnose-user.ts rename to packages/core/tests/deslop/fixtures/filename-registry-entries/tools/diagnose-user.ts diff --git a/packages/deslop-js/tests/fixtures/filename-registry-entries/tools/export-data.ts b/packages/core/tests/deslop/fixtures/filename-registry-entries/tools/export-data.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/filename-registry-entries/tools/export-data.ts rename to packages/core/tests/deslop/fixtures/filename-registry-entries/tools/export-data.ts diff --git a/packages/deslop-js/tests/fixtures/filename-registry-entries/tools/genuinely-dead.ts b/packages/core/tests/deslop/fixtures/filename-registry-entries/tools/genuinely-dead.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/filename-registry-entries/tools/genuinely-dead.ts rename to packages/core/tests/deslop/fixtures/filename-registry-entries/tools/genuinely-dead.ts diff --git a/packages/deslop-js/tests/fixtures/flow-js-app/package.json b/packages/core/tests/deslop/fixtures/flow-js-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/flow-js-app/package.json rename to packages/core/tests/deslop/fixtures/flow-js-app/package.json diff --git a/packages/deslop-js/tests/fixtures/flow-js-app/src/Widget.js b/packages/core/tests/deslop/fixtures/flow-js-app/src/Widget.js similarity index 100% rename from packages/deslop-js/tests/fixtures/flow-js-app/src/Widget.js rename to packages/core/tests/deslop/fixtures/flow-js-app/src/Widget.js diff --git a/packages/deslop-js/tests/fixtures/flow-js-app/src/actions/helper.js b/packages/core/tests/deslop/fixtures/flow-js-app/src/actions/helper.js similarity index 100% rename from packages/deslop-js/tests/fixtures/flow-js-app/src/actions/helper.js rename to packages/core/tests/deslop/fixtures/flow-js-app/src/actions/helper.js diff --git a/packages/deslop-js/tests/fixtures/flow-js-app/src/main.dev.js b/packages/core/tests/deslop/fixtures/flow-js-app/src/main.dev.js similarity index 100% rename from packages/deslop-js/tests/fixtures/flow-js-app/src/main.dev.js rename to packages/core/tests/deslop/fixtures/flow-js-app/src/main.dev.js diff --git a/packages/deslop-js/tests/fixtures/flow-js-app/src/orphan.js b/packages/core/tests/deslop/fixtures/flow-js-app/src/orphan.js similarity index 100% rename from packages/deslop-js/tests/fixtures/flow-js-app/src/orphan.js rename to packages/core/tests/deslop/fixtures/flow-js-app/src/orphan.js diff --git a/packages/deslop-js/tests/fixtures/framework-gate/no-framework/app/dashboard/page.tsx b/packages/core/tests/deslop/fixtures/framework-gate/no-framework/app/dashboard/page.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/no-framework/app/dashboard/page.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/no-framework/app/dashboard/page.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/no-framework/index.ts b/packages/core/tests/deslop/fixtures/framework-gate/no-framework/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/no-framework/index.ts rename to packages/core/tests/deslop/fixtures/framework-gate/no-framework/index.ts diff --git a/packages/deslop-js/tests/fixtures/framework-gate/no-framework/package.json b/packages/core/tests/deslop/fixtures/framework-gate/no-framework/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/no-framework/package.json rename to packages/core/tests/deslop/fixtures/framework-gate/no-framework/package.json diff --git a/packages/deslop-js/tests/fixtures/framework-gate/no-framework/pages/index.tsx b/packages/core/tests/deslop/fixtures/framework-gate/no-framework/pages/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/no-framework/pages/index.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/no-framework/pages/index.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/no-framework/resources/js/Pages/dashboard.tsx b/packages/core/tests/deslop/fixtures/framework-gate/no-framework/resources/js/Pages/dashboard.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/no-framework/resources/js/Pages/dashboard.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/no-framework/resources/js/Pages/dashboard.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/no-framework/src/routes/index.tsx b/packages/core/tests/deslop/fixtures/framework-gate/no-framework/src/routes/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/no-framework/src/routes/index.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/no-framework/src/routes/index.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/module-federation.config.ts b/packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/module-federation.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/module-federation.config.ts rename to packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/module-federation.config.ts diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/package.json b/packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/package.json rename to packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/package.json diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/src/orphan.ts b/packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/src/orphan.ts rename to packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/src/pages/blog/index.page.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/src/pages/blog/index.page.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/src/pages/blog/index.page.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/src/pages/blog/index.page.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/src/remote-entry.ts b/packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/src/remote-entry.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/src/remote-entry.ts rename to packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/src/remote-entry.ts diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/src/renderer/on-render-client.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/src/renderer/on-render-client.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/src/renderer/on-render-client.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/src/renderer/on-render-client.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/src/routes/dashboard/index.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/src/routes/dashboard/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/src/routes/dashboard/index.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/src/routes/dashboard/index.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/src/waku.client.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/src/waku.client.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/src/waku.client.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/src/waku.client.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/web/src/Routes.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/web/src/Routes.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/web/src/Routes.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/web/src/Routes.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/web/src/layouts/main.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/web/src/layouts/main.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/web/src/layouts/main.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/web/src/layouts/main.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/web/src/pages/home.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/web/src/pages/home.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-additional-framework-pages/web/src/pages/home.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-additional-framework-pages/web/src/pages/home.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-inertia/package.json b/packages/core/tests/deslop/fixtures/framework-gate/with-inertia/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-inertia/package.json rename to packages/core/tests/deslop/fixtures/framework-gate/with-inertia/package.json diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-inertia/resources/js/Pages/Admin/index.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-inertia/resources/js/Pages/Admin/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-inertia/resources/js/Pages/Admin/index.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-inertia/resources/js/Pages/Admin/index.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-inertia/resources/js/app.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-inertia/resources/js/app.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-inertia/resources/js/app.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-inertia/resources/js/app.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-inertia/resources/js/components/bootstrap.ts b/packages/core/tests/deslop/fixtures/framework-gate/with-inertia/resources/js/components/bootstrap.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-inertia/resources/js/components/bootstrap.ts rename to packages/core/tests/deslop/fixtures/framework-gate/with-inertia/resources/js/components/bootstrap.ts diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-inertia/resources/js/components/page-title.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-inertia/resources/js/components/page-title.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-inertia/resources/js/components/page-title.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-inertia/resources/js/components/page-title.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-inertia/resources/js/orphan.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-inertia/resources/js/orphan.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-inertia/resources/js/orphan.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-inertia/resources/js/orphan.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-nextjs/app/dashboard/page.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-nextjs/app/dashboard/page.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-nextjs/app/dashboard/page.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-nextjs/app/dashboard/page.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-nextjs/package.json b/packages/core/tests/deslop/fixtures/framework-gate/with-nextjs/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-nextjs/package.json rename to packages/core/tests/deslop/fixtures/framework-gate/with-nextjs/package.json diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-nextjs/pages/index.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-nextjs/pages/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-nextjs/pages/index.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-nextjs/pages/index.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-nextjs/unused.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-nextjs/unused.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-nextjs/unused.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-nextjs/unused.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-react-router/package.json b/packages/core/tests/deslop/fixtures/framework-gate/with-react-router/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-react-router/package.json rename to packages/core/tests/deslop/fixtures/framework-gate/with-react-router/package.json diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-react-router/react-router.config.ts b/packages/core/tests/deslop/fixtures/framework-gate/with-react-router/react-router.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-react-router/react-router.config.ts rename to packages/core/tests/deslop/fixtures/framework-gate/with-react-router/react-router.config.ts diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-react-router/src/root.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-react-router/src/root.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-react-router/src/root.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-react-router/src/root.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-react-router/src/routes/home.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-react-router/src/routes/home.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-react-router/src/routes/home.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-react-router/src/routes/home.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-react-router/unused.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-react-router/unused.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-react-router/unused.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-react-router/unused.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-redwood-non-router-package/package.json b/packages/core/tests/deslop/fixtures/framework-gate/with-redwood-non-router-package/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-redwood-non-router-package/package.json rename to packages/core/tests/deslop/fixtures/framework-gate/with-redwood-non-router-package/package.json diff --git a/packages/deslop-js/tests/fixtures/framework-gate/with-redwood-non-router-package/web/src/pages/home.tsx b/packages/core/tests/deslop/fixtures/framework-gate/with-redwood-non-router-package/web/src/pages/home.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-gate/with-redwood-non-router-package/web/src/pages/home.tsx rename to packages/core/tests/deslop/fixtures/framework-gate/with-redwood-non-router-package/web/src/pages/home.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/package.json b/packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/package.json rename to packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/package.json diff --git a/packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/react-router-app/app/root.tsx b/packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/react-router-app/app/root.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/react-router-app/app/root.tsx rename to packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/react-router-app/app/root.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/react-router-app/app/routes/home.tsx b/packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/react-router-app/app/routes/home.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/react-router-app/app/routes/home.tsx rename to packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/react-router-app/app/routes/home.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/react-router-app/orphan.tsx b/packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/react-router-app/orphan.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/react-router-app/orphan.tsx rename to packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/react-router-app/orphan.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/react-router-app/package.json b/packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/react-router-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/react-router-app/package.json rename to packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/react-router-app/package.json diff --git a/packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/remix-app/app/root.tsx b/packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/remix-app/app/root.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/remix-app/app/root.tsx rename to packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/remix-app/app/root.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/remix-app/app/routes/home.tsx b/packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/remix-app/app/routes/home.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/remix-app/app/routes/home.tsx rename to packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/remix-app/app/routes/home.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/remix-app/orphan.tsx b/packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/remix-app/orphan.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/remix-app/orphan.tsx rename to packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/remix-app/orphan.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/remix-app/package.json b/packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/remix-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-hoisted-router-scripts/packages/remix-app/package.json rename to packages/core/tests/deslop/fixtures/framework-hoisted-router-scripts/packages/remix-app/package.json diff --git a/packages/deslop-js/tests/fixtures/framework-hoisted-script-entry/package.json b/packages/core/tests/deslop/fixtures/framework-hoisted-script-entry/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-hoisted-script-entry/package.json rename to packages/core/tests/deslop/fixtures/framework-hoisted-script-entry/package.json diff --git a/packages/deslop-js/tests/fixtures/framework-hoisted-script-entry/packages/app/orphan.tsx b/packages/core/tests/deslop/fixtures/framework-hoisted-script-entry/packages/app/orphan.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-hoisted-script-entry/packages/app/orphan.tsx rename to packages/core/tests/deslop/fixtures/framework-hoisted-script-entry/packages/app/orphan.tsx diff --git a/packages/deslop-js/tests/fixtures/framework-hoisted-script-entry/packages/app/package.json b/packages/core/tests/deslop/fixtures/framework-hoisted-script-entry/packages/app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-hoisted-script-entry/packages/app/package.json rename to packages/core/tests/deslop/fixtures/framework-hoisted-script-entry/packages/app/package.json diff --git a/packages/deslop-js/tests/fixtures/framework-hoisted-script-entry/packages/app/pages/index.tsx b/packages/core/tests/deslop/fixtures/framework-hoisted-script-entry/packages/app/pages/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/framework-hoisted-script-entry/packages/app/pages/index.tsx rename to packages/core/tests/deslop/fixtures/framework-hoisted-script-entry/packages/app/pages/index.tsx diff --git a/packages/deslop-js/tests/fixtures/gatsby-app/gatsby-config.js b/packages/core/tests/deslop/fixtures/gatsby-app/gatsby-config.js similarity index 100% rename from packages/deslop-js/tests/fixtures/gatsby-app/gatsby-config.js rename to packages/core/tests/deslop/fixtures/gatsby-app/gatsby-config.js diff --git a/packages/deslop-js/tests/fixtures/gatsby-app/package.json b/packages/core/tests/deslop/fixtures/gatsby-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/gatsby-app/package.json rename to packages/core/tests/deslop/fixtures/gatsby-app/package.json diff --git a/packages/deslop-js/tests/fixtures/gatsby-app/src/api/hello.ts b/packages/core/tests/deslop/fixtures/gatsby-app/src/api/hello.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/gatsby-app/src/api/hello.ts rename to packages/core/tests/deslop/fixtures/gatsby-app/src/api/hello.ts diff --git a/packages/deslop-js/tests/fixtures/gatsby-app/src/components/unused.tsx b/packages/core/tests/deslop/fixtures/gatsby-app/src/components/unused.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/gatsby-app/src/components/unused.tsx rename to packages/core/tests/deslop/fixtures/gatsby-app/src/components/unused.tsx diff --git a/packages/deslop-js/tests/fixtures/gatsby-app/src/components/used.tsx b/packages/core/tests/deslop/fixtures/gatsby-app/src/components/used.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/gatsby-app/src/components/used.tsx rename to packages/core/tests/deslop/fixtures/gatsby-app/src/components/used.tsx diff --git a/packages/deslop-js/tests/fixtures/gatsby-app/src/pages/index.tsx b/packages/core/tests/deslop/fixtures/gatsby-app/src/pages/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/gatsby-app/src/pages/index.tsx rename to packages/core/tests/deslop/fixtures/gatsby-app/src/pages/index.tsx diff --git a/packages/deslop-js/tests/fixtures/gatsby-app/src/templates/post.tsx b/packages/core/tests/deslop/fixtures/gatsby-app/src/templates/post.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/gatsby-app/src/templates/post.tsx rename to packages/core/tests/deslop/fixtures/gatsby-app/src/templates/post.tsx diff --git a/packages/deslop-js/tests/fixtures/generated-specs/package.json b/packages/core/tests/deslop/fixtures/generated-specs/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/generated-specs/package.json rename to packages/core/tests/deslop/fixtures/generated-specs/package.json diff --git a/packages/deslop-js/tests/fixtures/generated-specs/src/__tests__/index.test.ts b/packages/core/tests/deslop/fixtures/generated-specs/src/__tests__/index.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/generated-specs/src/__tests__/index.test.ts rename to packages/core/tests/deslop/fixtures/generated-specs/src/__tests__/index.test.ts diff --git a/packages/deslop-js/tests/fixtures/generated-specs/src/generated/schema.gen.ts b/packages/core/tests/deslop/fixtures/generated-specs/src/generated/schema.gen.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/generated-specs/src/generated/schema.gen.ts rename to packages/core/tests/deslop/fixtures/generated-specs/src/generated/schema.gen.ts diff --git a/packages/deslop-js/tests/fixtures/generated-specs/src/generated/types.spec.gen.ts b/packages/core/tests/deslop/fixtures/generated-specs/src/generated/types.spec.gen.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/generated-specs/src/generated/types.spec.gen.ts rename to packages/core/tests/deslop/fixtures/generated-specs/src/generated/types.spec.gen.ts diff --git a/packages/deslop-js/tests/fixtures/generated-specs/src/index.ts b/packages/core/tests/deslop/fixtures/generated-specs/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/generated-specs/src/index.ts rename to packages/core/tests/deslop/fixtures/generated-specs/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/gh-actions-scripts/.github/actions/deploy/run.js b/packages/core/tests/deslop/fixtures/gh-actions-scripts/.github/actions/deploy/run.js similarity index 100% rename from packages/deslop-js/tests/fixtures/gh-actions-scripts/.github/actions/deploy/run.js rename to packages/core/tests/deslop/fixtures/gh-actions-scripts/.github/actions/deploy/run.js diff --git a/packages/deslop-js/tests/fixtures/gh-actions-scripts/.github/actions/deploy/unused-helper.js b/packages/core/tests/deslop/fixtures/gh-actions-scripts/.github/actions/deploy/unused-helper.js similarity index 100% rename from packages/deslop-js/tests/fixtures/gh-actions-scripts/.github/actions/deploy/unused-helper.js rename to packages/core/tests/deslop/fixtures/gh-actions-scripts/.github/actions/deploy/unused-helper.js diff --git a/packages/deslop-js/tests/fixtures/gh-actions-scripts/.github/workflows/ci.yml b/packages/core/tests/deslop/fixtures/gh-actions-scripts/.github/workflows/ci.yml similarity index 100% rename from packages/deslop-js/tests/fixtures/gh-actions-scripts/.github/workflows/ci.yml rename to packages/core/tests/deslop/fixtures/gh-actions-scripts/.github/workflows/ci.yml diff --git a/packages/deslop-js/tests/fixtures/gh-actions-scripts/package.json b/packages/core/tests/deslop/fixtures/gh-actions-scripts/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/gh-actions-scripts/package.json rename to packages/core/tests/deslop/fixtures/gh-actions-scripts/package.json diff --git a/packages/deslop-js/tests/fixtures/gh-actions-scripts/src/index.ts b/packages/core/tests/deslop/fixtures/gh-actions-scripts/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/gh-actions-scripts/src/index.ts rename to packages/core/tests/deslop/fixtures/gh-actions-scripts/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/gitignore-app/.gitignore b/packages/core/tests/deslop/fixtures/gitignore-app/.gitignore similarity index 100% rename from packages/deslop-js/tests/fixtures/gitignore-app/.gitignore rename to packages/core/tests/deslop/fixtures/gitignore-app/.gitignore diff --git a/packages/deslop-js/tests/fixtures/gitignore-app/generated/output.ts b/packages/core/tests/deslop/fixtures/gitignore-app/generated/output.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/gitignore-app/generated/output.ts rename to packages/core/tests/deslop/fixtures/gitignore-app/generated/output.ts diff --git a/packages/deslop-js/tests/fixtures/gitignore-app/generated/routes.ts b/packages/core/tests/deslop/fixtures/gitignore-app/generated/routes.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/gitignore-app/generated/routes.ts rename to packages/core/tests/deslop/fixtures/gitignore-app/generated/routes.ts diff --git a/packages/deslop-js/tests/fixtures/gitignore-app/package.json b/packages/core/tests/deslop/fixtures/gitignore-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/gitignore-app/package.json rename to packages/core/tests/deslop/fixtures/gitignore-app/package.json diff --git a/packages/deslop-js/tests/fixtures/gitignore-app/src/home-route.ts b/packages/core/tests/deslop/fixtures/gitignore-app/src/home-route.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/gitignore-app/src/home-route.ts rename to packages/core/tests/deslop/fixtures/gitignore-app/src/home-route.ts diff --git a/packages/deslop-js/tests/fixtures/gitignore-app/src/index.ts b/packages/core/tests/deslop/fixtures/gitignore-app/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/gitignore-app/src/index.ts rename to packages/core/tests/deslop/fixtures/gitignore-app/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/gitignore-app/src/orphan.ts b/packages/core/tests/deslop/fixtures/gitignore-app/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/gitignore-app/src/orphan.ts rename to packages/core/tests/deslop/fixtures/gitignore-app/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/graphql-schema/package.json b/packages/core/tests/deslop/fixtures/graphql-schema/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/graphql-schema/package.json rename to packages/core/tests/deslop/fixtures/graphql-schema/package.json diff --git a/packages/deslop-js/tests/fixtures/graphql-schema/src/index.ts b/packages/core/tests/deslop/fixtures/graphql-schema/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/graphql-schema/src/index.ts rename to packages/core/tests/deslop/fixtures/graphql-schema/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/graphql-schema/src/schema.graphql b/packages/core/tests/deslop/fixtures/graphql-schema/src/schema.graphql similarity index 100% rename from packages/deslop-js/tests/fixtures/graphql-schema/src/schema.graphql rename to packages/core/tests/deslop/fixtures/graphql-schema/src/schema.graphql diff --git a/packages/deslop-js/tests/fixtures/graphql-schema/src/unused.graphql b/packages/core/tests/deslop/fixtures/graphql-schema/src/unused.graphql similarity index 100% rename from packages/deslop-js/tests/fixtures/graphql-schema/src/unused.graphql rename to packages/core/tests/deslop/fixtures/graphql-schema/src/unused.graphql diff --git a/packages/deslop-js/tests/fixtures/heuristic-no-dir-fallback/package.json b/packages/core/tests/deslop/fixtures/heuristic-no-dir-fallback/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/heuristic-no-dir-fallback/package.json rename to packages/core/tests/deslop/fixtures/heuristic-no-dir-fallback/package.json diff --git a/packages/deslop-js/tests/fixtures/heuristic-no-dir-fallback/src/cli/index.ts b/packages/core/tests/deslop/fixtures/heuristic-no-dir-fallback/src/cli/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/heuristic-no-dir-fallback/src/cli/index.ts rename to packages/core/tests/deslop/fixtures/heuristic-no-dir-fallback/src/cli/index.ts diff --git a/packages/deslop-js/tests/fixtures/heuristic-no-dir-fallback/src/index.ts b/packages/core/tests/deslop/fixtures/heuristic-no-dir-fallback/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/heuristic-no-dir-fallback/src/index.ts rename to packages/core/tests/deslop/fixtures/heuristic-no-dir-fallback/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/heuristic-no-dir-fallback/src/orphan.ts b/packages/core/tests/deslop/fixtures/heuristic-no-dir-fallback/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/heuristic-no-dir-fallback/src/orphan.ts rename to packages/core/tests/deslop/fixtures/heuristic-no-dir-fallback/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/hoc-wrapped-default-export/package.json b/packages/core/tests/deslop/fixtures/hoc-wrapped-default-export/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/hoc-wrapped-default-export/package.json rename to packages/core/tests/deslop/fixtures/hoc-wrapped-default-export/package.json diff --git a/packages/deslop-js/tests/fixtures/hoc-wrapped-default-export/src/apps-badge.tsx b/packages/core/tests/deslop/fixtures/hoc-wrapped-default-export/src/apps-badge.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/hoc-wrapped-default-export/src/apps-badge.tsx rename to packages/core/tests/deslop/fixtures/hoc-wrapped-default-export/src/apps-badge.tsx diff --git a/packages/deslop-js/tests/fixtures/hoc-wrapped-default-export/src/index.ts b/packages/core/tests/deslop/fixtures/hoc-wrapped-default-export/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/hoc-wrapped-default-export/src/index.ts rename to packages/core/tests/deslop/fixtures/hoc-wrapped-default-export/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/hoc-wrapped-default-export/src/orphan.ts b/packages/core/tests/deslop/fixtures/hoc-wrapped-default-export/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/hoc-wrapped-default-export/src/orphan.ts rename to packages/core/tests/deslop/fixtures/hoc-wrapped-default-export/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/html-entry-scope/package.json b/packages/core/tests/deslop/fixtures/html-entry-scope/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/html-entry-scope/package.json rename to packages/core/tests/deslop/fixtures/html-entry-scope/package.json diff --git a/packages/deslop-js/tests/fixtures/html-entry-scope/packages/app/index.html b/packages/core/tests/deslop/fixtures/html-entry-scope/packages/app/index.html similarity index 100% rename from packages/deslop-js/tests/fixtures/html-entry-scope/packages/app/index.html rename to packages/core/tests/deslop/fixtures/html-entry-scope/packages/app/index.html diff --git a/packages/deslop-js/tests/fixtures/html-entry-scope/packages/app/package.json b/packages/core/tests/deslop/fixtures/html-entry-scope/packages/app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/html-entry-scope/packages/app/package.json rename to packages/core/tests/deslop/fixtures/html-entry-scope/packages/app/package.json diff --git a/packages/deslop-js/tests/fixtures/html-entry-scope/packages/app/sample/demo.tsx b/packages/core/tests/deslop/fixtures/html-entry-scope/packages/app/sample/demo.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/html-entry-scope/packages/app/sample/demo.tsx rename to packages/core/tests/deslop/fixtures/html-entry-scope/packages/app/sample/demo.tsx diff --git a/packages/deslop-js/tests/fixtures/html-entry-scope/packages/app/sample/index.html b/packages/core/tests/deslop/fixtures/html-entry-scope/packages/app/sample/index.html similarity index 100% rename from packages/deslop-js/tests/fixtures/html-entry-scope/packages/app/sample/index.html rename to packages/core/tests/deslop/fixtures/html-entry-scope/packages/app/sample/index.html diff --git a/packages/deslop-js/tests/fixtures/html-entry-scope/packages/app/src/helper.ts b/packages/core/tests/deslop/fixtures/html-entry-scope/packages/app/src/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/html-entry-scope/packages/app/src/helper.ts rename to packages/core/tests/deslop/fixtures/html-entry-scope/packages/app/src/helper.ts diff --git a/packages/deslop-js/tests/fixtures/html-entry-scope/packages/app/src/main.tsx b/packages/core/tests/deslop/fixtures/html-entry-scope/packages/app/src/main.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/html-entry-scope/packages/app/src/main.tsx rename to packages/core/tests/deslop/fixtures/html-entry-scope/packages/app/src/main.tsx diff --git a/packages/deslop-js/tests/fixtures/html-entry-scope/packages/lib/package.json b/packages/core/tests/deslop/fixtures/html-entry-scope/packages/lib/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/html-entry-scope/packages/lib/package.json rename to packages/core/tests/deslop/fixtures/html-entry-scope/packages/lib/package.json diff --git a/packages/deslop-js/tests/fixtures/html-entry-scope/packages/lib/src/index.ts b/packages/core/tests/deslop/fixtures/html-entry-scope/packages/lib/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/html-entry-scope/packages/lib/src/index.ts rename to packages/core/tests/deslop/fixtures/html-entry-scope/packages/lib/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/html-entry-scope/packages/lib/src/orphan.ts b/packages/core/tests/deslop/fixtures/html-entry-scope/packages/lib/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/html-entry-scope/packages/lib/src/orphan.ts rename to packages/core/tests/deslop/fixtures/html-entry-scope/packages/lib/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/i18n-app/package.json b/packages/core/tests/deslop/fixtures/i18n-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/i18n-app/package.json rename to packages/core/tests/deslop/fixtures/i18n-app/package.json diff --git a/packages/deslop-js/tests/fixtures/i18n-app/public/locales/en.json b/packages/core/tests/deslop/fixtures/i18n-app/public/locales/en.json similarity index 100% rename from packages/deslop-js/tests/fixtures/i18n-app/public/locales/en.json rename to packages/core/tests/deslop/fixtures/i18n-app/public/locales/en.json diff --git a/packages/deslop-js/tests/fixtures/i18n-app/src/i18n.ts b/packages/core/tests/deslop/fixtures/i18n-app/src/i18n.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/i18n-app/src/i18n.ts rename to packages/core/tests/deslop/fixtures/i18n-app/src/i18n.ts diff --git a/packages/deslop-js/tests/fixtures/i18n-app/src/index.ts b/packages/core/tests/deslop/fixtures/i18n-app/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/i18n-app/src/index.ts rename to packages/core/tests/deslop/fixtures/i18n-app/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/i18n-app/src/orphan.ts b/packages/core/tests/deslop/fixtures/i18n-app/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/i18n-app/src/orphan.ts rename to packages/core/tests/deslop/fixtures/i18n-app/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/i18n-glob-skip/package.json b/packages/core/tests/deslop/fixtures/i18n-glob-skip/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/i18n-glob-skip/package.json rename to packages/core/tests/deslop/fixtures/i18n-glob-skip/package.json diff --git a/packages/deslop-js/tests/fixtures/i18n-glob-skip/src/app.ts b/packages/core/tests/deslop/fixtures/i18n-glob-skip/src/app.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/i18n-glob-skip/src/app.ts rename to packages/core/tests/deslop/fixtures/i18n-glob-skip/src/app.ts diff --git a/packages/deslop-js/tests/fixtures/i18n-glob-skip/src/orphan.ts b/packages/core/tests/deslop/fixtures/i18n-glob-skip/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/i18n-glob-skip/src/orphan.ts rename to packages/core/tests/deslop/fixtures/i18n-glob-skip/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/i18n-glob-skip/tsconfig.json b/packages/core/tests/deslop/fixtures/i18n-glob-skip/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/i18n-glob-skip/tsconfig.json rename to packages/core/tests/deslop/fixtures/i18n-glob-skip/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/import-dynamic-literal/notes.ts b/packages/core/tests/deslop/fixtures/import-dynamic-literal/notes.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic-literal/notes.ts rename to packages/core/tests/deslop/fixtures/import-dynamic-literal/notes.ts diff --git a/packages/deslop-js/tests/fixtures/import-dynamic-literal/package.json b/packages/core/tests/deslop/fixtures/import-dynamic-literal/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic-literal/package.json rename to packages/core/tests/deslop/fixtures/import-dynamic-literal/package.json diff --git a/packages/deslop-js/tests/fixtures/import-dynamic-literal/src/index.ts b/packages/core/tests/deslop/fixtures/import-dynamic-literal/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic-literal/src/index.ts rename to packages/core/tests/deslop/fixtures/import-dynamic-literal/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/import-dynamic-literal/src/orphan.ts b/packages/core/tests/deslop/fixtures/import-dynamic-literal/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic-literal/src/orphan.ts rename to packages/core/tests/deslop/fixtures/import-dynamic-literal/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/import-dynamic-template/package.json b/packages/core/tests/deslop/fixtures/import-dynamic-template/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic-template/package.json rename to packages/core/tests/deslop/fixtures/import-dynamic-template/package.json diff --git a/packages/deslop-js/tests/fixtures/import-dynamic-template/src/index.ts b/packages/core/tests/deslop/fixtures/import-dynamic-template/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic-template/src/index.ts rename to packages/core/tests/deslop/fixtures/import-dynamic-template/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/import-dynamic-template/src/locales/de/core.js b/packages/core/tests/deslop/fixtures/import-dynamic-template/src/locales/de/core.js similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic-template/src/locales/de/core.js rename to packages/core/tests/deslop/fixtures/import-dynamic-template/src/locales/de/core.js diff --git a/packages/deslop-js/tests/fixtures/import-dynamic-template/src/locales/en/core.js b/packages/core/tests/deslop/fixtures/import-dynamic-template/src/locales/en/core.js similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic-template/src/locales/en/core.js rename to packages/core/tests/deslop/fixtures/import-dynamic-template/src/locales/en/core.js diff --git a/packages/deslop-js/tests/fixtures/import-dynamic-template/src/locales/fr/core.js b/packages/core/tests/deslop/fixtures/import-dynamic-template/src/locales/fr/core.js similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic-template/src/locales/fr/core.js rename to packages/core/tests/deslop/fixtures/import-dynamic-template/src/locales/fr/core.js diff --git a/packages/deslop-js/tests/fixtures/import-dynamic-template/src/orphan.ts b/packages/core/tests/deslop/fixtures/import-dynamic-template/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic-template/src/orphan.ts rename to packages/core/tests/deslop/fixtures/import-dynamic-template/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/import-dynamic/package.json b/packages/core/tests/deslop/fixtures/import-dynamic/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic/package.json rename to packages/core/tests/deslop/fixtures/import-dynamic/package.json diff --git a/packages/deslop-js/tests/fixtures/import-dynamic/src/index.ts b/packages/core/tests/deslop/fixtures/import-dynamic/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic/src/index.ts rename to packages/core/tests/deslop/fixtures/import-dynamic/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/import-dynamic/src/lazy.ts b/packages/core/tests/deslop/fixtures/import-dynamic/src/lazy.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic/src/lazy.ts rename to packages/core/tests/deslop/fixtures/import-dynamic/src/lazy.ts diff --git a/packages/deslop-js/tests/fixtures/import-dynamic/src/orphan.ts b/packages/core/tests/deslop/fixtures/import-dynamic/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic/src/orphan.ts rename to packages/core/tests/deslop/fixtures/import-dynamic/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/import-dynamic/src/utils.ts b/packages/core/tests/deslop/fixtures/import-dynamic/src/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-dynamic/src/utils.ts rename to packages/core/tests/deslop/fixtures/import-dynamic/src/utils.ts diff --git a/packages/deslop-js/tests/fixtures/import-mixed/index.ts b/packages/core/tests/deslop/fixtures/import-mixed/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-mixed/index.ts rename to packages/core/tests/deslop/fixtures/import-mixed/index.ts diff --git a/packages/deslop-js/tests/fixtures/import-mixed/lib.ts b/packages/core/tests/deslop/fixtures/import-mixed/lib.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-mixed/lib.ts rename to packages/core/tests/deslop/fixtures/import-mixed/lib.ts diff --git a/packages/deslop-js/tests/fixtures/import-mixed/orphan.ts b/packages/core/tests/deslop/fixtures/import-mixed/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-mixed/orphan.ts rename to packages/core/tests/deslop/fixtures/import-mixed/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/import-mixed/package.json b/packages/core/tests/deslop/fixtures/import-mixed/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/import-mixed/package.json rename to packages/core/tests/deslop/fixtures/import-mixed/package.json diff --git a/packages/deslop-js/tests/fixtures/import-mixed/utils.ts b/packages/core/tests/deslop/fixtures/import-mixed/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-mixed/utils.ts rename to packages/core/tests/deslop/fixtures/import-mixed/utils.ts diff --git a/packages/deslop-js/tests/fixtures/import-query-param/config.ts b/packages/core/tests/deslop/fixtures/import-query-param/config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-query-param/config.ts rename to packages/core/tests/deslop/fixtures/import-query-param/config.ts diff --git a/packages/deslop-js/tests/fixtures/import-query-param/index.ts b/packages/core/tests/deslop/fixtures/import-query-param/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-query-param/index.ts rename to packages/core/tests/deslop/fixtures/import-query-param/index.ts diff --git a/packages/deslop-js/tests/fixtures/import-query-param/orphan.ts b/packages/core/tests/deslop/fixtures/import-query-param/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-query-param/orphan.ts rename to packages/core/tests/deslop/fixtures/import-query-param/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/import-query-param/package.json b/packages/core/tests/deslop/fixtures/import-query-param/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/import-query-param/package.json rename to packages/core/tests/deslop/fixtures/import-query-param/package.json diff --git a/packages/deslop-js/tests/fixtures/import-query-param/styles.css b/packages/core/tests/deslop/fixtures/import-query-param/styles.css similarity index 100% rename from packages/deslop-js/tests/fixtures/import-query-param/styles.css rename to packages/core/tests/deslop/fixtures/import-query-param/styles.css diff --git a/packages/deslop-js/tests/fixtures/import-query-param/theme.css b/packages/core/tests/deslop/fixtures/import-query-param/theme.css similarity index 100% rename from packages/deslop-js/tests/fixtures/import-query-param/theme.css rename to packages/core/tests/deslop/fixtures/import-query-param/theme.css diff --git a/packages/deslop-js/tests/fixtures/import-query-param/worker.ts b/packages/core/tests/deslop/fixtures/import-query-param/worker.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-query-param/worker.ts rename to packages/core/tests/deslop/fixtures/import-query-param/worker.ts diff --git a/packages/deslop-js/tests/fixtures/import-reexport-same/package.json b/packages/core/tests/deslop/fixtures/import-reexport-same/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/import-reexport-same/package.json rename to packages/core/tests/deslop/fixtures/import-reexport-same/package.json diff --git a/packages/deslop-js/tests/fixtures/import-reexport-same/src/components/helper.ts b/packages/core/tests/deslop/fixtures/import-reexport-same/src/components/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-reexport-same/src/components/helper.ts rename to packages/core/tests/deslop/fixtures/import-reexport-same/src/components/helper.ts diff --git a/packages/deslop-js/tests/fixtures/import-reexport-same/src/components/index.ts b/packages/core/tests/deslop/fixtures/import-reexport-same/src/components/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-reexport-same/src/components/index.ts rename to packages/core/tests/deslop/fixtures/import-reexport-same/src/components/index.ts diff --git a/packages/deslop-js/tests/fixtures/import-reexport-same/src/components/unused-component.ts b/packages/core/tests/deslop/fixtures/import-reexport-same/src/components/unused-component.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-reexport-same/src/components/unused-component.ts rename to packages/core/tests/deslop/fixtures/import-reexport-same/src/components/unused-component.ts diff --git a/packages/deslop-js/tests/fixtures/import-reexport-same/src/components/widget.ts b/packages/core/tests/deslop/fixtures/import-reexport-same/src/components/widget.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-reexport-same/src/components/widget.ts rename to packages/core/tests/deslop/fixtures/import-reexport-same/src/components/widget.ts diff --git a/packages/deslop-js/tests/fixtures/import-reexport-same/src/index.ts b/packages/core/tests/deslop/fixtures/import-reexport-same/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-reexport-same/src/index.ts rename to packages/core/tests/deslop/fixtures/import-reexport-same/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/import-reexport-same/src/orphan.ts b/packages/core/tests/deslop/fixtures/import-reexport-same/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-reexport-same/src/orphan.ts rename to packages/core/tests/deslop/fixtures/import-reexport-same/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/import-side-effect/package.json b/packages/core/tests/deslop/fixtures/import-side-effect/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/import-side-effect/package.json rename to packages/core/tests/deslop/fixtures/import-side-effect/package.json diff --git a/packages/deslop-js/tests/fixtures/import-side-effect/src/index.ts b/packages/core/tests/deslop/fixtures/import-side-effect/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-side-effect/src/index.ts rename to packages/core/tests/deslop/fixtures/import-side-effect/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/import-side-effect/src/orphan.ts b/packages/core/tests/deslop/fixtures/import-side-effect/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-side-effect/src/orphan.ts rename to packages/core/tests/deslop/fixtures/import-side-effect/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/import-side-effect/src/setup.ts b/packages/core/tests/deslop/fixtures/import-side-effect/src/setup.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-side-effect/src/setup.ts rename to packages/core/tests/deslop/fixtures/import-side-effect/src/setup.ts diff --git a/packages/deslop-js/tests/fixtures/import-specifier-sanitize/package.json b/packages/core/tests/deslop/fixtures/import-specifier-sanitize/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/import-specifier-sanitize/package.json rename to packages/core/tests/deslop/fixtures/import-specifier-sanitize/package.json diff --git a/packages/deslop-js/tests/fixtures/import-specifier-sanitize/src/frag.ts b/packages/core/tests/deslop/fixtures/import-specifier-sanitize/src/frag.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-specifier-sanitize/src/frag.ts rename to packages/core/tests/deslop/fixtures/import-specifier-sanitize/src/frag.ts diff --git a/packages/deslop-js/tests/fixtures/import-specifier-sanitize/src/index.ts b/packages/core/tests/deslop/fixtures/import-specifier-sanitize/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-specifier-sanitize/src/index.ts rename to packages/core/tests/deslop/fixtures/import-specifier-sanitize/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/import-specifier-sanitize/src/orphan.ts b/packages/core/tests/deslop/fixtures/import-specifier-sanitize/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-specifier-sanitize/src/orphan.ts rename to packages/core/tests/deslop/fixtures/import-specifier-sanitize/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/import-specifier-sanitize/src/query.ts b/packages/core/tests/deslop/fixtures/import-specifier-sanitize/src/query.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-specifier-sanitize/src/query.ts rename to packages/core/tests/deslop/fixtures/import-specifier-sanitize/src/query.ts diff --git a/packages/deslop-js/tests/fixtures/import-specifier-sanitize/src/worker.ts b/packages/core/tests/deslop/fixtures/import-specifier-sanitize/src/worker.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-specifier-sanitize/src/worker.ts rename to packages/core/tests/deslop/fixtures/import-specifier-sanitize/src/worker.ts diff --git a/packages/deslop-js/tests/fixtures/import-subpath/package.json b/packages/core/tests/deslop/fixtures/import-subpath/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/import-subpath/package.json rename to packages/core/tests/deslop/fixtures/import-subpath/package.json diff --git a/packages/deslop-js/tests/fixtures/import-subpath/src/api/orphan.ts b/packages/core/tests/deslop/fixtures/import-subpath/src/api/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-subpath/src/api/orphan.ts rename to packages/core/tests/deslop/fixtures/import-subpath/src/api/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/import-subpath/src/api/user.ts b/packages/core/tests/deslop/fixtures/import-subpath/src/api/user.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-subpath/src/api/user.ts rename to packages/core/tests/deslop/fixtures/import-subpath/src/api/user.ts diff --git a/packages/deslop-js/tests/fixtures/import-subpath/src/index.ts b/packages/core/tests/deslop/fixtures/import-subpath/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/import-subpath/src/index.ts rename to packages/core/tests/deslop/fixtures/import-subpath/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/import-subpath/tsconfig.json b/packages/core/tests/deslop/fixtures/import-subpath/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/import-subpath/tsconfig.json rename to packages/core/tests/deslop/fixtures/import-subpath/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/internal-export-usage/package.json b/packages/core/tests/deslop/fixtures/internal-export-usage/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/internal-export-usage/package.json rename to packages/core/tests/deslop/fixtures/internal-export-usage/package.json diff --git a/packages/deslop-js/tests/fixtures/internal-export-usage/src/index.ts b/packages/core/tests/deslop/fixtures/internal-export-usage/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/internal-export-usage/src/index.ts rename to packages/core/tests/deslop/fixtures/internal-export-usage/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/internal-export-usage/src/module-registry.ts b/packages/core/tests/deslop/fixtures/internal-export-usage/src/module-registry.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/internal-export-usage/src/module-registry.ts rename to packages/core/tests/deslop/fixtures/internal-export-usage/src/module-registry.ts diff --git a/packages/deslop-js/tests/fixtures/internal-export-usage/src/orphan.ts b/packages/core/tests/deslop/fixtures/internal-export-usage/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/internal-export-usage/src/orphan.ts rename to packages/core/tests/deslop/fixtures/internal-export-usage/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/internal-export-usage/src/service.module.ts b/packages/core/tests/deslop/fixtures/internal-export-usage/src/service.module.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/internal-export-usage/src/service.module.ts rename to packages/core/tests/deslop/fixtures/internal-export-usage/src/service.module.ts diff --git a/packages/deslop-js/tests/fixtures/jest-config-cts/jest.config.cts b/packages/core/tests/deslop/fixtures/jest-config-cts/jest.config.cts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-config-cts/jest.config.cts rename to packages/core/tests/deslop/fixtures/jest-config-cts/jest.config.cts diff --git a/packages/deslop-js/tests/fixtures/jest-config-cts/package.json b/packages/core/tests/deslop/fixtures/jest-config-cts/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-config-cts/package.json rename to packages/core/tests/deslop/fixtures/jest-config-cts/package.json diff --git a/packages/deslop-js/tests/fixtures/jest-config-cts/src/orphan.ts b/packages/core/tests/deslop/fixtures/jest-config-cts/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-config-cts/src/orphan.ts rename to packages/core/tests/deslop/fixtures/jest-config-cts/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/jest-config-cts/test-setup.ts b/packages/core/tests/deslop/fixtures/jest-config-cts/test-setup.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-config-cts/test-setup.ts rename to packages/core/tests/deslop/fixtures/jest-config-cts/test-setup.ts diff --git a/packages/deslop-js/tests/fixtures/jest-mapper/__mocks__/fileMock.js b/packages/core/tests/deslop/fixtures/jest-mapper/__mocks__/fileMock.js similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mapper/__mocks__/fileMock.js rename to packages/core/tests/deslop/fixtures/jest-mapper/__mocks__/fileMock.js diff --git a/packages/deslop-js/tests/fixtures/jest-mapper/__mocks__/styleMock.js b/packages/core/tests/deslop/fixtures/jest-mapper/__mocks__/styleMock.js similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mapper/__mocks__/styleMock.js rename to packages/core/tests/deslop/fixtures/jest-mapper/__mocks__/styleMock.js diff --git a/packages/deslop-js/tests/fixtures/jest-mapper/jest.config.js b/packages/core/tests/deslop/fixtures/jest-mapper/jest.config.js similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mapper/jest.config.js rename to packages/core/tests/deslop/fixtures/jest-mapper/jest.config.js diff --git a/packages/deslop-js/tests/fixtures/jest-mapper/package.json b/packages/core/tests/deslop/fixtures/jest-mapper/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mapper/package.json rename to packages/core/tests/deslop/fixtures/jest-mapper/package.json diff --git a/packages/deslop-js/tests/fixtures/jest-mapper/src/index.ts b/packages/core/tests/deslop/fixtures/jest-mapper/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mapper/src/index.ts rename to packages/core/tests/deslop/fixtures/jest-mapper/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/jest-mapper/src/orphan.ts b/packages/core/tests/deslop/fixtures/jest-mapper/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mapper/src/orphan.ts rename to packages/core/tests/deslop/fixtures/jest-mapper/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/jest-match/jest.config.ts b/packages/core/tests/deslop/fixtures/jest-match/jest.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-match/jest.config.ts rename to packages/core/tests/deslop/fixtures/jest-match/jest.config.ts diff --git a/packages/deslop-js/tests/fixtures/jest-match/package.json b/packages/core/tests/deslop/fixtures/jest-match/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-match/package.json rename to packages/core/tests/deslop/fixtures/jest-match/package.json diff --git a/packages/deslop-js/tests/fixtures/jest-match/src/__tests__/app.test.ts b/packages/core/tests/deslop/fixtures/jest-match/src/__tests__/app.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-match/src/__tests__/app.test.ts rename to packages/core/tests/deslop/fixtures/jest-match/src/__tests__/app.test.ts diff --git a/packages/deslop-js/tests/fixtures/jest-match/src/index.ts b/packages/core/tests/deslop/fixtures/jest-match/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-match/src/index.ts rename to packages/core/tests/deslop/fixtures/jest-match/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/jest-match/src/orphan.ts b/packages/core/tests/deslop/fixtures/jest-match/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-match/src/orphan.ts rename to packages/core/tests/deslop/fixtures/jest-match/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/jest-match/src/utils.test.ts b/packages/core/tests/deslop/fixtures/jest-match/src/utils.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-match/src/utils.test.ts rename to packages/core/tests/deslop/fixtures/jest-match/src/utils.test.ts diff --git a/packages/deslop-js/tests/fixtures/jest-match/tests/outside.test.ts b/packages/core/tests/deslop/fixtures/jest-match/tests/outside.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-match/tests/outside.test.ts rename to packages/core/tests/deslop/fixtures/jest-match/tests/outside.test.ts diff --git a/packages/deslop-js/tests/fixtures/jest-mock-entry/__mocks__/some-lib.js b/packages/core/tests/deslop/fixtures/jest-mock-entry/__mocks__/some-lib.js similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mock-entry/__mocks__/some-lib.js rename to packages/core/tests/deslop/fixtures/jest-mock-entry/__mocks__/some-lib.js diff --git a/packages/deslop-js/tests/fixtures/jest-mock-entry/orphan.ts b/packages/core/tests/deslop/fixtures/jest-mock-entry/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mock-entry/orphan.ts rename to packages/core/tests/deslop/fixtures/jest-mock-entry/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/jest-mock-entry/package.json b/packages/core/tests/deslop/fixtures/jest-mock-entry/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mock-entry/package.json rename to packages/core/tests/deslop/fixtures/jest-mock-entry/package.json diff --git a/packages/deslop-js/tests/fixtures/jest-mock-entry/src/__mocks__/axios.ts b/packages/core/tests/deslop/fixtures/jest-mock-entry/src/__mocks__/axios.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mock-entry/src/__mocks__/axios.ts rename to packages/core/tests/deslop/fixtures/jest-mock-entry/src/__mocks__/axios.ts diff --git a/packages/deslop-js/tests/fixtures/jest-mock-entry/src/__mocks__/fs.ts b/packages/core/tests/deslop/fixtures/jest-mock-entry/src/__mocks__/fs.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mock-entry/src/__mocks__/fs.ts rename to packages/core/tests/deslop/fixtures/jest-mock-entry/src/__mocks__/fs.ts diff --git a/packages/deslop-js/tests/fixtures/jest-mock-entry/src/index.ts b/packages/core/tests/deslop/fixtures/jest-mock-entry/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mock-entry/src/index.ts rename to packages/core/tests/deslop/fixtures/jest-mock-entry/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/jest-mock-files/__mocks__/api-client.ts b/packages/core/tests/deslop/fixtures/jest-mock-files/__mocks__/api-client.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mock-files/__mocks__/api-client.ts rename to packages/core/tests/deslop/fixtures/jest-mock-files/__mocks__/api-client.ts diff --git a/packages/deslop-js/tests/fixtures/jest-mock-files/__mocks__/fs.ts b/packages/core/tests/deslop/fixtures/jest-mock-files/__mocks__/fs.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mock-files/__mocks__/fs.ts rename to packages/core/tests/deslop/fixtures/jest-mock-files/__mocks__/fs.ts diff --git a/packages/deslop-js/tests/fixtures/jest-mock-files/package.json b/packages/core/tests/deslop/fixtures/jest-mock-files/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mock-files/package.json rename to packages/core/tests/deslop/fixtures/jest-mock-files/package.json diff --git a/packages/deslop-js/tests/fixtures/jest-mock-files/src/index.ts b/packages/core/tests/deslop/fixtures/jest-mock-files/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mock-files/src/index.ts rename to packages/core/tests/deslop/fixtures/jest-mock-files/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/jest-mock-files/src/orphan.ts b/packages/core/tests/deslop/fixtures/jest-mock-files/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-mock-files/src/orphan.ts rename to packages/core/tests/deslop/fixtures/jest-mock-files/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/jest-module-name-mapper/jest.config.js b/packages/core/tests/deslop/fixtures/jest-module-name-mapper/jest.config.js similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-module-name-mapper/jest.config.js rename to packages/core/tests/deslop/fixtures/jest-module-name-mapper/jest.config.js diff --git a/packages/deslop-js/tests/fixtures/jest-module-name-mapper/package.json b/packages/core/tests/deslop/fixtures/jest-module-name-mapper/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-module-name-mapper/package.json rename to packages/core/tests/deslop/fixtures/jest-module-name-mapper/package.json diff --git a/packages/deslop-js/tests/fixtures/jest-module-name-mapper/src/index.ts b/packages/core/tests/deslop/fixtures/jest-module-name-mapper/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-module-name-mapper/src/index.ts rename to packages/core/tests/deslop/fixtures/jest-module-name-mapper/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/jest-module-name-mapper/src/orphan.ts b/packages/core/tests/deslop/fixtures/jest-module-name-mapper/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-module-name-mapper/src/orphan.ts rename to packages/core/tests/deslop/fixtures/jest-module-name-mapper/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/jest-module-name-mapper/src/value.ts b/packages/core/tests/deslop/fixtures/jest-module-name-mapper/src/value.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-module-name-mapper/src/value.ts rename to packages/core/tests/deslop/fixtures/jest-module-name-mapper/src/value.ts diff --git a/packages/deslop-js/tests/fixtures/jest-setup-config/__mocks__/styleMock.js b/packages/core/tests/deslop/fixtures/jest-setup-config/__mocks__/styleMock.js similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-setup-config/__mocks__/styleMock.js rename to packages/core/tests/deslop/fixtures/jest-setup-config/__mocks__/styleMock.js diff --git a/packages/deslop-js/tests/fixtures/jest-setup-config/jest.config.js b/packages/core/tests/deslop/fixtures/jest-setup-config/jest.config.js similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-setup-config/jest.config.js rename to packages/core/tests/deslop/fixtures/jest-setup-config/jest.config.js diff --git a/packages/deslop-js/tests/fixtures/jest-setup-config/jest.setup.ts b/packages/core/tests/deslop/fixtures/jest-setup-config/jest.setup.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-setup-config/jest.setup.ts rename to packages/core/tests/deslop/fixtures/jest-setup-config/jest.setup.ts diff --git a/packages/deslop-js/tests/fixtures/jest-setup-config/package.json b/packages/core/tests/deslop/fixtures/jest-setup-config/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-setup-config/package.json rename to packages/core/tests/deslop/fixtures/jest-setup-config/package.json diff --git a/packages/deslop-js/tests/fixtures/jest-setup-config/src/index.ts b/packages/core/tests/deslop/fixtures/jest-setup-config/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-setup-config/src/index.ts rename to packages/core/tests/deslop/fixtures/jest-setup-config/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/jest-setup-config/src/orphan.ts b/packages/core/tests/deslop/fixtures/jest-setup-config/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-setup-config/src/orphan.ts rename to packages/core/tests/deslop/fixtures/jest-setup-config/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/jest-setup-config/src/setup-helper.ts b/packages/core/tests/deslop/fixtures/jest-setup-config/src/setup-helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/jest-setup-config/src/setup-helper.ts rename to packages/core/tests/deslop/fixtures/jest-setup-config/src/setup-helper.ts diff --git a/packages/deslop-js/tests/fixtures/jsx-block-arrow/package.json b/packages/core/tests/deslop/fixtures/jsx-block-arrow/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/jsx-block-arrow/package.json rename to packages/core/tests/deslop/fixtures/jsx-block-arrow/package.json diff --git a/packages/deslop-js/tests/fixtures/jsx-block-arrow/src/index.tsx b/packages/core/tests/deslop/fixtures/jsx-block-arrow/src/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/jsx-block-arrow/src/index.tsx rename to packages/core/tests/deslop/fixtures/jsx-block-arrow/src/index.tsx diff --git a/packages/deslop-js/tests/fixtures/lerna-workspace/lerna.json b/packages/core/tests/deslop/fixtures/lerna-workspace/lerna.json similarity index 100% rename from packages/deslop-js/tests/fixtures/lerna-workspace/lerna.json rename to packages/core/tests/deslop/fixtures/lerna-workspace/lerna.json diff --git a/packages/deslop-js/tests/fixtures/lerna-workspace/package.json b/packages/core/tests/deslop/fixtures/lerna-workspace/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/lerna-workspace/package.json rename to packages/core/tests/deslop/fixtures/lerna-workspace/package.json diff --git a/packages/deslop-js/tests/fixtures/lerna-workspace/packages/app/package.json b/packages/core/tests/deslop/fixtures/lerna-workspace/packages/app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/lerna-workspace/packages/app/package.json rename to packages/core/tests/deslop/fixtures/lerna-workspace/packages/app/package.json diff --git a/packages/deslop-js/tests/fixtures/lerna-workspace/packages/app/src/index.ts b/packages/core/tests/deslop/fixtures/lerna-workspace/packages/app/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/lerna-workspace/packages/app/src/index.ts rename to packages/core/tests/deslop/fixtures/lerna-workspace/packages/app/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/lerna-workspace/packages/ui/package.json b/packages/core/tests/deslop/fixtures/lerna-workspace/packages/ui/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/lerna-workspace/packages/ui/package.json rename to packages/core/tests/deslop/fixtures/lerna-workspace/packages/ui/package.json diff --git a/packages/deslop-js/tests/fixtures/lerna-workspace/packages/ui/src/button.ts b/packages/core/tests/deslop/fixtures/lerna-workspace/packages/ui/src/button.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/lerna-workspace/packages/ui/src/button.ts rename to packages/core/tests/deslop/fixtures/lerna-workspace/packages/ui/src/button.ts diff --git a/packages/deslop-js/tests/fixtures/lerna-workspace/packages/ui/src/index.ts b/packages/core/tests/deslop/fixtures/lerna-workspace/packages/ui/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/lerna-workspace/packages/ui/src/index.ts rename to packages/core/tests/deslop/fixtures/lerna-workspace/packages/ui/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/lerna-workspace/packages/ui/src/orphan.ts b/packages/core/tests/deslop/fixtures/lerna-workspace/packages/ui/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/lerna-workspace/packages/ui/src/orphan.ts rename to packages/core/tests/deslop/fixtures/lerna-workspace/packages/ui/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/mdx-import/docs/intro.mdx b/packages/core/tests/deslop/fixtures/mdx-import/docs/intro.mdx similarity index 100% rename from packages/deslop-js/tests/fixtures/mdx-import/docs/intro.mdx rename to packages/core/tests/deslop/fixtures/mdx-import/docs/intro.mdx diff --git a/packages/deslop-js/tests/fixtures/mdx-import/docusaurus.config.ts b/packages/core/tests/deslop/fixtures/mdx-import/docusaurus.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/mdx-import/docusaurus.config.ts rename to packages/core/tests/deslop/fixtures/mdx-import/docusaurus.config.ts diff --git a/packages/deslop-js/tests/fixtures/mdx-import/orphan.ts b/packages/core/tests/deslop/fixtures/mdx-import/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/mdx-import/orphan.ts rename to packages/core/tests/deslop/fixtures/mdx-import/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/mdx-import/package.json b/packages/core/tests/deslop/fixtures/mdx-import/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/mdx-import/package.json rename to packages/core/tests/deslop/fixtures/mdx-import/package.json diff --git a/packages/deslop-js/tests/fixtures/mdx-import/src/components/Chart.tsx b/packages/core/tests/deslop/fixtures/mdx-import/src/components/Chart.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/mdx-import/src/components/Chart.tsx rename to packages/core/tests/deslop/fixtures/mdx-import/src/components/Chart.tsx diff --git a/packages/deslop-js/tests/fixtures/mdx-import/src/components/Unused.tsx b/packages/core/tests/deslop/fixtures/mdx-import/src/components/Unused.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/mdx-import/src/components/Unused.tsx rename to packages/core/tests/deslop/fixtures/mdx-import/src/components/Unused.tsx diff --git a/packages/deslop-js/tests/fixtures/migration-orm/migrations/001-create-users.ts b/packages/core/tests/deslop/fixtures/migration-orm/migrations/001-create-users.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/migration-orm/migrations/001-create-users.ts rename to packages/core/tests/deslop/fixtures/migration-orm/migrations/001-create-users.ts diff --git a/packages/deslop-js/tests/fixtures/migration-orm/package.json b/packages/core/tests/deslop/fixtures/migration-orm/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/migration-orm/package.json rename to packages/core/tests/deslop/fixtures/migration-orm/package.json diff --git a/packages/deslop-js/tests/fixtures/migration-orm/src/index.ts b/packages/core/tests/deslop/fixtures/migration-orm/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/migration-orm/src/index.ts rename to packages/core/tests/deslop/fixtures/migration-orm/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/migration-orm/src/orphan.ts b/packages/core/tests/deslop/fixtures/migration-orm/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/migration-orm/src/orphan.ts rename to packages/core/tests/deslop/fixtures/migration-orm/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/migration-raw/migrations/001-create-users.ts b/packages/core/tests/deslop/fixtures/migration-raw/migrations/001-create-users.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/migration-raw/migrations/001-create-users.ts rename to packages/core/tests/deslop/fixtures/migration-raw/migrations/001-create-users.ts diff --git a/packages/deslop-js/tests/fixtures/migration-raw/package.json b/packages/core/tests/deslop/fixtures/migration-raw/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/migration-raw/package.json rename to packages/core/tests/deslop/fixtures/migration-raw/package.json diff --git a/packages/deslop-js/tests/fixtures/migration-raw/src/index.ts b/packages/core/tests/deslop/fixtures/migration-raw/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/migration-raw/src/index.ts rename to packages/core/tests/deslop/fixtures/migration-raw/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/misclassified-deps-typeonly/package.json b/packages/core/tests/deslop/fixtures/misclassified-deps-typeonly/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/misclassified-deps-typeonly/package.json rename to packages/core/tests/deslop/fixtures/misclassified-deps-typeonly/package.json diff --git a/packages/deslop-js/tests/fixtures/misclassified-deps-typeonly/src/index.ts b/packages/core/tests/deslop/fixtures/misclassified-deps-typeonly/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/misclassified-deps-typeonly/src/index.ts rename to packages/core/tests/deslop/fixtures/misclassified-deps-typeonly/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/mock-patterns/package.json b/packages/core/tests/deslop/fixtures/mock-patterns/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/mock-patterns/package.json rename to packages/core/tests/deslop/fixtures/mock-patterns/package.json diff --git a/packages/deslop-js/tests/fixtures/mock-patterns/src/__fixtures__/user-data.ts b/packages/core/tests/deslop/fixtures/mock-patterns/src/__fixtures__/user-data.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/mock-patterns/src/__fixtures__/user-data.ts rename to packages/core/tests/deslop/fixtures/mock-patterns/src/__fixtures__/user-data.ts diff --git a/packages/deslop-js/tests/fixtures/mock-patterns/src/__mocks__/api-client.ts b/packages/core/tests/deslop/fixtures/mock-patterns/src/__mocks__/api-client.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/mock-patterns/src/__mocks__/api-client.ts rename to packages/core/tests/deslop/fixtures/mock-patterns/src/__mocks__/api-client.ts diff --git a/packages/deslop-js/tests/fixtures/mock-patterns/src/fixtures/sample-data.json b/packages/core/tests/deslop/fixtures/mock-patterns/src/fixtures/sample-data.json similarity index 100% rename from packages/deslop-js/tests/fixtures/mock-patterns/src/fixtures/sample-data.json rename to packages/core/tests/deslop/fixtures/mock-patterns/src/fixtures/sample-data.json diff --git a/packages/deslop-js/tests/fixtures/mock-patterns/src/index.ts b/packages/core/tests/deslop/fixtures/mock-patterns/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/mock-patterns/src/index.ts rename to packages/core/tests/deslop/fixtures/mock-patterns/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/mock-patterns/src/orphan.ts b/packages/core/tests/deslop/fixtures/mock-patterns/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/mock-patterns/src/orphan.ts rename to packages/core/tests/deslop/fixtures/mock-patterns/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/module-side-effect/index.ts b/packages/core/tests/deslop/fixtures/module-side-effect/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/module-side-effect/index.ts rename to packages/core/tests/deslop/fixtures/module-side-effect/index.ts diff --git a/packages/deslop-js/tests/fixtures/module-side-effect/lib.ts b/packages/core/tests/deslop/fixtures/module-side-effect/lib.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/module-side-effect/lib.ts rename to packages/core/tests/deslop/fixtures/module-side-effect/lib.ts diff --git a/packages/deslop-js/tests/fixtures/module-side-effect/orphan.ts b/packages/core/tests/deslop/fixtures/module-side-effect/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/module-side-effect/orphan.ts rename to packages/core/tests/deslop/fixtures/module-side-effect/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/module-side-effect/package.json b/packages/core/tests/deslop/fixtures/module-side-effect/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/module-side-effect/package.json rename to packages/core/tests/deslop/fixtures/module-side-effect/package.json diff --git a/packages/deslop-js/tests/fixtures/module-side-effect/polyfill.ts b/packages/core/tests/deslop/fixtures/module-side-effect/polyfill.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/module-side-effect/polyfill.ts rename to packages/core/tests/deslop/fixtures/module-side-effect/polyfill.ts diff --git a/packages/deslop-js/tests/fixtures/module-side-effect/register.ts b/packages/core/tests/deslop/fixtures/module-side-effect/register.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/module-side-effect/register.ts rename to packages/core/tests/deslop/fixtures/module-side-effect/register.ts diff --git a/packages/deslop-js/tests/fixtures/monorepo-script-entry/package.json b/packages/core/tests/deslop/fixtures/monorepo-script-entry/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/monorepo-script-entry/package.json rename to packages/core/tests/deslop/fixtures/monorepo-script-entry/package.json diff --git a/packages/deslop-js/tests/fixtures/monorepo-script-entry/packages/sub/internal-tools/renderer.ts b/packages/core/tests/deslop/fixtures/monorepo-script-entry/packages/sub/internal-tools/renderer.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/monorepo-script-entry/packages/sub/internal-tools/renderer.ts rename to packages/core/tests/deslop/fixtures/monorepo-script-entry/packages/sub/internal-tools/renderer.ts diff --git a/packages/deslop-js/tests/fixtures/monorepo-script-entry/packages/sub/internal-tools/tui.ts b/packages/core/tests/deslop/fixtures/monorepo-script-entry/packages/sub/internal-tools/tui.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/monorepo-script-entry/packages/sub/internal-tools/tui.ts rename to packages/core/tests/deslop/fixtures/monorepo-script-entry/packages/sub/internal-tools/tui.ts diff --git a/packages/deslop-js/tests/fixtures/monorepo-script-entry/packages/sub/package.json b/packages/core/tests/deslop/fixtures/monorepo-script-entry/packages/sub/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/monorepo-script-entry/packages/sub/package.json rename to packages/core/tests/deslop/fixtures/monorepo-script-entry/packages/sub/package.json diff --git a/packages/deslop-js/tests/fixtures/monorepo-script-entry/packages/sub/src/index.ts b/packages/core/tests/deslop/fixtures/monorepo-script-entry/packages/sub/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/monorepo-script-entry/packages/sub/src/index.ts rename to packages/core/tests/deslop/fixtures/monorepo-script-entry/packages/sub/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/monorepo-script-entry/pnpm-workspace.yaml b/packages/core/tests/deslop/fixtures/monorepo-script-entry/pnpm-workspace.yaml similarity index 100% rename from packages/deslop-js/tests/fixtures/monorepo-script-entry/pnpm-workspace.yaml rename to packages/core/tests/deslop/fixtures/monorepo-script-entry/pnpm-workspace.yaml diff --git a/packages/deslop-js/tests/fixtures/nested-dist-non-workspace/.gitignore b/packages/core/tests/deslop/fixtures/nested-dist-non-workspace/.gitignore similarity index 100% rename from packages/deslop-js/tests/fixtures/nested-dist-non-workspace/.gitignore rename to packages/core/tests/deslop/fixtures/nested-dist-non-workspace/.gitignore diff --git a/packages/deslop-js/tests/fixtures/nested-dist-non-workspace/apps/orphan/dist/index.mjs b/packages/core/tests/deslop/fixtures/nested-dist-non-workspace/apps/orphan/dist/index.mjs similarity index 100% rename from packages/deslop-js/tests/fixtures/nested-dist-non-workspace/apps/orphan/dist/index.mjs rename to packages/core/tests/deslop/fixtures/nested-dist-non-workspace/apps/orphan/dist/index.mjs diff --git a/packages/deslop-js/tests/fixtures/nested-dist-non-workspace/package.json b/packages/core/tests/deslop/fixtures/nested-dist-non-workspace/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/nested-dist-non-workspace/package.json rename to packages/core/tests/deslop/fixtures/nested-dist-non-workspace/package.json diff --git a/packages/deslop-js/tests/fixtures/nested-dist-non-workspace/src/index.ts b/packages/core/tests/deslop/fixtures/nested-dist-non-workspace/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/nested-dist-non-workspace/src/index.ts rename to packages/core/tests/deslop/fixtures/nested-dist-non-workspace/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/nested-overrides/package.json b/packages/core/tests/deslop/fixtures/nested-overrides/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/nested-overrides/package.json rename to packages/core/tests/deslop/fixtures/nested-overrides/package.json diff --git a/packages/deslop-js/tests/fixtures/nested-overrides/src/index.ts b/packages/core/tests/deslop/fixtures/nested-overrides/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/nested-overrides/src/index.ts rename to packages/core/tests/deslop/fixtures/nested-overrides/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/nestjs-app/package.json b/packages/core/tests/deslop/fixtures/nestjs-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/nestjs-app/package.json rename to packages/core/tests/deslop/fixtures/nestjs-app/package.json diff --git a/packages/deslop-js/tests/fixtures/nestjs-app/src/app.module.ts b/packages/core/tests/deslop/fixtures/nestjs-app/src/app.module.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/nestjs-app/src/app.module.ts rename to packages/core/tests/deslop/fixtures/nestjs-app/src/app.module.ts diff --git a/packages/deslop-js/tests/fixtures/nestjs-app/src/main.ts b/packages/core/tests/deslop/fixtures/nestjs-app/src/main.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/nestjs-app/src/main.ts rename to packages/core/tests/deslop/fixtures/nestjs-app/src/main.ts diff --git a/packages/deslop-js/tests/fixtures/nestjs-app/src/orphan.ts b/packages/core/tests/deslop/fixtures/nestjs-app/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/nestjs-app/src/orphan.ts rename to packages/core/tests/deslop/fixtures/nestjs-app/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/nestjs-app/src/users.controller.ts b/packages/core/tests/deslop/fixtures/nestjs-app/src/users.controller.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/nestjs-app/src/users.controller.ts rename to packages/core/tests/deslop/fixtures/nestjs-app/src/users.controller.ts diff --git a/packages/deslop-js/tests/fixtures/next-config-scope/examples/my-app/next.config.mjs b/packages/core/tests/deslop/fixtures/next-config-scope/examples/my-app/next.config.mjs similarity index 100% rename from packages/deslop-js/tests/fixtures/next-config-scope/examples/my-app/next.config.mjs rename to packages/core/tests/deslop/fixtures/next-config-scope/examples/my-app/next.config.mjs diff --git a/packages/deslop-js/tests/fixtures/next-config-scope/examples/my-app/package.json b/packages/core/tests/deslop/fixtures/next-config-scope/examples/my-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/next-config-scope/examples/my-app/package.json rename to packages/core/tests/deslop/fixtures/next-config-scope/examples/my-app/package.json diff --git a/packages/deslop-js/tests/fixtures/next-config-scope/package.json b/packages/core/tests/deslop/fixtures/next-config-scope/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/next-config-scope/package.json rename to packages/core/tests/deslop/fixtures/next-config-scope/package.json diff --git a/packages/deslop-js/tests/fixtures/next-config-scope/src/index.ts b/packages/core/tests/deslop/fixtures/next-config-scope/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/next-config-scope/src/index.ts rename to packages/core/tests/deslop/fixtures/next-config-scope/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/next-config-scope/src/orphan.ts b/packages/core/tests/deslop/fixtures/next-config-scope/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/next-config-scope/src/orphan.ts rename to packages/core/tests/deslop/fixtures/next-config-scope/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/next-empty-tsconfig/package.json b/packages/core/tests/deslop/fixtures/next-empty-tsconfig/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/next-empty-tsconfig/package.json rename to packages/core/tests/deslop/fixtures/next-empty-tsconfig/package.json diff --git a/packages/deslop-js/tests/fixtures/next-empty-tsconfig/src/env.ts b/packages/core/tests/deslop/fixtures/next-empty-tsconfig/src/env.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/next-empty-tsconfig/src/env.ts rename to packages/core/tests/deslop/fixtures/next-empty-tsconfig/src/env.ts diff --git a/packages/deslop-js/tests/fixtures/next-empty-tsconfig/src/index.ts b/packages/core/tests/deslop/fixtures/next-empty-tsconfig/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/next-empty-tsconfig/src/index.ts rename to packages/core/tests/deslop/fixtures/next-empty-tsconfig/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/next-empty-tsconfig/src/orphan.ts b/packages/core/tests/deslop/fixtures/next-empty-tsconfig/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/next-empty-tsconfig/src/orphan.ts rename to packages/core/tests/deslop/fixtures/next-empty-tsconfig/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/next-empty-tsconfig/tsconfig.json b/packages/core/tests/deslop/fixtures/next-empty-tsconfig/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/next-empty-tsconfig/tsconfig.json rename to packages/core/tests/deslop/fixtures/next-empty-tsconfig/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/next-middleware/instrumentation.ts b/packages/core/tests/deslop/fixtures/next-middleware/instrumentation.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/next-middleware/instrumentation.ts rename to packages/core/tests/deslop/fixtures/next-middleware/instrumentation.ts diff --git a/packages/deslop-js/tests/fixtures/next-middleware/orphan.ts b/packages/core/tests/deslop/fixtures/next-middleware/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/next-middleware/orphan.ts rename to packages/core/tests/deslop/fixtures/next-middleware/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/next-middleware/package.json b/packages/core/tests/deslop/fixtures/next-middleware/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/next-middleware/package.json rename to packages/core/tests/deslop/fixtures/next-middleware/package.json diff --git a/packages/deslop-js/tests/fixtures/next-middleware/proxy.ts b/packages/core/tests/deslop/fixtures/next-middleware/proxy.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/next-middleware/proxy.ts rename to packages/core/tests/deslop/fixtures/next-middleware/proxy.ts diff --git a/packages/deslop-js/tests/fixtures/next-middleware/src/auth.ts b/packages/core/tests/deslop/fixtures/next-middleware/src/auth.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/next-middleware/src/auth.ts rename to packages/core/tests/deslop/fixtures/next-middleware/src/auth.ts diff --git a/packages/deslop-js/tests/fixtures/next-middleware/src/middleware.ts b/packages/core/tests/deslop/fixtures/next-middleware/src/middleware.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/next-middleware/src/middleware.ts rename to packages/core/tests/deslop/fixtures/next-middleware/src/middleware.ts diff --git a/packages/deslop-js/tests/fixtures/next-pages-mdx/package.json b/packages/core/tests/deslop/fixtures/next-pages-mdx/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/next-pages-mdx/package.json rename to packages/core/tests/deslop/fixtures/next-pages-mdx/package.json diff --git a/packages/deslop-js/tests/fixtures/next-pages-mdx/pages/about.mdx b/packages/core/tests/deslop/fixtures/next-pages-mdx/pages/about.mdx similarity index 100% rename from packages/deslop-js/tests/fixtures/next-pages-mdx/pages/about.mdx rename to packages/core/tests/deslop/fixtures/next-pages-mdx/pages/about.mdx diff --git a/packages/deslop-js/tests/fixtures/next-pages-mdx/pages/index.tsx b/packages/core/tests/deslop/fixtures/next-pages-mdx/pages/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/next-pages-mdx/pages/index.tsx rename to packages/core/tests/deslop/fixtures/next-pages-mdx/pages/index.tsx diff --git a/packages/deslop-js/tests/fixtures/next-pages-mdx/src/Home.ts b/packages/core/tests/deslop/fixtures/next-pages-mdx/src/Home.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/next-pages-mdx/src/Home.ts rename to packages/core/tests/deslop/fixtures/next-pages-mdx/src/Home.ts diff --git a/packages/deslop-js/tests/fixtures/next-pages-mdx/src/orphan.ts b/packages/core/tests/deslop/fixtures/next-pages-mdx/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/next-pages-mdx/src/orphan.ts rename to packages/core/tests/deslop/fixtures/next-pages-mdx/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/ns-chain/consumer.ts b/packages/core/tests/deslop/fixtures/ns-chain/consumer.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-chain/consumer.ts rename to packages/core/tests/deslop/fixtures/ns-chain/consumer.ts diff --git a/packages/deslop-js/tests/fixtures/ns-chain/helpers.ts b/packages/core/tests/deslop/fixtures/ns-chain/helpers.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-chain/helpers.ts rename to packages/core/tests/deslop/fixtures/ns-chain/helpers.ts diff --git a/packages/deslop-js/tests/fixtures/ns-chain/index.ts b/packages/core/tests/deslop/fixtures/ns-chain/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-chain/index.ts rename to packages/core/tests/deslop/fixtures/ns-chain/index.ts diff --git a/packages/deslop-js/tests/fixtures/ns-chain/package.json b/packages/core/tests/deslop/fixtures/ns-chain/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-chain/package.json rename to packages/core/tests/deslop/fixtures/ns-chain/package.json diff --git a/packages/deslop-js/tests/fixtures/ns-chain/unused-module.ts b/packages/core/tests/deslop/fixtures/ns-chain/unused-module.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-chain/unused-module.ts rename to packages/core/tests/deslop/fixtures/ns-chain/unused-module.ts diff --git a/packages/deslop-js/tests/fixtures/ns-exports/package.json b/packages/core/tests/deslop/fixtures/ns-exports/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-exports/package.json rename to packages/core/tests/deslop/fixtures/ns-exports/package.json diff --git a/packages/deslop-js/tests/fixtures/ns-exports/src/helpers.ts b/packages/core/tests/deslop/fixtures/ns-exports/src/helpers.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-exports/src/helpers.ts rename to packages/core/tests/deslop/fixtures/ns-exports/src/helpers.ts diff --git a/packages/deslop-js/tests/fixtures/ns-exports/src/index.ts b/packages/core/tests/deslop/fixtures/ns-exports/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-exports/src/index.ts rename to packages/core/tests/deslop/fixtures/ns-exports/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/ns-forin/package.json b/packages/core/tests/deslop/fixtures/ns-forin/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-forin/package.json rename to packages/core/tests/deslop/fixtures/ns-forin/package.json diff --git a/packages/deslop-js/tests/fixtures/ns-forin/src/config.ts b/packages/core/tests/deslop/fixtures/ns-forin/src/config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-forin/src/config.ts rename to packages/core/tests/deslop/fixtures/ns-forin/src/config.ts diff --git a/packages/deslop-js/tests/fixtures/ns-forin/src/index.ts b/packages/core/tests/deslop/fixtures/ns-forin/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-forin/src/index.ts rename to packages/core/tests/deslop/fixtures/ns-forin/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/ns-imports/package.json b/packages/core/tests/deslop/fixtures/ns-imports/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-imports/package.json rename to packages/core/tests/deslop/fixtures/ns-imports/package.json diff --git a/packages/deslop-js/tests/fixtures/ns-imports/src/index.ts b/packages/core/tests/deslop/fixtures/ns-imports/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-imports/src/index.ts rename to packages/core/tests/deslop/fixtures/ns-imports/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/ns-imports/src/utils.ts b/packages/core/tests/deslop/fixtures/ns-imports/src/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-imports/src/utils.ts rename to packages/core/tests/deslop/fixtures/ns-imports/src/utils.ts diff --git a/packages/deslop-js/tests/fixtures/ns-partial/package.json b/packages/core/tests/deslop/fixtures/ns-partial/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-partial/package.json rename to packages/core/tests/deslop/fixtures/ns-partial/package.json diff --git a/packages/deslop-js/tests/fixtures/ns-partial/src/index.ts b/packages/core/tests/deslop/fixtures/ns-partial/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-partial/src/index.ts rename to packages/core/tests/deslop/fixtures/ns-partial/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/ns-partial/src/math.ts b/packages/core/tests/deslop/fixtures/ns-partial/src/math.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-partial/src/math.ts rename to packages/core/tests/deslop/fixtures/ns-partial/src/math.ts diff --git a/packages/deslop-js/tests/fixtures/ns-reexport/package.json b/packages/core/tests/deslop/fixtures/ns-reexport/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-reexport/package.json rename to packages/core/tests/deslop/fixtures/ns-reexport/package.json diff --git a/packages/deslop-js/tests/fixtures/ns-reexport/src/index.ts b/packages/core/tests/deslop/fixtures/ns-reexport/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-reexport/src/index.ts rename to packages/core/tests/deslop/fixtures/ns-reexport/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/ns-reexport/src/lib/helpers.ts b/packages/core/tests/deslop/fixtures/ns-reexport/src/lib/helpers.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-reexport/src/lib/helpers.ts rename to packages/core/tests/deslop/fixtures/ns-reexport/src/lib/helpers.ts diff --git a/packages/deslop-js/tests/fixtures/ns-reexport/src/lib/index.ts b/packages/core/tests/deslop/fixtures/ns-reexport/src/lib/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-reexport/src/lib/index.ts rename to packages/core/tests/deslop/fixtures/ns-reexport/src/lib/index.ts diff --git a/packages/deslop-js/tests/fixtures/ns-spread/package.json b/packages/core/tests/deslop/fixtures/ns-spread/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-spread/package.json rename to packages/core/tests/deslop/fixtures/ns-spread/package.json diff --git a/packages/deslop-js/tests/fixtures/ns-spread/src/index.ts b/packages/core/tests/deslop/fixtures/ns-spread/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-spread/src/index.ts rename to packages/core/tests/deslop/fixtures/ns-spread/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/ns-spread/src/utils.ts b/packages/core/tests/deslop/fixtures/ns-spread/src/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-spread/src/utils.ts rename to packages/core/tests/deslop/fixtures/ns-spread/src/utils.ts diff --git a/packages/deslop-js/tests/fixtures/ns-whole/package.json b/packages/core/tests/deslop/fixtures/ns-whole/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-whole/package.json rename to packages/core/tests/deslop/fixtures/ns-whole/package.json diff --git a/packages/deslop-js/tests/fixtures/ns-whole/src/index.ts b/packages/core/tests/deslop/fixtures/ns-whole/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-whole/src/index.ts rename to packages/core/tests/deslop/fixtures/ns-whole/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/ns-whole/src/utils.ts b/packages/core/tests/deslop/fixtures/ns-whole/src/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/ns-whole/src/utils.ts rename to packages/core/tests/deslop/fixtures/ns-whole/src/utils.ts diff --git a/packages/deslop-js/tests/fixtures/numeric-keys-types/package.json b/packages/core/tests/deslop/fixtures/numeric-keys-types/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/numeric-keys-types/package.json rename to packages/core/tests/deslop/fixtures/numeric-keys-types/package.json diff --git a/packages/deslop-js/tests/fixtures/numeric-keys-types/src/index.ts b/packages/core/tests/deslop/fixtures/numeric-keys-types/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/numeric-keys-types/src/index.ts rename to packages/core/tests/deslop/fixtures/numeric-keys-types/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/optional-deps/orphan.ts b/packages/core/tests/deslop/fixtures/optional-deps/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/optional-deps/orphan.ts rename to packages/core/tests/deslop/fixtures/optional-deps/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/optional-deps/package.json b/packages/core/tests/deslop/fixtures/optional-deps/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/optional-deps/package.json rename to packages/core/tests/deslop/fixtures/optional-deps/package.json diff --git a/packages/deslop-js/tests/fixtures/optional-deps/sanity.cli.ts b/packages/core/tests/deslop/fixtures/optional-deps/sanity.cli.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/optional-deps/sanity.cli.ts rename to packages/core/tests/deslop/fixtures/optional-deps/sanity.cli.ts diff --git a/packages/deslop-js/tests/fixtures/optional-deps/sanity.config.ts b/packages/core/tests/deslop/fixtures/optional-deps/sanity.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/optional-deps/sanity.config.ts rename to packages/core/tests/deslop/fixtures/optional-deps/sanity.config.ts diff --git a/packages/deslop-js/tests/fixtures/optional-deps/src/index.ts b/packages/core/tests/deslop/fixtures/optional-deps/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/optional-deps/src/index.ts rename to packages/core/tests/deslop/fixtures/optional-deps/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-barrel-subtree/package.json b/packages/core/tests/deslop/fixtures/orphan-barrel-subtree/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-barrel-subtree/package.json rename to packages/core/tests/deslop/fixtures/orphan-barrel-subtree/package.json diff --git a/packages/deslop-js/tests/fixtures/orphan-barrel-subtree/src/index.ts b/packages/core/tests/deslop/fixtures/orphan-barrel-subtree/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-barrel-subtree/src/index.ts rename to packages/core/tests/deslop/fixtures/orphan-barrel-subtree/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-barrel-subtree/src/subtree/setup.ts b/packages/core/tests/deslop/fixtures/orphan-barrel-subtree/src/subtree/setup.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-barrel-subtree/src/subtree/setup.ts rename to packages/core/tests/deslop/fixtures/orphan-barrel-subtree/src/subtree/setup.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-barrel-subtree/src/subtree/tabs/helpers.ts b/packages/core/tests/deslop/fixtures/orphan-barrel-subtree/src/subtree/tabs/helpers.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-barrel-subtree/src/subtree/tabs/helpers.ts rename to packages/core/tests/deslop/fixtures/orphan-barrel-subtree/src/subtree/tabs/helpers.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-barrel-subtree/src/subtree/tabs/index.ts b/packages/core/tests/deslop/fixtures/orphan-barrel-subtree/src/subtree/tabs/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-barrel-subtree/src/subtree/tabs/index.ts rename to packages/core/tests/deslop/fixtures/orphan-barrel-subtree/src/subtree/tabs/index.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-dynamic-subtree/package.json b/packages/core/tests/deslop/fixtures/orphan-dynamic-subtree/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-dynamic-subtree/package.json rename to packages/core/tests/deslop/fixtures/orphan-dynamic-subtree/package.json diff --git a/packages/deslop-js/tests/fixtures/orphan-dynamic-subtree/src/index.ts b/packages/core/tests/deslop/fixtures/orphan-dynamic-subtree/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-dynamic-subtree/src/index.ts rename to packages/core/tests/deslop/fixtures/orphan-dynamic-subtree/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-dynamic-subtree/src/subtree/lazy.ts b/packages/core/tests/deslop/fixtures/orphan-dynamic-subtree/src/subtree/lazy.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-dynamic-subtree/src/subtree/lazy.ts rename to packages/core/tests/deslop/fixtures/orphan-dynamic-subtree/src/subtree/lazy.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-dynamic-subtree/src/subtree/setup.ts b/packages/core/tests/deslop/fixtures/orphan-dynamic-subtree/src/subtree/setup.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-dynamic-subtree/src/subtree/setup.ts rename to packages/core/tests/deslop/fixtures/orphan-dynamic-subtree/src/subtree/setup.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-mixed-exports/package.json b/packages/core/tests/deslop/fixtures/orphan-mixed-exports/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-mixed-exports/package.json rename to packages/core/tests/deslop/fixtures/orphan-mixed-exports/package.json diff --git a/packages/deslop-js/tests/fixtures/orphan-mixed-exports/src/index.ts b/packages/core/tests/deslop/fixtures/orphan-mixed-exports/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-mixed-exports/src/index.ts rename to packages/core/tests/deslop/fixtures/orphan-mixed-exports/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-mixed-exports/src/test-utils/helpers.ts b/packages/core/tests/deslop/fixtures/orphan-mixed-exports/src/test-utils/helpers.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-mixed-exports/src/test-utils/helpers.ts rename to packages/core/tests/deslop/fixtures/orphan-mixed-exports/src/test-utils/helpers.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-mixed-exports/src/test-utils/setup.ts b/packages/core/tests/deslop/fixtures/orphan-mixed-exports/src/test-utils/setup.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-mixed-exports/src/test-utils/setup.ts rename to packages/core/tests/deslop/fixtures/orphan-mixed-exports/src/test-utils/setup.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-shared-child/package.json b/packages/core/tests/deslop/fixtures/orphan-shared-child/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-shared-child/package.json rename to packages/core/tests/deslop/fixtures/orphan-shared-child/package.json diff --git a/packages/deslop-js/tests/fixtures/orphan-shared-child/src/index.ts b/packages/core/tests/deslop/fixtures/orphan-shared-child/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-shared-child/src/index.ts rename to packages/core/tests/deslop/fixtures/orphan-shared-child/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-shared-child/src/shared/utils.ts b/packages/core/tests/deslop/fixtures/orphan-shared-child/src/shared/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-shared-child/src/shared/utils.ts rename to packages/core/tests/deslop/fixtures/orphan-shared-child/src/shared/utils.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-shared-child/src/subtree/helpers.ts b/packages/core/tests/deslop/fixtures/orphan-shared-child/src/subtree/helpers.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-shared-child/src/subtree/helpers.ts rename to packages/core/tests/deslop/fixtures/orphan-shared-child/src/subtree/helpers.ts diff --git a/packages/deslop-js/tests/fixtures/orphan-shared-child/src/subtree/setup.ts b/packages/core/tests/deslop/fixtures/orphan-shared-child/src/subtree/setup.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/orphan-shared-child/src/subtree/setup.ts rename to packages/core/tests/deslop/fixtures/orphan-shared-child/src/subtree/setup.ts diff --git a/packages/deslop-js/tests/fixtures/outdir-mapping/main/index.ts b/packages/core/tests/deslop/fixtures/outdir-mapping/main/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/outdir-mapping/main/index.ts rename to packages/core/tests/deslop/fixtures/outdir-mapping/main/index.ts diff --git a/packages/deslop-js/tests/fixtures/outdir-mapping/main/orphan.ts b/packages/core/tests/deslop/fixtures/outdir-mapping/main/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/outdir-mapping/main/orphan.ts rename to packages/core/tests/deslop/fixtures/outdir-mapping/main/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/outdir-mapping/main/setup.ts b/packages/core/tests/deslop/fixtures/outdir-mapping/main/setup.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/outdir-mapping/main/setup.ts rename to packages/core/tests/deslop/fixtures/outdir-mapping/main/setup.ts diff --git a/packages/deslop-js/tests/fixtures/outdir-mapping/package.json b/packages/core/tests/deslop/fixtures/outdir-mapping/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/outdir-mapping/package.json rename to packages/core/tests/deslop/fixtures/outdir-mapping/package.json diff --git a/packages/deslop-js/tests/fixtures/outdir-mapping/tsconfig.json b/packages/core/tests/deslop/fixtures/outdir-mapping/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/outdir-mapping/tsconfig.json rename to packages/core/tests/deslop/fixtures/outdir-mapping/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/path-alias-specificity/general/feature/thing.ts b/packages/core/tests/deslop/fixtures/path-alias-specificity/general/feature/thing.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/path-alias-specificity/general/feature/thing.ts rename to packages/core/tests/deslop/fixtures/path-alias-specificity/general/feature/thing.ts diff --git a/packages/deslop-js/tests/fixtures/path-alias-specificity/package.json b/packages/core/tests/deslop/fixtures/path-alias-specificity/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/path-alias-specificity/package.json rename to packages/core/tests/deslop/fixtures/path-alias-specificity/package.json diff --git a/packages/deslop-js/tests/fixtures/path-alias-specificity/special/thing.ts b/packages/core/tests/deslop/fixtures/path-alias-specificity/special/thing.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/path-alias-specificity/special/thing.ts rename to packages/core/tests/deslop/fixtures/path-alias-specificity/special/thing.ts diff --git a/packages/deslop-js/tests/fixtures/path-alias-specificity/src/index.ts b/packages/core/tests/deslop/fixtures/path-alias-specificity/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/path-alias-specificity/src/index.ts rename to packages/core/tests/deslop/fixtures/path-alias-specificity/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/playwright-ext/index.ts b/packages/core/tests/deslop/fixtures/playwright-ext/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/playwright-ext/index.ts rename to packages/core/tests/deslop/fixtures/playwright-ext/index.ts diff --git a/packages/deslop-js/tests/fixtures/playwright-ext/my-test.pw.ts b/packages/core/tests/deslop/fixtures/playwright-ext/my-test.pw.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/playwright-ext/my-test.pw.ts rename to packages/core/tests/deslop/fixtures/playwright-ext/my-test.pw.ts diff --git a/packages/deslop-js/tests/fixtures/playwright-ext/orphan.ts b/packages/core/tests/deslop/fixtures/playwright-ext/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/playwright-ext/orphan.ts rename to packages/core/tests/deslop/fixtures/playwright-ext/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/playwright-ext/package.json b/packages/core/tests/deslop/fixtures/playwright-ext/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/playwright-ext/package.json rename to packages/core/tests/deslop/fixtures/playwright-ext/package.json diff --git a/packages/deslop-js/tests/fixtures/playwright-lib/e2e/login.spec.ts b/packages/core/tests/deslop/fixtures/playwright-lib/e2e/login.spec.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/playwright-lib/e2e/login.spec.ts rename to packages/core/tests/deslop/fixtures/playwright-lib/e2e/login.spec.ts diff --git a/packages/deslop-js/tests/fixtures/playwright-lib/index.ts b/packages/core/tests/deslop/fixtures/playwright-lib/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/playwright-lib/index.ts rename to packages/core/tests/deslop/fixtures/playwright-lib/index.ts diff --git a/packages/deslop-js/tests/fixtures/playwright-lib/lib/helpers.ts b/packages/core/tests/deslop/fixtures/playwright-lib/lib/helpers.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/playwright-lib/lib/helpers.ts rename to packages/core/tests/deslop/fixtures/playwright-lib/lib/helpers.ts diff --git a/packages/deslop-js/tests/fixtures/playwright-lib/orphan.ts b/packages/core/tests/deslop/fixtures/playwright-lib/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/playwright-lib/orphan.ts rename to packages/core/tests/deslop/fixtures/playwright-lib/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/playwright-lib/package.json b/packages/core/tests/deslop/fixtures/playwright-lib/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/playwright-lib/package.json rename to packages/core/tests/deslop/fixtures/playwright-lib/package.json diff --git a/packages/deslop-js/tests/fixtures/playwright-lib/support/commands.ts b/packages/core/tests/deslop/fixtures/playwright-lib/support/commands.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/playwright-lib/support/commands.ts rename to packages/core/tests/deslop/fixtures/playwright-lib/support/commands.ts diff --git a/packages/deslop-js/tests/fixtures/playwright-lib/tests/smoke.spec.ts b/packages/core/tests/deslop/fixtures/playwright-lib/tests/smoke.spec.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/playwright-lib/tests/smoke.spec.ts rename to packages/core/tests/deslop/fixtures/playwright-lib/tests/smoke.spec.ts diff --git a/packages/deslop-js/tests/fixtures/pnpm-nested-overrides/package.json b/packages/core/tests/deslop/fixtures/pnpm-nested-overrides/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/pnpm-nested-overrides/package.json rename to packages/core/tests/deslop/fixtures/pnpm-nested-overrides/package.json diff --git a/packages/deslop-js/tests/fixtures/pnpm-nested-overrides/pnpm-workspace.yaml b/packages/core/tests/deslop/fixtures/pnpm-nested-overrides/pnpm-workspace.yaml similarity index 100% rename from packages/deslop-js/tests/fixtures/pnpm-nested-overrides/pnpm-workspace.yaml rename to packages/core/tests/deslop/fixtures/pnpm-nested-overrides/pnpm-workspace.yaml diff --git a/packages/deslop-js/tests/fixtures/pnpm-nested-overrides/src/index.ts b/packages/core/tests/deslop/fixtures/pnpm-nested-overrides/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/pnpm-nested-overrides/src/index.ts rename to packages/core/tests/deslop/fixtures/pnpm-nested-overrides/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/pnpm-workspace-override/package.json b/packages/core/tests/deslop/fixtures/pnpm-workspace-override/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/pnpm-workspace-override/package.json rename to packages/core/tests/deslop/fixtures/pnpm-workspace-override/package.json diff --git a/packages/deslop-js/tests/fixtures/pnpm-workspace-override/pnpm-workspace.yaml b/packages/core/tests/deslop/fixtures/pnpm-workspace-override/pnpm-workspace.yaml similarity index 100% rename from packages/deslop-js/tests/fixtures/pnpm-workspace-override/pnpm-workspace.yaml rename to packages/core/tests/deslop/fixtures/pnpm-workspace-override/pnpm-workspace.yaml diff --git a/packages/deslop-js/tests/fixtures/pnpm-workspace-override/src/index.ts b/packages/core/tests/deslop/fixtures/pnpm-workspace-override/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/pnpm-workspace-override/src/index.ts rename to packages/core/tests/deslop/fixtures/pnpm-workspace-override/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/pnpm-workspace-override/vite.config.ts b/packages/core/tests/deslop/fixtures/pnpm-workspace-override/vite.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/pnpm-workspace-override/vite.config.ts rename to packages/core/tests/deslop/fixtures/pnpm-workspace-override/vite.config.ts diff --git a/packages/deslop-js/tests/fixtures/polyrepo/orphan-dir/stray.ts b/packages/core/tests/deslop/fixtures/polyrepo/orphan-dir/stray.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/polyrepo/orphan-dir/stray.ts rename to packages/core/tests/deslop/fixtures/polyrepo/orphan-dir/stray.ts diff --git a/packages/deslop-js/tests/fixtures/polyrepo/project-a/package.json b/packages/core/tests/deslop/fixtures/polyrepo/project-a/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/polyrepo/project-a/package.json rename to packages/core/tests/deslop/fixtures/polyrepo/project-a/package.json diff --git a/packages/deslop-js/tests/fixtures/polyrepo/project-a/src/helper.ts b/packages/core/tests/deslop/fixtures/polyrepo/project-a/src/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/polyrepo/project-a/src/helper.ts rename to packages/core/tests/deslop/fixtures/polyrepo/project-a/src/helper.ts diff --git a/packages/deslop-js/tests/fixtures/polyrepo/project-a/src/index.ts b/packages/core/tests/deslop/fixtures/polyrepo/project-a/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/polyrepo/project-a/src/index.ts rename to packages/core/tests/deslop/fixtures/polyrepo/project-a/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/polyrepo/project-a/src/orphan.ts b/packages/core/tests/deslop/fixtures/polyrepo/project-a/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/polyrepo/project-a/src/orphan.ts rename to packages/core/tests/deslop/fixtures/polyrepo/project-a/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/polyrepo/project-b/package.json b/packages/core/tests/deslop/fixtures/polyrepo/project-b/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/polyrepo/project-b/package.json rename to packages/core/tests/deslop/fixtures/polyrepo/project-b/package.json diff --git a/packages/deslop-js/tests/fixtures/polyrepo/project-b/src/index.ts b/packages/core/tests/deslop/fixtures/polyrepo/project-b/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/polyrepo/project-b/src/index.ts rename to packages/core/tests/deslop/fixtures/polyrepo/project-b/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/polyrepo/project-b/src/unused.ts b/packages/core/tests/deslop/fixtures/polyrepo/project-b/src/unused.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/polyrepo/project-b/src/unused.ts rename to packages/core/tests/deslop/fixtures/polyrepo/project-b/src/unused.ts diff --git a/packages/deslop-js/tests/fixtures/prettier-rc-plugins/.prettierrc b/packages/core/tests/deslop/fixtures/prettier-rc-plugins/.prettierrc similarity index 100% rename from packages/deslop-js/tests/fixtures/prettier-rc-plugins/.prettierrc rename to packages/core/tests/deslop/fixtures/prettier-rc-plugins/.prettierrc diff --git a/packages/deslop-js/tests/fixtures/prettier-rc-plugins/package.json b/packages/core/tests/deslop/fixtures/prettier-rc-plugins/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/prettier-rc-plugins/package.json rename to packages/core/tests/deslop/fixtures/prettier-rc-plugins/package.json diff --git a/packages/deslop-js/tests/fixtures/prettier-rc-plugins/src/index.ts b/packages/core/tests/deslop/fixtures/prettier-rc-plugins/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/prettier-rc-plugins/src/index.ts rename to packages/core/tests/deslop/fixtures/prettier-rc-plugins/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/private-type-leak/package.json b/packages/core/tests/deslop/fixtures/private-type-leak/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/private-type-leak/package.json rename to packages/core/tests/deslop/fixtures/private-type-leak/package.json diff --git a/packages/deslop-js/tests/fixtures/private-type-leak/src/index.ts b/packages/core/tests/deslop/fixtures/private-type-leak/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/private-type-leak/src/index.ts rename to packages/core/tests/deslop/fixtures/private-type-leak/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/re-export-cycle/package.json b/packages/core/tests/deslop/fixtures/re-export-cycle/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/re-export-cycle/package.json rename to packages/core/tests/deslop/fixtures/re-export-cycle/package.json diff --git a/packages/deslop-js/tests/fixtures/re-export-cycle/src/barrel.ts b/packages/core/tests/deslop/fixtures/re-export-cycle/src/barrel.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/re-export-cycle/src/barrel.ts rename to packages/core/tests/deslop/fixtures/re-export-cycle/src/barrel.ts diff --git a/packages/deslop-js/tests/fixtures/re-export-cycle/src/index.ts b/packages/core/tests/deslop/fixtures/re-export-cycle/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/re-export-cycle/src/index.ts rename to packages/core/tests/deslop/fixtures/re-export-cycle/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/re-export-cycle/src/leaf.ts b/packages/core/tests/deslop/fixtures/re-export-cycle/src/leaf.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/re-export-cycle/src/leaf.ts rename to packages/core/tests/deslop/fixtures/re-export-cycle/src/leaf.ts diff --git a/packages/deslop-js/tests/fixtures/re-export-cycle/src/other.ts b/packages/core/tests/deslop/fixtures/re-export-cycle/src/other.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/re-export-cycle/src/other.ts rename to packages/core/tests/deslop/fixtures/re-export-cycle/src/other.ts diff --git a/packages/deslop-js/tests/fixtures/react-router/app/components/header.tsx b/packages/core/tests/deslop/fixtures/react-router/app/components/header.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/react-router/app/components/header.tsx rename to packages/core/tests/deslop/fixtures/react-router/app/components/header.tsx diff --git a/packages/deslop-js/tests/fixtures/react-router/app/components/unused-widget.tsx b/packages/core/tests/deslop/fixtures/react-router/app/components/unused-widget.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/react-router/app/components/unused-widget.tsx rename to packages/core/tests/deslop/fixtures/react-router/app/components/unused-widget.tsx diff --git a/packages/deslop-js/tests/fixtures/react-router/app/dashboard/layout.tsx b/packages/core/tests/deslop/fixtures/react-router/app/dashboard/layout.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/react-router/app/dashboard/layout.tsx rename to packages/core/tests/deslop/fixtures/react-router/app/dashboard/layout.tsx diff --git a/packages/deslop-js/tests/fixtures/react-router/app/dashboard/page.tsx b/packages/core/tests/deslop/fixtures/react-router/app/dashboard/page.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/react-router/app/dashboard/page.tsx rename to packages/core/tests/deslop/fixtures/react-router/app/dashboard/page.tsx diff --git a/packages/deslop-js/tests/fixtures/react-router/app/root.tsx b/packages/core/tests/deslop/fixtures/react-router/app/root.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/react-router/app/root.tsx rename to packages/core/tests/deslop/fixtures/react-router/app/root.tsx diff --git a/packages/deslop-js/tests/fixtures/react-router/app/routes.ts b/packages/core/tests/deslop/fixtures/react-router/app/routes.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/react-router/app/routes.ts rename to packages/core/tests/deslop/fixtures/react-router/app/routes.ts diff --git a/packages/deslop-js/tests/fixtures/react-router/app/routes/about.tsx b/packages/core/tests/deslop/fixtures/react-router/app/routes/about.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/react-router/app/routes/about.tsx rename to packages/core/tests/deslop/fixtures/react-router/app/routes/about.tsx diff --git a/packages/deslop-js/tests/fixtures/react-router/app/routes/home.tsx b/packages/core/tests/deslop/fixtures/react-router/app/routes/home.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/react-router/app/routes/home.tsx rename to packages/core/tests/deslop/fixtures/react-router/app/routes/home.tsx diff --git a/packages/deslop-js/tests/fixtures/react-router/package.json b/packages/core/tests/deslop/fixtures/react-router/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/react-router/package.json rename to packages/core/tests/deslop/fixtures/react-router/package.json diff --git a/packages/deslop-js/tests/fixtures/react-router/react-router.config.ts b/packages/core/tests/deslop/fixtures/react-router/react-router.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/react-router/react-router.config.ts rename to packages/core/tests/deslop/fixtures/react-router/react-router.config.ts diff --git a/packages/deslop-js/tests/fixtures/redundant-aliases-self/package.json b/packages/core/tests/deslop/fixtures/redundant-aliases-self/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-aliases-self/package.json rename to packages/core/tests/deslop/fixtures/redundant-aliases-self/package.json diff --git a/packages/deslop-js/tests/fixtures/redundant-aliases-self/src/barrel.ts b/packages/core/tests/deslop/fixtures/redundant-aliases-self/src/barrel.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-aliases-self/src/barrel.ts rename to packages/core/tests/deslop/fixtures/redundant-aliases-self/src/barrel.ts diff --git a/packages/deslop-js/tests/fixtures/redundant-aliases-self/src/index.ts b/packages/core/tests/deslop/fixtures/redundant-aliases-self/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-aliases-self/src/index.ts rename to packages/core/tests/deslop/fixtures/redundant-aliases-self/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/redundant-aliases-self/src/source.ts b/packages/core/tests/deslop/fixtures/redundant-aliases-self/src/source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-aliases-self/src/source.ts rename to packages/core/tests/deslop/fixtures/redundant-aliases-self/src/source.ts diff --git a/packages/deslop-js/tests/fixtures/redundant-aliases-variable/package.json b/packages/core/tests/deslop/fixtures/redundant-aliases-variable/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-aliases-variable/package.json rename to packages/core/tests/deslop/fixtures/redundant-aliases-variable/package.json diff --git a/packages/deslop-js/tests/fixtures/redundant-aliases-variable/src/index.ts b/packages/core/tests/deslop/fixtures/redundant-aliases-variable/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-aliases-variable/src/index.ts rename to packages/core/tests/deslop/fixtures/redundant-aliases-variable/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/redundant-aliases-variable/src/source.ts b/packages/core/tests/deslop/fixtures/redundant-aliases-variable/src/source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-aliases-variable/src/source.ts rename to packages/core/tests/deslop/fixtures/redundant-aliases-variable/src/source.ts diff --git a/packages/deslop-js/tests/fixtures/redundant-aliases-variable/tsconfig.json b/packages/core/tests/deslop/fixtures/redundant-aliases-variable/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-aliases-variable/tsconfig.json rename to packages/core/tests/deslop/fixtures/redundant-aliases-variable/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/redundant-reexports-semantic/package.json b/packages/core/tests/deslop/fixtures/redundant-reexports-semantic/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-reexports-semantic/package.json rename to packages/core/tests/deslop/fixtures/redundant-reexports-semantic/package.json diff --git a/packages/deslop-js/tests/fixtures/redundant-reexports-semantic/src/barrel.ts b/packages/core/tests/deslop/fixtures/redundant-reexports-semantic/src/barrel.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-reexports-semantic/src/barrel.ts rename to packages/core/tests/deslop/fixtures/redundant-reexports-semantic/src/barrel.ts diff --git a/packages/deslop-js/tests/fixtures/redundant-reexports-semantic/src/consumer.ts b/packages/core/tests/deslop/fixtures/redundant-reexports-semantic/src/consumer.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-reexports-semantic/src/consumer.ts rename to packages/core/tests/deslop/fixtures/redundant-reexports-semantic/src/consumer.ts diff --git a/packages/deslop-js/tests/fixtures/redundant-reexports-semantic/src/impl.ts b/packages/core/tests/deslop/fixtures/redundant-reexports-semantic/src/impl.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-reexports-semantic/src/impl.ts rename to packages/core/tests/deslop/fixtures/redundant-reexports-semantic/src/impl.ts diff --git a/packages/deslop-js/tests/fixtures/redundant-reexports-semantic/src/index.ts b/packages/core/tests/deslop/fixtures/redundant-reexports-semantic/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-reexports-semantic/src/index.ts rename to packages/core/tests/deslop/fixtures/redundant-reexports-semantic/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/redundant-reexports-semantic/tsconfig.json b/packages/core/tests/deslop/fixtures/redundant-reexports-semantic/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/redundant-reexports-semantic/tsconfig.json rename to packages/core/tests/deslop/fixtures/redundant-reexports-semantic/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/reexport-alias/package.json b/packages/core/tests/deslop/fixtures/reexport-alias/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-alias/package.json rename to packages/core/tests/deslop/fixtures/reexport-alias/package.json diff --git a/packages/deslop-js/tests/fixtures/reexport-alias/src/barrel-mid.ts b/packages/core/tests/deslop/fixtures/reexport-alias/src/barrel-mid.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-alias/src/barrel-mid.ts rename to packages/core/tests/deslop/fixtures/reexport-alias/src/barrel-mid.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-alias/src/barrel-top.ts b/packages/core/tests/deslop/fixtures/reexport-alias/src/barrel-top.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-alias/src/barrel-top.ts rename to packages/core/tests/deslop/fixtures/reexport-alias/src/barrel-top.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-alias/src/index.ts b/packages/core/tests/deslop/fixtures/reexport-alias/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-alias/src/index.ts rename to packages/core/tests/deslop/fixtures/reexport-alias/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-alias/src/source.ts b/packages/core/tests/deslop/fixtures/reexport-alias/src/source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-alias/src/source.ts rename to packages/core/tests/deslop/fixtures/reexport-alias/src/source.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-chains/package.json b/packages/core/tests/deslop/fixtures/reexport-chains/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-chains/package.json rename to packages/core/tests/deslop/fixtures/reexport-chains/package.json diff --git a/packages/deslop-js/tests/fixtures/reexport-chains/src/barrel-a.ts b/packages/core/tests/deslop/fixtures/reexport-chains/src/barrel-a.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-chains/src/barrel-a.ts rename to packages/core/tests/deslop/fixtures/reexport-chains/src/barrel-a.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-chains/src/barrel-b.ts b/packages/core/tests/deslop/fixtures/reexport-chains/src/barrel-b.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-chains/src/barrel-b.ts rename to packages/core/tests/deslop/fixtures/reexport-chains/src/barrel-b.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-chains/src/barrel-c.ts b/packages/core/tests/deslop/fixtures/reexport-chains/src/barrel-c.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-chains/src/barrel-c.ts rename to packages/core/tests/deslop/fixtures/reexport-chains/src/barrel-c.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-chains/src/index.ts b/packages/core/tests/deslop/fixtures/reexport-chains/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-chains/src/index.ts rename to packages/core/tests/deslop/fixtures/reexport-chains/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-chains/src/source.ts b/packages/core/tests/deslop/fixtures/reexport-chains/src/source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-chains/src/source.ts rename to packages/core/tests/deslop/fixtures/reexport-chains/src/source.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-default-named/consumer.ts b/packages/core/tests/deslop/fixtures/reexport-default-named/consumer.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-default-named/consumer.ts rename to packages/core/tests/deslop/fixtures/reexport-default-named/consumer.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-default-named/gadget.ts b/packages/core/tests/deslop/fixtures/reexport-default-named/gadget.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-default-named/gadget.ts rename to packages/core/tests/deslop/fixtures/reexport-default-named/gadget.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-default-named/index.ts b/packages/core/tests/deslop/fixtures/reexport-default-named/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-default-named/index.ts rename to packages/core/tests/deslop/fixtures/reexport-default-named/index.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-default-named/package.json b/packages/core/tests/deslop/fixtures/reexport-default-named/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-default-named/package.json rename to packages/core/tests/deslop/fixtures/reexport-default-named/package.json diff --git a/packages/deslop-js/tests/fixtures/reexport-default-named/widget.ts b/packages/core/tests/deslop/fixtures/reexport-default-named/widget.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-default-named/widget.ts rename to packages/core/tests/deslop/fixtures/reexport-default-named/widget.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-default/package.json b/packages/core/tests/deslop/fixtures/reexport-default/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-default/package.json rename to packages/core/tests/deslop/fixtures/reexport-default/package.json diff --git a/packages/deslop-js/tests/fixtures/reexport-default/src/components/Button.ts b/packages/core/tests/deslop/fixtures/reexport-default/src/components/Button.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-default/src/components/Button.ts rename to packages/core/tests/deslop/fixtures/reexport-default/src/components/Button.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-default/src/components/Card/Card.tsx b/packages/core/tests/deslop/fixtures/reexport-default/src/components/Card/Card.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-default/src/components/Card/Card.tsx rename to packages/core/tests/deslop/fixtures/reexport-default/src/components/Card/Card.tsx diff --git a/packages/deslop-js/tests/fixtures/reexport-default/src/components/Card/index.ts b/packages/core/tests/deslop/fixtures/reexport-default/src/components/Card/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-default/src/components/Card/index.ts rename to packages/core/tests/deslop/fixtures/reexport-default/src/components/Card/index.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-default/src/components/index.ts b/packages/core/tests/deslop/fixtures/reexport-default/src/components/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-default/src/components/index.ts rename to packages/core/tests/deslop/fixtures/reexport-default/src/components/index.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-default/src/index.ts b/packages/core/tests/deslop/fixtures/reexport-default/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-default/src/index.ts rename to packages/core/tests/deslop/fixtures/reexport-default/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-file-variants/package.json b/packages/core/tests/deslop/fixtures/reexport-file-variants/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-file-variants/package.json rename to packages/core/tests/deslop/fixtures/reexport-file-variants/package.json diff --git a/packages/deslop-js/tests/fixtures/reexport-file-variants/src/index.ts b/packages/core/tests/deslop/fixtures/reexport-file-variants/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-file-variants/src/index.ts rename to packages/core/tests/deslop/fixtures/reexport-file-variants/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-file-variants/src/named-barrel.ts b/packages/core/tests/deslop/fixtures/reexport-file-variants/src/named-barrel.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-file-variants/src/named-barrel.ts rename to packages/core/tests/deslop/fixtures/reexport-file-variants/src/named-barrel.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-file-variants/src/orphan.ts b/packages/core/tests/deslop/fixtures/reexport-file-variants/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-file-variants/src/orphan.ts rename to packages/core/tests/deslop/fixtures/reexport-file-variants/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-file-variants/src/star-barrel.ts b/packages/core/tests/deslop/fixtures/reexport-file-variants/src/star-barrel.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-file-variants/src/star-barrel.ts rename to packages/core/tests/deslop/fixtures/reexport-file-variants/src/star-barrel.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-file-variants/src/utils/format.ts b/packages/core/tests/deslop/fixtures/reexport-file-variants/src/utils/format.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-file-variants/src/utils/format.ts rename to packages/core/tests/deslop/fixtures/reexport-file-variants/src/utils/format.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-file-variants/src/utils/greet.ts b/packages/core/tests/deslop/fixtures/reexport-file-variants/src/utils/greet.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-file-variants/src/utils/greet.ts rename to packages/core/tests/deslop/fixtures/reexport-file-variants/src/utils/greet.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-mixed/package.json b/packages/core/tests/deslop/fixtures/reexport-mixed/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-mixed/package.json rename to packages/core/tests/deslop/fixtures/reexport-mixed/package.json diff --git a/packages/deslop-js/tests/fixtures/reexport-mixed/src/barrel.ts b/packages/core/tests/deslop/fixtures/reexport-mixed/src/barrel.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-mixed/src/barrel.ts rename to packages/core/tests/deslop/fixtures/reexport-mixed/src/barrel.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-mixed/src/index.ts b/packages/core/tests/deslop/fixtures/reexport-mixed/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-mixed/src/index.ts rename to packages/core/tests/deslop/fixtures/reexport-mixed/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-mixed/src/named-source.ts b/packages/core/tests/deslop/fixtures/reexport-mixed/src/named-source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-mixed/src/named-source.ts rename to packages/core/tests/deslop/fixtures/reexport-mixed/src/named-source.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-mixed/src/star-source.ts b/packages/core/tests/deslop/fixtures/reexport-mixed/src/star-source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-mixed/src/star-source.ts rename to packages/core/tests/deslop/fixtures/reexport-mixed/src/star-source.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-multi-hop/package.json b/packages/core/tests/deslop/fixtures/reexport-multi-hop/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-multi-hop/package.json rename to packages/core/tests/deslop/fixtures/reexport-multi-hop/package.json diff --git a/packages/deslop-js/tests/fixtures/reexport-multi-hop/src/barrel1.ts b/packages/core/tests/deslop/fixtures/reexport-multi-hop/src/barrel1.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-multi-hop/src/barrel1.ts rename to packages/core/tests/deslop/fixtures/reexport-multi-hop/src/barrel1.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-multi-hop/src/barrel2.ts b/packages/core/tests/deslop/fixtures/reexport-multi-hop/src/barrel2.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-multi-hop/src/barrel2.ts rename to packages/core/tests/deslop/fixtures/reexport-multi-hop/src/barrel2.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-multi-hop/src/index.ts b/packages/core/tests/deslop/fixtures/reexport-multi-hop/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-multi-hop/src/index.ts rename to packages/core/tests/deslop/fixtures/reexport-multi-hop/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-multi-hop/src/source.ts b/packages/core/tests/deslop/fixtures/reexport-multi-hop/src/source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-multi-hop/src/source.ts rename to packages/core/tests/deslop/fixtures/reexport-multi-hop/src/source.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-multi-level/package.json b/packages/core/tests/deslop/fixtures/reexport-multi-level/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-multi-level/package.json rename to packages/core/tests/deslop/fixtures/reexport-multi-level/package.json diff --git a/packages/deslop-js/tests/fixtures/reexport-multi-level/src/barrel-a.ts b/packages/core/tests/deslop/fixtures/reexport-multi-level/src/barrel-a.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-multi-level/src/barrel-a.ts rename to packages/core/tests/deslop/fixtures/reexport-multi-level/src/barrel-a.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-multi-level/src/barrel-b.ts b/packages/core/tests/deslop/fixtures/reexport-multi-level/src/barrel-b.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-multi-level/src/barrel-b.ts rename to packages/core/tests/deslop/fixtures/reexport-multi-level/src/barrel-b.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-multi-level/src/index.ts b/packages/core/tests/deslop/fixtures/reexport-multi-level/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-multi-level/src/index.ts rename to packages/core/tests/deslop/fixtures/reexport-multi-level/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-multi-level/src/source.ts b/packages/core/tests/deslop/fixtures/reexport-multi-level/src/source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-multi-level/src/source.ts rename to packages/core/tests/deslop/fixtures/reexport-multi-level/src/source.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-star-named/consumer.ts b/packages/core/tests/deslop/fixtures/reexport-star-named/consumer.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-star-named/consumer.ts rename to packages/core/tests/deslop/fixtures/reexport-star-named/consumer.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-star-named/index.ts b/packages/core/tests/deslop/fixtures/reexport-star-named/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-star-named/index.ts rename to packages/core/tests/deslop/fixtures/reexport-star-named/index.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-star-named/package.json b/packages/core/tests/deslop/fixtures/reexport-star-named/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-star-named/package.json rename to packages/core/tests/deslop/fixtures/reexport-star-named/package.json diff --git a/packages/deslop-js/tests/fixtures/reexport-star-named/special.ts b/packages/core/tests/deslop/fixtures/reexport-star-named/special.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-star-named/special.ts rename to packages/core/tests/deslop/fixtures/reexport-star-named/special.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-star-named/utils.ts b/packages/core/tests/deslop/fixtures/reexport-star-named/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-star-named/utils.ts rename to packages/core/tests/deslop/fixtures/reexport-star-named/utils.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-star/package.json b/packages/core/tests/deslop/fixtures/reexport-star/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-star/package.json rename to packages/core/tests/deslop/fixtures/reexport-star/package.json diff --git a/packages/deslop-js/tests/fixtures/reexport-star/src/barrel.ts b/packages/core/tests/deslop/fixtures/reexport-star/src/barrel.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-star/src/barrel.ts rename to packages/core/tests/deslop/fixtures/reexport-star/src/barrel.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-star/src/index.ts b/packages/core/tests/deslop/fixtures/reexport-star/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-star/src/index.ts rename to packages/core/tests/deslop/fixtures/reexport-star/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-star/src/module-a.ts b/packages/core/tests/deslop/fixtures/reexport-star/src/module-a.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-star/src/module-a.ts rename to packages/core/tests/deslop/fixtures/reexport-star/src/module-a.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-star/src/module-b.ts b/packages/core/tests/deslop/fixtures/reexport-star/src/module-b.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-star/src/module-b.ts rename to packages/core/tests/deslop/fixtures/reexport-star/src/module-b.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-star/src/module-c.ts b/packages/core/tests/deslop/fixtures/reexport-star/src/module-c.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-star/src/module-c.ts rename to packages/core/tests/deslop/fixtures/reexport-star/src/module-c.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-unused/package.json b/packages/core/tests/deslop/fixtures/reexport-unused/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-unused/package.json rename to packages/core/tests/deslop/fixtures/reexport-unused/package.json diff --git a/packages/deslop-js/tests/fixtures/reexport-unused/src/components/index.ts b/packages/core/tests/deslop/fixtures/reexport-unused/src/components/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-unused/src/components/index.ts rename to packages/core/tests/deslop/fixtures/reexport-unused/src/components/index.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-unused/src/components/types-source.ts b/packages/core/tests/deslop/fixtures/reexport-unused/src/components/types-source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-unused/src/components/types-source.ts rename to packages/core/tests/deslop/fixtures/reexport-unused/src/components/types-source.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-unused/src/components/unused-source.ts b/packages/core/tests/deslop/fixtures/reexport-unused/src/components/unused-source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-unused/src/components/unused-source.ts rename to packages/core/tests/deslop/fixtures/reexport-unused/src/components/unused-source.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-unused/src/components/used-source.ts b/packages/core/tests/deslop/fixtures/reexport-unused/src/components/used-source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-unused/src/components/used-source.ts rename to packages/core/tests/deslop/fixtures/reexport-unused/src/components/used-source.ts diff --git a/packages/deslop-js/tests/fixtures/reexport-unused/src/index.ts b/packages/core/tests/deslop/fixtures/reexport-unused/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/reexport-unused/src/index.ts rename to packages/core/tests/deslop/fixtures/reexport-unused/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/remark-config-deps/.gitignore b/packages/core/tests/deslop/fixtures/remark-config-deps/.gitignore similarity index 100% rename from packages/deslop-js/tests/fixtures/remark-config-deps/.gitignore rename to packages/core/tests/deslop/fixtures/remark-config-deps/.gitignore diff --git a/packages/deslop-js/tests/fixtures/remark-config-deps/.remarkrc.json b/packages/core/tests/deslop/fixtures/remark-config-deps/.remarkrc.json similarity index 100% rename from packages/deslop-js/tests/fixtures/remark-config-deps/.remarkrc.json rename to packages/core/tests/deslop/fixtures/remark-config-deps/.remarkrc.json diff --git a/packages/deslop-js/tests/fixtures/remark-config-deps/docs/guide.mdx b/packages/core/tests/deslop/fixtures/remark-config-deps/docs/guide.mdx similarity index 100% rename from packages/deslop-js/tests/fixtures/remark-config-deps/docs/guide.mdx rename to packages/core/tests/deslop/fixtures/remark-config-deps/docs/guide.mdx diff --git a/packages/deslop-js/tests/fixtures/remark-config-deps/node_modules/remark-cli/package.json b/packages/core/tests/deslop/fixtures/remark-config-deps/node_modules/remark-cli/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/remark-config-deps/node_modules/remark-cli/package.json rename to packages/core/tests/deslop/fixtures/remark-config-deps/node_modules/remark-cli/package.json diff --git a/packages/deslop-js/tests/fixtures/remark-config-deps/package.json b/packages/core/tests/deslop/fixtures/remark-config-deps/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/remark-config-deps/package.json rename to packages/core/tests/deslop/fixtures/remark-config-deps/package.json diff --git a/packages/deslop-js/tests/fixtures/remark-config-deps/src/button.tsx b/packages/core/tests/deslop/fixtures/remark-config-deps/src/button.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/remark-config-deps/src/button.tsx rename to packages/core/tests/deslop/fixtures/remark-config-deps/src/button.tsx diff --git a/packages/deslop-js/tests/fixtures/remark-config-deps/src/index.ts b/packages/core/tests/deslop/fixtures/remark-config-deps/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/remark-config-deps/src/index.ts rename to packages/core/tests/deslop/fixtures/remark-config-deps/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/remark-config-deps/src/orphan.ts b/packages/core/tests/deslop/fixtures/remark-config-deps/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/remark-config-deps/src/orphan.ts rename to packages/core/tests/deslop/fixtures/remark-config-deps/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/remark-glob-skip/docs/guide.mdx b/packages/core/tests/deslop/fixtures/remark-glob-skip/docs/guide.mdx similarity index 100% rename from packages/deslop-js/tests/fixtures/remark-glob-skip/docs/guide.mdx rename to packages/core/tests/deslop/fixtures/remark-glob-skip/docs/guide.mdx diff --git a/packages/deslop-js/tests/fixtures/remark-glob-skip/docs/intro.mdx b/packages/core/tests/deslop/fixtures/remark-glob-skip/docs/intro.mdx similarity index 100% rename from packages/deslop-js/tests/fixtures/remark-glob-skip/docs/intro.mdx rename to packages/core/tests/deslop/fixtures/remark-glob-skip/docs/intro.mdx diff --git a/packages/deslop-js/tests/fixtures/remark-glob-skip/package.json b/packages/core/tests/deslop/fixtures/remark-glob-skip/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/remark-glob-skip/package.json rename to packages/core/tests/deslop/fixtures/remark-glob-skip/package.json diff --git a/packages/deslop-js/tests/fixtures/remark-glob-skip/src/index.ts b/packages/core/tests/deslop/fixtures/remark-glob-skip/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/remark-glob-skip/src/index.ts rename to packages/core/tests/deslop/fixtures/remark-glob-skip/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/remark-glob-skip/src/orphan.ts b/packages/core/tests/deslop/fixtures/remark-glob-skip/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/remark-glob-skip/src/orphan.ts rename to packages/core/tests/deslop/fixtures/remark-glob-skip/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/rn-app/App.tsx b/packages/core/tests/deslop/fixtures/rn-app/App.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-app/App.tsx rename to packages/core/tests/deslop/fixtures/rn-app/App.tsx diff --git a/packages/deslop-js/tests/fixtures/rn-app/index.js b/packages/core/tests/deslop/fixtures/rn-app/index.js similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-app/index.js rename to packages/core/tests/deslop/fixtures/rn-app/index.js diff --git a/packages/deslop-js/tests/fixtures/rn-app/metro.config.js b/packages/core/tests/deslop/fixtures/rn-app/metro.config.js similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-app/metro.config.js rename to packages/core/tests/deslop/fixtures/rn-app/metro.config.js diff --git a/packages/deslop-js/tests/fixtures/rn-app/package.json b/packages/core/tests/deslop/fixtures/rn-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-app/package.json rename to packages/core/tests/deslop/fixtures/rn-app/package.json diff --git a/packages/deslop-js/tests/fixtures/rn-app/src/screens/orphan.tsx b/packages/core/tests/deslop/fixtures/rn-app/src/screens/orphan.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-app/src/screens/orphan.tsx rename to packages/core/tests/deslop/fixtures/rn-app/src/screens/orphan.tsx diff --git a/packages/deslop-js/tests/fixtures/rn-app/src/screens/used.tsx b/packages/core/tests/deslop/fixtures/rn-app/src/screens/used.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-app/src/screens/used.tsx rename to packages/core/tests/deslop/fixtures/rn-app/src/screens/used.tsx diff --git a/packages/deslop-js/tests/fixtures/rn-platform/package.json b/packages/core/tests/deslop/fixtures/rn-platform/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-platform/package.json rename to packages/core/tests/deslop/fixtures/rn-platform/package.json diff --git a/packages/deslop-js/tests/fixtures/rn-platform/src/button.android.tsx b/packages/core/tests/deslop/fixtures/rn-platform/src/button.android.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-platform/src/button.android.tsx rename to packages/core/tests/deslop/fixtures/rn-platform/src/button.android.tsx diff --git a/packages/deslop-js/tests/fixtures/rn-platform/src/button.ios.tsx b/packages/core/tests/deslop/fixtures/rn-platform/src/button.ios.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-platform/src/button.ios.tsx rename to packages/core/tests/deslop/fixtures/rn-platform/src/button.ios.tsx diff --git a/packages/deslop-js/tests/fixtures/rn-platform/src/button.tsx b/packages/core/tests/deslop/fixtures/rn-platform/src/button.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-platform/src/button.tsx rename to packages/core/tests/deslop/fixtures/rn-platform/src/button.tsx diff --git a/packages/deslop-js/tests/fixtures/rn-platform/src/handler.native.ts b/packages/core/tests/deslop/fixtures/rn-platform/src/handler.native.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-platform/src/handler.native.ts rename to packages/core/tests/deslop/fixtures/rn-platform/src/handler.native.ts diff --git a/packages/deslop-js/tests/fixtures/rn-platform/src/handler.web.ts b/packages/core/tests/deslop/fixtures/rn-platform/src/handler.web.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-platform/src/handler.web.ts rename to packages/core/tests/deslop/fixtures/rn-platform/src/handler.web.ts diff --git a/packages/deslop-js/tests/fixtures/rn-platform/src/index.ts b/packages/core/tests/deslop/fixtures/rn-platform/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-platform/src/index.ts rename to packages/core/tests/deslop/fixtures/rn-platform/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/rn-platform/src/orphan.ts b/packages/core/tests/deslop/fixtures/rn-platform/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-platform/src/orphan.ts rename to packages/core/tests/deslop/fixtures/rn-platform/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/rn-platform/src/utils.ts b/packages/core/tests/deslop/fixtures/rn-platform/src/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/rn-platform/src/utils.ts rename to packages/core/tests/deslop/fixtures/rn-platform/src/utils.ts diff --git a/packages/deslop-js/tests/fixtures/rspack-app/package.json b/packages/core/tests/deslop/fixtures/rspack-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/rspack-app/package.json rename to packages/core/tests/deslop/fixtures/rspack-app/package.json diff --git a/packages/deslop-js/tests/fixtures/rspack-app/rspack.config.js b/packages/core/tests/deslop/fixtures/rspack-app/rspack.config.js similarity index 100% rename from packages/deslop-js/tests/fixtures/rspack-app/rspack.config.js rename to packages/core/tests/deslop/fixtures/rspack-app/rspack.config.js diff --git a/packages/deslop-js/tests/fixtures/rspack-app/rspack.dev.config.js b/packages/core/tests/deslop/fixtures/rspack-app/rspack.dev.config.js similarity index 100% rename from packages/deslop-js/tests/fixtures/rspack-app/rspack.dev.config.js rename to packages/core/tests/deslop/fixtures/rspack-app/rspack.dev.config.js diff --git a/packages/deslop-js/tests/fixtures/rspack-app/src/index.ts b/packages/core/tests/deslop/fixtures/rspack-app/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/rspack-app/src/index.ts rename to packages/core/tests/deslop/fixtures/rspack-app/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/rspack-app/src/orphan.ts b/packages/core/tests/deslop/fixtures/rspack-app/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/rspack-app/src/orphan.ts rename to packages/core/tests/deslop/fixtures/rspack-app/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/script-cli-deps/package.json b/packages/core/tests/deslop/fixtures/script-cli-deps/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/script-cli-deps/package.json rename to packages/core/tests/deslop/fixtures/script-cli-deps/package.json diff --git a/packages/deslop-js/tests/fixtures/script-cli-deps/src/index.ts b/packages/core/tests/deslop/fixtures/script-cli-deps/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-cli-deps/src/index.ts rename to packages/core/tests/deslop/fixtures/script-cli-deps/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/script-flags/orphan.ts b/packages/core/tests/deslop/fixtures/script-flags/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-flags/orphan.ts rename to packages/core/tests/deslop/fixtures/script-flags/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/script-flags/package.json b/packages/core/tests/deslop/fixtures/script-flags/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/script-flags/package.json rename to packages/core/tests/deslop/fixtures/script-flags/package.json diff --git a/packages/deslop-js/tests/fixtures/script-flags/scripts/build.ts b/packages/core/tests/deslop/fixtures/script-flags/scripts/build.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-flags/scripts/build.ts rename to packages/core/tests/deslop/fixtures/script-flags/scripts/build.ts diff --git a/packages/deslop-js/tests/fixtures/script-flags/scripts/generate.mts b/packages/core/tests/deslop/fixtures/script-flags/scripts/generate.mts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-flags/scripts/generate.mts rename to packages/core/tests/deslop/fixtures/script-flags/scripts/generate.mts diff --git a/packages/deslop-js/tests/fixtures/script-flags/tests/run.ts b/packages/core/tests/deslop/fixtures/script-flags/tests/run.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-flags/tests/run.ts rename to packages/core/tests/deslop/fixtures/script-flags/tests/run.ts diff --git a/packages/deslop-js/tests/fixtures/script-flags/tsconfig.build.json b/packages/core/tests/deslop/fixtures/script-flags/tsconfig.build.json similarity index 100% rename from packages/deslop-js/tests/fixtures/script-flags/tsconfig.build.json rename to packages/core/tests/deslop/fixtures/script-flags/tsconfig.build.json diff --git a/packages/deslop-js/tests/fixtures/script-glob-formatter/package.json b/packages/core/tests/deslop/fixtures/script-glob-formatter/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/script-glob-formatter/package.json rename to packages/core/tests/deslop/fixtures/script-glob-formatter/package.json diff --git a/packages/deslop-js/tests/fixtures/script-glob-formatter/scripts/build.ts b/packages/core/tests/deslop/fixtures/script-glob-formatter/scripts/build.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-glob-formatter/scripts/build.ts rename to packages/core/tests/deslop/fixtures/script-glob-formatter/scripts/build.ts diff --git a/packages/deslop-js/tests/fixtures/script-glob-formatter/src/helper.ts b/packages/core/tests/deslop/fixtures/script-glob-formatter/src/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-glob-formatter/src/helper.ts rename to packages/core/tests/deslop/fixtures/script-glob-formatter/src/helper.ts diff --git a/packages/deslop-js/tests/fixtures/script-glob-formatter/src/index.ts b/packages/core/tests/deslop/fixtures/script-glob-formatter/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-glob-formatter/src/index.ts rename to packages/core/tests/deslop/fixtures/script-glob-formatter/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/script-glob-formatter/src/orphan.ts b/packages/core/tests/deslop/fixtures/script-glob-formatter/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-glob-formatter/src/orphan.ts rename to packages/core/tests/deslop/fixtures/script-glob-formatter/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/script-globs/package.json b/packages/core/tests/deslop/fixtures/script-globs/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/script-globs/package.json rename to packages/core/tests/deslop/fixtures/script-globs/package.json diff --git a/packages/deslop-js/tests/fixtures/script-globs/src/index.ts b/packages/core/tests/deslop/fixtures/script-globs/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-globs/src/index.ts rename to packages/core/tests/deslop/fixtures/script-globs/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/script-globs/src/orphan.ts b/packages/core/tests/deslop/fixtures/script-globs/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-globs/src/orphan.ts rename to packages/core/tests/deslop/fixtures/script-globs/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/script-globs/styles/themes/dark.css b/packages/core/tests/deslop/fixtures/script-globs/styles/themes/dark.css similarity index 100% rename from packages/deslop-js/tests/fixtures/script-globs/styles/themes/dark.css rename to packages/core/tests/deslop/fixtures/script-globs/styles/themes/dark.css diff --git a/packages/deslop-js/tests/fixtures/script-globs/styles/themes/light.css b/packages/core/tests/deslop/fixtures/script-globs/styles/themes/light.css similarity index 100% rename from packages/deslop-js/tests/fixtures/script-globs/styles/themes/light.css rename to packages/core/tests/deslop/fixtures/script-globs/styles/themes/light.css diff --git a/packages/deslop-js/tests/fixtures/script-no-extension/orphan.ts b/packages/core/tests/deslop/fixtures/script-no-extension/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-no-extension/orphan.ts rename to packages/core/tests/deslop/fixtures/script-no-extension/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/script-no-extension/package.json b/packages/core/tests/deslop/fixtures/script-no-extension/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/script-no-extension/package.json rename to packages/core/tests/deslop/fixtures/script-no-extension/package.json diff --git a/packages/deslop-js/tests/fixtures/script-no-extension/scripts/build-data.ts b/packages/core/tests/deslop/fixtures/script-no-extension/scripts/build-data.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-no-extension/scripts/build-data.ts rename to packages/core/tests/deslop/fixtures/script-no-extension/scripts/build-data.ts diff --git a/packages/deslop-js/tests/fixtures/script-no-extension/scripts/lint-code.js b/packages/core/tests/deslop/fixtures/script-no-extension/scripts/lint-code.js similarity index 100% rename from packages/deslop-js/tests/fixtures/script-no-extension/scripts/lint-code.js rename to packages/core/tests/deslop/fixtures/script-no-extension/scripts/lint-code.js diff --git a/packages/deslop-js/tests/fixtures/script-no-extension/scripts/process-items.ts b/packages/core/tests/deslop/fixtures/script-no-extension/scripts/process-items.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-no-extension/scripts/process-items.ts rename to packages/core/tests/deslop/fixtures/script-no-extension/scripts/process-items.ts diff --git a/packages/deslop-js/tests/fixtures/script-no-extension/src/index.ts b/packages/core/tests/deslop/fixtures/script-no-extension/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/script-no-extension/src/index.ts rename to packages/core/tests/deslop/fixtures/script-no-extension/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/scss-partial/package.json b/packages/core/tests/deslop/fixtures/scss-partial/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/scss-partial/package.json rename to packages/core/tests/deslop/fixtures/scss-partial/package.json diff --git a/packages/deslop-js/tests/fixtures/scss-partial/src/index.ts b/packages/core/tests/deslop/fixtures/scss-partial/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/scss-partial/src/index.ts rename to packages/core/tests/deslop/fixtures/scss-partial/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/scss-partial/src/styles/_mixins.scss b/packages/core/tests/deslop/fixtures/scss-partial/src/styles/_mixins.scss similarity index 100% rename from packages/deslop-js/tests/fixtures/scss-partial/src/styles/_mixins.scss rename to packages/core/tests/deslop/fixtures/scss-partial/src/styles/_mixins.scss diff --git a/packages/deslop-js/tests/fixtures/scss-partial/src/styles/_orphan.scss b/packages/core/tests/deslop/fixtures/scss-partial/src/styles/_orphan.scss similarity index 100% rename from packages/deslop-js/tests/fixtures/scss-partial/src/styles/_orphan.scss rename to packages/core/tests/deslop/fixtures/scss-partial/src/styles/_orphan.scss diff --git a/packages/deslop-js/tests/fixtures/scss-partial/src/styles/_variables.scss b/packages/core/tests/deslop/fixtures/scss-partial/src/styles/_variables.scss similarity index 100% rename from packages/deslop-js/tests/fixtures/scss-partial/src/styles/_variables.scss rename to packages/core/tests/deslop/fixtures/scss-partial/src/styles/_variables.scss diff --git a/packages/deslop-js/tests/fixtures/scss-partial/src/styles/main.scss b/packages/core/tests/deslop/fixtures/scss-partial/src/styles/main.scss similarity index 100% rename from packages/deslop-js/tests/fixtures/scss-partial/src/styles/main.scss rename to packages/core/tests/deslop/fixtures/scss-partial/src/styles/main.scss diff --git a/packages/deslop-js/tests/fixtures/side-effects-glob/package.json b/packages/core/tests/deslop/fixtures/side-effects-glob/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/side-effects-glob/package.json rename to packages/core/tests/deslop/fixtures/side-effects-glob/package.json diff --git a/packages/deslop-js/tests/fixtures/side-effects-glob/src/foo/index.ts b/packages/core/tests/deslop/fixtures/side-effects-glob/src/foo/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/side-effects-glob/src/foo/index.ts rename to packages/core/tests/deslop/fixtures/side-effects-glob/src/foo/index.ts diff --git a/packages/deslop-js/tests/fixtures/side-effects-glob/src/foo/widget/style.ts b/packages/core/tests/deslop/fixtures/side-effects-glob/src/foo/widget/style.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/side-effects-glob/src/foo/widget/style.ts rename to packages/core/tests/deslop/fixtures/side-effects-glob/src/foo/widget/style.ts diff --git a/packages/deslop-js/tests/fixtures/side-effects-glob/src/index.ts b/packages/core/tests/deslop/fixtures/side-effects-glob/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/side-effects-glob/src/index.ts rename to packages/core/tests/deslop/fixtures/side-effects-glob/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/side-effects-glob/src/orphan.ts b/packages/core/tests/deslop/fixtures/side-effects-glob/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/side-effects-glob/src/orphan.ts rename to packages/core/tests/deslop/fixtures/side-effects-glob/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/simple-app/package.json b/packages/core/tests/deslop/fixtures/simple-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/simple-app/package.json rename to packages/core/tests/deslop/fixtures/simple-app/package.json diff --git a/packages/deslop-js/tests/fixtures/simple-app/src/index.ts b/packages/core/tests/deslop/fixtures/simple-app/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/simple-app/src/index.ts rename to packages/core/tests/deslop/fixtures/simple-app/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/simple-app/src/orphan.ts b/packages/core/tests/deslop/fixtures/simple-app/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/simple-app/src/orphan.ts rename to packages/core/tests/deslop/fixtures/simple-app/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/simple-app/src/types.ts b/packages/core/tests/deslop/fixtures/simple-app/src/types.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/simple-app/src/types.ts rename to packages/core/tests/deslop/fixtures/simple-app/src/types.ts diff --git a/packages/deslop-js/tests/fixtures/simple-app/src/utils.ts b/packages/core/tests/deslop/fixtures/simple-app/src/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/simple-app/src/utils.ts rename to packages/core/tests/deslop/fixtures/simple-app/src/utils.ts diff --git a/packages/deslop-js/tests/fixtures/simplifiable-expressions/package.json b/packages/core/tests/deslop/fixtures/simplifiable-expressions/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/simplifiable-expressions/package.json rename to packages/core/tests/deslop/fixtures/simplifiable-expressions/package.json diff --git a/packages/deslop-js/tests/fixtures/simplifiable-expressions/src/index.ts b/packages/core/tests/deslop/fixtures/simplifiable-expressions/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/simplifiable-expressions/src/index.ts rename to packages/core/tests/deslop/fixtures/simplifiable-expressions/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/simplifiable-functions/package.json b/packages/core/tests/deslop/fixtures/simplifiable-functions/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/simplifiable-functions/package.json rename to packages/core/tests/deslop/fixtures/simplifiable-functions/package.json diff --git a/packages/deslop-js/tests/fixtures/simplifiable-functions/src/index.ts b/packages/core/tests/deslop/fixtures/simplifiable-functions/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/simplifiable-functions/src/index.ts rename to packages/core/tests/deslop/fixtures/simplifiable-functions/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/spec-dash-patterns/package.json b/packages/core/tests/deslop/fixtures/spec-dash-patterns/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/spec-dash-patterns/package.json rename to packages/core/tests/deslop/fixtures/spec-dash-patterns/package.json diff --git a/packages/deslop-js/tests/fixtures/spec-dash-patterns/spec/engine_spec.ts b/packages/core/tests/deslop/fixtures/spec-dash-patterns/spec/engine_spec.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/spec-dash-patterns/spec/engine_spec.ts rename to packages/core/tests/deslop/fixtures/spec-dash-patterns/spec/engine_spec.ts diff --git a/packages/deslop-js/tests/fixtures/spec-dash-patterns/spec/utils-spec.ts b/packages/core/tests/deslop/fixtures/spec-dash-patterns/spec/utils-spec.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/spec-dash-patterns/spec/utils-spec.ts rename to packages/core/tests/deslop/fixtures/spec-dash-patterns/spec/utils-spec.ts diff --git a/packages/deslop-js/tests/fixtures/spec-dash-patterns/src/index.ts b/packages/core/tests/deslop/fixtures/spec-dash-patterns/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/spec-dash-patterns/src/index.ts rename to packages/core/tests/deslop/fixtures/spec-dash-patterns/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/spec-dash-patterns/src/orphan.ts b/packages/core/tests/deslop/fixtures/spec-dash-patterns/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/spec-dash-patterns/src/orphan.ts rename to packages/core/tests/deslop/fixtures/spec-dash-patterns/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/src-build-dir/package.json b/packages/core/tests/deslop/fixtures/src-build-dir/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/src-build-dir/package.json rename to packages/core/tests/deslop/fixtures/src-build-dir/package.json diff --git a/packages/deslop-js/tests/fixtures/src-build-dir/src/build/helpers.ts b/packages/core/tests/deslop/fixtures/src-build-dir/src/build/helpers.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/src-build-dir/src/build/helpers.ts rename to packages/core/tests/deslop/fixtures/src-build-dir/src/build/helpers.ts diff --git a/packages/deslop-js/tests/fixtures/src-build-dir/src/build/plugins.ts b/packages/core/tests/deslop/fixtures/src-build-dir/src/build/plugins.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/src-build-dir/src/build/plugins.ts rename to packages/core/tests/deslop/fixtures/src-build-dir/src/build/plugins.ts diff --git a/packages/deslop-js/tests/fixtures/src-build-dir/src/index.ts b/packages/core/tests/deslop/fixtures/src-build-dir/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/src-build-dir/src/index.ts rename to packages/core/tests/deslop/fixtures/src-build-dir/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/src-build-dir/src/orphan.ts b/packages/core/tests/deslop/fixtures/src-build-dir/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/src-build-dir/src/orphan.ts rename to packages/core/tests/deslop/fixtures/src-build-dir/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/src-path-fallback/package.json b/packages/core/tests/deslop/fixtures/src-path-fallback/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/src-path-fallback/package.json rename to packages/core/tests/deslop/fixtures/src-path-fallback/package.json diff --git a/packages/deslop-js/tests/fixtures/src-path-fallback/src/cli/index.ts b/packages/core/tests/deslop/fixtures/src-path-fallback/src/cli/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/src-path-fallback/src/cli/index.ts rename to packages/core/tests/deslop/fixtures/src-path-fallback/src/cli/index.ts diff --git a/packages/deslop-js/tests/fixtures/src-path-fallback/src/cli/runner.ts b/packages/core/tests/deslop/fixtures/src-path-fallback/src/cli/runner.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/src-path-fallback/src/cli/runner.ts rename to packages/core/tests/deslop/fixtures/src-path-fallback/src/cli/runner.ts diff --git a/packages/deslop-js/tests/fixtures/src-path-fallback/src/helper.ts b/packages/core/tests/deslop/fixtures/src-path-fallback/src/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/src-path-fallback/src/helper.ts rename to packages/core/tests/deslop/fixtures/src-path-fallback/src/helper.ts diff --git a/packages/deslop-js/tests/fixtures/src-path-fallback/src/index.ts b/packages/core/tests/deslop/fixtures/src-path-fallback/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/src-path-fallback/src/index.ts rename to packages/core/tests/deslop/fixtures/src-path-fallback/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/src-path-fallback/src/orphan.ts b/packages/core/tests/deslop/fixtures/src-path-fallback/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/src-path-fallback/src/orphan.ts rename to packages/core/tests/deslop/fixtures/src-path-fallback/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/src-path-fallback/tsconfig.json b/packages/core/tests/deslop/fixtures/src-path-fallback/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/src-path-fallback/tsconfig.json rename to packages/core/tests/deslop/fixtures/src-path-fallback/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/star-reexport-chain/package.json b/packages/core/tests/deslop/fixtures/star-reexport-chain/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/star-reexport-chain/package.json rename to packages/core/tests/deslop/fixtures/star-reexport-chain/package.json diff --git a/packages/deslop-js/tests/fixtures/star-reexport-chain/src/barrel1.ts b/packages/core/tests/deslop/fixtures/star-reexport-chain/src/barrel1.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/star-reexport-chain/src/barrel1.ts rename to packages/core/tests/deslop/fixtures/star-reexport-chain/src/barrel1.ts diff --git a/packages/deslop-js/tests/fixtures/star-reexport-chain/src/barrel2.ts b/packages/core/tests/deslop/fixtures/star-reexport-chain/src/barrel2.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/star-reexport-chain/src/barrel2.ts rename to packages/core/tests/deslop/fixtures/star-reexport-chain/src/barrel2.ts diff --git a/packages/deslop-js/tests/fixtures/star-reexport-chain/src/index.ts b/packages/core/tests/deslop/fixtures/star-reexport-chain/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/star-reexport-chain/src/index.ts rename to packages/core/tests/deslop/fixtures/star-reexport-chain/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/star-reexport-chain/src/source.ts b/packages/core/tests/deslop/fixtures/star-reexport-chain/src/source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/star-reexport-chain/src/source.ts rename to packages/core/tests/deslop/fixtures/star-reexport-chain/src/source.ts diff --git a/packages/deslop-js/tests/fixtures/star-selective/package.json b/packages/core/tests/deslop/fixtures/star-selective/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/star-selective/package.json rename to packages/core/tests/deslop/fixtures/star-selective/package.json diff --git a/packages/deslop-js/tests/fixtures/star-selective/src/barrel.ts b/packages/core/tests/deslop/fixtures/star-selective/src/barrel.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/star-selective/src/barrel.ts rename to packages/core/tests/deslop/fixtures/star-selective/src/barrel.ts diff --git a/packages/deslop-js/tests/fixtures/star-selective/src/index.ts b/packages/core/tests/deslop/fixtures/star-selective/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/star-selective/src/index.ts rename to packages/core/tests/deslop/fixtures/star-selective/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/star-selective/src/source.ts b/packages/core/tests/deslop/fixtures/star-selective/src/source.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/star-selective/src/source.ts rename to packages/core/tests/deslop/fixtures/star-selective/src/source.ts diff --git a/packages/deslop-js/tests/fixtures/storybook-app/.storybook/main.ts b/packages/core/tests/deslop/fixtures/storybook-app/.storybook/main.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/storybook-app/.storybook/main.ts rename to packages/core/tests/deslop/fixtures/storybook-app/.storybook/main.ts diff --git a/packages/deslop-js/tests/fixtures/storybook-app/.storybook/preview.ts b/packages/core/tests/deslop/fixtures/storybook-app/.storybook/preview.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/storybook-app/.storybook/preview.ts rename to packages/core/tests/deslop/fixtures/storybook-app/.storybook/preview.ts diff --git a/packages/deslop-js/tests/fixtures/storybook-app/package.json b/packages/core/tests/deslop/fixtures/storybook-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/storybook-app/package.json rename to packages/core/tests/deslop/fixtures/storybook-app/package.json diff --git a/packages/deslop-js/tests/fixtures/storybook-app/src/components/Button.stories.ts b/packages/core/tests/deslop/fixtures/storybook-app/src/components/Button.stories.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/storybook-app/src/components/Button.stories.ts rename to packages/core/tests/deslop/fixtures/storybook-app/src/components/Button.stories.ts diff --git a/packages/deslop-js/tests/fixtures/storybook-app/src/components/Button.ts b/packages/core/tests/deslop/fixtures/storybook-app/src/components/Button.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/storybook-app/src/components/Button.ts rename to packages/core/tests/deslop/fixtures/storybook-app/src/components/Button.ts diff --git a/packages/deslop-js/tests/fixtures/storybook-app/src/orphan.ts b/packages/core/tests/deslop/fixtures/storybook-app/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/storybook-app/src/orphan.ts rename to packages/core/tests/deslop/fixtures/storybook-app/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/storybook-mdx-import/package.json b/packages/core/tests/deslop/fixtures/storybook-mdx-import/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/storybook-mdx-import/package.json rename to packages/core/tests/deslop/fixtures/storybook-mdx-import/package.json diff --git a/packages/deslop-js/tests/fixtures/storybook-mdx-import/src/components/Alert.mdx b/packages/core/tests/deslop/fixtures/storybook-mdx-import/src/components/Alert.mdx similarity index 100% rename from packages/deslop-js/tests/fixtures/storybook-mdx-import/src/components/Alert.mdx rename to packages/core/tests/deslop/fixtures/storybook-mdx-import/src/components/Alert.mdx diff --git a/packages/deslop-js/tests/fixtures/storybook-mdx-import/src/components/Alert.story.tsx b/packages/core/tests/deslop/fixtures/storybook-mdx-import/src/components/Alert.story.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/storybook-mdx-import/src/components/Alert.story.tsx rename to packages/core/tests/deslop/fixtures/storybook-mdx-import/src/components/Alert.story.tsx diff --git a/packages/deslop-js/tests/fixtures/storybook-mdx-import/src/components/Alert.ts b/packages/core/tests/deslop/fixtures/storybook-mdx-import/src/components/Alert.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/storybook-mdx-import/src/components/Alert.ts rename to packages/core/tests/deslop/fixtures/storybook-mdx-import/src/components/Alert.ts diff --git a/packages/deslop-js/tests/fixtures/storybook-mdx-import/src/components/orphan.ts b/packages/core/tests/deslop/fixtures/storybook-mdx-import/src/components/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/storybook-mdx-import/src/components/orphan.ts rename to packages/core/tests/deslop/fixtures/storybook-mdx-import/src/components/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/storybook-mdx-import/src/index.ts b/packages/core/tests/deslop/fixtures/storybook-mdx-import/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/storybook-mdx-import/src/index.ts rename to packages/core/tests/deslop/fixtures/storybook-mdx-import/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/style-alias/package.json b/packages/core/tests/deslop/fixtures/style-alias/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/style-alias/package.json rename to packages/core/tests/deslop/fixtures/style-alias/package.json diff --git a/packages/deslop-js/tests/fixtures/style-alias/src/index.ts b/packages/core/tests/deslop/fixtures/style-alias/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/style-alias/src/index.ts rename to packages/core/tests/deslop/fixtures/style-alias/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/style-alias/src/lib/utils.ts b/packages/core/tests/deslop/fixtures/style-alias/src/lib/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/style-alias/src/lib/utils.ts rename to packages/core/tests/deslop/fixtures/style-alias/src/lib/utils.ts diff --git a/packages/deslop-js/tests/fixtures/style-alias/src/orphan.ts b/packages/core/tests/deslop/fixtures/style-alias/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/style-alias/src/orphan.ts rename to packages/core/tests/deslop/fixtures/style-alias/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/style-alias/src/styles/globals.css b/packages/core/tests/deslop/fixtures/style-alias/src/styles/globals.css similarity index 100% rename from packages/deslop-js/tests/fixtures/style-alias/src/styles/globals.css rename to packages/core/tests/deslop/fixtures/style-alias/src/styles/globals.css diff --git a/packages/deslop-js/tests/fixtures/style-alias/tsconfig.json b/packages/core/tests/deslop/fixtures/style-alias/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/style-alias/tsconfig.json rename to packages/core/tests/deslop/fixtures/style-alias/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/style-export-map/package.json b/packages/core/tests/deslop/fixtures/style-export-map/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/style-export-map/package.json rename to packages/core/tests/deslop/fixtures/style-export-map/package.json diff --git a/packages/deslop-js/tests/fixtures/style-export-map/src/index.ts b/packages/core/tests/deslop/fixtures/style-export-map/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/style-export-map/src/index.ts rename to packages/core/tests/deslop/fixtures/style-export-map/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/style-export-map/src/orphan.css b/packages/core/tests/deslop/fixtures/style-export-map/src/orphan.css similarity index 100% rename from packages/deslop-js/tests/fixtures/style-export-map/src/orphan.css rename to packages/core/tests/deslop/fixtures/style-export-map/src/orphan.css diff --git a/packages/deslop-js/tests/fixtures/style-export-map/src/style.css b/packages/core/tests/deslop/fixtures/style-export-map/src/style.css similarity index 100% rename from packages/deslop-js/tests/fixtures/style-export-map/src/style.css rename to packages/core/tests/deslop/fixtures/style-export-map/src/style.css diff --git a/packages/deslop-js/tests/fixtures/style-export-map/tsconfig.json b/packages/core/tests/deslop/fixtures/style-export-map/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/style-export-map/tsconfig.json rename to packages/core/tests/deslop/fixtures/style-export-map/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/style-imports/package.json b/packages/core/tests/deslop/fixtures/style-imports/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/style-imports/package.json rename to packages/core/tests/deslop/fixtures/style-imports/package.json diff --git a/packages/deslop-js/tests/fixtures/style-imports/src/app.css b/packages/core/tests/deslop/fixtures/style-imports/src/app.css similarity index 100% rename from packages/deslop-js/tests/fixtures/style-imports/src/app.css rename to packages/core/tests/deslop/fixtures/style-imports/src/app.css diff --git a/packages/deslop-js/tests/fixtures/style-imports/src/index.ts b/packages/core/tests/deslop/fixtures/style-imports/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/style-imports/src/index.ts rename to packages/core/tests/deslop/fixtures/style-imports/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/style-imports/styles/base.css b/packages/core/tests/deslop/fixtures/style-imports/styles/base.css similarity index 100% rename from packages/deslop-js/tests/fixtures/style-imports/styles/base.css rename to packages/core/tests/deslop/fixtures/style-imports/styles/base.css diff --git a/packages/deslop-js/tests/fixtures/style-imports/styles/orphan.css b/packages/core/tests/deslop/fixtures/style-imports/styles/orphan.css similarity index 100% rename from packages/deslop-js/tests/fixtures/style-imports/styles/orphan.css rename to packages/core/tests/deslop/fixtures/style-imports/styles/orphan.css diff --git a/packages/deslop-js/tests/fixtures/style-tracking/package.json b/packages/core/tests/deslop/fixtures/style-tracking/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/style-tracking/package.json rename to packages/core/tests/deslop/fixtures/style-tracking/package.json diff --git a/packages/deslop-js/tests/fixtures/style-tracking/src/helper.ts b/packages/core/tests/deslop/fixtures/style-tracking/src/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/style-tracking/src/helper.ts rename to packages/core/tests/deslop/fixtures/style-tracking/src/helper.ts diff --git a/packages/deslop-js/tests/fixtures/style-tracking/src/index.ts b/packages/core/tests/deslop/fixtures/style-tracking/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/style-tracking/src/index.ts rename to packages/core/tests/deslop/fixtures/style-tracking/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/style-tracking/src/orphan.ts b/packages/core/tests/deslop/fixtures/style-tracking/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/style-tracking/src/orphan.ts rename to packages/core/tests/deslop/fixtures/style-tracking/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/style-tracking/src/styles.css b/packages/core/tests/deslop/fixtures/style-tracking/src/styles.css similarity index 100% rename from packages/deslop-js/tests/fixtures/style-tracking/src/styles.css rename to packages/core/tests/deslop/fixtures/style-tracking/src/styles.css diff --git a/packages/deslop-js/tests/fixtures/style-tracking/src/unused.css b/packages/core/tests/deslop/fixtures/style-tracking/src/unused.css similarity index 100% rename from packages/deslop-js/tests/fixtures/style-tracking/src/unused.css rename to packages/core/tests/deslop/fixtures/style-tracking/src/unused.css diff --git a/packages/deslop-js/tests/fixtures/subproject-standalone/app/package.json b/packages/core/tests/deslop/fixtures/subproject-standalone/app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-standalone/app/package.json rename to packages/core/tests/deslop/fixtures/subproject-standalone/app/package.json diff --git a/packages/deslop-js/tests/fixtures/subproject-standalone/app/packages/utils/package.json b/packages/core/tests/deslop/fixtures/subproject-standalone/app/packages/utils/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-standalone/app/packages/utils/package.json rename to packages/core/tests/deslop/fixtures/subproject-standalone/app/packages/utils/package.json diff --git a/packages/deslop-js/tests/fixtures/subproject-standalone/app/packages/utils/src/index.ts b/packages/core/tests/deslop/fixtures/subproject-standalone/app/packages/utils/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-standalone/app/packages/utils/src/index.ts rename to packages/core/tests/deslop/fixtures/subproject-standalone/app/packages/utils/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/subproject-standalone/app/src/index.ts b/packages/core/tests/deslop/fixtures/subproject-standalone/app/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-standalone/app/src/index.ts rename to packages/core/tests/deslop/fixtures/subproject-standalone/app/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/subproject-standalone/app/src/orphan.ts b/packages/core/tests/deslop/fixtures/subproject-standalone/app/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-standalone/app/src/orphan.ts rename to packages/core/tests/deslop/fixtures/subproject-standalone/app/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/subproject-standalone/docs/package.json b/packages/core/tests/deslop/fixtures/subproject-standalone/docs/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-standalone/docs/package.json rename to packages/core/tests/deslop/fixtures/subproject-standalone/docs/package.json diff --git a/packages/deslop-js/tests/fixtures/subproject-standalone/docs/src/guide.ts b/packages/core/tests/deslop/fixtures/subproject-standalone/docs/src/guide.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-standalone/docs/src/guide.ts rename to packages/core/tests/deslop/fixtures/subproject-standalone/docs/src/guide.ts diff --git a/packages/deslop-js/tests/fixtures/subproject-standalone/docs/src/index.ts b/packages/core/tests/deslop/fixtures/subproject-standalone/docs/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-standalone/docs/src/index.ts rename to packages/core/tests/deslop/fixtures/subproject-standalone/docs/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/subproject-standalone/docs/yarn.lock b/packages/core/tests/deslop/fixtures/subproject-standalone/docs/yarn.lock similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-standalone/docs/yarn.lock rename to packages/core/tests/deslop/fixtures/subproject-standalone/docs/yarn.lock diff --git a/packages/deslop-js/tests/fixtures/subproject-standalone/package.json b/packages/core/tests/deslop/fixtures/subproject-standalone/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-standalone/package.json rename to packages/core/tests/deslop/fixtures/subproject-standalone/package.json diff --git a/packages/deslop-js/tests/fixtures/subproject-workspace/app/package.json b/packages/core/tests/deslop/fixtures/subproject-workspace/app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-workspace/app/package.json rename to packages/core/tests/deslop/fixtures/subproject-workspace/app/package.json diff --git a/packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/core/app/page.ts b/packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/core/app/page.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/core/app/page.ts rename to packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/core/app/page.ts diff --git a/packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/core/package.json b/packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/core/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/core/package.json rename to packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/core/package.json diff --git a/packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/core/src/index.ts b/packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/core/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/core/src/index.ts rename to packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/core/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/core/src/unused-util.ts b/packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/core/src/unused-util.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/core/src/unused-util.ts rename to packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/core/src/unused-util.ts diff --git a/packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/icons/package.json b/packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/icons/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/icons/package.json rename to packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/icons/package.json diff --git a/packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/icons/src/icons/heart.ts b/packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/icons/src/icons/heart.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/icons/src/icons/heart.ts rename to packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/icons/src/icons/heart.ts diff --git a/packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/icons/src/icons/star.ts b/packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/icons/src/icons/star.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/icons/src/icons/star.ts rename to packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/icons/src/icons/star.ts diff --git a/packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/icons/src/index.ts b/packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/icons/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-workspace/app/packages/icons/src/index.ts rename to packages/core/tests/deslop/fixtures/subproject-workspace/app/packages/icons/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/subproject-workspace/app/pnpm-workspace.yaml b/packages/core/tests/deslop/fixtures/subproject-workspace/app/pnpm-workspace.yaml similarity index 100% rename from packages/deslop-js/tests/fixtures/subproject-workspace/app/pnpm-workspace.yaml rename to packages/core/tests/deslop/fixtures/subproject-workspace/app/pnpm-workspace.yaml diff --git a/packages/deslop-js/tests/fixtures/tailwind-v4-plugin/package.json b/packages/core/tests/deslop/fixtures/tailwind-v4-plugin/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/tailwind-v4-plugin/package.json rename to packages/core/tests/deslop/fixtures/tailwind-v4-plugin/package.json diff --git a/packages/deslop-js/tests/fixtures/tailwind-v4-plugin/src/index.ts b/packages/core/tests/deslop/fixtures/tailwind-v4-plugin/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/tailwind-v4-plugin/src/index.ts rename to packages/core/tests/deslop/fixtures/tailwind-v4-plugin/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/tailwind-v4-plugin/src/styles.css b/packages/core/tests/deslop/fixtures/tailwind-v4-plugin/src/styles.css similarity index 100% rename from packages/deslop-js/tests/fixtures/tailwind-v4-plugin/src/styles.css rename to packages/core/tests/deslop/fixtures/tailwind-v4-plugin/src/styles.css diff --git a/packages/deslop-js/tests/fixtures/tanstack-app/package.json b/packages/core/tests/deslop/fixtures/tanstack-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/tanstack-app/package.json rename to packages/core/tests/deslop/fixtures/tanstack-app/package.json diff --git a/packages/deslop-js/tests/fixtures/tanstack-app/src/orphan.ts b/packages/core/tests/deslop/fixtures/tanstack-app/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/tanstack-app/src/orphan.ts rename to packages/core/tests/deslop/fixtures/tanstack-app/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/tanstack-app/src/routes/about.tsx b/packages/core/tests/deslop/fixtures/tanstack-app/src/routes/about.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/tanstack-app/src/routes/about.tsx rename to packages/core/tests/deslop/fixtures/tanstack-app/src/routes/about.tsx diff --git a/packages/deslop-js/tests/fixtures/tanstack-app/src/routes/index.tsx b/packages/core/tests/deslop/fixtures/tanstack-app/src/routes/index.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/tanstack-app/src/routes/index.tsx rename to packages/core/tests/deslop/fixtures/tanstack-app/src/routes/index.tsx diff --git a/packages/deslop-js/tests/fixtures/tanstack-app/src/server.ts b/packages/core/tests/deslop/fixtures/tanstack-app/src/server.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/tanstack-app/src/server.ts rename to packages/core/tests/deslop/fixtures/tanstack-app/src/server.ts diff --git a/packages/deslop-js/tests/fixtures/test-custom-ext/package.json b/packages/core/tests/deslop/fixtures/test-custom-ext/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/test-custom-ext/package.json rename to packages/core/tests/deslop/fixtures/test-custom-ext/package.json diff --git a/packages/deslop-js/tests/fixtures/test-custom-ext/src/__e2e__/login.test.ts b/packages/core/tests/deslop/fixtures/test-custom-ext/src/__e2e__/login.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-custom-ext/src/__e2e__/login.test.ts rename to packages/core/tests/deslop/fixtures/test-custom-ext/src/__e2e__/login.test.ts diff --git a/packages/deslop-js/tests/fixtures/test-custom-ext/src/api.servertest.ts b/packages/core/tests/deslop/fixtures/test-custom-ext/src/api.servertest.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-custom-ext/src/api.servertest.ts rename to packages/core/tests/deslop/fixtures/test-custom-ext/src/api.servertest.ts diff --git a/packages/deslop-js/tests/fixtures/test-custom-ext/src/index.ts b/packages/core/tests/deslop/fixtures/test-custom-ext/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-custom-ext/src/index.ts rename to packages/core/tests/deslop/fixtures/test-custom-ext/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/test-custom-ext/src/orphan.ts b/packages/core/tests/deslop/fixtures/test-custom-ext/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-custom-ext/src/orphan.ts rename to packages/core/tests/deslop/fixtures/test-custom-ext/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/test-custom-ext/src/utils.clienttest.ts b/packages/core/tests/deslop/fixtures/test-custom-ext/src/utils.clienttest.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-custom-ext/src/utils.clienttest.ts rename to packages/core/tests/deslop/fixtures/test-custom-ext/src/utils.clienttest.ts diff --git a/packages/deslop-js/tests/fixtures/test-mock-import/__tests__/example.test.ts b/packages/core/tests/deslop/fixtures/test-mock-import/__tests__/example.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-mock-import/__tests__/example.test.ts rename to packages/core/tests/deslop/fixtures/test-mock-import/__tests__/example.test.ts diff --git a/packages/deslop-js/tests/fixtures/test-mock-import/package.json b/packages/core/tests/deslop/fixtures/test-mock-import/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/test-mock-import/package.json rename to packages/core/tests/deslop/fixtures/test-mock-import/package.json diff --git a/packages/deslop-js/tests/fixtures/test-mock-import/src/helper.ts b/packages/core/tests/deslop/fixtures/test-mock-import/src/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-mock-import/src/helper.ts rename to packages/core/tests/deslop/fixtures/test-mock-import/src/helper.ts diff --git a/packages/deslop-js/tests/fixtures/test-mock-import/src/index.ts b/packages/core/tests/deslop/fixtures/test-mock-import/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-mock-import/src/index.ts rename to packages/core/tests/deslop/fixtures/test-mock-import/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/test-mock-import/src/mocked-util.ts b/packages/core/tests/deslop/fixtures/test-mock-import/src/mocked-util.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-mock-import/src/mocked-util.ts rename to packages/core/tests/deslop/fixtures/test-mock-import/src/mocked-util.ts diff --git a/packages/deslop-js/tests/fixtures/test-mock-import/src/orphan.ts b/packages/core/tests/deslop/fixtures/test-mock-import/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-mock-import/src/orphan.ts rename to packages/core/tests/deslop/fixtures/test-mock-import/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/test-no-runner/package.json b/packages/core/tests/deslop/fixtures/test-no-runner/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/test-no-runner/package.json rename to packages/core/tests/deslop/fixtures/test-no-runner/package.json diff --git a/packages/deslop-js/tests/fixtures/test-no-runner/src/helper.test.ts b/packages/core/tests/deslop/fixtures/test-no-runner/src/helper.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-no-runner/src/helper.test.ts rename to packages/core/tests/deslop/fixtures/test-no-runner/src/helper.test.ts diff --git a/packages/deslop-js/tests/fixtures/test-no-runner/src/index.ts b/packages/core/tests/deslop/fixtures/test-no-runner/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-no-runner/src/index.ts rename to packages/core/tests/deslop/fixtures/test-no-runner/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/test-node-runner/package.json b/packages/core/tests/deslop/fixtures/test-node-runner/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/test-node-runner/package.json rename to packages/core/tests/deslop/fixtures/test-node-runner/package.json diff --git a/packages/deslop-js/tests/fixtures/test-node-runner/src/__tests__/main.test.ts b/packages/core/tests/deslop/fixtures/test-node-runner/src/__tests__/main.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-node-runner/src/__tests__/main.test.ts rename to packages/core/tests/deslop/fixtures/test-node-runner/src/__tests__/main.test.ts diff --git a/packages/deslop-js/tests/fixtures/test-node-runner/src/index.ts b/packages/core/tests/deslop/fixtures/test-node-runner/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-node-runner/src/index.ts rename to packages/core/tests/deslop/fixtures/test-node-runner/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/test-node-runner/src/orphan.ts b/packages/core/tests/deslop/fixtures/test-node-runner/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-node-runner/src/orphan.ts rename to packages/core/tests/deslop/fixtures/test-node-runner/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/test-runner-detect/package.json b/packages/core/tests/deslop/fixtures/test-runner-detect/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/test-runner-detect/package.json rename to packages/core/tests/deslop/fixtures/test-runner-detect/package.json diff --git a/packages/deslop-js/tests/fixtures/test-runner-detect/src/__tests__/utils.test.ts b/packages/core/tests/deslop/fixtures/test-runner-detect/src/__tests__/utils.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-runner-detect/src/__tests__/utils.test.ts rename to packages/core/tests/deslop/fixtures/test-runner-detect/src/__tests__/utils.test.ts diff --git a/packages/deslop-js/tests/fixtures/test-runner-detect/src/helper.test.ts b/packages/core/tests/deslop/fixtures/test-runner-detect/src/helper.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-runner-detect/src/helper.test.ts rename to packages/core/tests/deslop/fixtures/test-runner-detect/src/helper.test.ts diff --git a/packages/deslop-js/tests/fixtures/test-runner-detect/src/helper.ts b/packages/core/tests/deslop/fixtures/test-runner-detect/src/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-runner-detect/src/helper.ts rename to packages/core/tests/deslop/fixtures/test-runner-detect/src/helper.ts diff --git a/packages/deslop-js/tests/fixtures/test-runner-detect/src/index.ts b/packages/core/tests/deslop/fixtures/test-runner-detect/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-runner-detect/src/index.ts rename to packages/core/tests/deslop/fixtures/test-runner-detect/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/test-runner-detect/src/orphan.ts b/packages/core/tests/deslop/fixtures/test-runner-detect/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-runner-detect/src/orphan.ts rename to packages/core/tests/deslop/fixtures/test-runner-detect/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/test-runner-detect/src/test-only-used.ts b/packages/core/tests/deslop/fixtures/test-runner-detect/src/test-only-used.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/test-runner-detect/src/test-only-used.ts rename to packages/core/tests/deslop/fixtures/test-runner-detect/src/test-only-used.ts diff --git a/packages/deslop-js/tests/fixtures/tsconfig-wildcard/package.json b/packages/core/tests/deslop/fixtures/tsconfig-wildcard/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/tsconfig-wildcard/package.json rename to packages/core/tests/deslop/fixtures/tsconfig-wildcard/package.json diff --git a/packages/deslop-js/tests/fixtures/tsconfig-wildcard/src/constants/api.ts b/packages/core/tests/deslop/fixtures/tsconfig-wildcard/src/constants/api.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/tsconfig-wildcard/src/constants/api.ts rename to packages/core/tests/deslop/fixtures/tsconfig-wildcard/src/constants/api.ts diff --git a/packages/deslop-js/tests/fixtures/tsconfig-wildcard/src/index.ts b/packages/core/tests/deslop/fixtures/tsconfig-wildcard/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/tsconfig-wildcard/src/index.ts rename to packages/core/tests/deslop/fixtures/tsconfig-wildcard/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/tsconfig-wildcard/src/orphan.ts b/packages/core/tests/deslop/fixtures/tsconfig-wildcard/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/tsconfig-wildcard/src/orphan.ts rename to packages/core/tests/deslop/fixtures/tsconfig-wildcard/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/tsconfig-wildcard/tsconfig.json b/packages/core/tests/deslop/fixtures/tsconfig-wildcard/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/tsconfig-wildcard/tsconfig.json rename to packages/core/tests/deslop/fixtures/tsconfig-wildcard/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/tsdown-entry/package.json b/packages/core/tests/deslop/fixtures/tsdown-entry/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/tsdown-entry/package.json rename to packages/core/tests/deslop/fixtures/tsdown-entry/package.json diff --git a/packages/deslop-js/tests/fixtures/tsdown-entry/src/main.ts b/packages/core/tests/deslop/fixtures/tsdown-entry/src/main.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/tsdown-entry/src/main.ts rename to packages/core/tests/deslop/fixtures/tsdown-entry/src/main.ts diff --git a/packages/deslop-js/tests/fixtures/tsdown-entry/src/preload.ts b/packages/core/tests/deslop/fixtures/tsdown-entry/src/preload.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/tsdown-entry/src/preload.ts rename to packages/core/tests/deslop/fixtures/tsdown-entry/src/preload.ts diff --git a/packages/deslop-js/tests/fixtures/tsdown-entry/src/unused.ts b/packages/core/tests/deslop/fixtures/tsdown-entry/src/unused.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/tsdown-entry/src/unused.ts rename to packages/core/tests/deslop/fixtures/tsdown-entry/src/unused.ts diff --git a/packages/deslop-js/tests/fixtures/tsdown-entry/src/utils.ts b/packages/core/tests/deslop/fixtures/tsdown-entry/src/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/tsdown-entry/src/utils.ts rename to packages/core/tests/deslop/fixtures/tsdown-entry/src/utils.ts diff --git a/packages/deslop-js/tests/fixtures/tsdown-entry/tsdown.config.ts b/packages/core/tests/deslop/fixtures/tsdown-entry/tsdown.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/tsdown-entry/tsdown.config.ts rename to packages/core/tests/deslop/fixtures/tsdown-entry/tsdown.config.ts diff --git a/packages/deslop-js/tests/fixtures/type-cycle/package.json b/packages/core/tests/deslop/fixtures/type-cycle/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/type-cycle/package.json rename to packages/core/tests/deslop/fixtures/type-cycle/package.json diff --git a/packages/deslop-js/tests/fixtures/type-cycle/src/index.ts b/packages/core/tests/deslop/fixtures/type-cycle/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/type-cycle/src/index.ts rename to packages/core/tests/deslop/fixtures/type-cycle/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/type-cycle/src/post.ts b/packages/core/tests/deslop/fixtures/type-cycle/src/post.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/type-cycle/src/post.ts rename to packages/core/tests/deslop/fixtures/type-cycle/src/post.ts diff --git a/packages/deslop-js/tests/fixtures/type-cycle/src/user.ts b/packages/core/tests/deslop/fixtures/type-cycle/src/user.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/type-cycle/src/user.ts rename to packages/core/tests/deslop/fixtures/type-cycle/src/user.ts diff --git a/packages/deslop-js/tests/fixtures/type-cycle/tsconfig.json b/packages/core/tests/deslop/fixtures/type-cycle/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/type-cycle/tsconfig.json rename to packages/core/tests/deslop/fixtures/type-cycle/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/type-deps/package.json b/packages/core/tests/deslop/fixtures/type-deps/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/type-deps/package.json rename to packages/core/tests/deslop/fixtures/type-deps/package.json diff --git a/packages/deslop-js/tests/fixtures/type-deps/src/index.ts b/packages/core/tests/deslop/fixtures/type-deps/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/type-deps/src/index.ts rename to packages/core/tests/deslop/fixtures/type-deps/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/type-reexport-filter/consumer.ts b/packages/core/tests/deslop/fixtures/type-reexport-filter/consumer.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/type-reexport-filter/consumer.ts rename to packages/core/tests/deslop/fixtures/type-reexport-filter/consumer.ts diff --git a/packages/deslop-js/tests/fixtures/type-reexport-filter/index.ts b/packages/core/tests/deslop/fixtures/type-reexport-filter/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/type-reexport-filter/index.ts rename to packages/core/tests/deslop/fixtures/type-reexport-filter/index.ts diff --git a/packages/deslop-js/tests/fixtures/type-reexport-filter/package.json b/packages/core/tests/deslop/fixtures/type-reexport-filter/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/type-reexport-filter/package.json rename to packages/core/tests/deslop/fixtures/type-reexport-filter/package.json diff --git a/packages/deslop-js/tests/fixtures/type-reexport-filter/types.ts b/packages/core/tests/deslop/fixtures/type-reexport-filter/types.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/type-reexport-filter/types.ts rename to packages/core/tests/deslop/fixtures/type-reexport-filter/types.ts diff --git a/packages/deslop-js/tests/fixtures/type-reexport-filter/user.ts b/packages/core/tests/deslop/fixtures/type-reexport-filter/user.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/type-reexport-filter/user.ts rename to packages/core/tests/deslop/fixtures/type-reexport-filter/user.ts diff --git a/packages/deslop-js/tests/fixtures/typescript-smells/package.json b/packages/core/tests/deslop/fixtures/typescript-smells/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/typescript-smells/package.json rename to packages/core/tests/deslop/fixtures/typescript-smells/package.json diff --git a/packages/deslop-js/tests/fixtures/typescript-smells/src/alpha.ts b/packages/core/tests/deslop/fixtures/typescript-smells/src/alpha.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/typescript-smells/src/alpha.ts rename to packages/core/tests/deslop/fixtures/typescript-smells/src/alpha.ts diff --git a/packages/deslop-js/tests/fixtures/typescript-smells/src/beta.ts b/packages/core/tests/deslop/fixtures/typescript-smells/src/beta.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/typescript-smells/src/beta.ts rename to packages/core/tests/deslop/fixtures/typescript-smells/src/beta.ts diff --git a/packages/deslop-js/tests/fixtures/typescript-smells/src/delta.ts b/packages/core/tests/deslop/fixtures/typescript-smells/src/delta.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/typescript-smells/src/delta.ts rename to packages/core/tests/deslop/fixtures/typescript-smells/src/delta.ts diff --git a/packages/deslop-js/tests/fixtures/typescript-smells/src/gamma.ts b/packages/core/tests/deslop/fixtures/typescript-smells/src/gamma.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/typescript-smells/src/gamma.ts rename to packages/core/tests/deslop/fixtures/typescript-smells/src/gamma.ts diff --git a/packages/deslop-js/tests/fixtures/typescript-smells/src/index.ts b/packages/core/tests/deslop/fixtures/typescript-smells/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/typescript-smells/src/index.ts rename to packages/core/tests/deslop/fixtures/typescript-smells/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-class-members-basic/package.json b/packages/core/tests/deslop/fixtures/unused-class-members-basic/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-class-members-basic/package.json rename to packages/core/tests/deslop/fixtures/unused-class-members-basic/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-class-members-basic/src/calculator.ts b/packages/core/tests/deslop/fixtures/unused-class-members-basic/src/calculator.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-class-members-basic/src/calculator.ts rename to packages/core/tests/deslop/fixtures/unused-class-members-basic/src/calculator.ts diff --git a/packages/deslop-js/tests/fixtures/unused-class-members-basic/src/index.ts b/packages/core/tests/deslop/fixtures/unused-class-members-basic/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-class-members-basic/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-class-members-basic/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-class-members-basic/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-class-members-basic/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-class-members-basic/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-class-members-basic/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-class-members-decorated/package.json b/packages/core/tests/deslop/fixtures/unused-class-members-decorated/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-class-members-decorated/package.json rename to packages/core/tests/deslop/fixtures/unused-class-members-decorated/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-class-members-decorated/src/controller.ts b/packages/core/tests/deslop/fixtures/unused-class-members-decorated/src/controller.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-class-members-decorated/src/controller.ts rename to packages/core/tests/deslop/fixtures/unused-class-members-decorated/src/controller.ts diff --git a/packages/deslop-js/tests/fixtures/unused-class-members-decorated/src/decorators.ts b/packages/core/tests/deslop/fixtures/unused-class-members-decorated/src/decorators.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-class-members-decorated/src/decorators.ts rename to packages/core/tests/deslop/fixtures/unused-class-members-decorated/src/decorators.ts diff --git a/packages/deslop-js/tests/fixtures/unused-class-members-decorated/src/index.ts b/packages/core/tests/deslop/fixtures/unused-class-members-decorated/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-class-members-decorated/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-class-members-decorated/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-class-members-decorated/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-class-members-decorated/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-class-members-decorated/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-class-members-decorated/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-class-members-inherited/package.json b/packages/core/tests/deslop/fixtures/unused-class-members-inherited/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-class-members-inherited/package.json rename to packages/core/tests/deslop/fixtures/unused-class-members-inherited/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-class-members-inherited/src/animals.ts b/packages/core/tests/deslop/fixtures/unused-class-members-inherited/src/animals.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-class-members-inherited/src/animals.ts rename to packages/core/tests/deslop/fixtures/unused-class-members-inherited/src/animals.ts diff --git a/packages/deslop-js/tests/fixtures/unused-class-members-inherited/src/index.ts b/packages/core/tests/deslop/fixtures/unused-class-members-inherited/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-class-members-inherited/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-class-members-inherited/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-class-members-inherited/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-class-members-inherited/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-class-members-inherited/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-class-members-inherited/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-const/package.json b/packages/core/tests/deslop/fixtures/unused-enum-members-const/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-const/package.json rename to packages/core/tests/deslop/fixtures/unused-enum-members-const/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-const/src/flags.ts b/packages/core/tests/deslop/fixtures/unused-enum-members-const/src/flags.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-const/src/flags.ts rename to packages/core/tests/deslop/fixtures/unused-enum-members-const/src/flags.ts diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-const/src/index.ts b/packages/core/tests/deslop/fixtures/unused-enum-members-const/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-const/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-enum-members-const/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-const/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-enum-members-const/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-const/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-enum-members-const/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-numeric/package.json b/packages/core/tests/deslop/fixtures/unused-enum-members-numeric/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-numeric/package.json rename to packages/core/tests/deslop/fixtures/unused-enum-members-numeric/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-numeric/src/index.ts b/packages/core/tests/deslop/fixtures/unused-enum-members-numeric/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-numeric/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-enum-members-numeric/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-numeric/src/level.ts b/packages/core/tests/deslop/fixtures/unused-enum-members-numeric/src/level.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-numeric/src/level.ts rename to packages/core/tests/deslop/fixtures/unused-enum-members-numeric/src/level.ts diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-numeric/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-enum-members-numeric/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-numeric/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-enum-members-numeric/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-reverse-lookup/package.json b/packages/core/tests/deslop/fixtures/unused-enum-members-reverse-lookup/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-reverse-lookup/package.json rename to packages/core/tests/deslop/fixtures/unused-enum-members-reverse-lookup/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-reverse-lookup/src/code.ts b/packages/core/tests/deslop/fixtures/unused-enum-members-reverse-lookup/src/code.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-reverse-lookup/src/code.ts rename to packages/core/tests/deslop/fixtures/unused-enum-members-reverse-lookup/src/code.ts diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-reverse-lookup/src/index.ts b/packages/core/tests/deslop/fixtures/unused-enum-members-reverse-lookup/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-reverse-lookup/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-enum-members-reverse-lookup/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-reverse-lookup/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-enum-members-reverse-lookup/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-reverse-lookup/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-enum-members-reverse-lookup/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-string/package.json b/packages/core/tests/deslop/fixtures/unused-enum-members-string/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-string/package.json rename to packages/core/tests/deslop/fixtures/unused-enum-members-string/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-string/src/index.ts b/packages/core/tests/deslop/fixtures/unused-enum-members-string/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-string/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-enum-members-string/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-string/src/status.ts b/packages/core/tests/deslop/fixtures/unused-enum-members-string/src/status.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-string/src/status.ts rename to packages/core/tests/deslop/fixtures/unused-enum-members-string/src/status.ts diff --git a/packages/deslop-js/tests/fixtures/unused-enum-members-string/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-enum-members-string/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-enum-members-string/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-enum-members-string/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-basic/package.json b/packages/core/tests/deslop/fixtures/unused-types-basic/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-basic/package.json rename to packages/core/tests/deslop/fixtures/unused-types-basic/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-basic/src/consumer.ts b/packages/core/tests/deslop/fixtures/unused-types-basic/src/consumer.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-basic/src/consumer.ts rename to packages/core/tests/deslop/fixtures/unused-types-basic/src/consumer.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-basic/src/index.ts b/packages/core/tests/deslop/fixtures/unused-types-basic/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-basic/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-types-basic/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-basic/src/types.ts b/packages/core/tests/deslop/fixtures/unused-types-basic/src/types.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-basic/src/types.ts rename to packages/core/tests/deslop/fixtures/unused-types-basic/src/types.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-basic/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-types-basic/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-basic/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-types-basic/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-decl-merge/package.json b/packages/core/tests/deslop/fixtures/unused-types-decl-merge/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-decl-merge/package.json rename to packages/core/tests/deslop/fixtures/unused-types-decl-merge/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-decl-merge/src/index.ts b/packages/core/tests/deslop/fixtures/unused-types-decl-merge/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-decl-merge/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-types-decl-merge/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-decl-merge/src/merged.ts b/packages/core/tests/deslop/fixtures/unused-types-decl-merge/src/merged.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-decl-merge/src/merged.ts rename to packages/core/tests/deslop/fixtures/unused-types-decl-merge/src/merged.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-decl-merge/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-types-decl-merge/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-decl-merge/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-types-decl-merge/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-entry-export/package.json b/packages/core/tests/deslop/fixtures/unused-types-entry-export/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-entry-export/package.json rename to packages/core/tests/deslop/fixtures/unused-types-entry-export/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-entry-export/src/index.ts b/packages/core/tests/deslop/fixtures/unused-types-entry-export/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-entry-export/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-types-entry-export/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-entry-export/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-types-entry-export/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-entry-export/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-types-entry-export/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-extends/package.json b/packages/core/tests/deslop/fixtures/unused-types-extends/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-extends/package.json rename to packages/core/tests/deslop/fixtures/unused-types-extends/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-extends/src/index.ts b/packages/core/tests/deslop/fixtures/unused-types-extends/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-extends/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-types-extends/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-extends/src/types.ts b/packages/core/tests/deslop/fixtures/unused-types-extends/src/types.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-extends/src/types.ts rename to packages/core/tests/deslop/fixtures/unused-types-extends/src/types.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-extends/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-types-extends/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-extends/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-types-extends/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-generics/package.json b/packages/core/tests/deslop/fixtures/unused-types-generics/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-generics/package.json rename to packages/core/tests/deslop/fixtures/unused-types-generics/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-generics/src/index.ts b/packages/core/tests/deslop/fixtures/unused-types-generics/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-generics/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-types-generics/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-generics/src/types.ts b/packages/core/tests/deslop/fixtures/unused-types-generics/src/types.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-generics/src/types.ts rename to packages/core/tests/deslop/fixtures/unused-types-generics/src/types.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-generics/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-types-generics/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-generics/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-types-generics/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-import-type/package.json b/packages/core/tests/deslop/fixtures/unused-types-import-type/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-import-type/package.json rename to packages/core/tests/deslop/fixtures/unused-types-import-type/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-import-type/src/index.ts b/packages/core/tests/deslop/fixtures/unused-types-import-type/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-import-type/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-types-import-type/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-import-type/src/types.ts b/packages/core/tests/deslop/fixtures/unused-types-import-type/src/types.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-import-type/src/types.ts rename to packages/core/tests/deslop/fixtures/unused-types-import-type/src/types.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-import-type/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-types-import-type/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-import-type/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-types-import-type/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-jsdoc/package.json b/packages/core/tests/deslop/fixtures/unused-types-jsdoc/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-jsdoc/package.json rename to packages/core/tests/deslop/fixtures/unused-types-jsdoc/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-jsdoc/src/bridge.ts b/packages/core/tests/deslop/fixtures/unused-types-jsdoc/src/bridge.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-jsdoc/src/bridge.ts rename to packages/core/tests/deslop/fixtures/unused-types-jsdoc/src/bridge.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-jsdoc/src/index.js b/packages/core/tests/deslop/fixtures/unused-types-jsdoc/src/index.js similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-jsdoc/src/index.js rename to packages/core/tests/deslop/fixtures/unused-types-jsdoc/src/index.js diff --git a/packages/deslop-js/tests/fixtures/unused-types-jsdoc/src/jsdoc-consumer.js b/packages/core/tests/deslop/fixtures/unused-types-jsdoc/src/jsdoc-consumer.js similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-jsdoc/src/jsdoc-consumer.js rename to packages/core/tests/deslop/fixtures/unused-types-jsdoc/src/jsdoc-consumer.js diff --git a/packages/deslop-js/tests/fixtures/unused-types-jsdoc/src/types.ts b/packages/core/tests/deslop/fixtures/unused-types-jsdoc/src/types.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-jsdoc/src/types.ts rename to packages/core/tests/deslop/fixtures/unused-types-jsdoc/src/types.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-jsdoc/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-types-jsdoc/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-jsdoc/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-types-jsdoc/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-nested/package.json b/packages/core/tests/deslop/fixtures/unused-types-nested/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-nested/package.json rename to packages/core/tests/deslop/fixtures/unused-types-nested/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-nested/src/index.ts b/packages/core/tests/deslop/fixtures/unused-types-nested/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-nested/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-types-nested/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-nested/src/types.ts b/packages/core/tests/deslop/fixtures/unused-types-nested/src/types.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-nested/src/types.ts rename to packages/core/tests/deslop/fixtures/unused-types-nested/src/types.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-nested/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-types-nested/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-nested/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-types-nested/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-reexport-chain/package.json b/packages/core/tests/deslop/fixtures/unused-types-reexport-chain/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-reexport-chain/package.json rename to packages/core/tests/deslop/fixtures/unused-types-reexport-chain/package.json diff --git a/packages/deslop-js/tests/fixtures/unused-types-reexport-chain/src/a.ts b/packages/core/tests/deslop/fixtures/unused-types-reexport-chain/src/a.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-reexport-chain/src/a.ts rename to packages/core/tests/deslop/fixtures/unused-types-reexport-chain/src/a.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-reexport-chain/src/b.ts b/packages/core/tests/deslop/fixtures/unused-types-reexport-chain/src/b.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-reexport-chain/src/b.ts rename to packages/core/tests/deslop/fixtures/unused-types-reexport-chain/src/b.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-reexport-chain/src/c.ts b/packages/core/tests/deslop/fixtures/unused-types-reexport-chain/src/c.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-reexport-chain/src/c.ts rename to packages/core/tests/deslop/fixtures/unused-types-reexport-chain/src/c.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-reexport-chain/src/index.ts b/packages/core/tests/deslop/fixtures/unused-types-reexport-chain/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-reexport-chain/src/index.ts rename to packages/core/tests/deslop/fixtures/unused-types-reexport-chain/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/unused-types-reexport-chain/tsconfig.json b/packages/core/tests/deslop/fixtures/unused-types-reexport-chain/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/unused-types-reexport-chain/tsconfig.json rename to packages/core/tests/deslop/fixtures/unused-types-reexport-chain/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/vercel-config-app/package.json b/packages/core/tests/deslop/fixtures/vercel-config-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/vercel-config-app/package.json rename to packages/core/tests/deslop/fixtures/vercel-config-app/package.json diff --git a/packages/deslop-js/tests/fixtures/vercel-config-app/src/index.ts b/packages/core/tests/deslop/fixtures/vercel-config-app/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vercel-config-app/src/index.ts rename to packages/core/tests/deslop/fixtures/vercel-config-app/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/vercel-config-app/vercel.ts b/packages/core/tests/deslop/fixtures/vercel-config-app/vercel.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vercel-config-app/vercel.ts rename to packages/core/tests/deslop/fixtures/vercel-config-app/vercel.ts diff --git a/packages/deslop-js/tests/fixtures/vite-app/package.json b/packages/core/tests/deslop/fixtures/vite-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-app/package.json rename to packages/core/tests/deslop/fixtures/vite-app/package.json diff --git a/packages/deslop-js/tests/fixtures/vite-app/src/main.tsx b/packages/core/tests/deslop/fixtures/vite-app/src/main.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-app/src/main.tsx rename to packages/core/tests/deslop/fixtures/vite-app/src/main.tsx diff --git a/packages/deslop-js/tests/fixtures/vite-app/src/orphan.ts b/packages/core/tests/deslop/fixtures/vite-app/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-app/src/orphan.ts rename to packages/core/tests/deslop/fixtures/vite-app/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/vite-app/src/render.ts b/packages/core/tests/deslop/fixtures/vite-app/src/render.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-app/src/render.ts rename to packages/core/tests/deslop/fixtures/vite-app/src/render.ts diff --git a/packages/deslop-js/tests/fixtures/vite-app/vite.config.ts b/packages/core/tests/deslop/fixtures/vite-app/vite.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-app/vite.config.ts rename to packages/core/tests/deslop/fixtures/vite-app/vite.config.ts diff --git a/packages/deslop-js/tests/fixtures/vite-glob-import/package.json b/packages/core/tests/deslop/fixtures/vite-glob-import/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-glob-import/package.json rename to packages/core/tests/deslop/fixtures/vite-glob-import/package.json diff --git a/packages/deslop-js/tests/fixtures/vite-glob-import/src/index.ts b/packages/core/tests/deslop/fixtures/vite-glob-import/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-glob-import/src/index.ts rename to packages/core/tests/deslop/fixtures/vite-glob-import/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/vite-glob-import/src/layouts/main.ts b/packages/core/tests/deslop/fixtures/vite-glob-import/src/layouts/main.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-glob-import/src/layouts/main.ts rename to packages/core/tests/deslop/fixtures/vite-glob-import/src/layouts/main.ts diff --git a/packages/deslop-js/tests/fixtures/vite-glob-import/src/modules/alpha.ts b/packages/core/tests/deslop/fixtures/vite-glob-import/src/modules/alpha.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-glob-import/src/modules/alpha.ts rename to packages/core/tests/deslop/fixtures/vite-glob-import/src/modules/alpha.ts diff --git a/packages/deslop-js/tests/fixtures/vite-glob-import/src/modules/beta.ts b/packages/core/tests/deslop/fixtures/vite-glob-import/src/modules/beta.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-glob-import/src/modules/beta.ts rename to packages/core/tests/deslop/fixtures/vite-glob-import/src/modules/beta.ts diff --git a/packages/deslop-js/tests/fixtures/vite-glob-import/src/orphan.ts b/packages/core/tests/deslop/fixtures/vite-glob-import/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-glob-import/src/orphan.ts rename to packages/core/tests/deslop/fixtures/vite-glob-import/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/vite-resolve-alias/package.json b/packages/core/tests/deslop/fixtures/vite-resolve-alias/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-resolve-alias/package.json rename to packages/core/tests/deslop/fixtures/vite-resolve-alias/package.json diff --git a/packages/deslop-js/tests/fixtures/vite-resolve-alias/src/lib/orphan.ts b/packages/core/tests/deslop/fixtures/vite-resolve-alias/src/lib/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-resolve-alias/src/lib/orphan.ts rename to packages/core/tests/deslop/fixtures/vite-resolve-alias/src/lib/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/vite-resolve-alias/src/lib/util.ts b/packages/core/tests/deslop/fixtures/vite-resolve-alias/src/lib/util.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-resolve-alias/src/lib/util.ts rename to packages/core/tests/deslop/fixtures/vite-resolve-alias/src/lib/util.ts diff --git a/packages/deslop-js/tests/fixtures/vite-resolve-alias/src/main.ts b/packages/core/tests/deslop/fixtures/vite-resolve-alias/src/main.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-resolve-alias/src/main.ts rename to packages/core/tests/deslop/fixtures/vite-resolve-alias/src/main.ts diff --git a/packages/deslop-js/tests/fixtures/vite-resolve-alias/src/widget.ts b/packages/core/tests/deslop/fixtures/vite-resolve-alias/src/widget.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-resolve-alias/src/widget.ts rename to packages/core/tests/deslop/fixtures/vite-resolve-alias/src/widget.ts diff --git a/packages/deslop-js/tests/fixtures/vite-resolve-alias/vite.config.ts b/packages/core/tests/deslop/fixtures/vite-resolve-alias/vite.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vite-resolve-alias/vite.config.ts rename to packages/core/tests/deslop/fixtures/vite-resolve-alias/vite.config.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-automock/__tests__/server.test.ts b/packages/core/tests/deslop/fixtures/vitest-automock/__tests__/server.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-automock/__tests__/server.test.ts rename to packages/core/tests/deslop/fixtures/vitest-automock/__tests__/server.test.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-automock/__tests__/utils.test.ts b/packages/core/tests/deslop/fixtures/vitest-automock/__tests__/utils.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-automock/__tests__/utils.test.ts rename to packages/core/tests/deslop/fixtures/vitest-automock/__tests__/utils.test.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-automock/package.json b/packages/core/tests/deslop/fixtures/vitest-automock/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-automock/package.json rename to packages/core/tests/deslop/fixtures/vitest-automock/package.json diff --git a/packages/deslop-js/tests/fixtures/vitest-automock/src/index.ts b/packages/core/tests/deslop/fixtures/vitest-automock/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-automock/src/index.ts rename to packages/core/tests/deslop/fixtures/vitest-automock/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-automock/src/server/__mocks__/api.ts b/packages/core/tests/deslop/fixtures/vitest-automock/src/server/__mocks__/api.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-automock/src/server/__mocks__/api.ts rename to packages/core/tests/deslop/fixtures/vitest-automock/src/server/__mocks__/api.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-automock/src/server/api.ts b/packages/core/tests/deslop/fixtures/vitest-automock/src/server/api.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-automock/src/server/api.ts rename to packages/core/tests/deslop/fixtures/vitest-automock/src/server/api.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-automock/src/server/unused.ts b/packages/core/tests/deslop/fixtures/vitest-automock/src/server/unused.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-automock/src/server/unused.ts rename to packages/core/tests/deslop/fixtures/vitest-automock/src/server/unused.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-automock/src/utils/__mocks__/helper.ts b/packages/core/tests/deslop/fixtures/vitest-automock/src/utils/__mocks__/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-automock/src/utils/__mocks__/helper.ts rename to packages/core/tests/deslop/fixtures/vitest-automock/src/utils/__mocks__/helper.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-automock/src/utils/helper.ts b/packages/core/tests/deslop/fixtures/vitest-automock/src/utils/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-automock/src/utils/helper.ts rename to packages/core/tests/deslop/fixtures/vitest-automock/src/utils/helper.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-coverage/orphan.ts b/packages/core/tests/deslop/fixtures/vitest-coverage/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-coverage/orphan.ts rename to packages/core/tests/deslop/fixtures/vitest-coverage/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-coverage/package.json b/packages/core/tests/deslop/fixtures/vitest-coverage/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-coverage/package.json rename to packages/core/tests/deslop/fixtures/vitest-coverage/package.json diff --git a/packages/deslop-js/tests/fixtures/vitest-coverage/src/core.ts b/packages/core/tests/deslop/fixtures/vitest-coverage/src/core.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-coverage/src/core.ts rename to packages/core/tests/deslop/fixtures/vitest-coverage/src/core.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-coverage/src/utils.ts b/packages/core/tests/deslop/fixtures/vitest-coverage/src/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-coverage/src/utils.ts rename to packages/core/tests/deslop/fixtures/vitest-coverage/src/utils.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-coverage/tests/core.test.ts b/packages/core/tests/deslop/fixtures/vitest-coverage/tests/core.test.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-coverage/tests/core.test.ts rename to packages/core/tests/deslop/fixtures/vitest-coverage/tests/core.test.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-coverage/vitest.config.ts b/packages/core/tests/deslop/fixtures/vitest-coverage/vitest.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-coverage/vitest.config.ts rename to packages/core/tests/deslop/fixtures/vitest-coverage/vitest.config.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-custom/package.json b/packages/core/tests/deslop/fixtures/vitest-custom/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-custom/package.json rename to packages/core/tests/deslop/fixtures/vitest-custom/package.json diff --git a/packages/deslop-js/tests/fixtures/vitest-custom/spec/utils-spec.ts b/packages/core/tests/deslop/fixtures/vitest-custom/spec/utils-spec.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-custom/spec/utils-spec.ts rename to packages/core/tests/deslop/fixtures/vitest-custom/spec/utils-spec.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-custom/src/index.ts b/packages/core/tests/deslop/fixtures/vitest-custom/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-custom/src/index.ts rename to packages/core/tests/deslop/fixtures/vitest-custom/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-custom/src/orphan.ts b/packages/core/tests/deslop/fixtures/vitest-custom/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-custom/src/orphan.ts rename to packages/core/tests/deslop/fixtures/vitest-custom/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-custom/tsconfig.json b/packages/core/tests/deslop/fixtures/vitest-custom/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-custom/tsconfig.json rename to packages/core/tests/deslop/fixtures/vitest-custom/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/vitest-custom/vitest.config.ts b/packages/core/tests/deslop/fixtures/vitest-custom/vitest.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-custom/vitest.config.ts rename to packages/core/tests/deslop/fixtures/vitest-custom/vitest.config.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-override-target/package.json b/packages/core/tests/deslop/fixtures/vitest-override-target/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-override-target/package.json rename to packages/core/tests/deslop/fixtures/vitest-override-target/package.json diff --git a/packages/deslop-js/tests/fixtures/vitest-override-target/pnpm-workspace.yaml b/packages/core/tests/deslop/fixtures/vitest-override-target/pnpm-workspace.yaml similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-override-target/pnpm-workspace.yaml rename to packages/core/tests/deslop/fixtures/vitest-override-target/pnpm-workspace.yaml diff --git a/packages/deslop-js/tests/fixtures/vitest-override-target/src/index.ts b/packages/core/tests/deslop/fixtures/vitest-override-target/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-override-target/src/index.ts rename to packages/core/tests/deslop/fixtures/vitest-override-target/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-override-target/vitest.config.ts b/packages/core/tests/deslop/fixtures/vitest-override-target/vitest.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-override-target/vitest.config.ts rename to packages/core/tests/deslop/fixtures/vitest-override-target/vitest.config.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-setup/package.json b/packages/core/tests/deslop/fixtures/vitest-setup/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-setup/package.json rename to packages/core/tests/deslop/fixtures/vitest-setup/package.json diff --git a/packages/deslop-js/tests/fixtures/vitest-setup/src/index.ts b/packages/core/tests/deslop/fixtures/vitest-setup/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-setup/src/index.ts rename to packages/core/tests/deslop/fixtures/vitest-setup/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-setup/src/orphan.ts b/packages/core/tests/deslop/fixtures/vitest-setup/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-setup/src/orphan.ts rename to packages/core/tests/deslop/fixtures/vitest-setup/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-setup/src/test/setup.ts b/packages/core/tests/deslop/fixtures/vitest-setup/src/test/setup.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-setup/src/test/setup.ts rename to packages/core/tests/deslop/fixtures/vitest-setup/src/test/setup.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-setup/src/utils.ts b/packages/core/tests/deslop/fixtures/vitest-setup/src/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-setup/src/utils.ts rename to packages/core/tests/deslop/fixtures/vitest-setup/src/utils.ts diff --git a/packages/deslop-js/tests/fixtures/vitest-setup/vitest.config.ts b/packages/core/tests/deslop/fixtures/vitest-setup/vitest.config.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vitest-setup/vitest.config.ts rename to packages/core/tests/deslop/fixtures/vitest-setup/vitest.config.ts diff --git a/packages/deslop-js/tests/fixtures/vue-app/package.json b/packages/core/tests/deslop/fixtures/vue-app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/vue-app/package.json rename to packages/core/tests/deslop/fixtures/vue-app/package.json diff --git a/packages/deslop-js/tests/fixtures/vue-app/src/App.vue b/packages/core/tests/deslop/fixtures/vue-app/src/App.vue similarity index 100% rename from packages/deslop-js/tests/fixtures/vue-app/src/App.vue rename to packages/core/tests/deslop/fixtures/vue-app/src/App.vue diff --git a/packages/deslop-js/tests/fixtures/vue-app/src/components/HelloWorld.vue b/packages/core/tests/deslop/fixtures/vue-app/src/components/HelloWorld.vue similarity index 100% rename from packages/deslop-js/tests/fixtures/vue-app/src/components/HelloWorld.vue rename to packages/core/tests/deslop/fixtures/vue-app/src/components/HelloWorld.vue diff --git a/packages/deslop-js/tests/fixtures/vue-app/src/components/OrphanComponent.vue b/packages/core/tests/deslop/fixtures/vue-app/src/components/OrphanComponent.vue similarity index 100% rename from packages/deslop-js/tests/fixtures/vue-app/src/components/OrphanComponent.vue rename to packages/core/tests/deslop/fixtures/vue-app/src/components/OrphanComponent.vue diff --git a/packages/deslop-js/tests/fixtures/vue-app/src/main.ts b/packages/core/tests/deslop/fixtures/vue-app/src/main.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vue-app/src/main.ts rename to packages/core/tests/deslop/fixtures/vue-app/src/main.ts diff --git a/packages/deslop-js/tests/fixtures/vue-app/src/orphan.ts b/packages/core/tests/deslop/fixtures/vue-app/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vue-app/src/orphan.ts rename to packages/core/tests/deslop/fixtures/vue-app/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/vue-app/src/utils.ts b/packages/core/tests/deslop/fixtures/vue-app/src/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/vue-app/src/utils.ts rename to packages/core/tests/deslop/fixtures/vue-app/src/utils.ts diff --git a/packages/deslop-js/tests/fixtures/webpack-entries/package.json b/packages/core/tests/deslop/fixtures/webpack-entries/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-entries/package.json rename to packages/core/tests/deslop/fixtures/webpack-entries/package.json diff --git a/packages/deslop-js/tests/fixtures/webpack-entries/src/components/App.js b/packages/core/tests/deslop/fixtures/webpack-entries/src/components/App.js similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-entries/src/components/App.js rename to packages/core/tests/deslop/fixtures/webpack-entries/src/components/App.js diff --git a/packages/deslop-js/tests/fixtures/webpack-entries/src/components/Vendor.js b/packages/core/tests/deslop/fixtures/webpack-entries/src/components/Vendor.js similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-entries/src/components/Vendor.js rename to packages/core/tests/deslop/fixtures/webpack-entries/src/components/Vendor.js diff --git a/packages/deslop-js/tests/fixtures/webpack-entries/src/index.js b/packages/core/tests/deslop/fixtures/webpack-entries/src/index.js similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-entries/src/index.js rename to packages/core/tests/deslop/fixtures/webpack-entries/src/index.js diff --git a/packages/deslop-js/tests/fixtures/webpack-entries/src/orphan.js b/packages/core/tests/deslop/fixtures/webpack-entries/src/orphan.js similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-entries/src/orphan.js rename to packages/core/tests/deslop/fixtures/webpack-entries/src/orphan.js diff --git a/packages/deslop-js/tests/fixtures/webpack-entries/src/vendor.js b/packages/core/tests/deslop/fixtures/webpack-entries/src/vendor.js similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-entries/src/vendor.js rename to packages/core/tests/deslop/fixtures/webpack-entries/src/vendor.js diff --git a/packages/deslop-js/tests/fixtures/webpack-entries/webpack.config.js b/packages/core/tests/deslop/fixtures/webpack-entries/webpack.config.js similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-entries/webpack.config.js rename to packages/core/tests/deslop/fixtures/webpack-entries/webpack.config.js diff --git a/packages/deslop-js/tests/fixtures/webpack-path/app/index.js b/packages/core/tests/deslop/fixtures/webpack-path/app/index.js similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-path/app/index.js rename to packages/core/tests/deslop/fixtures/webpack-path/app/index.js diff --git a/packages/deslop-js/tests/fixtures/webpack-path/app/orphan.js b/packages/core/tests/deslop/fixtures/webpack-path/app/orphan.js similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-path/app/orphan.js rename to packages/core/tests/deslop/fixtures/webpack-path/app/orphan.js diff --git a/packages/deslop-js/tests/fixtures/webpack-path/app/renderer.js b/packages/core/tests/deslop/fixtures/webpack-path/app/renderer.js similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-path/app/renderer.js rename to packages/core/tests/deslop/fixtures/webpack-path/app/renderer.js diff --git a/packages/deslop-js/tests/fixtures/webpack-path/configs/webpack.config.renderer.prod.babel.js b/packages/core/tests/deslop/fixtures/webpack-path/configs/webpack.config.renderer.prod.babel.js similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-path/configs/webpack.config.renderer.prod.babel.js rename to packages/core/tests/deslop/fixtures/webpack-path/configs/webpack.config.renderer.prod.babel.js diff --git a/packages/deslop-js/tests/fixtures/webpack-path/package.json b/packages/core/tests/deslop/fixtures/webpack-path/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-path/package.json rename to packages/core/tests/deslop/fixtures/webpack-path/package.json diff --git a/packages/deslop-js/tests/fixtures/webpack-require-ctx/package.json b/packages/core/tests/deslop/fixtures/webpack-require-ctx/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-require-ctx/package.json rename to packages/core/tests/deslop/fixtures/webpack-require-ctx/package.json diff --git a/packages/deslop-js/tests/fixtures/webpack-require-ctx/src/components/Button.tsx b/packages/core/tests/deslop/fixtures/webpack-require-ctx/src/components/Button.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-require-ctx/src/components/Button.tsx rename to packages/core/tests/deslop/fixtures/webpack-require-ctx/src/components/Button.tsx diff --git a/packages/deslop-js/tests/fixtures/webpack-require-ctx/src/components/nested/Card.tsx b/packages/core/tests/deslop/fixtures/webpack-require-ctx/src/components/nested/Card.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-require-ctx/src/components/nested/Card.tsx rename to packages/core/tests/deslop/fixtures/webpack-require-ctx/src/components/nested/Card.tsx diff --git a/packages/deslop-js/tests/fixtures/webpack-require-ctx/src/index.ts b/packages/core/tests/deslop/fixtures/webpack-require-ctx/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-require-ctx/src/index.ts rename to packages/core/tests/deslop/fixtures/webpack-require-ctx/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/webpack-require-ctx/src/orphan.ts b/packages/core/tests/deslop/fixtures/webpack-require-ctx/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-require-ctx/src/orphan.ts rename to packages/core/tests/deslop/fixtures/webpack-require-ctx/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/webpack-require-ctx/src/pages/home.ts b/packages/core/tests/deslop/fixtures/webpack-require-ctx/src/pages/home.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-require-ctx/src/pages/home.ts rename to packages/core/tests/deslop/fixtures/webpack-require-ctx/src/pages/home.ts diff --git a/packages/deslop-js/tests/fixtures/webpack-resolve/app/views/actions/orphan.ts b/packages/core/tests/deslop/fixtures/webpack-resolve/app/views/actions/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-resolve/app/views/actions/orphan.ts rename to packages/core/tests/deslop/fixtures/webpack-resolve/app/views/actions/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/webpack-resolve/app/views/actions/run-action.ts b/packages/core/tests/deslop/fixtures/webpack-resolve/app/views/actions/run-action.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-resolve/app/views/actions/run-action.ts rename to packages/core/tests/deslop/fixtures/webpack-resolve/app/views/actions/run-action.ts diff --git a/packages/deslop-js/tests/fixtures/webpack-resolve/app/views/utils/helper.ts b/packages/core/tests/deslop/fixtures/webpack-resolve/app/views/utils/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-resolve/app/views/utils/helper.ts rename to packages/core/tests/deslop/fixtures/webpack-resolve/app/views/utils/helper.ts diff --git a/packages/deslop-js/tests/fixtures/webpack-resolve/package.json b/packages/core/tests/deslop/fixtures/webpack-resolve/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-resolve/package.json rename to packages/core/tests/deslop/fixtures/webpack-resolve/package.json diff --git a/packages/deslop-js/tests/fixtures/webpack-resolve/src/App.ts b/packages/core/tests/deslop/fixtures/webpack-resolve/src/App.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-resolve/src/App.ts rename to packages/core/tests/deslop/fixtures/webpack-resolve/src/App.ts diff --git a/packages/deslop-js/tests/fixtures/webpack-resolve/src/index.ts b/packages/core/tests/deslop/fixtures/webpack-resolve/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-resolve/src/index.ts rename to packages/core/tests/deslop/fixtures/webpack-resolve/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/webpack-resolve/src/orphan.ts b/packages/core/tests/deslop/fixtures/webpack-resolve/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-resolve/src/orphan.ts rename to packages/core/tests/deslop/fixtures/webpack-resolve/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/webpack-resolve/webpack.config.js b/packages/core/tests/deslop/fixtures/webpack-resolve/webpack.config.js similarity index 100% rename from packages/deslop-js/tests/fixtures/webpack-resolve/webpack.config.js rename to packages/core/tests/deslop/fixtures/webpack-resolve/webpack.config.js diff --git a/packages/deslop-js/tests/fixtures/wildcard-css/orphan.ts b/packages/core/tests/deslop/fixtures/wildcard-css/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-css/orphan.ts rename to packages/core/tests/deslop/fixtures/wildcard-css/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-css/package.json b/packages/core/tests/deslop/fixtures/wildcard-css/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-css/package.json rename to packages/core/tests/deslop/fixtures/wildcard-css/package.json diff --git a/packages/deslop-js/tests/fixtures/wildcard-css/src/components/Button.css b/packages/core/tests/deslop/fixtures/wildcard-css/src/components/Button.css similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-css/src/components/Button.css rename to packages/core/tests/deslop/fixtures/wildcard-css/src/components/Button.css diff --git a/packages/deslop-js/tests/fixtures/wildcard-css/src/components/Button.ts b/packages/core/tests/deslop/fixtures/wildcard-css/src/components/Button.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-css/src/components/Button.ts rename to packages/core/tests/deslop/fixtures/wildcard-css/src/components/Button.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-css/src/index.ts b/packages/core/tests/deslop/fixtures/wildcard-css/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-css/src/index.ts rename to packages/core/tests/deslop/fixtures/wildcard-css/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-late-consume/package.json b/packages/core/tests/deslop/fixtures/wildcard-late-consume/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-late-consume/package.json rename to packages/core/tests/deslop/fixtures/wildcard-late-consume/package.json diff --git a/packages/deslop-js/tests/fixtures/wildcard-late-consume/src/components/color-picker/color-picker.ts b/packages/core/tests/deslop/fixtures/wildcard-late-consume/src/components/color-picker/color-picker.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-late-consume/src/components/color-picker/color-picker.ts rename to packages/core/tests/deslop/fixtures/wildcard-late-consume/src/components/color-picker/color-picker.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-late-consume/src/components/color-picker/index.ts b/packages/core/tests/deslop/fixtures/wildcard-late-consume/src/components/color-picker/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-late-consume/src/components/color-picker/index.ts rename to packages/core/tests/deslop/fixtures/wildcard-late-consume/src/components/color-picker/index.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-late-consume/src/components/index.ts b/packages/core/tests/deslop/fixtures/wildcard-late-consume/src/components/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-late-consume/src/components/index.ts rename to packages/core/tests/deslop/fixtures/wildcard-late-consume/src/components/index.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-late-consume/src/components/text-field.ts b/packages/core/tests/deslop/fixtures/wildcard-late-consume/src/components/text-field.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-late-consume/src/components/text-field.ts rename to packages/core/tests/deslop/fixtures/wildcard-late-consume/src/components/text-field.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-late-consume/src/components/unused-widget.ts b/packages/core/tests/deslop/fixtures/wildcard-late-consume/src/components/unused-widget.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-late-consume/src/components/unused-widget.ts rename to packages/core/tests/deslop/fixtures/wildcard-late-consume/src/components/unused-widget.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-late-consume/src/index.ts b/packages/core/tests/deslop/fixtures/wildcard-late-consume/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-late-consume/src/index.ts rename to packages/core/tests/deslop/fixtures/wildcard-late-consume/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-late-consume/src/plugins/color-plugin.ts b/packages/core/tests/deslop/fixtures/wildcard-late-consume/src/plugins/color-plugin.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-late-consume/src/plugins/color-plugin.ts rename to packages/core/tests/deslop/fixtures/wildcard-late-consume/src/plugins/color-plugin.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-late-consume/src/plugins/index.ts b/packages/core/tests/deslop/fixtures/wildcard-late-consume/src/plugins/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-late-consume/src/plugins/index.ts rename to packages/core/tests/deslop/fixtures/wildcard-late-consume/src/plugins/index.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-late-consume/src/plugins/text-plugin.ts b/packages/core/tests/deslop/fixtures/wildcard-late-consume/src/plugins/text-plugin.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-late-consume/src/plugins/text-plugin.ts rename to packages/core/tests/deslop/fixtures/wildcard-late-consume/src/plugins/text-plugin.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-subpath/orphan.ts b/packages/core/tests/deslop/fixtures/wildcard-subpath/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-subpath/orphan.ts rename to packages/core/tests/deslop/fixtures/wildcard-subpath/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-subpath/package.json b/packages/core/tests/deslop/fixtures/wildcard-subpath/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-subpath/package.json rename to packages/core/tests/deslop/fixtures/wildcard-subpath/package.json diff --git a/packages/deslop-js/tests/fixtures/wildcard-subpath/src/index.ts b/packages/core/tests/deslop/fixtures/wildcard-subpath/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-subpath/src/index.ts rename to packages/core/tests/deslop/fixtures/wildcard-subpath/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/wildcard-subpath/src/templates/goodbye.tsx b/packages/core/tests/deslop/fixtures/wildcard-subpath/src/templates/goodbye.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-subpath/src/templates/goodbye.tsx rename to packages/core/tests/deslop/fixtures/wildcard-subpath/src/templates/goodbye.tsx diff --git a/packages/deslop-js/tests/fixtures/wildcard-subpath/src/templates/welcome.tsx b/packages/core/tests/deslop/fixtures/wildcard-subpath/src/templates/welcome.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/wildcard-subpath/src/templates/welcome.tsx rename to packages/core/tests/deslop/fixtures/wildcard-subpath/src/templates/welcome.tsx diff --git a/packages/deslop-js/tests/fixtures/worker-new-url/package.json b/packages/core/tests/deslop/fixtures/worker-new-url/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/worker-new-url/package.json rename to packages/core/tests/deslop/fixtures/worker-new-url/package.json diff --git a/packages/deslop-js/tests/fixtures/worker-new-url/src/index.ts b/packages/core/tests/deslop/fixtures/worker-new-url/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/worker-new-url/src/index.ts rename to packages/core/tests/deslop/fixtures/worker-new-url/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/worker-new-url/src/orphan.ts b/packages/core/tests/deslop/fixtures/worker-new-url/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/worker-new-url/src/orphan.ts rename to packages/core/tests/deslop/fixtures/worker-new-url/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/worker-new-url/src/worker.js b/packages/core/tests/deslop/fixtures/worker-new-url/src/worker.js similarity index 100% rename from packages/deslop-js/tests/fixtures/worker-new-url/src/worker.js rename to packages/core/tests/deslop/fixtures/worker-new-url/src/worker.js diff --git a/packages/deslop-js/tests/fixtures/workspace-deep-imports/apps/web/package.json b/packages/core/tests/deslop/fixtures/workspace-deep-imports/apps/web/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-deep-imports/apps/web/package.json rename to packages/core/tests/deslop/fixtures/workspace-deep-imports/apps/web/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-deep-imports/apps/web/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-deep-imports/apps/web/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-deep-imports/apps/web/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-deep-imports/apps/web/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-deep-imports/apps/web/tsconfig.json b/packages/core/tests/deslop/fixtures/workspace-deep-imports/apps/web/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-deep-imports/apps/web/tsconfig.json rename to packages/core/tests/deslop/fixtures/workspace-deep-imports/apps/web/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/workspace-deep-imports/package.json b/packages/core/tests/deslop/fixtures/workspace-deep-imports/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-deep-imports/package.json rename to packages/core/tests/deslop/fixtures/workspace-deep-imports/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-deep-imports/packages/shared/package.json b/packages/core/tests/deslop/fixtures/workspace-deep-imports/packages/shared/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-deep-imports/packages/shared/package.json rename to packages/core/tests/deslop/fixtures/workspace-deep-imports/packages/shared/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-deep-imports/packages/shared/src/components/button.ts b/packages/core/tests/deslop/fixtures/workspace-deep-imports/packages/shared/src/components/button.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-deep-imports/packages/shared/src/components/button.ts rename to packages/core/tests/deslop/fixtures/workspace-deep-imports/packages/shared/src/components/button.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-deep-imports/packages/shared/src/components/orphan.ts b/packages/core/tests/deslop/fixtures/workspace-deep-imports/packages/shared/src/components/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-deep-imports/packages/shared/src/components/orphan.ts rename to packages/core/tests/deslop/fixtures/workspace-deep-imports/packages/shared/src/components/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-deep-imports/packages/shared/src/hooks/assets.ts b/packages/core/tests/deslop/fixtures/workspace-deep-imports/packages/shared/src/hooks/assets.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-deep-imports/packages/shared/src/hooks/assets.ts rename to packages/core/tests/deslop/fixtures/workspace-deep-imports/packages/shared/src/hooks/assets.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-deep-imports/packages/shared/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-deep-imports/packages/shared/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-deep-imports/packages/shared/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-deep-imports/packages/shared/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-deep-imports/packages/shared/tsconfig.json b/packages/core/tests/deslop/fixtures/workspace-deep-imports/packages/shared/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-deep-imports/packages/shared/tsconfig.json rename to packages/core/tests/deslop/fixtures/workspace-deep-imports/packages/shared/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/workspace-defaults/package.json b/packages/core/tests/deslop/fixtures/workspace-defaults/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-defaults/package.json rename to packages/core/tests/deslop/fixtures/workspace-defaults/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-defaults/packages/lib-a/package.json b/packages/core/tests/deslop/fixtures/workspace-defaults/packages/lib-a/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-defaults/packages/lib-a/package.json rename to packages/core/tests/deslop/fixtures/workspace-defaults/packages/lib-a/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-defaults/packages/lib-a/src/helper.ts b/packages/core/tests/deslop/fixtures/workspace-defaults/packages/lib-a/src/helper.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-defaults/packages/lib-a/src/helper.ts rename to packages/core/tests/deslop/fixtures/workspace-defaults/packages/lib-a/src/helper.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-defaults/packages/lib-a/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-defaults/packages/lib-a/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-defaults/packages/lib-a/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-defaults/packages/lib-a/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-defaults/packages/lib-a/src/orphan.ts b/packages/core/tests/deslop/fixtures/workspace-defaults/packages/lib-a/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-defaults/packages/lib-a/src/orphan.ts rename to packages/core/tests/deslop/fixtures/workspace-defaults/packages/lib-a/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-defaults/packages/lib-b/package.json b/packages/core/tests/deslop/fixtures/workspace-defaults/packages/lib-b/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-defaults/packages/lib-b/package.json rename to packages/core/tests/deslop/fixtures/workspace-defaults/packages/lib-b/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-defaults/packages/lib-b/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-defaults/packages/lib-b/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-defaults/packages/lib-b/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-defaults/packages/lib-b/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-dist-resolve/package.json b/packages/core/tests/deslop/fixtures/workspace-dist-resolve/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-dist-resolve/package.json rename to packages/core/tests/deslop/fixtures/workspace-dist-resolve/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-dist-resolve/packages/app/package.json b/packages/core/tests/deslop/fixtures/workspace-dist-resolve/packages/app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-dist-resolve/packages/app/package.json rename to packages/core/tests/deslop/fixtures/workspace-dist-resolve/packages/app/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-dist-resolve/packages/app/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-dist-resolve/packages/app/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-dist-resolve/packages/app/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-dist-resolve/packages/app/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-dist-resolve/packages/utils/package.json b/packages/core/tests/deslop/fixtures/workspace-dist-resolve/packages/utils/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-dist-resolve/packages/utils/package.json rename to packages/core/tests/deslop/fixtures/workspace-dist-resolve/packages/utils/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-dist-resolve/packages/utils/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-dist-resolve/packages/utils/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-dist-resolve/packages/utils/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-dist-resolve/packages/utils/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-dist-resolve/packages/utils/src/orphan.ts b/packages/core/tests/deslop/fixtures/workspace-dist-resolve/packages/utils/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-dist-resolve/packages/utils/src/orphan.ts rename to packages/core/tests/deslop/fixtures/workspace-dist-resolve/packages/utils/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-dist-src/package.json b/packages/core/tests/deslop/fixtures/workspace-dist-src/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-dist-src/package.json rename to packages/core/tests/deslop/fixtures/workspace-dist-src/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-dist-src/packages/app/package.json b/packages/core/tests/deslop/fixtures/workspace-dist-src/packages/app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-dist-src/packages/app/package.json rename to packages/core/tests/deslop/fixtures/workspace-dist-src/packages/app/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-dist-src/packages/app/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-dist-src/packages/app/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-dist-src/packages/app/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-dist-src/packages/app/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-dist-src/packages/core/package.json b/packages/core/tests/deslop/fixtures/workspace-dist-src/packages/core/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-dist-src/packages/core/package.json rename to packages/core/tests/deslop/fixtures/workspace-dist-src/packages/core/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-dist-src/packages/core/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-dist-src/packages/core/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-dist-src/packages/core/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-dist-src/packages/core/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-dist-src/packages/core/src/orphan.ts b/packages/core/tests/deslop/fixtures/workspace-dist-src/packages/core/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-dist-src/packages/core/src/orphan.ts rename to packages/core/tests/deslop/fixtures/workspace-dist-src/packages/core/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-dist-src/packages/core/src/visualdebug.ts b/packages/core/tests/deslop/fixtures/workspace-dist-src/packages/core/src/visualdebug.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-dist-src/packages/core/src/visualdebug.ts rename to packages/core/tests/deslop/fixtures/workspace-dist-src/packages/core/src/visualdebug.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-explicit/package.json b/packages/core/tests/deslop/fixtures/workspace-explicit/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-explicit/package.json rename to packages/core/tests/deslop/fixtures/workspace-explicit/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-explicit/packages/ui/package.json b/packages/core/tests/deslop/fixtures/workspace-explicit/packages/ui/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-explicit/packages/ui/package.json rename to packages/core/tests/deslop/fixtures/workspace-explicit/packages/ui/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-explicit/packages/ui/src/button.ts b/packages/core/tests/deslop/fixtures/workspace-explicit/packages/ui/src/button.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-explicit/packages/ui/src/button.ts rename to packages/core/tests/deslop/fixtures/workspace-explicit/packages/ui/src/button.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-explicit/packages/ui/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-explicit/packages/ui/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-explicit/packages/ui/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-explicit/packages/ui/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-explicit/packages/utils/package.json b/packages/core/tests/deslop/fixtures/workspace-explicit/packages/utils/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-explicit/packages/utils/package.json rename to packages/core/tests/deslop/fixtures/workspace-explicit/packages/utils/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-explicit/packages/utils/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-explicit/packages/utils/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-explicit/packages/utils/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-explicit/packages/utils/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-explicit/packages/utils/src/orphan.ts b/packages/core/tests/deslop/fixtures/workspace-explicit/packages/utils/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-explicit/packages/utils/src/orphan.ts rename to packages/core/tests/deslop/fixtures/workspace-explicit/packages/utils/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-local-bin/.gitignore b/packages/core/tests/deslop/fixtures/workspace-local-bin/.gitignore similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-local-bin/.gitignore rename to packages/core/tests/deslop/fixtures/workspace-local-bin/.gitignore diff --git a/packages/deslop-js/tests/fixtures/workspace-local-bin/node_modules/bin-only-tool/package.json b/packages/core/tests/deslop/fixtures/workspace-local-bin/node_modules/bin-only-tool/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-local-bin/node_modules/bin-only-tool/package.json rename to packages/core/tests/deslop/fixtures/workspace-local-bin/node_modules/bin-only-tool/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-local-bin/node_modules/react-email/package.json b/packages/core/tests/deslop/fixtures/workspace-local-bin/node_modules/react-email/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-local-bin/node_modules/react-email/package.json rename to packages/core/tests/deslop/fixtures/workspace-local-bin/node_modules/react-email/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-local-bin/package.json b/packages/core/tests/deslop/fixtures/workspace-local-bin/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-local-bin/package.json rename to packages/core/tests/deslop/fixtures/workspace-local-bin/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-local-bin/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-local-bin/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-local-bin/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-local-bin/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-no-main/package.json b/packages/core/tests/deslop/fixtures/workspace-no-main/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-no-main/package.json rename to packages/core/tests/deslop/fixtures/workspace-no-main/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-no-main/packages/app/index.ts b/packages/core/tests/deslop/fixtures/workspace-no-main/packages/app/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-no-main/packages/app/index.ts rename to packages/core/tests/deslop/fixtures/workspace-no-main/packages/app/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-no-main/packages/app/package.json b/packages/core/tests/deslop/fixtures/workspace-no-main/packages/app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-no-main/packages/app/package.json rename to packages/core/tests/deslop/fixtures/workspace-no-main/packages/app/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-no-main/packages/lib-a/helper.js b/packages/core/tests/deslop/fixtures/workspace-no-main/packages/lib-a/helper.js similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-no-main/packages/lib-a/helper.js rename to packages/core/tests/deslop/fixtures/workspace-no-main/packages/lib-a/helper.js diff --git a/packages/deslop-js/tests/fixtures/workspace-no-main/packages/lib-a/index.js b/packages/core/tests/deslop/fixtures/workspace-no-main/packages/lib-a/index.js similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-no-main/packages/lib-a/index.js rename to packages/core/tests/deslop/fixtures/workspace-no-main/packages/lib-a/index.js diff --git a/packages/deslop-js/tests/fixtures/workspace-no-main/packages/lib-a/orphan.js b/packages/core/tests/deslop/fixtures/workspace-no-main/packages/lib-a/orphan.js similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-no-main/packages/lib-a/orphan.js rename to packages/core/tests/deslop/fixtures/workspace-no-main/packages/lib-a/orphan.js diff --git a/packages/deslop-js/tests/fixtures/workspace-no-main/packages/lib-a/package.json b/packages/core/tests/deslop/fixtures/workspace-no-main/packages/lib-a/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-no-main/packages/lib-a/package.json rename to packages/core/tests/deslop/fixtures/workspace-no-main/packages/lib-a/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-path-alias-no-tsconfig/apps/web/package.json b/packages/core/tests/deslop/fixtures/workspace-path-alias-no-tsconfig/apps/web/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-path-alias-no-tsconfig/apps/web/package.json rename to packages/core/tests/deslop/fixtures/workspace-path-alias-no-tsconfig/apps/web/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-path-alias-no-tsconfig/apps/web/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-path-alias-no-tsconfig/apps/web/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-path-alias-no-tsconfig/apps/web/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-path-alias-no-tsconfig/apps/web/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-path-alias-no-tsconfig/package.json b/packages/core/tests/deslop/fixtures/workspace-path-alias-no-tsconfig/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-path-alias-no-tsconfig/package.json rename to packages/core/tests/deslop/fixtures/workspace-path-alias-no-tsconfig/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-path-alias-no-tsconfig/packages/core/orphan.ts b/packages/core/tests/deslop/fixtures/workspace-path-alias-no-tsconfig/packages/core/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-path-alias-no-tsconfig/packages/core/orphan.ts rename to packages/core/tests/deslop/fixtures/workspace-path-alias-no-tsconfig/packages/core/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-path-alias-no-tsconfig/packages/core/package.json b/packages/core/tests/deslop/fixtures/workspace-path-alias-no-tsconfig/packages/core/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-path-alias-no-tsconfig/packages/core/package.json rename to packages/core/tests/deslop/fixtures/workspace-path-alias-no-tsconfig/packages/core/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-path-alias-no-tsconfig/packages/core/utils.ts b/packages/core/tests/deslop/fixtures/workspace-path-alias-no-tsconfig/packages/core/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-path-alias-no-tsconfig/packages/core/utils.ts rename to packages/core/tests/deslop/fixtures/workspace-path-alias-no-tsconfig/packages/core/utils.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-path-alias/apps/web/package.json b/packages/core/tests/deslop/fixtures/workspace-path-alias/apps/web/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-path-alias/apps/web/package.json rename to packages/core/tests/deslop/fixtures/workspace-path-alias/apps/web/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-path-alias/apps/web/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-path-alias/apps/web/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-path-alias/apps/web/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-path-alias/apps/web/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-path-alias/package.json b/packages/core/tests/deslop/fixtures/workspace-path-alias/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-path-alias/package.json rename to packages/core/tests/deslop/fixtures/workspace-path-alias/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-path-alias/packages/core/orphan.ts b/packages/core/tests/deslop/fixtures/workspace-path-alias/packages/core/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-path-alias/packages/core/orphan.ts rename to packages/core/tests/deslop/fixtures/workspace-path-alias/packages/core/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-path-alias/packages/core/package.json b/packages/core/tests/deslop/fixtures/workspace-path-alias/packages/core/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-path-alias/packages/core/package.json rename to packages/core/tests/deslop/fixtures/workspace-path-alias/packages/core/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-path-alias/packages/core/utils.ts b/packages/core/tests/deslop/fixtures/workspace-path-alias/packages/core/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-path-alias/packages/core/utils.ts rename to packages/core/tests/deslop/fixtures/workspace-path-alias/packages/core/utils.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-path-alias/tsconfig.json b/packages/core/tests/deslop/fixtures/workspace-path-alias/tsconfig.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-path-alias/tsconfig.json rename to packages/core/tests/deslop/fixtures/workspace-path-alias/tsconfig.json diff --git a/packages/deslop-js/tests/fixtures/workspace-structural-alias/apps/web/package.json b/packages/core/tests/deslop/fixtures/workspace-structural-alias/apps/web/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-structural-alias/apps/web/package.json rename to packages/core/tests/deslop/fixtures/workspace-structural-alias/apps/web/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-structural-alias/apps/web/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-structural-alias/apps/web/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-structural-alias/apps/web/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-structural-alias/apps/web/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-structural-alias/package.json b/packages/core/tests/deslop/fixtures/workspace-structural-alias/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-structural-alias/package.json rename to packages/core/tests/deslop/fixtures/workspace-structural-alias/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-structural-alias/packages/core/orphan.ts b/packages/core/tests/deslop/fixtures/workspace-structural-alias/packages/core/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-structural-alias/packages/core/orphan.ts rename to packages/core/tests/deslop/fixtures/workspace-structural-alias/packages/core/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-structural-alias/packages/core/package.json b/packages/core/tests/deslop/fixtures/workspace-structural-alias/packages/core/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-structural-alias/packages/core/package.json rename to packages/core/tests/deslop/fixtures/workspace-structural-alias/packages/core/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-structural-alias/packages/core/utils.ts b/packages/core/tests/deslop/fixtures/workspace-structural-alias/packages/core/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-structural-alias/packages/core/utils.ts rename to packages/core/tests/deslop/fixtures/workspace-structural-alias/packages/core/utils.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import-built/apps/web/package.json b/packages/core/tests/deslop/fixtures/workspace-subpath-import-built/apps/web/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import-built/apps/web/package.json rename to packages/core/tests/deslop/fixtures/workspace-subpath-import-built/apps/web/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import-built/apps/web/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-subpath-import-built/apps/web/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import-built/apps/web/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-subpath-import-built/apps/web/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import-built/package.json b/packages/core/tests/deslop/fixtures/workspace-subpath-import-built/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import-built/package.json rename to packages/core/tests/deslop/fixtures/workspace-subpath-import-built/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import-built/packages/ui/dist/button.js b/packages/core/tests/deslop/fixtures/workspace-subpath-import-built/packages/ui/dist/button.js similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import-built/packages/ui/dist/button.js rename to packages/core/tests/deslop/fixtures/workspace-subpath-import-built/packages/ui/dist/button.js diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import-built/packages/ui/package.json b/packages/core/tests/deslop/fixtures/workspace-subpath-import-built/packages/ui/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import-built/packages/ui/package.json rename to packages/core/tests/deslop/fixtures/workspace-subpath-import-built/packages/ui/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import-built/packages/ui/src/button.ts b/packages/core/tests/deslop/fixtures/workspace-subpath-import-built/packages/ui/src/button.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import-built/packages/ui/src/button.ts rename to packages/core/tests/deslop/fixtures/workspace-subpath-import-built/packages/ui/src/button.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import-built/packages/ui/src/orphan.ts b/packages/core/tests/deslop/fixtures/workspace-subpath-import-built/packages/ui/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import-built/packages/ui/src/orphan.ts rename to packages/core/tests/deslop/fixtures/workspace-subpath-import-built/packages/ui/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import/apps/web/package.json b/packages/core/tests/deslop/fixtures/workspace-subpath-import/apps/web/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import/apps/web/package.json rename to packages/core/tests/deslop/fixtures/workspace-subpath-import/apps/web/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import/apps/web/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-subpath-import/apps/web/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import/apps/web/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-subpath-import/apps/web/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import/package.json b/packages/core/tests/deslop/fixtures/workspace-subpath-import/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import/package.json rename to packages/core/tests/deslop/fixtures/workspace-subpath-import/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import/packages/ui/button.tsx b/packages/core/tests/deslop/fixtures/workspace-subpath-import/packages/ui/button.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import/packages/ui/button.tsx rename to packages/core/tests/deslop/fixtures/workspace-subpath-import/packages/ui/button.tsx diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import/packages/ui/orphan.ts b/packages/core/tests/deslop/fixtures/workspace-subpath-import/packages/ui/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import/packages/ui/orphan.ts rename to packages/core/tests/deslop/fixtures/workspace-subpath-import/packages/ui/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import/packages/ui/package.json b/packages/core/tests/deslop/fixtures/workspace-subpath-import/packages/ui/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import/packages/ui/package.json rename to packages/core/tests/deslop/fixtures/workspace-subpath-import/packages/ui/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-import/packages/ui/utils.ts b/packages/core/tests/deslop/fixtures/workspace-subpath-import/packages/ui/utils.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-import/packages/ui/utils.ts rename to packages/core/tests/deslop/fixtures/workspace-subpath-import/packages/ui/utils.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/apps/web/package.json b/packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/apps/web/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/apps/web/package.json rename to packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/apps/web/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/apps/web/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/apps/web/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/apps/web/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/apps/web/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/package.json b/packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/package.json rename to packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/packages/ui/package.json b/packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/packages/ui/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/packages/ui/package.json rename to packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/packages/ui/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/packages/ui/src/components/button.tsx b/packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/packages/ui/src/components/button.tsx similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/packages/ui/src/components/button.tsx rename to packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/packages/ui/src/components/button.tsx diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/packages/ui/src/components/helpers.ts b/packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/packages/ui/src/components/helpers.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/packages/ui/src/components/helpers.ts rename to packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/packages/ui/src/components/helpers.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/packages/ui/src/components/orphan.ts b/packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/packages/ui/src/components/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-subpath-wildcard-export/packages/ui/src/components/orphan.ts rename to packages/core/tests/deslop/fixtures/workspace-subpath-wildcard-export/packages/ui/src/components/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-wildcards/package.json b/packages/core/tests/deslop/fixtures/workspace-wildcards/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-wildcards/package.json rename to packages/core/tests/deslop/fixtures/workspace-wildcards/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-wildcards/packages/app/package.json b/packages/core/tests/deslop/fixtures/workspace-wildcards/packages/app/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-wildcards/packages/app/package.json rename to packages/core/tests/deslop/fixtures/workspace-wildcards/packages/app/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-wildcards/packages/app/src/index.ts b/packages/core/tests/deslop/fixtures/workspace-wildcards/packages/app/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-wildcards/packages/app/src/index.ts rename to packages/core/tests/deslop/fixtures/workspace-wildcards/packages/app/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-wildcards/packages/ui/internal/hidden.ts b/packages/core/tests/deslop/fixtures/workspace-wildcards/packages/ui/internal/hidden.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-wildcards/packages/ui/internal/hidden.ts rename to packages/core/tests/deslop/fixtures/workspace-wildcards/packages/ui/internal/hidden.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-wildcards/packages/ui/package.json b/packages/core/tests/deslop/fixtures/workspace-wildcards/packages/ui/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-wildcards/packages/ui/package.json rename to packages/core/tests/deslop/fixtures/workspace-wildcards/packages/ui/package.json diff --git a/packages/deslop-js/tests/fixtures/workspace-wildcards/packages/ui/src/components/button.ts b/packages/core/tests/deslop/fixtures/workspace-wildcards/packages/ui/src/components/button.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-wildcards/packages/ui/src/components/button.ts rename to packages/core/tests/deslop/fixtures/workspace-wildcards/packages/ui/src/components/button.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-wildcards/packages/ui/src/components/index.ts b/packages/core/tests/deslop/fixtures/workspace-wildcards/packages/ui/src/components/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-wildcards/packages/ui/src/components/index.ts rename to packages/core/tests/deslop/fixtures/workspace-wildcards/packages/ui/src/components/index.ts diff --git a/packages/deslop-js/tests/fixtures/workspace-wildcards/packages/ui/src/orphan.ts b/packages/core/tests/deslop/fixtures/workspace-wildcards/packages/ui/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/workspace-wildcards/packages/ui/src/orphan.ts rename to packages/core/tests/deslop/fixtures/workspace-wildcards/packages/ui/src/orphan.ts diff --git a/packages/deslop-js/tests/fixtures/zx-scripts/package.json b/packages/core/tests/deslop/fixtures/zx-scripts/package.json similarity index 100% rename from packages/deslop-js/tests/fixtures/zx-scripts/package.json rename to packages/core/tests/deslop/fixtures/zx-scripts/package.json diff --git a/packages/deslop-js/tests/fixtures/zx-scripts/scripts/build-image.mjs b/packages/core/tests/deslop/fixtures/zx-scripts/scripts/build-image.mjs similarity index 100% rename from packages/deslop-js/tests/fixtures/zx-scripts/scripts/build-image.mjs rename to packages/core/tests/deslop/fixtures/zx-scripts/scripts/build-image.mjs diff --git a/packages/deslop-js/tests/fixtures/zx-scripts/src/index.ts b/packages/core/tests/deslop/fixtures/zx-scripts/src/index.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/zx-scripts/src/index.ts rename to packages/core/tests/deslop/fixtures/zx-scripts/src/index.ts diff --git a/packages/deslop-js/tests/fixtures/zx-scripts/src/orphan.ts b/packages/core/tests/deslop/fixtures/zx-scripts/src/orphan.ts similarity index 100% rename from packages/deslop-js/tests/fixtures/zx-scripts/src/orphan.ts rename to packages/core/tests/deslop/fixtures/zx-scripts/src/orphan.ts diff --git a/packages/deslop-js/tests/helpers/fixtures-dir.ts b/packages/core/tests/deslop/helpers/fixtures-dir.ts similarity index 100% rename from packages/deslop-js/tests/helpers/fixtures-dir.ts rename to packages/core/tests/deslop/helpers/fixtures-dir.ts diff --git a/packages/deslop-js/tests/path-normalization.test.ts b/packages/core/tests/deslop/path-normalization.test.ts similarity index 91% rename from packages/deslop-js/tests/path-normalization.test.ts rename to packages/core/tests/deslop/path-normalization.test.ts index c49f4a490..b7d7a55dc 100644 --- a/packages/deslop-js/tests/path-normalization.test.ts +++ b/packages/core/tests/deslop/path-normalization.test.ts @@ -1,12 +1,12 @@ -import { describe, it } from "node:test"; +import { describe, it } from "vite-plus/test"; import assert from "node:assert/strict"; -import { toPosixPath } from "../src/utils/to-posix-path.js"; -import { buildDependencyGraph, type ModuleLinkInput } from "../src/linker/build.js"; -import { traceReachability } from "../src/linker/reachability.js"; -import { detectDeadExports } from "../src/report/exports.js"; -import type { ParsedSource } from "../src/collect/parse.js"; -import type { ResolvedImport } from "../src/resolver/resolve.js"; -import type { DeslopConfig, ExportReference, ImportReference } from "../src/types.js"; +import { toPosixPath } from "../../src/deslop/utils/to-posix-path.js"; +import { buildDependencyGraph, type ModuleLinkInput } from "../../src/deslop/linker/build.js"; +import { traceReachability } from "../../src/deslop/linker/reachability.js"; +import { detectDeadExports } from "../../src/deslop/report/exports.js"; +import type { ParsedSource } from "../../src/deslop/collect/parse.js"; +import type { ResolvedImport } from "../../src/deslop/resolver/resolve.js"; +import type { DeslopConfig, ExportReference, ImportReference } from "../../src/deslop/types.js"; const emptyParsed = (overrides: Partial = {}): ParsedSource => ({ imports: [], diff --git a/packages/deslop-js/tests/semantic.test.ts b/packages/core/tests/deslop/semantic.test.ts similarity index 99% rename from packages/deslop-js/tests/semantic.test.ts rename to packages/core/tests/deslop/semantic.test.ts index 6557d22c8..d7283d058 100644 --- a/packages/deslop-js/tests/semantic.test.ts +++ b/packages/core/tests/deslop/semantic.test.ts @@ -1,8 +1,8 @@ -import { describe, it } from "node:test"; +import { describe, it } from "vite-plus/test"; import assert from "node:assert/strict"; import { resolve } from "node:path"; -import { analyze, defineConfig } from "../src/index.js"; -import type { ScanResult, SemanticConfig } from "../src/types.js"; +import { analyze, defineConfig } from "../../src/deslop/index.js"; +import type { ScanResult, SemanticConfig } from "../../src/deslop/types.js"; import { FIXTURES_DIR } from "./helpers/fixtures-dir.js"; const scanFixtureWithSemantic = async ( diff --git a/packages/deslop-js/tests/type-analysis.test.ts b/packages/core/tests/deslop/type-analysis.test.ts similarity index 98% rename from packages/deslop-js/tests/type-analysis.test.ts rename to packages/core/tests/deslop/type-analysis.test.ts index 54e55b9fc..4afed7fba 100644 --- a/packages/deslop-js/tests/type-analysis.test.ts +++ b/packages/core/tests/deslop/type-analysis.test.ts @@ -1,8 +1,8 @@ -import { describe, it } from "node:test"; +import { describe, it } from "vite-plus/test"; import assert from "node:assert/strict"; import { resolve, dirname } from "node:path"; import ts from "typescript"; -import { analyze, defineConfig } from "../src/index.js"; +import { analyze, defineConfig } from "../../src/deslop/index.js"; import { FIXTURES_DIR } from "./helpers/fixtures-dir.js"; interface DifferentialOutcome { diff --git a/packages/core/tests/helpers/in-process-dead-code-worker.ts b/packages/core/tests/helpers/in-process-dead-code-worker.ts new file mode 100644 index 000000000..433c7f197 --- /dev/null +++ b/packages/core/tests/helpers/in-process-dead-code-worker.ts @@ -0,0 +1,46 @@ +import { analyze, defineConfig } from "../../src/deslop/index.js"; + +interface DeadCodeWorkerInput { + readonly rootDirectory: string; + readonly entryPatterns: ReadonlyArray; + readonly tsConfigPath?: string; + readonly ignorePatterns: ReadonlyArray; +} + +/** + * Runs the deslop engine in-process for core's dead-code integration tests, + * mirroring the normalization the production child-process worker does in + * `check-dead-code.ts`. The production path spawns a child process that + * `import("deslop-js")`s the published facade; since `deslop-js` now builds + * after `core` (it bundles core), tests can't rely on that artifact existing, + * and the subprocess isolation is a production concern, not engine behavior. + * This exercises the same `analyze`/`defineConfig` logic the facade re-exports. + */ +export const inProcessDeadCodeWorker = ( + input: DeadCodeWorkerInput, +): { result: Promise } => ({ + result: (async () => { + const config = defineConfig({ + rootDir: input.rootDirectory, + ...(input.entryPatterns.length > 0 ? { entryPatterns: input.entryPatterns } : {}), + ...(input.tsConfigPath ? { tsConfigPath: input.tsConfigPath } : {}), + ...(input.ignorePatterns.length > 0 ? { ignorePatterns: input.ignorePatterns } : {}), + }); + const result = await analyze(config); + return { + unusedFiles: result.unusedFiles.map((unusedFile) => ({ path: unusedFile.path })), + unusedExports: result.unusedExports.map((unusedExport) => ({ + path: unusedExport.path, + name: unusedExport.name, + line: unusedExport.line, + column: unusedExport.column, + isTypeOnly: unusedExport.isTypeOnly, + })), + unusedDependencies: result.unusedDependencies.map((unusedDependency) => ({ + name: unusedDependency.name, + isDevDependency: unusedDependency.isDevDependency, + })), + circularDependencies: result.circularDependencies.map((cycle) => ({ files: cycle.files })), + }; + })(), +}); diff --git a/packages/core/vite.config.ts b/packages/core/vite.config.ts index fcbee2ca9..15409f831 100644 --- a/packages/core/vite.config.ts +++ b/packages/core/vite.config.ts @@ -3,12 +3,18 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ pack: [ { - entry: { index: "./src/index.ts", schemas: "./src/schemas.ts" }, + entry: { + index: "./src/index.ts", + schemas: "./src/schemas.ts", + deslop: "./src/deslop/index.ts", + }, deps: { neverBundle: [ "@effect/platform-node-shared", - "deslop-js", + "@oxc-project/types", "effect", + "fast-glob", + "minimatch", "oxc-parser", "oxc-resolver", "oxlint", @@ -21,8 +27,38 @@ export default defineConfig({ platform: "node", fixedExtension: false, }, + { + // Emitted as a standalone `dist/parse-worker.mjs` so the deslop parallel + // parser (bundled into `dist/deslop.js`) can spawn it via + // `new URL("./parse-worker.mjs", import.meta.url)`. + entry: ["./src/deslop/collect/parse-worker.ts"], + format: ["esm"], + deps: { + neverBundle: ["@oxc-project/types", "fast-glob", "minimatch", "oxc-parser", "oxc-resolver"], + }, + dts: false, + clean: false, + target: "node20", + platform: "node", + }, ], test: { testTimeout: 30_000, + include: ["tests/**/*.test.ts"], + // The deslop engine's tests scan fixture projects that deliberately + // contain their own `*.test.ts` / `*.spec.ts` files (test data for the + // dead-code analyzer); never collect those as real tests. + exclude: [ + "**/node_modules/**", + "**/dist/**", + "**/fixtures/**", + // deslop's analyze() returns OS-native path separators; production + // normalizes them to POSIX in check-dead-code's toRelativeFilePath, but + // these integration tests assert POSIX paths against the raw engine + // output. They're POSIX-only (the same reason check-dead-code.test.ts + // skips its import-graph cases on win32), and never ran on Windows under + // deslop-js's `node --test tests/*.test.ts` glob. + ...(process.platform === "win32" ? ["tests/deslop/analyze.test.ts"] : []), + ], }, }); diff --git a/packages/deslop-cli/tests/helpers/fixtures-dir.ts b/packages/deslop-cli/tests/helpers/fixtures-dir.ts index 0c85990dd..27a782493 100644 --- a/packages/deslop-cli/tests/helpers/fixtures-dir.ts +++ b/packages/deslop-cli/tests/helpers/fixtures-dir.ts @@ -7,9 +7,10 @@ import { join, resolve } from "node:path"; // them OUTSIDE the repository and `git init` the copy so the CLI's // findMonorepoRoot walk stops at the temp boundary instead of escaping into the // enclosing react-doctor workspace and folding its packages into the scan. -// Mirrors packages/deslop-js/tests/helpers/fixtures-dir.ts (kept local rather -// than shared because the two packages publish independently). -const sourceFixturesDirectory = resolve(import.meta.dirname, "../../../deslop-js/tests/fixtures"); +// Mirrors packages/core/tests/deslop/helpers/fixtures-dir.ts (kept local rather +// than shared because the two packages publish independently). The deslop +// engine — and its fixtures — now live in @react-doctor/core. +const sourceFixturesDirectory = resolve(import.meta.dirname, "../../../core/tests/deslop/fixtures"); const temporaryFixturesRoot = mkdtempSync(join(tmpdir(), "deslop-cli-fixtures-")); cpSync(sourceFixturesDirectory, temporaryFixturesRoot, { recursive: true }); diff --git a/packages/deslop-js/package.json b/packages/deslop-js/package.json index ba6f451cd..6b24efcc9 100644 --- a/packages/deslop-js/package.json +++ b/packages/deslop-js/package.json @@ -55,7 +55,6 @@ "scripts": { "build": "vp pack", "dev": "vp pack --watch", - "test": "node --import tsx --test tests/*.test.ts", "typecheck": "tsc --noEmit" }, "dependencies": { @@ -67,8 +66,7 @@ "typescript": "^6.0.3" }, "devDependencies": { - "@types/minimatch": "^5.1.2", - "@types/node": "^25.6.0", - "tsx": "^4.21.0" + "@react-doctor/core": "workspace:*", + "@types/node": "^25.6.0" } } diff --git a/packages/deslop-js/src/index.ts b/packages/deslop-js/src/index.ts index 63274c25d..c60eb3c05 100644 --- a/packages/deslop-js/src/index.ts +++ b/packages/deslop-js/src/index.ts @@ -1,727 +1,6 @@ -import { resolve, dirname } from "node:path"; -import { existsSync, readFileSync } from "node:fs"; -import fg from "fast-glob"; -import type { DeslopConfig, DeslopError, ScanResult } from "./types.js"; -import { - ConfigError, - DetectorError, - ResolverError, - WorkspaceError, - describeUnknownError, -} from "./errors.js"; -import { - DEFAULT_DUPLICATE_BLOCK_MIN_LINES, - DEFAULT_DUPLICATE_BLOCK_MIN_OCCURRENCES, - DEFAULT_DUPLICATE_BLOCK_MIN_TOKENS, - DEFAULT_COGNITIVE_THRESHOLD, - DEFAULT_CYCLOMATIC_THRESHOLD, - DEFAULT_FUNCTION_LINE_THRESHOLD, - DEFAULT_PARAM_COUNT_THRESHOLD, - DEFAULT_ENTRY_GLOBS, - DEFAULT_EXTENSIONS, - DEFAULT_SEMANTIC_DECORATOR_ALLOWLIST, - OUTPUT_DIRECTORIES, -} from "./constants.js"; -import { collectSourceFiles, resolveEntries, getFrameworkExclusions } from "./collect/entries.js"; -import { resolveWorkspaces } from "./collect/workspaces.js"; -import { parseSourceFile } from "./collect/parse.js"; -import { parseFilesInParallel } from "./collect/parallel-parse.js"; -import { createResolver } from "./resolver/resolve.js"; -import { buildDependencyGraph, type ModuleLinkInput } from "./linker/build.js"; -import { traceReachability } from "./linker/reachability.js"; -import { resolveReExportChains } from "./linker/re-exports.js"; -import { generateReport } from "./report/generate.js"; -import { findMonorepoRoot } from "./utils/find-monorepo-root.js"; -import { collectGitIgnoredPaths } from "./utils/collect-git-ignored-paths.js"; - -const STYLE_EXTENSIONS = [".css", ".scss"]; - -const REACT_NATIVE_ENABLERS = ["react-native", "expo"]; - -const basenameFromPath = (filePath: string): string => { - const lastSlashIndex = filePath.lastIndexOf("/"); - return lastSlashIndex === -1 ? filePath : filePath.slice(lastSlashIndex + 1); -}; - -/** - * Dynamic registry pattern: many codebases use a central "schema/registry" - * module that lists tool/command/page filenames as string literals, then a - * runner spawns them via `path.resolve(dir, file)` or `import()`. Static - * analysis can't follow the indirection, so those targets get falsely - * flagged as unused. - * - * Heuristic: if a parsed string literal exactly matches the basename of - * exactly one file in the project, treat that file as an entry point. - * Uniqueness guards against false-positives from common names like - * `index.ts` matching dozens of unrelated files. - */ -const markFilenameRegistryEntries = ( - moduleGraph: ReturnType, -): void => { - const basenameToModuleIndex = new Map(); - for (const module of moduleGraph.modules) { - const basename = basenameFromPath(module.fileId.path); - const existing = basenameToModuleIndex.get(basename); - if (existing === undefined) { - basenameToModuleIndex.set(basename, module.fileId.index); - } else if (existing !== "ambiguous") { - basenameToModuleIndex.set(basename, "ambiguous"); - } - } - - for (const module of moduleGraph.modules) { - for (const referencedFilename of module.referencedFilenames) { - const targetIndex = basenameToModuleIndex.get(referencedFilename); - if (typeof targetIndex !== "number") continue; - const targetModule = moduleGraph.modules[targetIndex]; - if (!targetModule || targetModule.isEntryPoint) continue; - if (targetModule.fileId.index === module.fileId.index) continue; - targetModule.isEntryPoint = true; - } - } -}; - -const detectReactNative = ( - rootDir: string, - workspacePackages: Array<{ directory: string }>, -): boolean => { - const directoriesToCheck = [ - rootDir, - ...workspacePackages.map((workspacePackage) => workspacePackage.directory), - ]; - for (const directory of directoriesToCheck) { - const packageJsonPath = resolve(directory, "package.json"); - if (!existsSync(packageJsonPath)) continue; - try { - const content = readFileSync(packageJsonPath, "utf-8"); - const packageJson = JSON.parse(content); - const allDependencies = { - ...packageJson.dependencies, - ...packageJson.devDependencies, - ...packageJson.optionalDependencies, - }; - if (REACT_NATIVE_ENABLERS.some((enabler) => enabler in allDependencies)) return true; - } catch { - continue; - } - } - return false; -}; - -export type { - ScanResult, - DeslopConfig, - UnusedFile, - UnusedExport, - UnusedDependency, - CircularDependency, - UnusedType, - UnusedTypeKind, - SemanticConfig, - SemanticConfidence, - MisclassifiedDependency, - DependencyDeclaredAs, - UnusedEnumMember, - UnusedClassMember, - ClassMemberKind, - RedundantAlias, - RedundantAliasKind, - DuplicateExport, - DuplicateExportOccurrence, - DuplicateImport, - DuplicateImportOccurrence, - RedundantTypePattern, - RedundantTypePatternKind, - IdentityWrapper, - DuplicateTypeDefinition, - DuplicateTypeDefinitionInstance, - DuplicateInlineType, - InlineTypeOccurrence, - InlineTypeContext, - SimplifiableFunction, - SimplifiableFunctionKind, - SimplifiableExpression, - SimplifiableExpressionKind, - DuplicateConstant, - DuplicateConstantOccurrence, - CrossFileDuplicateExport, - CrossFileDuplicateExportLocation, - DuplicateBlock, - DuplicateBlockOccurrence, - DuplicateBlockCluster, - DuplicateBlockRefactoringKind, - DuplicateBlockRefactoringHint, - DuplicateBlockDetectionMode, - DuplicateBlocksConfig, - ShadowedDirectoryPair, - ReExportCycle, - ReExportCycleKind, - FeatureFlag, - FeatureFlagKind, - FeatureFlagsConfig, - FunctionComplexity, - ComplexityConfig, - PrivateTypeLeak, - UnnecessaryAssertion, - UnnecessaryAssertionKind, - LazyImportAtTopLevel, - LazyImportKind, - CommonjsInEsm, - CommonjsInEsmKind, - TypeScriptEscapeHatch, - TypeScriptEscapeHatchKind, - DeslopError, - DeslopErrorCode, - DeslopErrorModule, - DeslopErrorSeverity, -} from "./types.js"; - -/** - * Default flags below mark rules off-by-default. Rationale for each: - * - * - `reportUnusedClassMembers: false` — class-member dead-code detection - * requires whole-program semantic analysis to be sound (subclass overrides, - * structural typing, framework method-by-name invocation like `@HttpGet`). - * When enabled on real React/Effect/NestJS codebases it produces a high - * rate of stylistic-FP findings (lifecycle methods, framework hooks). Off - * by default until the heuristics are tightened. Opt in via - * `semantic.reportUnusedClassMembers = true` when you accept the noise. - * - * - `reportTypes: false` — type-only exports are over-represented in - * barrel re-exports (the canonical `export type * from "./types"` pattern) - * and are rarely actionable signal. Off by default; opt in when auditing - * a type-heavy package. - * - * - `includeEntryExports: false` — exports from entry-point files are - * "API surface" and intentionally exported for external consumers; flagging - * them as "unused" is noise within a single repo scan. Opt in when auditing - * a package boundary (e.g. before deleting public APIs). - * - * - `reportRedundancy: true` — on because redundancy findings are mostly - * high-signal and the detectors carry their own confidence tiers. - * - * - `duplicateBlocks: undefined` — token-based copy-paste detection (suffix - * array + LCP) is opt-in. It re-parses every source - * file to emit a token stream and adds significant runtime to the scan. - * Pass `duplicateBlocks: { enabled: true }` to turn it on. - */ -const fillSemanticConfig = ( - semanticOverrides: Partial | undefined, -): DeslopConfig["semantic"] => { - const overrides = semanticOverrides ?? {}; - return { - enabled: overrides.enabled ?? true, - reportUnusedTypes: overrides.reportUnusedTypes ?? true, - reportUnusedEnumMembers: overrides.reportUnusedEnumMembers ?? true, - reportUnusedClassMembers: overrides.reportUnusedClassMembers ?? false, - reportRedundantVariableAliases: overrides.reportRedundantVariableAliases ?? true, - reportMisclassifiedDependencies: overrides.reportMisclassifiedDependencies ?? true, - reportRoundTripAliases: overrides.reportRoundTripAliases ?? true, - decoratorAllowlist: overrides.decoratorAllowlist ?? DEFAULT_SEMANTIC_DECORATOR_ALLOWLIST, - }; -}; - -const fillDuplicateBlocksConfig = ( - duplicateBlocksOverrides: Partial | undefined, -): DeslopConfig["duplicateBlocks"] => { - const overrides = duplicateBlocksOverrides ?? {}; - return { - enabled: overrides.enabled ?? true, - mode: overrides.mode ?? "semantic", - minTokens: overrides.minTokens ?? DEFAULT_DUPLICATE_BLOCK_MIN_TOKENS, - minLines: overrides.minLines ?? DEFAULT_DUPLICATE_BLOCK_MIN_LINES, - minOccurrences: overrides.minOccurrences ?? DEFAULT_DUPLICATE_BLOCK_MIN_OCCURRENCES, - skipLocal: overrides.skipLocal ?? false, - }; -}; - -const fillFeatureFlagsConfig = ( - flagsOverrides: Partial | undefined, -): DeslopConfig["featureFlags"] => { - const overrides = flagsOverrides ?? {}; - return { - enabled: overrides.enabled ?? true, - extraEnvPrefixes: overrides.extraEnvPrefixes ?? [], - extraSdkFunctionNames: overrides.extraSdkFunctionNames ?? [], - detectConfigObjects: overrides.detectConfigObjects ?? false, - }; -}; - -const fillComplexityConfig = ( - complexityOverrides: Partial | undefined, -): DeslopConfig["complexity"] => { - const overrides = complexityOverrides ?? {}; - return { - enabled: overrides.enabled ?? true, - cyclomaticThreshold: overrides.cyclomaticThreshold ?? DEFAULT_CYCLOMATIC_THRESHOLD, - cognitiveThreshold: overrides.cognitiveThreshold ?? DEFAULT_COGNITIVE_THRESHOLD, - paramCountThreshold: overrides.paramCountThreshold ?? DEFAULT_PARAM_COUNT_THRESHOLD, - functionLineThreshold: overrides.functionLineThreshold ?? DEFAULT_FUNCTION_LINE_THRESHOLD, - }; -}; -export const defineConfig = ( - options: Partial & { rootDir: string }, -): DeslopConfig => ({ - rootDir: resolve(options.rootDir), - entryPatterns: options.entryPatterns ?? DEFAULT_ENTRY_GLOBS, - ignorePatterns: options.ignorePatterns ?? [], - includeExtensions: options.includeExtensions ?? DEFAULT_EXTENSIONS, - tsConfigPath: options.tsConfigPath, - paths: options.paths, - reportTypes: options.reportTypes ?? false, - includeEntryExports: options.includeEntryExports ?? false, - reportRedundancy: options.reportRedundancy ?? true, - reportCodeQuality: options.reportCodeQuality ?? true, - semantic: fillSemanticConfig(options.semantic), - duplicateBlocks: fillDuplicateBlocksConfig(options.duplicateBlocks), - featureFlags: fillFeatureFlagsConfig(options.featureFlags), - complexity: fillComplexityConfig(options.complexity), -}); - -const buildEmptyScanResult = (errors: DeslopError[], elapsedMs: number): ScanResult => ({ - unusedFiles: [], - unusedExports: [], - unusedDependencies: [], - circularDependencies: [], - unusedTypes: [], - misclassifiedDependencies: [], - unusedEnumMembers: [], - unusedClassMembers: [], - redundantAliases: [], - duplicateExports: [], - duplicateImports: [], - redundantTypePatterns: [], - identityWrappers: [], - duplicateTypeDefinitions: [], - duplicateInlineTypes: [], - simplifiableFunctions: [], - simplifiableExpressions: [], - duplicateConstants: [], - crossFileDuplicateExports: [], - duplicateBlocks: [], - duplicateBlockClusters: [], - shadowedDirectoryPairs: [], - reExportCycles: [], - featureFlags: [], - complexFunctions: [], - privateTypeLeaks: [], - unnecessaryAssertions: [], - lazyImportsAtTopLevel: [], - commonjsInEsm: [], - typeScriptEscapeHatches: [], - analysisErrors: errors, - totalFiles: 0, - totalExports: 0, - analysisTimeMs: elapsedMs, -}); - -const validateConfig = (config: DeslopConfig): DeslopError | undefined => { - if (!config.rootDir || typeof config.rootDir !== "string") { - return new ConfigError({ message: "config.rootDir must be a non-empty string" }); - } - if (!existsSync(config.rootDir)) { - return new ConfigError({ - message: `config.rootDir does not exist: ${config.rootDir}`, - path: config.rootDir, - }); - } - return undefined; -}; - -export const analyze = async (config: DeslopConfig): Promise => { - const pipelineStartTime = performance.now(); - const setupErrors: DeslopError[] = []; - - const configValidationError = validateConfig(config); - if (configValidationError) { - return buildEmptyScanResult([configValidationError], performance.now() - pipelineStartTime); - } - - let workspaceDiscovery: ReturnType; - try { - workspaceDiscovery = resolveWorkspaces(resolve(config.rootDir)); - } catch (workspaceError) { - setupErrors.push( - new WorkspaceError({ - code: "workspace-discovery-failed", - message: "resolveWorkspaces threw — falling back to single-package mode", - path: config.rootDir, - detail: describeUnknownError(workspaceError), - }), - ); - workspaceDiscovery = { - packages: [], - excludedDirectories: [], - hasRootLevelWorkspacePatterns: false, - }; - } - const workspacePackages = [...workspaceDiscovery.packages]; - - let monorepoRoot: string | undefined; - try { - monorepoRoot = findMonorepoRoot(config.rootDir); - } catch (monorepoError) { - setupErrors.push( - new WorkspaceError({ - code: "monorepo-discovery-failed", - message: "findMonorepoRoot threw", - path: config.rootDir, - detail: describeUnknownError(monorepoError), - }), - ); - monorepoRoot = undefined; - } - if (monorepoRoot) { - try { - const monorepoWorkspaces = resolveWorkspaces(monorepoRoot); - const existingDirectories = new Set( - workspacePackages.map((workspacePackage) => workspacePackage.directory), - ); - for (const monorepoPackage of monorepoWorkspaces.packages) { - if (!existingDirectories.has(monorepoPackage.directory)) { - workspacePackages.push(monorepoPackage); - } - } - } catch (monorepoWorkspaceError) { - setupErrors.push( - new WorkspaceError({ - code: "workspace-discovery-failed", - message: "resolveWorkspaces threw on monorepo root", - path: monorepoRoot, - detail: describeUnknownError(monorepoWorkspaceError), - }), - ); - } - } - - let frameworkIgnorePatterns: string[] = []; - try { - frameworkIgnorePatterns = getFrameworkExclusions(config.rootDir); - } catch (frameworkError) { - setupErrors.push( - new WorkspaceError({ - code: "workspace-discovery-failed", - message: "getFrameworkExclusions failed — proceeding without framework exclusion patterns", - path: config.rootDir, - detail: describeUnknownError(frameworkError), - }), - ); - } - - const absoluteRoot = resolve(config.rootDir); - const outputDirectoryExclusions = OUTPUT_DIRECTORIES.flatMap((outputDirectory) => [ - `${absoluteRoot}/${outputDirectory}/**`, - `${absoluteRoot}/**/${outputDirectory}/**`, - ]); - - const allExclusionPatterns = [ - ...workspaceDiscovery.excludedDirectories.map((directory) => `${directory}/**`), - ...frameworkIgnorePatterns, - ...outputDirectoryExclusions, - ]; - - const configWithExclusions = - allExclusionPatterns.length > 0 - ? { - ...config, - ignorePatterns: [...config.ignorePatterns, ...allExclusionPatterns], - } - : config; - - let files: Awaited>; - let discoveredEntries: Awaited>; - try { - const [collectedFiles, resolvedEntries] = await Promise.all([ - collectSourceFiles(configWithExclusions), - resolveEntries(configWithExclusions).catch((entriesError: unknown) => { - setupErrors.push( - new WorkspaceError({ - code: "workspace-discovery-failed", - message: "resolveEntries failed — defaulting to empty entry set", - path: config.rootDir, - detail: describeUnknownError(entriesError), - }), - ); - return { - productionEntries: [] as string[], - testEntries: [] as string[], - alwaysUsedFiles: [] as string[], - }; - }), - ]); - files = collectedFiles; - discoveredEntries = resolvedEntries; - } catch (collectError) { - setupErrors.push( - new WorkspaceError({ - code: "workspace-discovery-failed", - severity: "fatal", - message: "collectSourceFiles failed", - path: config.rootDir, - detail: describeUnknownError(collectError), - }), - ); - return buildEmptyScanResult(setupErrors, performance.now() - pipelineStartTime); - } - const productionEntrySet = new Set(discoveredEntries.productionEntries); - const testEntrySet = new Set(discoveredEntries.testEntries); - const alwaysUsedFileSet = new Set(discoveredEntries.alwaysUsedFiles); - const gitIgnoreResult = collectGitIgnoredPaths( - resolve(config.rootDir), - files.map((file) => file.path), - ); - const gitIgnoredFileSet = gitIgnoreResult.ignoredPaths; - if (gitIgnoreResult.gitUnavailable) { - setupErrors.push( - new WorkspaceError({ - code: "gitignore-check-failed", - severity: "info", - message: "git unavailable — .gitignore filtering skipped", - path: config.rootDir, - }), - ); - } - - let hasReactNative = false; - try { - hasReactNative = detectReactNative(config.rootDir, workspacePackages); - } catch { - hasReactNative = false; - } - - let moduleResolver: ReturnType; - try { - moduleResolver = createResolver( - config, - workspacePackages.map((workspacePackage) => ({ - name: workspacePackage.name, - directory: workspacePackage.directory, - })), - { hasReactNative, monorepoRoot }, - ); - } catch (resolverError) { - setupErrors.push( - new ResolverError({ - message: "createResolver failed", - path: config.rootDir, - detail: describeUnknownError(resolverError), - }), - ); - return buildEmptyScanResult(setupErrors, performance.now() - pipelineStartTime); - } - const parsedModules = await parseFilesInParallel(files); - - const graphInputs: ModuleLinkInput[] = []; - - for (let fileIndex = 0; fileIndex < files.length; fileIndex++) { - const file = files[fileIndex]; - const parsedModule = parsedModules[fileIndex]; - const resolvedImportMap = new Map>(); - - const safeResolveImport = ( - specifier: string, - ): ReturnType => { - try { - return moduleResolver.resolveModule(specifier, file.path); - } catch (resolveError) { - setupErrors.push( - new ResolverError({ - severity: "warning", - message: `moduleResolver.resolveModule threw on specifier "${specifier}"`, - path: file.path, - detail: describeUnknownError(resolveError), - }), - ); - return { resolvedPath: undefined, isExternal: false, packageName: undefined }; - } - }; - - for (const importInfo of parsedModule.imports) { - if (importInfo.isGlob) { - const fileDir = dirname(file.path); - let expandedFiles: string[] = []; - try { - expandedFiles = fg.sync(importInfo.specifier, { - cwd: fileDir, - absolute: true, - onlyFiles: true, - ignore: ["**/node_modules/**"], - }); - } catch (globError) { - setupErrors.push( - new WorkspaceError({ - code: "workspace-discovery-failed", - message: `fast-glob threw on import glob "${importInfo.specifier}"`, - path: file.path, - detail: describeUnknownError(globError), - }), - ); - } - for (const expandedFile of expandedFiles) { - resolvedImportMap.set(expandedFile, { - resolvedPath: expandedFile, - isExternal: false, - packageName: undefined, - }); - } - resolvedImportMap.set(importInfo.specifier, { - resolvedPath: undefined, - isExternal: false, - packageName: undefined, - }); - continue; - } - resolvedImportMap.set(importInfo.specifier, safeResolveImport(importInfo.specifier)); - } - - for (const exportInfo of parsedModule.exports) { - if (exportInfo.isReExport && exportInfo.reExportSource) { - if (!resolvedImportMap.has(exportInfo.reExportSource)) { - resolvedImportMap.set( - exportInfo.reExportSource, - safeResolveImport(exportInfo.reExportSource), - ); - } - } - } - - const isAlwaysUsed = alwaysUsedFileSet.has(file.path); - graphInputs.push({ - fileId: file, - parsed: parsedModule, - resolvedImports: resolvedImportMap, - isEntryPoint: - isAlwaysUsed || productionEntrySet.has(file.path) || testEntrySet.has(file.path), - isTestEntry: testEntrySet.has(file.path), - isGitIgnored: gitIgnoredFileSet.has(file.path), - }); - } - - const discoveredFilePaths = new Set(files.map((file) => file.path)); - const styleFilesToAdd = new Set(); - - for (const input of graphInputs) { - for (const [, resolvedImport] of input.resolvedImports) { - if (!resolvedImport.resolvedPath || resolvedImport.isExternal) continue; - if (discoveredFilePaths.has(resolvedImport.resolvedPath)) continue; - const isStyleFile = STYLE_EXTENSIONS.some((ext) => - resolvedImport.resolvedPath!.endsWith(ext), - ); - if (isStyleFile && existsSync(resolvedImport.resolvedPath)) { - styleFilesToAdd.add(resolvedImport.resolvedPath); - } - } - } - - const sortedStyleFiles = [...styleFilesToAdd].sort(); - let nextFileIndex = files.length; - for (const styleFilePath of sortedStyleFiles) { - const styleSourceFile = { index: nextFileIndex, path: styleFilePath }; - const parsedStyleModule = parseSourceFile(styleFilePath); - const resolvedStyleImportMap = new Map< - string, - ReturnType - >(); - - for (const importInfo of parsedStyleModule.imports) { - let resolvedImport: ReturnType; - try { - resolvedImport = moduleResolver.resolveModule(importInfo.specifier, styleFilePath); - } catch (styleResolveError) { - setupErrors.push( - new ResolverError({ - severity: "warning", - message: `moduleResolver.resolveModule threw on style import "${importInfo.specifier}"`, - path: styleFilePath, - detail: describeUnknownError(styleResolveError), - }), - ); - resolvedImport = { resolvedPath: undefined, isExternal: false, packageName: undefined }; - } - resolvedStyleImportMap.set(importInfo.specifier, resolvedImport); - if (resolvedImport.resolvedPath && !discoveredFilePaths.has(resolvedImport.resolvedPath)) { - const isNestedStyle = STYLE_EXTENSIONS.some((ext) => - resolvedImport.resolvedPath!.endsWith(ext), - ); - if (isNestedStyle && existsSync(resolvedImport.resolvedPath)) { - styleFilesToAdd.add(resolvedImport.resolvedPath); - } - } - } - - graphInputs.push({ - fileId: styleSourceFile, - parsed: parsedStyleModule, - resolvedImports: resolvedStyleImportMap, - isEntryPoint: false, - isTestEntry: false, - isGitIgnored: gitIgnoredFileSet.has(styleFilePath), - }); - discoveredFilePaths.add(styleFilePath); - nextFileIndex++; - } - - let moduleGraph: ReturnType; - try { - moduleGraph = buildDependencyGraph(graphInputs); - } catch (graphError) { - setupErrors.push( - new DetectorError({ - module: "linker", - severity: "fatal", - message: "buildDependencyGraph threw", - detail: describeUnknownError(graphError), - }), - ); - return buildEmptyScanResult(setupErrors, performance.now() - pipelineStartTime); - } - - try { - resolveReExportChains(moduleGraph); - } catch (reExportError) { - setupErrors.push( - new DetectorError({ - module: "linker", - message: "resolveReExportChains threw — re-export propagation skipped", - detail: describeUnknownError(reExportError), - }), - ); - } - - markFilenameRegistryEntries(moduleGraph); - - try { - traceReachability(moduleGraph); - } catch (reachabilityError) { - setupErrors.push( - new DetectorError({ - module: "linker", - message: "traceReachability threw — every module marked reachable to avoid over-reporting", - detail: describeUnknownError(reachabilityError), - }), - ); - for (const module of moduleGraph.modules) module.isReachable = true; - } - - let analysisResult: ScanResult; - try { - analysisResult = generateReport(moduleGraph, config); - } catch (reportError) { - setupErrors.push( - new DetectorError({ - module: "report", - severity: "fatal", - message: "generateReport threw at the top level", - detail: describeUnknownError(reportError), - }), - ); - return buildEmptyScanResult(setupErrors, performance.now() - pipelineStartTime); - } - - if (setupErrors.length > 0) { - analysisResult.analysisErrors = [...setupErrors, ...analysisResult.analysisErrors]; - } - analysisResult.analysisTimeMs = performance.now() - pipelineStartTime; - - return analysisResult; -}; +// deslop-js is a thin published facade. The engine lives in +// `@react-doctor/core` (private) under `src/deslop` and is exposed via the +// `@react-doctor/core/deslop` subpath; `vp pack` bundles it into this +// package's output so the published tarball stays self-contained. Keep this +// file a pure re-export so the public API tracks the engine automatically. +export * from "@react-doctor/core/deslop"; diff --git a/packages/deslop-js/vite.config.ts b/packages/deslop-js/vite.config.ts index a48e2cacd..998799ebe 100644 --- a/packages/deslop-js/vite.config.ts +++ b/packages/deslop-js/vite.config.ts @@ -12,7 +12,11 @@ export default defineConfig({ minify: process.env.NODE_ENV === "production", }, { - entry: ["./src/collect/parse-worker.ts"], + // The engine moved into `@react-doctor/core/deslop`; build the worker + // entry straight from core's source so this package still emits a + // sibling `dist/parse-worker.mjs` for the bundled parallel parser to + // resolve via `import.meta.url`. + entry: ["../core/src/deslop/collect/parse-worker.ts"], format: ["esm"], dts: false, clean: false, diff --git a/packages/language-server/package.json b/packages/language-server/package.json index 935706e5f..b329a7845 100644 --- a/packages/language-server/package.json +++ b/packages/language-server/package.json @@ -29,6 +29,7 @@ }, "dependencies": { "@react-doctor/core": "workspace:*", + "deslop-js": "workspace:*", "vscode-languageserver": "^9.0.1", "vscode-languageserver-textdocument": "^1.0.12", "vscode-uri": "^3.1.0" diff --git a/packages/react-doctor/package.json b/packages/react-doctor/package.json index 430811067..ea48ed04a 100644 --- a/packages/react-doctor/package.json +++ b/packages/react-doctor/package.json @@ -65,6 +65,7 @@ "eslint-plugin-react-hooks": "^7.1.1", "jiti": "^2.7.0", "magicast": "^0.5.3", + "oxc-parser": "^0.132.0", "oxlint": ">=1.66.0 <1.67.0", "oxlint-plugin-react-doctor": "workspace:*", "prompts": "^2.4.2", diff --git a/packages/react-doctor/src/cli/utils/constants.ts b/packages/react-doctor/src/cli/utils/constants.ts index 933bca6d8..0dda94a98 100644 --- a/packages/react-doctor/src/cli/utils/constants.ts +++ b/packages/react-doctor/src/cli/utils/constants.ts @@ -48,6 +48,13 @@ export const GH_PR_LIST_MAX = 100; // compact, passable CLI argument. export const HANDOFF_MAX_FILES_PER_RULE = 3; +// Telemetry sampling for anonymized diagnostic snippets: at most this many +// distinct (by structural hash) scrambled snippets ship per scan, and at most +// this many diagnostics are inspected before giving up — bounds the parse work +// so a huge result set never pays to scramble every site. +export const SCRAMBLED_SNIPPET_LIMIT = 20; +export const SCRAMBLED_SNIPPET_SCAN_LIMIT = 200; + // Social proof for the "Add to CI" pitch (shown in the post-scan handoff // prompt and embedded in the agent-handoff prompt). export const CI_TRUST_COMPANIES = "PayPal, Rippling, and Alibaba"; diff --git a/packages/react-doctor/src/cli/utils/record-diagnostic-snippets.ts b/packages/react-doctor/src/cli/utils/record-diagnostic-snippets.ts new file mode 100644 index 000000000..35baf3b44 --- /dev/null +++ b/packages/react-doctor/src/cli/utils/record-diagnostic-snippets.ts @@ -0,0 +1,135 @@ +import * as fs from "node:fs"; +import * as Sentry from "@sentry/node"; +import { getDiagnosticRuleIdentity, utf8OffsetToUtf16 } from "@react-doctor/core"; +import type { Diagnostic } from "@react-doctor/core"; +import { isSentryTracingEnabled } from "../../instrument.js"; +import { SCRAMBLED_SNIPPET_LIMIT, SCRAMBLED_SNIPPET_SCAN_LIMIT } from "./constants.js"; +import { resolveAbsolutePath } from "./resolve-absolute-path.js"; +import { scramble, type ScrambleOptions } from "./scramble-snippet.js"; + +export interface ScrambledDiagnosticSnippet { + readonly rule: string; + readonly plugin: string; + readonly category: string; + readonly severity: string; + /** Structure-only source: identifiers/literals blinded, shape preserved. */ + readonly source: string; + /** Stable structural fingerprint, used to dedupe and group identical shapes. */ + readonly hash: string; + readonly nodeType: string | null; +} + +const LANGUAGE_BY_EXTENSION: Record = { + ts: "ts", + mts: "ts", + cts: "ts", + tsx: "tsx", + js: "js", + mjs: "js", + cjs: "js", + jsx: "jsx", +}; + +const languageForPath = (filePath: string): ScrambleOptions["language"] => + LANGUAGE_BY_EXTENSION[filePath.slice(filePath.lastIndexOf(".") + 1).toLowerCase()]; + +/** + * Scrambles a capped, deduplicated sample of the scan's diagnostics into + * anonymized structural snippets. Pure and exported so the sampling + offset + * conversion is unit-testable without a filesystem or Sentry client: `readSource` + * is injected (returns null when a file can't be read). + * + * Each diagnostic's `offset`/`length` are oxlint UTF-8 byte offsets, so they're + * converted to UTF-16 code units before `scramble` (which slices the source and + * matches oxc AST spans, both UTF-16). Snippets are deduped by structural hash + * and capped at `SCRAMBLED_SNIPPET_LIMIT`; at most `SCRAMBLED_SNIPPET_SCAN_LIMIT` + * diagnostics are inspected so a large result set never scrambles every site. + */ +export const buildScrambledDiagnosticSnippets = ( + diagnostics: ReadonlyArray, + readSource: (filePath: string) => string | null, +): ScrambledDiagnosticSnippet[] => { + const snippets: ScrambledDiagnosticSnippet[] = []; + const seenHashes = new Set(); + const sourceByPath = new Map(); + let inspected = 0; + + for (const diagnostic of diagnostics) { + if (snippets.length >= SCRAMBLED_SNIPPET_LIMIT) break; + if (inspected >= SCRAMBLED_SNIPPET_SCAN_LIMIT) break; + if (diagnostic.offset === undefined || diagnostic.length === undefined) continue; + inspected += 1; + + let source = sourceByPath.get(diagnostic.filePath); + if (source === undefined) { + source = readSource(diagnostic.filePath); + sourceByPath.set(diagnostic.filePath, source); + } + if (source === null) continue; + + const startUtf16 = utf8OffsetToUtf16(source, diagnostic.offset); + const endUtf16 = utf8OffsetToUtf16(source, diagnostic.offset + diagnostic.length); + const scrambled = scramble(source, { + language: languageForPath(diagnostic.filePath), + diagnostic: { offset: startUtf16, length: endUtf16 - startUtf16 }, + }); + if (scrambled === null || seenHashes.has(scrambled.hash)) continue; + seenHashes.add(scrambled.hash); + + const { ruleKey, category } = getDiagnosticRuleIdentity(diagnostic); + snippets.push({ + rule: ruleKey, + plugin: diagnostic.plugin, + category, + severity: diagnostic.severity, + source: scrambled.source, + hash: scrambled.hash, + nodeType: scrambled.nodeType, + }); + } + + return snippets; +}; + +/** + * Emits the anonymized diagnostic snippets as one child span per distinct + * snippet under the run transaction, so the structural shape of what rules fire + * on is queryable in Sentry's Trace Explorer without ever shipping real source. + * A no-op when Sentry tracing is off (the snippets only make sense as children + * of the run span), and the whole pass is wrapped so a read/parse failure can + * never break a scan. The scrambled `source` carries no identifiers or literals, + * and the transaction still passes through `scrubSentryEvent` before send. + */ +export const recordDiagnosticSnippets = (input: { + diagnostics: ReadonlyArray; + rootDirectory: string; +}): void => { + if (!isSentryTracingEnabled()) return; + try { + const snippets = buildScrambledDiagnosticSnippets(input.diagnostics, (filePath) => { + try { + return fs.readFileSync(resolveAbsolutePath(filePath, input.rootDirectory), "utf8"); + } catch { + return null; + } + }); + for (const snippet of snippets) { + Sentry.startInactiveSpan({ + name: "react-doctor diagnostic snippet", + op: "diagnostic.snippet", + attributes: { + rule: snippet.rule, + plugin: snippet.plugin, + category: snippet.category, + severity: snippet.severity, + "snippet.hash": snippet.hash, + "snippet.nodeType": snippet.nodeType ?? "unknown", + "snippet.source": snippet.source, + }, + }).end(); + } + } catch { + // Telemetry must never break a scan — drop the whole snippet pass on any + // read/parse/span failure. + } +}; diff --git a/packages/react-doctor/src/cli/utils/scramble-snippet.ts b/packages/react-doctor/src/cli/utils/scramble-snippet.ts new file mode 100644 index 000000000..9c24f3f0a --- /dev/null +++ b/packages/react-doctor/src/cli/utils/scramble-snippet.ts @@ -0,0 +1,303 @@ +import { parseSync } from "oxc-parser"; +import { isOxcAstNode, type OxcAstNode } from "deslop-js"; + +export interface ScrambleOptions { + language?: "ts" | "tsx" | "js" | "jsx"; + // `offset`/`length` are UTF-16 code-unit indices into `source` (the units oxc + // AST spans and `String.slice` use), NOT UTF-8 byte offsets. Callers holding + // oxlint `Diagnostic` byte offsets must convert first or non-ASCII source + // picks the wrong node. + diagnostic?: { offset: number; length: number }; +} + +export interface ScrambledCode { + source: string; + hash: string; + nodeType: string | null; +} + +interface SourceReplacement { + start: number; + end: number; + text: string; +} + +interface Span { + start: number; + end: number; +} + +type PlaceholderKind = "hook" | "setter" | "getter" | "component" | "element" | "prop" | "var"; + +const FILENAME_FOR_LANGUAGE: Record, string> = { + ts: "snippet.ts", + tsx: "snippet.tsx", + js: "snippet.js", + jsx: "snippet.jsx", +}; + +const PLACEHOLDER_PREFIX: Record = { + hook: "h", + setter: "s", + getter: "g", + component: "C", + element: "e", + prop: "p", + var: "v", +}; + +const RESERVED_IDENTIFIER_NAMES = new Set(["constructor", "global"]); + +const TOO_GRANULAR_NODES = new Set([ + "Identifier", + "JSXIdentifier", + "PrivateIdentifier", + "Literal", + "MemberExpression", + "Property", + "JSXAttribute", + "JSXExpressionContainer", + "TemplateElement", +]); +const MAX_ENCLOSING_CLIMB = 6; + +const FNV_OFFSET_BASIS = 0x811c9dc5; +const FNV_PRIME = 0x01000193; + +const offsetOf = (node: OxcAstNode): Span | null => + typeof node.start === "number" && typeof node.end === "number" + ? { start: node.start, end: node.end } + : null; + +const visitChildren = (node: OxcAstNode, visit: (child: unknown) => void): void => { + for (const key of Object.keys(node)) { + const value = node[key]; + if (Array.isArray(value)) for (const item of value) visit(item); + else if (value && typeof value === "object") visit(value); + } +}; + +const fingerprint = (input: string): string => { + let hash = FNV_OFFSET_BASIS; + for (let charIndex = 0; charIndex < input.length; charIndex++) { + hash ^= input.charCodeAt(charIndex); + hash = Math.imul(hash, FNV_PRIME); + } + return (hash >>> 0).toString(16).padStart(8, "0"); +}; + +const parseProgram = (source: string, fileName: string): unknown | null => { + try { + const result = parseSync(fileName, source); + if (result.errors.some((parseError) => parseError.severity === "Error")) return null; + return result.program; + } catch { + return null; + } +}; + +// tsx first then ts: value-position generics (`fn()`, `() => …`) parse as +// JSX under tsx rules, so the ts fallback is required when no language is given. +const parseSnippetProgram = ( + source: string, + language: ScrambleOptions["language"], +): unknown | null => { + if (language) return parseProgram(source, FILENAME_FOR_LANGUAGE[language]); + return ( + parseProgram(source, FILENAME_FOR_LANGUAGE.tsx) ?? + parseProgram(source, FILENAME_FOR_LANGUAGE.ts) + ); +}; + +// oxc reports TemplateElement spans inconsistently (tsx wraps the +// `` ` ``/`${`/`}` delimiters, js is cooked text only) and raw text can exceed +// the span, so trim the real delimiter chars rather than using `raw.length`. +const templateInnerSpan = (source: string, localStart: number, localEnd: number): Span => { + let start = localStart; + let end = localEnd; + if (source[start] === "`" || source[start] === "}") start += 1; + if (source.slice(end - 2, end) === "${") end -= 2; + else if (source[end - 1] === "`") end -= 1; + return { start, end }; +}; + +const classifyByName = (name: string): PlaceholderKind => { + if (/^use[A-Z]/.test(name)) return "hook"; + if (/^set[A-Z]/.test(name)) return "setter"; + if (/^get[A-Z]/.test(name)) return "getter"; + if (/^[A-Z]/.test(name)) return "component"; + return "var"; +}; + +const classifyJsxNodes = (program: unknown): Map => { + const kinds = new Map(); + const visit = (node: unknown): void => { + if (!isOxcAstNode(node)) return; + if ( + (node.type === "JSXOpeningElement" || node.type === "JSXClosingElement") && + isOxcAstNode(node.name) && + node.name.type === "JSXIdentifier" && + typeof node.name.name === "string" + ) { + kinds.set(node.name, /^[A-Z]/.test(node.name.name) ? "component" : "element"); + } + if ( + node.type === "JSXAttribute" && + isOxcAstNode(node.name) && + node.name.type === "JSXIdentifier" + ) { + kinds.set(node.name, "prop"); + } + visitChildren(node, visit); + }; + visit(program); + return kinds; +}; + +// Keyed by (role, name), not name alone: one source name can play two roles +// (e.g. `className` as a var and a JSX attribute label) and each role keeps its +// own prefix, which keeps structurally identical snippets hashing identically. +const makePlaceholderFactory = (): ((name: string, kind: PlaceholderKind) => string) => { + const assignedByKey = new Map(); + const countByPrefix = new Map(); + return (name, kind) => { + const key = `${kind}\u0000${name}`; + const existing = assignedByKey.get(key); + if (existing !== undefined) return existing; + const prefix = PLACEHOLDER_PREFIX[kind]; + const nextIndex = countByPrefix.get(prefix) ?? 0; + countByPrefix.set(prefix, nextIndex + 1); + const placeholder = `${prefix}${nextIndex}`; + assignedByKey.set(key, placeholder); + return placeholder; + }; +}; + +const scrambleReadable = ( + source: string, + rootNode: unknown, + jsxKinds: Map, + offsetShift: number, +): string => { + const placeholderFor = makePlaceholderFactory(); + const replacements: SourceReplacement[] = []; + const add = (span: Span, text: string): void => { + replacements.push({ start: span.start - offsetShift, end: span.end - offsetShift, text }); + }; + const visit = (node: unknown): void => { + if (!isOxcAstNode(node)) return; + const span = offsetOf(node); + if ( + node.type === "Identifier" || + node.type === "JSXIdentifier" || + node.type === "PrivateIdentifier" + ) { + if (span && typeof node.name === "string" && !RESERVED_IDENTIFIER_NAMES.has(node.name)) { + const kind = jsxKinds.get(node) ?? classifyByName(node.name); + const isPrivate = node.type === "PrivateIdentifier"; + const placeholder = placeholderFor(isPrivate ? `#${node.name}` : node.name, kind); + add(span, isPrivate ? `#${placeholder}` : placeholder); + } + visitChildren(node, visit); + return; + } + if ( + node.type === "JSXText" && + span && + typeof node.value === "string" && + /\S/.test(node.value) + ) { + add(span, "t"); + return; + } + if (node.type === "Literal" && span) { + if (typeof node.value === "string") add(span, '"s"'); + else if (typeof node.value === "number" || typeof node.value === "bigint") add(span, "0"); + else if (node.regex) add(span, "/re/"); + } + if (node.type === "TemplateElement" && span) { + const inner = templateInnerSpan(source, span.start - offsetShift, span.end - offsetShift); + if (inner.end > inner.start) { + replacements.push({ start: inner.start, end: inner.end, text: "" }); + } + } + visitChildren(node, visit); + }; + visit(rootNode); + + replacements.sort((first, second) => second.start - first.start); + let scrambled = source; + let previousStart = Number.POSITIVE_INFINITY; + for (const replacement of replacements) { + if (replacement.end > previousStart || replacement.start < 0) continue; + scrambled = + scrambled.slice(0, replacement.start) + replacement.text + scrambled.slice(replacement.end); + previousStart = replacement.start; + } + return scrambled; +}; + +const findMinimalNode = (program: unknown, offset: number, length: number): OxcAstNode | null => { + const targetEnd = offset + Math.max(length, 1); + let bestSize = Number.POSITIVE_INFINITY; + const chain: OxcAstNode[] = []; + let bestChain: OxcAstNode[] = []; + const visit = (node: unknown): void => { + if (!isOxcAstNode(node)) return; + const span = offsetOf(node); + if (span && span.start <= offset && span.end >= targetEnd) { + chain.push(node); + if (span.end - span.start < bestSize) { + bestSize = span.end - span.start; + bestChain = [...chain]; + } + visitChildren(node, visit); + chain.pop(); + return; + } + visitChildren(node, visit); + }; + visit(program); + if (bestChain.length === 0) return null; + let index = bestChain.length - 1; + let climbs = 0; + while ( + index > 0 && + climbs < MAX_ENCLOSING_CLIMB && + TOO_GRANULAR_NODES.has(bestChain[index].type) + ) { + index -= 1; + climbs += 1; + } + return bestChain[index]; +}; + +export const scramble = (source: string, options: ScrambleOptions = {}): ScrambledCode | null => { + const program = parseSnippetProgram(source, options.language); + if (program === null) return null; + const jsxKinds = classifyJsxNodes(program); + + let rootNode: unknown = program; + let scrambledSource = source; + let offsetShift = 0; + let nodeType: string | null = null; + + if (options.diagnostic) { + const node = findMinimalNode(program, options.diagnostic.offset, options.diagnostic.length); + if (node === null) return null; + rootNode = node; + nodeType = node.type; + const span = offsetOf(node); + if (span) { + scrambledSource = source.slice(span.start, span.end); + offsetShift = span.start; + } + } + + const scrambledOutput = scrambleReadable(scrambledSource, rootNode, jsxKinds, offsetShift); + return { + source: scrambledOutput, + hash: fingerprint(scrambledOutput), + nodeType, + }; +}; diff --git a/packages/react-doctor/src/inspect.ts b/packages/react-doctor/src/inspect.ts index c4e8e1a9f..690879822 100644 --- a/packages/react-doctor/src/inspect.ts +++ b/packages/react-doctor/src/inspect.ts @@ -26,6 +26,7 @@ import type { SentryRootSpan } from "./cli/utils/with-sentry-run-span.js"; import { BASELINE_FILES_TEMP_DIR_PREFIX, METRIC } from "./cli/utils/constants.js"; import { recordCount } from "./cli/utils/record-metric.js"; import { recordScanMetrics } from "./cli/utils/record-scan-metrics.js"; +import { recordDiagnosticSnippets } from "./cli/utils/record-diagnostic-snippets.js"; import { recordRunEvent } from "./cli/utils/build-run-event.js"; import { resolveWorkerTelemetry } from "./cli/utils/resolve-worker-telemetry.js"; import { countDroppedLintFiles } from "./cli/utils/count-dropped-lint-files.js"; @@ -863,6 +864,10 @@ const renderAndRecordScan = async (input: RenderAndRecordScanInput): Promise = {}): Diagnostic => ({ + filePath: "src/app.tsx", + plugin: "react-doctor", + rule: "test-rule", + severity: "error", + message: "x", + help: "", + line: 1, + column: 1, + category: "Test", + ...overrides, +}); + +const toByteOffset = (source: string, utf16Index: number): number => + Buffer.byteLength(source.slice(0, utf16Index), "utf8"); + +describe("buildScrambledDiagnosticSnippets", () => { + it("scrambles the minimal node and carries the rule identity", () => { + const source = `import { useEffect } from "react"; +useEffect(() => { doSecretThing(secretValue); }, []);`; + const utf16Index = source.indexOf("useEffect(() =>"); + const diagnostic = buildDiagnostic({ + offset: toByteOffset(source, utf16Index), + length: "useEffect".length, + category: "Performance", + rule: "no-effect", + }); + + const snippets = buildScrambledDiagnosticSnippets([diagnostic], () => source); + + expect(snippets).toHaveLength(1); + expect(snippets[0].nodeType).toBe("CallExpression"); + expect(snippets[0].rule).toBe("react-doctor/no-effect"); + expect(snippets[0].category).toBe("Performance"); + expect(snippets[0].severity).toBe("error"); + expect(snippets[0].source).not.toMatch(/doSecretThing/); + expect(snippets[0].source).not.toMatch(/secretValue/); + expect(snippets[0].hash).toMatch(/^[0-9a-f]{8}$/); + }); + + it("converts oxlint UTF-8 byte offsets so non-ASCII source picks the right node", () => { + // The emoji + accents before the target make the byte offset diverge from + // the UTF-16 index; if the conversion were skipped the offset would land on + // the wrong node (or none). + const source = `const banner = "héllo wörld 😀 from accounting"; +import { useEffect } from "react"; +useEffect(() => { doSecretThing(secretValue); }, []);`; + const utf16Index = source.indexOf("useEffect(() =>"); + const diagnostic = buildDiagnostic({ + offset: toByteOffset(source, utf16Index), + length: "useEffect".length, + }); + + const snippets = buildScrambledDiagnosticSnippets([diagnostic], () => source); + + expect(snippets).toHaveLength(1); + expect(snippets[0].nodeType).toBe("CallExpression"); + expect(snippets[0].source).not.toMatch(/banner|accounting|doSecretThing/); + }); + + it("dedupes structurally identical snippets by hash across files", () => { + const makeSource = (name: string): string => + `import { useEffect } from "react"; +useEffect(() => { ${name}(); }, []);`; + const sourceByPath: Record = { + "src/a.tsx": makeSource("fetchAlpha"), + "src/b.tsx": makeSource("fetchBravo"), + }; + const utf16Index = sourceByPath["src/a.tsx"].indexOf("useEffect(() =>"); + const diagnostics = [ + buildDiagnostic({ + filePath: "src/a.tsx", + offset: toByteOffset(sourceByPath["src/a.tsx"], utf16Index), + length: "useEffect".length, + }), + buildDiagnostic({ + filePath: "src/b.tsx", + offset: toByteOffset(sourceByPath["src/b.tsx"], utf16Index), + length: "useEffect".length, + }), + ]; + + const snippets = buildScrambledDiagnosticSnippets( + diagnostics, + (filePath) => sourceByPath[filePath] ?? null, + ); + + expect(snippets).toHaveLength(1); + }); + + it("skips diagnostics without a span or with an unreadable file", () => { + const withoutSpan = buildDiagnostic(); + const unreadable = buildDiagnostic({ filePath: "src/missing.tsx", offset: 0, length: 1 }); + + const snippets = buildScrambledDiagnosticSnippets([withoutSpan, unreadable], () => null); + + expect(snippets).toEqual([]); + }); +}); diff --git a/packages/react-doctor/tests/scramble-snippet.test.ts b/packages/react-doctor/tests/scramble-snippet.test.ts new file mode 100644 index 000000000..dbf1ac7f8 --- /dev/null +++ b/packages/react-doctor/tests/scramble-snippet.test.ts @@ -0,0 +1,150 @@ +import { describe, expect, it } from "vite-plus/test"; +import { scramble } from "../src/cli/utils/scramble-snippet.js"; + +describe("scramble", () => { + it("strips every identifier — including React APIs — and all literals", () => { + const result = scramble( + `import { useEffect } from "react"; +const secretBusinessName = 42; +useEffect(() => { doSecretThing(secretBusinessName); }, []);`, + { language: "ts" }, + ); + expect(result).not.toBeNull(); + expect(result!.source).not.toMatch(/useEffect/); + expect(result!.source).not.toMatch(/secretBusinessName/); + expect(result!.source).not.toMatch(/doSecretThing/); + expect(result!.source).not.toMatch(/42/); + }); + + it("scrambles only the minimal node around a diagnostic", () => { + const source = `import { useEffect, useState } from "react"; + +export const InvoiceWidget = ({ customerId }: { customerId: string }) => { + const [total, setTotal] = useState(0); + useEffect(() => { + fetchInvoiceTotal(customerId, "acme-corp").then((amount) => { + setTotal(amount * 1.07); + }); + }, []); + return
{total}
; +};`; + const offset = source.indexOf("useEffect(() =>"); + const whole = scramble(source, { language: "tsx" }); + const minimal = scramble(source, { + language: "tsx", + diagnostic: { offset, length: 9 }, + }); + expect(whole).not.toBeNull(); + expect(minimal).not.toBeNull(); + expect(minimal!.nodeType).toBe("CallExpression"); + expect(minimal!.source.length).toBeLessThan(whole!.source.length); + expect(minimal!.hash).not.toBe(whole!.hash); + }); + + it("is deterministic — same shape, different names, same hash", () => { + const first = scramble(`const taxRate = 0.07; const grandTotal = subtotal * taxRate;`, { + language: "ts", + }); + const second = scramble(`const discount = 0.42; const finalPrice = basePrice * discount;`, { + language: "ts", + }); + expect(first).not.toBeNull(); + expect(second).not.toBeNull(); + expect(first!.hash).toBe(second!.hash); + expect(first!.source).toBe(second!.source); + }); + + it("scrambles everything — imports, custom props, JSX tags, and DOM/a11y attributes", () => { + const result = scramble( + `import { Avatar } from "@acme/internal-design-system"; +export const Row = ({ customerName }) => ( + {}} secretRank={3}> + {customerName} + +);`, + { language: "tsx" }, + ); + expect(result).not.toBeNull(); + expect(result!.source).not.toMatch(/Avatar/); + expect(result!.source).not.toMatch(/customerName/); + expect(result!.source).not.toMatch(/secretRank/); + expect(result!.source).not.toMatch(/\$highlighted/); + expect(result!.source).not.toMatch(/\brole=/); + expect(result!.source).not.toMatch(/\balt=/); + expect(result!.source).not.toMatch(/data-testid=/); + expect(result!.source).not.toMatch(/onClick=/); + }); + + it("parses value-position generics when language is omitted (tsx→ts fallback)", () => { + const result = scramble(`const wrap = (value: Type) => identity(value);`); + expect(result).not.toBeNull(); + expect(result!.source).not.toMatch(/identity/); + expect(result!.source).not.toMatch(/wrap/); + const explicit = scramble(`const wrap = (value: Type) => identity(value);`, { + language: "ts", + }); + expect(explicit).not.toBeNull(); + expect(result!.source).toBe(explicit!.source); + }); + + it("stays naming-invariant when a name doubles as a var and a JSX attribute", () => { + const collides = scramble(`({ className }) =>
`, { + language: "tsx", + }); + const distinct = scramble(`({ role }) =>
`, { + language: "tsx", + }); + expect(collides).not.toBeNull(); + expect(distinct).not.toBeNull(); + expect(collides!.source).toBe(distinct!.source); + expect(collides!.hash).toBe(distinct!.hash); + }); + + it("blanks template text without overrunning the span (escapes + interpolation)", () => { + const result = scramble( + "const label = `secret\\n${first} and ${second} tail`; export { label };", + { language: "ts" }, + ); + expect(result).not.toBeNull(); + expect(result!.source).toMatch(/`[^`]*\$\{\w+\}[^`]*\$\{\w+\}[^`]*`/); + expect(result!.source).not.toMatch(/secret/); + expect(result!.source).not.toMatch(/tail/); + expect(scramble(result!.source, { language: "ts" })).not.toBeNull(); + }); + + it("keeps the # on private fields so they re-parse and don't collide", () => { + const result = scramble( + `class Vault { + #secret = 1; + read(secret: number) { return this.#secret + secret; } +}`, + { language: "ts" }, + ); + expect(result).not.toBeNull(); + expect(result!.source).not.toMatch(/secret/); + expect(result!.source).toMatch(/#\w+\s*=/); + expect(result!.source).toMatch(/this\.#\w+/); + expect(scramble(result!.source, { language: "ts" })).not.toBeNull(); + }); + + it("blinds visible JSX text content", () => { + const result = scramble(`export const Banner = () =>
Acme confidential roadmap
;`, { + language: "tsx", + }); + expect(result).not.toBeNull(); + expect(result!.source).not.toMatch(/confidential/); + expect(result!.source).not.toMatch(/roadmap/); + expect(result!.source).not.toMatch(/Acme/); + }); + + it("blinds type names on typed bindings and params", () => { + const result = scramble( + `const id: AcmeInvoiceId = make(); +const lookup = (ref: InternalCustomerRef) => ref;`, + { language: "ts" }, + ); + expect(result).not.toBeNull(); + expect(result!.source).not.toMatch(/AcmeInvoiceId/); + expect(result!.source).not.toMatch(/InternalCustomerRef/); + }); +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a9a909f6a..c959e8038 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,6 +51,9 @@ importers: '@react-doctor/core': specifier: workspace:* version: link:../core + deslop-js: + specifier: workspace:* + version: link:../deslop-js effect: specifier: 4.0.0-beta.70 version: 4.0.0-beta.70 @@ -64,21 +67,33 @@ importers: '@effect/platform-node-shared': specifier: 4.0.0-beta.70 version: 4.0.0-beta.70(effect@4.0.0-beta.70) + '@oxc-project/types': + specifier: ^0.132.0 + version: 0.132.0 confbox: specifier: ^0.2.4 version: 0.2.4 - deslop-js: - specifier: workspace:* - version: link:../deslop-js effect: specifier: 4.0.0-beta.70 version: 4.0.0-beta.70 eslint-plugin-react-hooks: specifier: ^7.1.1 version: 7.1.1(eslint@9.39.2(jiti@2.7.0)) + fast-glob: + specifier: ^3.3.3 + version: 3.3.3 jiti: specifier: ^2.7.0 version: 2.7.0 + minimatch: + specifier: ^10.2.5 + version: 10.2.5 + oxc-parser: + specifier: ^0.132.0 + version: 0.132.0 + oxc-resolver: + specifier: ^11.19.1 + version: 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) oxlint: specifier: '>=1.66.0 <1.67.0' version: 1.66.0(oxlint-tsgolint@0.23.0) @@ -98,6 +113,9 @@ importers: '@effect/vitest': specifier: 4.0.0-beta.70 version: 4.0.0-beta.70(effect@4.0.0-beta.70)(vitest@4.1.7(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(vite@7.3.1(@types/node@25.6.0)(jiti@2.7.0)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))) + '@types/minimatch': + specifier: ^5.1.2 + version: 5.1.2 '@types/node': specifier: ^25.6.0 version: 25.6.0 @@ -107,6 +125,9 @@ importers: '@types/semver': specifier: ^7.7.1 version: 7.7.1 + tsx: + specifier: ^4.21.0 + version: 4.22.4 packages/deslop-cli: dependencies: @@ -142,15 +163,12 @@ importers: specifier: ^6.0.3 version: 6.0.3 devDependencies: - '@types/minimatch': - specifier: ^5.1.2 - version: 5.1.2 + '@react-doctor/core': + specifier: workspace:* + version: link:../core '@types/node': specifier: ^25.6.0 version: 25.6.0 - tsx: - specifier: ^4.21.0 - version: 4.22.4 packages/eslint-plugin-react-doctor: dependencies: @@ -167,6 +185,9 @@ importers: '@react-doctor/core': specifier: workspace:* version: link:../core + deslop-js: + specifier: workspace:* + version: link:../deslop-js vscode-languageserver: specifier: ^9.0.1 version: 9.0.1 @@ -229,6 +250,9 @@ importers: magicast: specifier: ^0.5.3 version: 0.5.3 + oxc-parser: + specifier: ^0.132.0 + version: 0.132.0 oxlint: specifier: '>=1.66.0 <1.67.0' version: 1.66.0(oxlint-tsgolint@0.23.0) diff --git a/vite.config.ts b/vite.config.ts index fed1a9e83..8e1901db0 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -14,7 +14,7 @@ export default defineConfig({ "packages/zed-react-doctor/**", "packages/react-doctor/tests/fixtures/**", "packages/language-server/tests/fixtures/**", - "packages/deslop-js/tests/fixtures/**", + "packages/core/tests/deslop/fixtures/**", ], plugins: ["typescript", "react", "import"], rules: {}, @@ -30,7 +30,7 @@ export default defineConfig({ "pnpm-lock.yaml", "packages/zed-react-doctor/**", "packages/language-server/tests/fixtures/**", - "packages/deslop-js/tests/fixtures/**", + "packages/core/tests/deslop/fixtures/**", ], }, });