package Api; smol Loader { jsx = 1; js = 2; ts = 3; tsx = 4; css = 5; file = 6; json = 7; } smol ResolveMode { disable = 1; lazy = 2; dev = 3; bundle = 4; } smol Platform { browser = 1; node = 2; } smol JSXRuntime { automatic = 1; classic = 2; } struct JSX { string factory; JSXRuntime runtime; string fragment; bool development; // Probably react string import_source; bool react_fast_refresh; } message TransformOptions { JSX jsx = 1; string tsconfig_override = 2; ResolveMode resolve = 3; string public_url = 4; string absolute_working_dir = 5; string[] define_keys = 6; string[] define_values = 7; bool preserve_symlinks = 8; string[] entry_points = 9; bool write = 10; string[] inject = 11; string output_dir = 12; string[] external = 13; string[] loader_keys = 14; Loader[] loader_values = 15; string[] main_fields = 16; Platform platform = 17; bool serve = 18; string[] extension_order = 19; string public_dir = 20; } struct FileHandle { string path; uint size; uint fd; } message Transform { FileHandle handle = 1; string path = 2; byte[] contents = 3; Loader loader = 4; TransformOptions options = 5; } enum TransformResponseStatus { success = 1; fail = 2; } struct OutputFile { byte[] data; string path; } struct TransformResponse { TransformResponseStatus status; OutputFile[] files; Message[] errors; } enum MessageKind { err = 1; warn =2; note = 3; debug = 4; } struct Location { string file; string namespace; int32 line; int32 column; string line_text; string suggestion; uint offset; } message MessageData { string text = 1; Location location = 2; } struct Message { MessageKind kind; MessageData data; MessageData[] notes; } struct Log { uint32 warnings; uint32 errors; Message[] msgs; }