Frontend uudelleenrakennettu: Astro-komponentit, Wasm pääsäikeessä, ei Workeria

Vanha frontend siirretty temp/. Uusi rakenne:
- StatusBar.astro, Terminal.astro, Editor.astro, Guide.astro
- global.css erillinen
- Wasm pääsäikeessä (ei Worker — yksinkertainen, debugattava)
- Tab-completion, dropdown, projektikortti, Monaco, GUIDE.md
- Ei tokenisointia eikä koodilaboratoriota

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jaakko Vanhala
2026-04-09 20:17:39 +03:00
parent e3fdb91ac5
commit a8c4af0975
9617 changed files with 996171 additions and 5349 deletions

View File

@@ -0,0 +1,17 @@
import type { Logger } from '../../../core/logger/core.js';
import type { KeyGenerator } from '../definitions.js';
interface Options {
logger: Logger;
keyGenerator: KeyGenerator;
}
export declare const createKeyCommand: {
help: {
commandName: string;
tables: {
Flags: [string, string][];
};
description: string;
};
run({ logger, keyGenerator }: Options): Promise<void>;
};
export {};

View File

@@ -0,0 +1,22 @@
import { defineCommand } from "../../domain/command.js";
const createKeyCommand = defineCommand({
help: {
commandName: "astro create-key",
tables: {
Flags: [["--help (-h)", "See all available flags."]]
},
description: "Generates a key to encrypt props passed to server islands."
},
async run({ logger, keyGenerator }) {
const key = await keyGenerator.generate();
logger.info(
"crypto",
`Generated a key to encrypt props passed to server islands. To reuse the same key across builds, set this value as ASTRO_KEY in an environment variable on your build server.
ASTRO_KEY=${key}`
);
}
});
export {
createKeyCommand
};

View File

@@ -0,0 +1,3 @@
export interface KeyGenerator {
generate: () => Promise<string>;
}

View File

@@ -0,0 +1,4 @@
import type { KeyGenerator } from '../definitions.js';
export declare class CryptoKeyGenerator implements KeyGenerator {
generate(): Promise<string>;
}

View File

@@ -0,0 +1,11 @@
import { createKey, encodeKey } from "../../../core/encryption.js";
class CryptoKeyGenerator {
async generate() {
const key = await createKey();
const encoded = await encodeKey(key);
return encoded;
}
}
export {
CryptoKeyGenerator
};