diff options
author | 2021-08-19 00:44:44 -0700 | |
---|---|---|
committer | 2021-08-19 00:44:44 -0700 | |
commit | c92c7beececaabbfd449af62511857c694ec8f87 (patch) | |
tree | b034bad73d00f2022ccbeee2d72a95f77bce3b3a /src | |
parent | 0ba399d8edc3020824338bd6ea0da758b27793e7 (diff) | |
download | bun-c92c7beececaabbfd449af62511857c694ec8f87.tar.gz bun-c92c7beececaabbfd449af62511857c694ec8f87.tar.zst bun-c92c7beececaabbfd449af62511857c694ec8f87.zip |
Log level + onimportcss
Former-commit-id: 12ba9b9bc288573e3a5099adfa14c486c4cc980c
Diffstat (limited to 'src')
-rw-r--r-- | src/api/schema.d.ts | 1183 | ||||
-rw-r--r-- | src/api/schema.js | 1506 | ||||
-rw-r--r-- | src/api/schema.peechy | 11 | ||||
-rw-r--r-- | src/api/schema.zig | 2870 | ||||
-rw-r--r-- | src/bundler.zig | 6 | ||||
-rw-r--r-- | src/feature_flags.zig | 5 | ||||
-rw-r--r-- | src/http.zig | 137 | ||||
-rw-r--r-- | src/javascript/jsc/javascript.zig | 1 | ||||
-rw-r--r-- | src/js_parser/js_parser.zig | 24 | ||||
-rw-r--r-- | src/js_printer.zig | 59 | ||||
-rw-r--r-- | src/logger.zig | 62 | ||||
-rw-r--r-- | src/options.zig | 22 | ||||
-rw-r--r-- | src/resolver/package_json.zig | 10 | ||||
-rw-r--r-- | src/router.zig | 14 | ||||
-rw-r--r-- | src/runtime.js | 4 |
15 files changed, 2927 insertions, 2987 deletions
diff --git a/src/api/schema.d.ts b/src/api/schema.d.ts index 39ba7fa82..666a0cbce 100644 --- a/src/api/schema.d.ts +++ b/src/api/schema.d.ts @@ -1,4 +1,4 @@ -import type { ByteBuffer } from "peechy"; +import type {ByteBuffer} from "peechy"; type byte = number; type float = number; @@ -12,661 +12,526 @@ type int32 = number; type float32 = number; type uint16 = number; type uint32 = number; -export enum Loader { - jsx = 1, - js = 2, - ts = 3, - tsx = 4, - css = 5, - file = 6, - json = 7, -} -export const LoaderKeys = { - 1: "jsx", - jsx: "jsx", - 2: "js", - js: "js", - 3: "ts", - ts: "ts", - 4: "tsx", - tsx: "tsx", - 5: "css", - css: "css", - 6: "file", - file: "file", - 7: "json", - json: "json", -}; -export enum ResolveMode { - disable = 1, - lazy = 2, - dev = 3, - bundle = 4, -} -export const ResolveModeKeys = { - 1: "disable", - disable: "disable", - 2: "lazy", - lazy: "lazy", - 3: "dev", - dev: "dev", - 4: "bundle", - bundle: "bundle", -}; -export enum Platform { - browser = 1, - node = 2, - bun = 3, -} -export const PlatformKeys = { - 1: "browser", - browser: "browser", - 2: "node", - node: "node", - 3: "bun", - bun: "bun", -}; -export enum JSXRuntime { - automatic = 1, - classic = 2, -} -export const JSXRuntimeKeys = { - 1: "automatic", - automatic: "automatic", - 2: "classic", - classic: "classic", -}; -export enum ScanDependencyMode { - app = 1, - all = 2, -} -export const ScanDependencyModeKeys = { - 1: "app", - app: "app", - 2: "all", - all: "all", -}; -export enum ModuleImportType { - import = 1, - require = 2, -} -export const ModuleImportTypeKeys = { - 1: "import", - import: "import", - 2: "require", - require: "require", -}; -export enum DotEnvBehavior { - disable = 1, - prefix = 2, - load_all = 3, -} -export const DotEnvBehaviorKeys = { - 1: "disable", - disable: "disable", - 2: "prefix", - prefix: "prefix", - 3: "load_all", - load_all: "load_all", -}; -export enum TransformResponseStatus { - success = 1, - fail = 2, -} -export const TransformResponseStatusKeys = { - 1: "success", - success: "success", - 2: "fail", - fail: "fail", -}; -export enum MessageKind { - err = 1, - warn = 2, - note = 3, - debug = 4, -} -export const MessageKindKeys = { - 1: "err", - err: "err", - 2: "warn", - warn: "warn", - 3: "note", - note: "note", - 4: "debug", - debug: "debug", -}; -export enum Reloader { - disable = 1, - live = 2, - fast_refresh = 3, -} -export const ReloaderKeys = { - 1: "disable", - disable: "disable", - 2: "live", - live: "live", - 3: "fast_refresh", - fast_refresh: "fast_refresh", -}; -export enum WebsocketMessageKind { - welcome = 1, - file_change_notification = 2, - build_success = 3, - build_fail = 4, - manifest_success = 5, - manifest_fail = 6, -} -export const WebsocketMessageKindKeys = { - 1: "welcome", - welcome: "welcome", - 2: "file_change_notification", - file_change_notification: "file_change_notification", - 3: "build_success", - build_success: "build_success", - 4: "build_fail", - build_fail: "build_fail", - 5: "manifest_success", - manifest_success: "manifest_success", - 6: "manifest_fail", - manifest_fail: "manifest_fail", -}; -export enum WebsocketCommandKind { - build = 1, - manifest = 2, -} -export const WebsocketCommandKindKeys = { - 1: "build", - build: "build", - 2: "manifest", - manifest: "manifest", -}; -export interface JSX { - factory: string; - runtime: JSXRuntime; - fragment: string; - development: boolean; - import_source: string; - react_fast_refresh: boolean; -} - -export interface StringPointer { - offset: uint32; - length: uint32; -} - -export interface JavascriptBundledModule { - path: StringPointer; - code: StringPointer; - package_id: uint32; - id: uint32; - path_extname_length: byte; -} - -export interface JavascriptBundledPackage { - name: StringPointer; - version: StringPointer; - hash: uint32; - modules_offset: uint32; - modules_length: uint32; -} - -export interface JavascriptBundle { - modules: JavascriptBundledModule[]; - packages: JavascriptBundledPackage[]; - etag: Uint8Array; - generated_at: uint32; - app_package_json_dependencies_hash: Uint8Array; - import_from_name: Uint8Array; - manifest_string: Uint8Array; -} - -export interface JavascriptBundleContainer { - bundle_format_version?: uint32; - bundle?: JavascriptBundle; - framework?: LoadedFramework; - routes?: LoadedRouteConfig; - code_length?: uint32; -} - -export interface ModuleImportRecord { - kind: ModuleImportType; - path: string; - dynamic: boolean; -} - -export interface Module { - path: string; - imports: ModuleImportRecord[]; -} - -export interface StringMap { - keys: string[]; - values: string[]; -} - -export interface LoaderMap { - extensions: string[]; - loaders: Loader[]; -} - -export interface EnvConfig { - prefix?: string; - defaults?: StringMap; -} - -export interface LoadedEnvConfig { - dotenv: DotEnvBehavior; - defaults: StringMap; - prefix: string; -} - -export interface FrameworkConfig { - package?: string; - client?: string; - server?: string; - development?: boolean; - client_env?: EnvConfig; - server_env?: EnvConfig; -} - -export interface LoadedFramework { - entry_point: string; - package: string; - development: boolean; - client: boolean; - env: LoadedEnvConfig; -} - -export interface LoadedRouteConfig { - dir: string; - extensions: string[]; - static_dir: string; - asset_prefix: string; -} - -export interface RouteConfig { - dir?: string[]; - extensions?: string[]; - static_dir?: string; - asset_prefix?: string; -} - -export interface TransformOptions { - jsx?: JSX; - tsconfig_override?: string; - resolve?: ResolveMode; - origin?: string; - absolute_working_dir?: string; - define?: StringMap; - preserve_symlinks?: boolean; - entry_points?: string[]; - write?: boolean; - inject?: string[]; - output_dir?: string; - external?: string[]; - loaders?: LoaderMap; - main_fields?: string[]; - platform?: Platform; - serve?: boolean; - extension_order?: string[]; - generate_node_module_bundle?: boolean; - node_modules_bundle_path?: string; - node_modules_bundle_path_server?: string; - framework?: FrameworkConfig; - router?: RouteConfig; -} - -export interface FileHandle { - path: string; - size: uint; - fd: uint; -} - -export interface Transform { - handle?: FileHandle; - path?: string; - contents?: Uint8Array; - loader?: Loader; - options?: TransformOptions; -} - -export interface OutputFile { - data: Uint8Array; - path: string; -} - -export interface TransformResponse { - status: TransformResponseStatus; - files: OutputFile[]; - errors: Message[]; -} - -export interface Location { - file: string; - namespace: string; - line: int32; - column: int32; - line_text: string; - suggestion: string; - offset: uint; -} - -export interface MessageData { - text?: string; - location?: Location; -} - -export interface Message { - kind: MessageKind; - data: MessageData; - notes: MessageData[]; -} - -export interface Log { - warnings: uint32; - errors: uint32; - msgs: Message[]; -} - -export interface WebsocketMessage { - timestamp: uint32; - kind: WebsocketMessageKind; -} - -export interface WebsocketMessageWelcome { - epoch: uint32; - javascriptReloader: Reloader; -} - -export interface WebsocketMessageFileChangeNotification { - id: uint32; - loader: Loader; -} - -export interface WebsocketCommand { - kind: WebsocketCommandKind; - timestamp: uint32; -} - -export interface WebsocketCommandBuild { - id: uint32; -} - -export interface WebsocketCommandManifest { - id: uint32; -} - -export interface WebsocketMessageBuildSuccess { - id: uint32; - from_timestamp: uint32; - loader: Loader; - module_path: string; - blob_length: uint32; -} - -export interface WebsocketMessageBuildFailure { - id: uint32; - from_timestamp: uint32; - loader: Loader; - module_path: string; - log: Log; -} - -export interface DependencyManifest { - ids: Uint32Array; -} - -export interface FileList { - ptrs: StringPointer[]; - files: string; -} - -export interface WebsocketMessageResolveIDs { - id: Uint32Array; - list: FileList; -} - -export interface WebsocketCommandResolveIDs { - ptrs: StringPointer[]; - files: string; -} - -export interface WebsocketMessageManifestSuccess { - id: uint32; - module_path: string; - loader: Loader; - manifest: DependencyManifest; -} - -export interface WebsocketMessageManifestFailure { - id: uint32; - from_timestamp: uint32; - loader: Loader; - log: Log; -} - -export declare function encodeJSX(message: JSX, bb: ByteBuffer): void; -export declare function decodeJSX(buffer: ByteBuffer): JSX; -export declare function encodeStringPointer( - message: StringPointer, - bb: ByteBuffer -): void; -export declare function decodeStringPointer(buffer: ByteBuffer): StringPointer; -export declare function encodeJavascriptBundledModule( - message: JavascriptBundledModule, - bb: ByteBuffer -): void; -export declare function decodeJavascriptBundledModule( - buffer: ByteBuffer -): JavascriptBundledModule; -export declare function encodeJavascriptBundledPackage( - message: JavascriptBundledPackage, - bb: ByteBuffer -): void; -export declare function decodeJavascriptBundledPackage( - buffer: ByteBuffer -): JavascriptBundledPackage; -export declare function encodeJavascriptBundle( - message: JavascriptBundle, - bb: ByteBuffer -): void; -export declare function decodeJavascriptBundle( - buffer: ByteBuffer -): JavascriptBundle; -export declare function encodeJavascriptBundleContainer( - message: JavascriptBundleContainer, - bb: ByteBuffer -): void; -export declare function decodeJavascriptBundleContainer( - buffer: ByteBuffer -): JavascriptBundleContainer; -export declare function encodeModuleImportRecord( - message: ModuleImportRecord, - bb: ByteBuffer -): void; -export declare function decodeModuleImportRecord( - buffer: ByteBuffer -): ModuleImportRecord; -export declare function encodeModule(message: Module, bb: ByteBuffer): void; -export declare function decodeModule(buffer: ByteBuffer): Module; -export declare function encodeStringMap( - message: StringMap, - bb: ByteBuffer -): void; -export declare function decodeStringMap(buffer: ByteBuffer): StringMap; -export declare function encodeLoaderMap( - message: LoaderMap, - bb: ByteBuffer -): void; -export declare function decodeLoaderMap(buffer: ByteBuffer): LoaderMap; -export declare function encodeEnvConfig( - message: EnvConfig, - bb: ByteBuffer -): void; -export declare function decodeEnvConfig(buffer: ByteBuffer): EnvConfig; -export declare function encodeLoadedEnvConfig( - message: LoadedEnvConfig, - bb: ByteBuffer -): void; -export declare function decodeLoadedEnvConfig( - buffer: ByteBuffer -): LoadedEnvConfig; -export declare function encodeFrameworkConfig( - message: FrameworkConfig, - bb: ByteBuffer -): void; -export declare function decodeFrameworkConfig( - buffer: ByteBuffer -): FrameworkConfig; -export declare function encodeLoadedFramework( - message: LoadedFramework, - bb: ByteBuffer -): void; -export declare function decodeLoadedFramework( - buffer: ByteBuffer -): LoadedFramework; -export declare function encodeLoadedRouteConfig( - message: LoadedRouteConfig, - bb: ByteBuffer -): void; -export declare function decodeLoadedRouteConfig( - buffer: ByteBuffer -): LoadedRouteConfig; -export declare function encodeRouteConfig( - message: RouteConfig, - bb: ByteBuffer -): void; -export declare function decodeRouteConfig(buffer: ByteBuffer): RouteConfig; -export declare function encodeTransformOptions( - message: TransformOptions, - bb: ByteBuffer -): void; -export declare function decodeTransformOptions( - buffer: ByteBuffer -): TransformOptions; -export declare function encodeFileHandle( - message: FileHandle, - bb: ByteBuffer -): void; -export declare function decodeFileHandle(buffer: ByteBuffer): FileHandle; -export declare function encodeTransform( - message: Transform, - bb: ByteBuffer -): void; -export declare function decodeTransform(buffer: ByteBuffer): Transform; -export declare function encodeOutputFile( - message: OutputFile, - bb: ByteBuffer -): void; -export declare function decodeOutputFile(buffer: ByteBuffer): OutputFile; -export declare function encodeTransformResponse( - message: TransformResponse, - bb: ByteBuffer -): void; -export declare function decodeTransformResponse( - buffer: ByteBuffer -): TransformResponse; -export declare function encodeLocation(message: Location, bb: ByteBuffer): void; -export declare function decodeLocation(buffer: ByteBuffer): Location; -export declare function encodeMessageData( - message: MessageData, - bb: ByteBuffer -): void; -export declare function decodeMessageData(buffer: ByteBuffer): MessageData; -export declare function encodeMessage(message: Message, bb: ByteBuffer): void; -export declare function decodeMessage(buffer: ByteBuffer): Message; -export declare function encodeLog(message: Log, bb: ByteBuffer): void; -export declare function decodeLog(buffer: ByteBuffer): Log; -export declare function encodeWebsocketMessage( - message: WebsocketMessage, - bb: ByteBuffer -): void; -export declare function decodeWebsocketMessage( - buffer: ByteBuffer -): WebsocketMessage; -export declare function encodeWebsocketMessageWelcome( - message: WebsocketMessageWelcome, - bb: ByteBuffer -): void; -export declare function decodeWebsocketMessageWelcome( - buffer: ByteBuffer -): WebsocketMessageWelcome; -export declare function encodeWebsocketMessageFileChangeNotification( - message: WebsocketMessageFileChangeNotification, - bb: ByteBuffer -): void; -export declare function decodeWebsocketMessageFileChangeNotification( - buffer: ByteBuffer -): WebsocketMessageFileChangeNotification; -export declare function encodeWebsocketCommand( - message: WebsocketCommand, - bb: ByteBuffer -): void; -export declare function decodeWebsocketCommand( - buffer: ByteBuffer -): WebsocketCommand; -export declare function encodeWebsocketCommandBuild( - message: WebsocketCommandBuild, - bb: ByteBuffer -): void; -export declare function decodeWebsocketCommandBuild( - buffer: ByteBuffer -): WebsocketCommandBuild; -export declare function encodeWebsocketCommandManifest( - message: WebsocketCommandManifest, - bb: ByteBuffer -): void; -export declare function decodeWebsocketCommandManifest( - buffer: ByteBuffer -): WebsocketCommandManifest; -export declare function encodeWebsocketMessageBuildSuccess( - message: WebsocketMessageBuildSuccess, - bb: ByteBuffer -): void; -export declare function decodeWebsocketMessageBuildSuccess( - buffer: ByteBuffer -): WebsocketMessageBuildSuccess; -export declare function encodeWebsocketMessageBuildFailure( - message: WebsocketMessageBuildFailure, - bb: ByteBuffer -): void; -export declare function decodeWebsocketMessageBuildFailure( - buffer: ByteBuffer -): WebsocketMessageBuildFailure; -export declare function encodeDependencyManifest( - message: DependencyManifest, - bb: ByteBuffer -): void; -export declare function decodeDependencyManifest( - buffer: ByteBuffer -): DependencyManifest; -export declare function encodeFileList(message: FileList, bb: ByteBuffer): void; -export declare function decodeFileList(buffer: ByteBuffer): FileList; -export declare function encodeWebsocketMessageResolveIDs( - message: WebsocketMessageResolveIDs, - bb: ByteBuffer -): void; -export declare function decodeWebsocketMessageResolveIDs( - buffer: ByteBuffer -): WebsocketMessageResolveIDs; -export declare function encodeWebsocketCommandResolveIDs( - message: WebsocketCommandResolveIDs, - bb: ByteBuffer -): void; -export declare function decodeWebsocketCommandResolveIDs( - buffer: ByteBuffer -): WebsocketCommandResolveIDs; -export declare function encodeWebsocketMessageManifestSuccess( - message: WebsocketMessageManifestSuccess, - bb: ByteBuffer -): void; -export declare function decodeWebsocketMessageManifestSuccess( - buffer: ByteBuffer -): WebsocketMessageManifestSuccess; -export declare function encodeWebsocketMessageManifestFailure( - message: WebsocketMessageManifestFailure, - bb: ByteBuffer -): void; -export declare function decodeWebsocketMessageManifestFailure( - buffer: ByteBuffer -): WebsocketMessageManifestFailure; + export enum Loader { + jsx = 1, + js = 2, + ts = 3, + tsx = 4, + css = 5, + file = 6, + json = 7 + } + export const LoaderKeys = { + 1: "jsx", + jsx: "jsx", + 2: "js", + js: "js", + 3: "ts", + ts: "ts", + 4: "tsx", + tsx: "tsx", + 5: "css", + css: "css", + 6: "file", + file: "file", + 7: "json", + json: "json" + } + export enum ResolveMode { + disable = 1, + lazy = 2, + dev = 3, + bundle = 4 + } + export const ResolveModeKeys = { + 1: "disable", + disable: "disable", + 2: "lazy", + lazy: "lazy", + 3: "dev", + dev: "dev", + 4: "bundle", + bundle: "bundle" + } + export enum Platform { + browser = 1, + node = 2, + bun = 3 + } + export const PlatformKeys = { + 1: "browser", + browser: "browser", + 2: "node", + node: "node", + 3: "bun", + bun: "bun" + } + export enum CSSInJSBehavior { + facade = 1, + facade_onimportcss = 2 + } + export const CSSInJSBehaviorKeys = { + 1: "facade", + facade: "facade", + 2: "facade_onimportcss", + facade_onimportcss: "facade_onimportcss" + } + export enum JSXRuntime { + automatic = 1, + classic = 2 + } + export const JSXRuntimeKeys = { + 1: "automatic", + automatic: "automatic", + 2: "classic", + classic: "classic" + } + export enum ScanDependencyMode { + app = 1, + all = 2 + } + export const ScanDependencyModeKeys = { + 1: "app", + app: "app", + 2: "all", + all: "all" + } + export enum ModuleImportType { + import = 1, + require = 2 + } + export const ModuleImportTypeKeys = { + 1: "import", + import: "import", + 2: "require", + require: "require" + } + export enum DotEnvBehavior { + disable = 1, + prefix = 2, + load_all = 3 + } + export const DotEnvBehaviorKeys = { + 1: "disable", + disable: "disable", + 2: "prefix", + prefix: "prefix", + 3: "load_all", + load_all: "load_all" + } + export enum TransformResponseStatus { + success = 1, + fail = 2 + } + export const TransformResponseStatusKeys = { + 1: "success", + success: "success", + 2: "fail", + fail: "fail" + } + export enum MessageKind { + err = 1, + warn = 2, + note = 3, + debug = 4 + } + export const MessageKindKeys = { + 1: "err", + err: "err", + 2: "warn", + warn: "warn", + 3: "note", + note: "note", + 4: "debug", + debug: "debug" + } + export enum Reloader { + disable = 1, + live = 2, + fast_refresh = 3 + } + export const ReloaderKeys = { + 1: "disable", + disable: "disable", + 2: "live", + live: "live", + 3: "fast_refresh", + fast_refresh: "fast_refresh" + } + export enum WebsocketMessageKind { + welcome = 1, + file_change_notification = 2, + build_success = 3, + build_fail = 4, + manifest_success = 5, + manifest_fail = 6 + } + export const WebsocketMessageKindKeys = { + 1: "welcome", + welcome: "welcome", + 2: "file_change_notification", + file_change_notification: "file_change_notification", + 3: "build_success", + build_success: "build_success", + 4: "build_fail", + build_fail: "build_fail", + 5: "manifest_success", + manifest_success: "manifest_success", + 6: "manifest_fail", + manifest_fail: "manifest_fail" + } + export enum WebsocketCommandKind { + build = 1, + manifest = 2 + } + export const WebsocketCommandKindKeys = { + 1: "build", + build: "build", + 2: "manifest", + manifest: "manifest" + } + export interface JSX { + factory: string; + runtime: JSXRuntime; + fragment: string; + development: boolean; + import_source: string; + react_fast_refresh: boolean; + } + + export interface StringPointer { + offset: uint32; + length: uint32; + } + + export interface JavascriptBundledModule { + path: StringPointer; + code: StringPointer; + package_id: uint32; + id: uint32; + path_extname_length: byte; + } + + export interface JavascriptBundledPackage { + name: StringPointer; + version: StringPointer; + hash: uint32; + modules_offset: uint32; + modules_length: uint32; + } + + export interface JavascriptBundle { + modules: JavascriptBundledModule[]; + packages: JavascriptBundledPackage[]; + etag: Uint8Array; + generated_at: uint32; + app_package_json_dependencies_hash: Uint8Array; + import_from_name: Uint8Array; + manifest_string: Uint8Array; + } + + export interface JavascriptBundleContainer { + bundle_format_version?: uint32; + bundle?: JavascriptBundle; + framework?: LoadedFramework; + routes?: LoadedRouteConfig; + code_length?: uint32; + } + + export interface ModuleImportRecord { + kind: ModuleImportType; + path: string; + dynamic: boolean; + } + + export interface Module { + path: string; + imports: ModuleImportRecord[]; + } + + export interface StringMap { + keys: string[]; + values: string[]; + } + + export interface LoaderMap { + extensions: string[]; + loaders: Loader[]; + } + + export interface EnvConfig { + prefix?: string; + defaults?: StringMap; + } + + export interface LoadedEnvConfig { + dotenv: DotEnvBehavior; + defaults: StringMap; + prefix: string; + } + + export interface FrameworkConfig { + package?: string; + client?: string; + server?: string; + development?: boolean; + client_env?: EnvConfig; + server_env?: EnvConfig; + client_css_in_js?: CSSInJSBehavior; + } + + export interface LoadedFramework { + entry_point: string; + package: string; + development: boolean; + client: boolean; + env: LoadedEnvConfig; + client_css_in_js: CSSInJSBehavior; + } + + export interface LoadedRouteConfig { + dir: string; + extensions: string[]; + static_dir: string; + asset_prefix: string; + } + + export interface RouteConfig { + dir?: string[]; + extensions?: string[]; + static_dir?: string; + asset_prefix?: string; + } + + export interface TransformOptions { + jsx?: JSX; + tsconfig_override?: string; + resolve?: ResolveMode; + origin?: string; + absolute_working_dir?: string; + define?: StringMap; + preserve_symlinks?: boolean; + entry_points?: string[]; + write?: boolean; + inject?: string[]; + output_dir?: string; + external?: string[]; + loaders?: LoaderMap; + main_fields?: string[]; + platform?: Platform; + serve?: boolean; + extension_order?: string[]; + generate_node_module_bundle?: boolean; + node_modules_bundle_path?: string; + node_modules_bundle_path_server?: string; + framework?: FrameworkConfig; + router?: RouteConfig; + } + + export interface FileHandle { + path: string; + size: uint; + fd: uint; + } + + export interface Transform { + handle?: FileHandle; + path?: string; + contents?: Uint8Array; + loader?: Loader; + options?: TransformOptions; + } + + export interface OutputFile { + data: Uint8Array; + path: string; + } + + export interface TransformResponse { + status: TransformResponseStatus; + files: OutputFile[]; + errors: Message[]; + } + + export interface Location { + file: string; + namespace: string; + line: int32; + column: int32; + line_text: string; + suggestion: string; + offset: uint; + } + + export interface MessageData { + text?: string; + location?: Location; + } + + export interface Message { + kind: MessageKind; + data: MessageData; + notes: MessageData[]; + } + + export interface Log { + warnings: uint32; + errors: uint32; + msgs: Message[]; + } + + export interface WebsocketMessage { + timestamp: uint32; + kind: WebsocketMessageKind; + } + + export interface WebsocketMessageWelcome { + epoch: uint32; + javascriptReloader: Reloader; + } + + export interface WebsocketMessageFileChangeNotification { + id: uint32; + loader: Loader; + } + + export interface WebsocketCommand { + kind: WebsocketCommandKind; + timestamp: uint32; + } + + export interface WebsocketCommandBuild { + id: uint32; + } + + export interface WebsocketCommandManifest { + id: uint32; + } + + export interface WebsocketMessageBuildSuccess { + id: uint32; + from_timestamp: uint32; + loader: Loader; + module_path: string; + blob_length: uint32; + } + + export interface WebsocketMessageBuildFailure { + id: uint32; + from_timestamp: uint32; + loader: Loader; + module_path: string; + log: Log; + } + + export interface DependencyManifest { + ids: Uint32Array; + } + + export interface FileList { + ptrs: StringPointer[]; + files: string; + } + + export interface WebsocketMessageResolveIDs { + id: Uint32Array; + list: FileList; + } + + export interface WebsocketCommandResolveIDs { + ptrs: StringPointer[]; + files: string; + } + + export interface WebsocketMessageManifestSuccess { + id: uint32; + module_path: string; + loader: Loader; + manifest: DependencyManifest; + } + + export interface WebsocketMessageManifestFailure { + id: uint32; + from_timestamp: uint32; + loader: Loader; + log: Log; + } + + export declare function encodeJSX(message: JSX, bb: ByteBuffer): void; + export declare function decodeJSX(buffer: ByteBuffer): JSX; + export declare function encodeStringPointer(message: StringPointer, bb: ByteBuffer): void; + export declare function decodeStringPointer(buffer: ByteBuffer): StringPointer; + export declare function encodeJavascriptBundledModule(message: JavascriptBundledModule, bb: ByteBuffer): void; + export declare function decodeJavascriptBundledModule(buffer: ByteBuffer): JavascriptBundledModule; + export declare function encodeJavascriptBundledPackage(message: JavascriptBundledPackage, bb: ByteBuffer): void; + export declare function decodeJavascriptBundledPackage(buffer: ByteBuffer): JavascriptBundledPackage; + export declare function encodeJavascriptBundle(message: JavascriptBundle, bb: ByteBuffer): void; + export declare function decodeJavascriptBundle(buffer: ByteBuffer): JavascriptBundle; + export declare function encodeJavascriptBundleContainer(message: JavascriptBundleContainer, bb: ByteBuffer): void; + export declare function decodeJavascriptBundleContainer(buffer: ByteBuffer): JavascriptBundleContainer; + export declare function encodeModuleImportRecord(message: ModuleImportRecord, bb: ByteBuffer): void; + export declare function decodeModuleImportRecord(buffer: ByteBuffer): ModuleImportRecord; + export declare function encodeModule(message: Module, bb: ByteBuffer): void; + export declare function decodeModule(buffer: ByteBuffer): Module; + export declare function encodeStringMap(message: StringMap, bb: ByteBuffer): void; + export declare function decodeStringMap(buffer: ByteBuffer): StringMap; + export declare function encodeLoaderMap(message: LoaderMap, bb: ByteBuffer): void; + export declare function decodeLoaderMap(buffer: ByteBuffer): LoaderMap; + export declare function encodeEnvConfig(message: EnvConfig, bb: ByteBuffer): void; + export declare function decodeEnvConfig(buffer: ByteBuffer): EnvConfig; + export declare function encodeLoadedEnvConfig(message: LoadedEnvConfig, bb: ByteBuffer): void; + export declare function decodeLoadedEnvConfig(buffer: ByteBuffer): LoadedEnvConfig; + export declare function encodeFrameworkConfig(message: FrameworkConfig, bb: ByteBuffer): void; + export declare function decodeFrameworkConfig(buffer: ByteBuffer): FrameworkConfig; + export declare function encodeLoadedFramework(message: LoadedFramework, bb: ByteBuffer): void; + export declare function decodeLoadedFramework(buffer: ByteBuffer): LoadedFramework; + export declare function encodeLoadedRouteConfig(message: LoadedRouteConfig, bb: ByteBuffer): void; + export declare function decodeLoadedRouteConfig(buffer: ByteBuffer): LoadedRouteConfig; + export declare function encodeRouteConfig(message: RouteConfig, bb: ByteBuffer): void; + export declare function decodeRouteConfig(buffer: ByteBuffer): RouteConfig; + export declare function encodeTransformOptions(message: TransformOptions, bb: ByteBuffer): void; + export declare function decodeTransformOptions(buffer: ByteBuffer): TransformOptions; + export declare function encodeFileHandle(message: FileHandle, bb: ByteBuffer): void; + export declare function decodeFileHandle(buffer: ByteBuffer): FileHandle; + export declare function encodeTransform(message: Transform, bb: ByteBuffer): void; + export declare function decodeTransform(buffer: ByteBuffer): Transform; + export declare function encodeOutputFile(message: OutputFile, bb: ByteBuffer): void; + export declare function decodeOutputFile(buffer: ByteBuffer): OutputFile; + export declare function encodeTransformResponse(message: TransformResponse, bb: ByteBuffer): void; + export declare function decodeTransformResponse(buffer: ByteBuffer): TransformResponse; + export declare function encodeLocation(message: Location, bb: ByteBuffer): void; + export declare function decodeLocation(buffer: ByteBuffer): Location; + export declare function encodeMessageData(message: MessageData, bb: ByteBuffer): void; + export declare function decodeMessageData(buffer: ByteBuffer): MessageData; + export declare function encodeMessage(message: Message, bb: ByteBuffer): void; + export declare function decodeMessage(buffer: ByteBuffer): Message; + export declare function encodeLog(message: Log, bb: ByteBuffer): void; + export declare function decodeLog(buffer: ByteBuffer): Log; + export declare function encodeWebsocketMessage(message: WebsocketMessage, bb: ByteBuffer): void; + export declare function decodeWebsocketMessage(buffer: ByteBuffer): WebsocketMessage; + export declare function encodeWebsocketMessageWelcome(message: WebsocketMessageWelcome, bb: ByteBuffer): void; + export declare function decodeWebsocketMessageWelcome(buffer: ByteBuffer): WebsocketMessageWelcome; + export declare function encodeWebsocketMessageFileChangeNotification(message: WebsocketMessageFileChangeNotification, bb: ByteBuffer): void; + export declare function decodeWebsocketMessageFileChangeNotification(buffer: ByteBuffer): WebsocketMessageFileChangeNotification; + export declare function encodeWebsocketCommand(message: WebsocketCommand, bb: ByteBuffer): void; + export declare function decodeWebsocketCommand(buffer: ByteBuffer): WebsocketCommand; + export declare function encodeWebsocketCommandBuild(message: WebsocketCommandBuild, bb: ByteBuffer): void; + export declare function decodeWebsocketCommandBuild(buffer: ByteBuffer): WebsocketCommandBuild; + export declare function encodeWebsocketCommandManifest(message: WebsocketCommandManifest, bb: ByteBuffer): void; + export declare function decodeWebsocketCommandManifest(buffer: ByteBuffer): WebsocketCommandManifest; + export declare function encodeWebsocketMessageBuildSuccess(message: WebsocketMessageBuildSuccess, bb: ByteBuffer): void; + export declare function decodeWebsocketMessageBuildSuccess(buffer: ByteBuffer): WebsocketMessageBuildSuccess; + export declare function encodeWebsocketMessageBuildFailure(message: WebsocketMessageBuildFailure, bb: ByteBuffer): void; + export declare function decodeWebsocketMessageBuildFailure(buffer: ByteBuffer): WebsocketMessageBuildFailure; + export declare function encodeDependencyManifest(message: DependencyManifest, bb: ByteBuffer): void; + export declare function decodeDependencyManifest(buffer: ByteBuffer): DependencyManifest; + export declare function encodeFileList(message: FileList, bb: ByteBuffer): void; + export declare function decodeFileList(buffer: ByteBuffer): FileList; + export declare function encodeWebsocketMessageResolveIDs(message: WebsocketMessageResolveIDs, bb: ByteBuffer): void; + export declare function decodeWebsocketMessageResolveIDs(buffer: ByteBuffer): WebsocketMessageResolveIDs; + export declare function encodeWebsocketCommandResolveIDs(message: WebsocketCommandResolveIDs, bb: ByteBuffer): void; + export declare function decodeWebsocketCommandResolveIDs(buffer: ByteBuffer): WebsocketCommandResolveIDs; + export declare function encodeWebsocketMessageManifestSuccess(message: WebsocketMessageManifestSuccess, bb: ByteBuffer): void; + export declare function decodeWebsocketMessageManifestSuccess(buffer: ByteBuffer): WebsocketMessageManifestSuccess; + export declare function encodeWebsocketMessageManifestFailure(message: WebsocketMessageManifestFailure, bb: ByteBuffer): void; + export declare function decodeWebsocketMessageManifestFailure(buffer: ByteBuffer): WebsocketMessageManifestFailure; diff --git a/src/api/schema.js b/src/api/schema.js index b27266160..07f643a62 100644 --- a/src/api/schema.js +++ b/src/api/schema.js @@ -1,82 +1,94 @@ const Loader = { - 1: 1, - 2: 2, - 3: 3, - 4: 4, - 5: 5, - 6: 6, - 7: 7, - jsx: 1, - js: 2, - ts: 3, - tsx: 4, - css: 5, - file: 6, - json: 7, + "1": 1, + "2": 2, + "3": 3, + "4": 4, + "5": 5, + "6": 6, + "7": 7, + "jsx": 1, + "js": 2, + "ts": 3, + "tsx": 4, + "css": 5, + "file": 6, + "json": 7 }; const LoaderKeys = { - 1: "jsx", - 2: "js", - 3: "ts", - 4: "tsx", - 5: "css", - 6: "file", - 7: "json", - jsx: "jsx", - js: "js", - ts: "ts", - tsx: "tsx", - css: "css", - file: "file", - json: "json", + "1": "jsx", + "2": "js", + "3": "ts", + "4": "tsx", + "5": "css", + "6": "file", + "7": "json", + "jsx": "jsx", + "js": "js", + "ts": "ts", + "tsx": "tsx", + "css": "css", + "file": "file", + "json": "json" }; const ResolveMode = { - 1: 1, - 2: 2, - 3: 3, - 4: 4, - disable: 1, - lazy: 2, - dev: 3, - bundle: 4, + "1": 1, + "2": 2, + "3": 3, + "4": 4, + "disable": 1, + "lazy": 2, + "dev": 3, + "bundle": 4 }; const ResolveModeKeys = { - 1: "disable", - 2: "lazy", - 3: "dev", - 4: "bundle", - disable: "disable", - lazy: "lazy", - dev: "dev", - bundle: "bundle", + "1": "disable", + "2": "lazy", + "3": "dev", + "4": "bundle", + "disable": "disable", + "lazy": "lazy", + "dev": "dev", + "bundle": "bundle" }; const Platform = { - 1: 1, - 2: 2, - 3: 3, - browser: 1, - node: 2, - bun: 3, + "1": 1, + "2": 2, + "3": 3, + "browser": 1, + "node": 2, + "bun": 3 }; const PlatformKeys = { - 1: "browser", - 2: "node", - 3: "bun", - browser: "browser", - node: "node", - bun: "bun", + "1": "browser", + "2": "node", + "3": "bun", + "browser": "browser", + "node": "node", + "bun": "bun" +}; +const CSSInJSBehavior = { + "1": 1, + "2": 2, + "facade": 1, + "facade_onimportcss": 2 +}; +const CSSInJSBehaviorKeys = { + "1": "facade", + "2": "facade_onimportcss", + "facade": "facade", + "facade_onimportcss": "facade_onimportcss" }; const JSXRuntime = { - 1: 1, - 2: 2, - automatic: 1, - classic: 2, + "1": 1, + "2": 2, + "automatic": 1, + "classic": 2 }; const JSXRuntimeKeys = { - 1: "automatic", - 2: "classic", - automatic: "automatic", - classic: "classic", + "1": "automatic", + "2": "classic", + "automatic": "automatic", + "classic": "classic" }; function decodeJSX(bb) { @@ -92,52 +104,51 @@ function decodeJSX(bb) { } function encodeJSX(message, bb) { + var value = message["factory"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "factory"'); + throw new Error("Missing required field \"factory\""); } var value = message["runtime"]; if (value != null) { var encoded = JSXRuntime[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + JSON.stringify(value) + ' for enum "JSXRuntime"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"JSXRuntime\""); +bb.writeByte(encoded); } else { - throw new Error('Missing required field "runtime"'); + throw new Error("Missing required field \"runtime\""); } var value = message["fragment"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "fragment"'); + throw new Error("Missing required field \"fragment\""); } var value = message["development"]; if (value != null) { bb.writeByte(value); } else { - throw new Error('Missing required field "development"'); + throw new Error("Missing required field \"development\""); } var value = message["import_source"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "import_source"'); + throw new Error("Missing required field \"import_source\""); } var value = message["react_fast_refresh"]; if (value != null) { bb.writeByte(value); } else { - throw new Error('Missing required field "react_fast_refresh"'); + throw new Error("Missing required field \"react_fast_refresh\""); } + } function decodeStringPointer(bb) { @@ -149,19 +160,21 @@ function decodeStringPointer(bb) { } function encodeStringPointer(message, bb) { + var value = message["offset"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "offset"'); + throw new Error("Missing required field \"offset\""); } var value = message["length"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "length"'); + throw new Error("Missing required field \"length\""); } + } function decodeJavascriptBundledModule(bb) { @@ -176,40 +189,42 @@ function decodeJavascriptBundledModule(bb) { } function encodeJavascriptBundledModule(message, bb) { + var value = message["path"]; if (value != null) { encodeStringPointer(value, bb); } else { - throw new Error('Missing required field "path"'); + throw new Error("Missing required field \"path\""); } var value = message["code"]; if (value != null) { encodeStringPointer(value, bb); } else { - throw new Error('Missing required field "code"'); + throw new Error("Missing required field \"code\""); } var value = message["package_id"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "package_id"'); + throw new Error("Missing required field \"package_id\""); } var value = message["id"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "id"'); + throw new Error("Missing required field \"id\""); } var value = message["path_extname_length"]; if (value != null) { bb.writeByte(value); } else { - throw new Error('Missing required field "path_extname_length"'); + throw new Error("Missing required field \"path_extname_length\""); } + } function decodeJavascriptBundledPackage(bb) { @@ -224,53 +239,53 @@ function decodeJavascriptBundledPackage(bb) { } function encodeJavascriptBundledPackage(message, bb) { + var value = message["name"]; if (value != null) { encodeStringPointer(value, bb); } else { - throw new Error('Missing required field "name"'); + throw new Error("Missing required field \"name\""); } var value = message["version"]; if (value != null) { encodeStringPointer(value, bb); } else { - throw new Error('Missing required field "version"'); + throw new Error("Missing required field \"version\""); } var value = message["hash"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "hash"'); + throw new Error("Missing required field \"hash\""); } var value = message["modules_offset"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "modules_offset"'); + throw new Error("Missing required field \"modules_offset\""); } var value = message["modules_length"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "modules_length"'); + throw new Error("Missing required field \"modules_length\""); } + } function decodeJavascriptBundle(bb) { var result = {}; var length = bb.readVarUint(); - var values = (result["modules"] = Array(length)); - for (var i = 0; i < length; i++) - values[i] = decodeJavascriptBundledModule(bb); + var values = result["modules"] = Array(length); + for (var i = 0; i < length; i++) values[i] = decodeJavascriptBundledModule(bb); var length = bb.readVarUint(); - var values = (result["packages"] = Array(length)); - for (var i = 0; i < length; i++) - values[i] = decodeJavascriptBundledPackage(bb); + var values = result["packages"] = Array(length); + for (var i = 0; i < length; i++) values[i] = decodeJavascriptBundledPackage(bb); result["etag"] = bb.readByteArray(); result["generated_at"] = bb.readUint32(); result["app_package_json_dependencies_hash"] = bb.readByteArray(); @@ -280,68 +295,66 @@ function decodeJavascriptBundle(bb) { } function encodeJavascriptBundle(message, bb) { + var value = message["modules"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; encodeJavascriptBundledModule(value, bb); } } else { - throw new Error('Missing required field "modules"'); + throw new Error("Missing required field \"modules\""); } var value = message["packages"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; encodeJavascriptBundledPackage(value, bb); } } else { - throw new Error('Missing required field "packages"'); + throw new Error("Missing required field \"packages\""); } var value = message["etag"]; if (value != null) { - bb.writeByteArray(value); + bb.writeByteArray(value); } else { - throw new Error('Missing required field "etag"'); + throw new Error("Missing required field \"etag\""); } var value = message["generated_at"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "generated_at"'); + throw new Error("Missing required field \"generated_at\""); } var value = message["app_package_json_dependencies_hash"]; if (value != null) { - bb.writeByteArray(value); + bb.writeByteArray(value); } else { - throw new Error( - 'Missing required field "app_package_json_dependencies_hash"' - ); + throw new Error("Missing required field \"app_package_json_dependencies_hash\""); } var value = message["import_from_name"]; if (value != null) { - bb.writeByteArray(value); + bb.writeByteArray(value); } else { - throw new Error('Missing required field "import_from_name"'); + throw new Error("Missing required field \"import_from_name\""); } var value = message["manifest_string"]; if (value != null) { - bb.writeByteArray(value); + bb.writeByteArray(value); } else { - throw new Error('Missing required field "manifest_string"'); + throw new Error("Missing required field \"manifest_string\""); } + } function decodeJavascriptBundleContainer(bb) { @@ -349,36 +362,37 @@ function decodeJavascriptBundleContainer(bb) { while (true) { switch (bb.readByte()) { - case 0: - return result; + case 0: + return result; - case 1: - result["bundle_format_version"] = bb.readUint32(); - break; + case 1: + result["bundle_format_version"] = bb.readUint32(); + break; - case 2: - result["bundle"] = decodeJavascriptBundle(bb); - break; + case 2: + result["bundle"] = decodeJavascriptBundle(bb); + break; - case 3: - result["framework"] = decodeLoadedFramework(bb); - break; + case 3: + result["framework"] = decodeLoadedFramework(bb); + break; - case 4: - result["routes"] = decodeLoadedRouteConfig(bb); - break; + case 4: + result["routes"] = decodeLoadedRouteConfig(bb); + break; - case 5: - result["code_length"] = bb.readUint32(); - break; + case 5: + result["code_length"] = bb.readUint32(); + break; - default: - throw new Error("Attempted to parse invalid message"); + default: + throw new Error("Attempted to parse invalid message"); } } } function encodeJavascriptBundleContainer(message, bb) { + var value = message["bundle_format_version"]; if (value != null) { bb.writeByte(1); @@ -409,30 +423,31 @@ function encodeJavascriptBundleContainer(message, bb) { bb.writeUint32(value); } bb.writeByte(0); + } const ScanDependencyMode = { - 1: 1, - 2: 2, - app: 1, - all: 2, + "1": 1, + "2": 2, + "app": 1, + "all": 2 }; const ScanDependencyModeKeys = { - 1: "app", - 2: "all", - app: "app", - all: "all", + "1": "app", + "2": "all", + "app": "app", + "all": "all" }; const ModuleImportType = { - 1: 1, - 2: 2, - import: 1, - require: 2, + "1": 1, + "2": 2, + "import": 1, + "require": 2 }; const ModuleImportTypeKeys = { - 1: "import", - 2: "require", - import: "import", - require: "require", + "1": "import", + "2": "require", + "import": "import", + "require": "require" }; function decodeModuleImportRecord(bb) { @@ -445,33 +460,30 @@ function decodeModuleImportRecord(bb) { } function encodeModuleImportRecord(message, bb) { + var value = message["kind"]; if (value != null) { var encoded = ModuleImportType[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + - JSON.stringify(value) + - ' for enum "ModuleImportType"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"ModuleImportType\""); +bb.writeByte(encoded); } else { - throw new Error('Missing required field "kind"'); + throw new Error("Missing required field \"kind\""); } var value = message["path"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "path"'); + throw new Error("Missing required field \"path\""); } var value = message["dynamic"]; if (value != null) { bb.writeByte(value); } else { - throw new Error('Missing required field "dynamic"'); + throw new Error("Missing required field \"dynamic\""); } + } function decodeModule(bb) { @@ -479,132 +491,130 @@ function decodeModule(bb) { result["path"] = bb.readString(); var length = bb.readVarUint(); - var values = (result["imports"] = Array(length)); + var values = result["imports"] = Array(length); for (var i = 0; i < length; i++) values[i] = decodeModuleImportRecord(bb); return result; } function encodeModule(message, bb) { + var value = message["path"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "path"'); + throw new Error("Missing required field \"path\""); } var value = message["imports"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; encodeModuleImportRecord(value, bb); } } else { - throw new Error('Missing required field "imports"'); + throw new Error("Missing required field \"imports\""); } + } function decodeStringMap(bb) { var result = {}; var length = bb.readVarUint(); - var values = (result["keys"] = Array(length)); + var values = result["keys"] = Array(length); for (var i = 0; i < length; i++) values[i] = bb.readString(); var length = bb.readVarUint(); - var values = (result["values"] = Array(length)); + var values = result["values"] = Array(length); for (var i = 0; i < length; i++) values[i] = bb.readString(); return result; } function encodeStringMap(message, bb) { + var value = message["keys"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; bb.writeString(value); } } else { - throw new Error('Missing required field "keys"'); + throw new Error("Missing required field \"keys\""); } var value = message["values"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; bb.writeString(value); } } else { - throw new Error('Missing required field "values"'); + throw new Error("Missing required field \"values\""); } + } function decodeLoaderMap(bb) { var result = {}; var length = bb.readVarUint(); - var values = (result["extensions"] = Array(length)); + var values = result["extensions"] = Array(length); for (var i = 0; i < length; i++) values[i] = bb.readString(); var length = bb.readVarUint(); - var values = (result["loaders"] = Array(length)); + var values = result["loaders"] = Array(length); for (var i = 0; i < length; i++) values[i] = Loader[bb.readByte()]; return result; } function encodeLoaderMap(message, bb) { + var value = message["extensions"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; bb.writeString(value); } } else { - throw new Error('Missing required field "extensions"'); + throw new Error("Missing required field \"extensions\""); } var value = message["loaders"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; var encoded = Loader[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + JSON.stringify(value) + ' for enum "Loader"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"Loader\""); +bb.writeByte(encoded); } } else { - throw new Error('Missing required field "loaders"'); + throw new Error("Missing required field \"loaders\""); } + } const DotEnvBehavior = { - 1: 1, - 2: 2, - 3: 3, - disable: 1, - prefix: 2, - load_all: 3, + "1": 1, + "2": 2, + "3": 3, + "disable": 1, + "prefix": 2, + "load_all": 3 }; const DotEnvBehaviorKeys = { - 1: "disable", - 2: "prefix", - 3: "load_all", - disable: "disable", - prefix: "prefix", - load_all: "load_all", + "1": "disable", + "2": "prefix", + "3": "load_all", + "disable": "disable", + "prefix": "prefix", + "load_all": "load_all" }; function decodeEnvConfig(bb) { @@ -612,24 +622,25 @@ function decodeEnvConfig(bb) { while (true) { switch (bb.readByte()) { - case 0: - return result; + case 0: + return result; - case 1: - result["prefix"] = bb.readString(); - break; + case 1: + result["prefix"] = bb.readString(); + break; - case 2: - result["defaults"] = decodeStringMap(bb); - break; + case 2: + result["defaults"] = decodeStringMap(bb); + break; - default: - throw new Error("Attempted to parse invalid message"); + default: + throw new Error("Attempted to parse invalid message"); } } } function encodeEnvConfig(message, bb) { + var value = message["prefix"]; if (value != null) { bb.writeByte(1); @@ -642,6 +653,7 @@ function encodeEnvConfig(message, bb) { encodeStringMap(value, bb); } bb.writeByte(0); + } function decodeLoadedEnvConfig(bb) { @@ -654,31 +666,30 @@ function decodeLoadedEnvConfig(bb) { } function encodeLoadedEnvConfig(message, bb) { + var value = message["dotenv"]; if (value != null) { var encoded = DotEnvBehavior[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + JSON.stringify(value) + ' for enum "DotEnvBehavior"' - ); - bb.writeVarUint(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"DotEnvBehavior\""); +bb.writeVarUint(encoded); } else { - throw new Error('Missing required field "dotenv"'); + throw new Error("Missing required field \"dotenv\""); } var value = message["defaults"]; if (value != null) { encodeStringMap(value, bb); } else { - throw new Error('Missing required field "defaults"'); + throw new Error("Missing required field \"defaults\""); } var value = message["prefix"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "prefix"'); + throw new Error("Missing required field \"prefix\""); } + } function decodeFrameworkConfig(bb) { @@ -686,40 +697,45 @@ function decodeFrameworkConfig(bb) { while (true) { switch (bb.readByte()) { - case 0: - return result; + case 0: + return result; + + case 1: + result["package"] = bb.readString(); + break; - case 1: - result["package"] = bb.readString(); - break; + case 2: + result["client"] = bb.readString(); + break; - case 2: - result["client"] = bb.readString(); - break; + case 3: + result["server"] = bb.readString(); + break; - case 3: - result["server"] = bb.readString(); - break; + case 4: + result["development"] = !!bb.readByte(); + break; - case 4: - result["development"] = !!bb.readByte(); - break; + case 5: + result["client_env"] = decodeEnvConfig(bb); + break; - case 5: - result["client_env"] = decodeEnvConfig(bb); - break; + case 6: + result["server_env"] = decodeEnvConfig(bb); + break; - case 6: - result["server_env"] = decodeEnvConfig(bb); - break; + case 7: + result["client_css_in_js"] = CSSInJSBehavior[bb.readByte()]; + break; - default: - throw new Error("Attempted to parse invalid message"); + default: + throw new Error("Attempted to parse invalid message"); } } } function encodeFrameworkConfig(message, bb) { + var value = message["package"]; if (value != null) { bb.writeByte(1); @@ -755,7 +771,16 @@ function encodeFrameworkConfig(message, bb) { bb.writeByte(6); encodeEnvConfig(value, bb); } + + var value = message["client_css_in_js"]; + if (value != null) { + bb.writeByte(7); + var encoded = CSSInJSBehavior[value]; +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"CSSInJSBehavior\""); +bb.writeByte(encoded); + } bb.writeByte(0); + } function decodeLoadedFramework(bb) { @@ -766,44 +791,56 @@ function decodeLoadedFramework(bb) { result["development"] = !!bb.readByte(); result["client"] = !!bb.readByte(); result["env"] = decodeLoadedEnvConfig(bb); + result["client_css_in_js"] = CSSInJSBehavior[bb.readByte()]; return result; } function encodeLoadedFramework(message, bb) { + var value = message["entry_point"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "entry_point"'); + throw new Error("Missing required field \"entry_point\""); } var value = message["package"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "package"'); + throw new Error("Missing required field \"package\""); } var value = message["development"]; if (value != null) { bb.writeByte(value); } else { - throw new Error('Missing required field "development"'); + throw new Error("Missing required field \"development\""); } var value = message["client"]; if (value != null) { bb.writeByte(value); } else { - throw new Error('Missing required field "client"'); + throw new Error("Missing required field \"client\""); } var value = message["env"]; if (value != null) { encodeLoadedEnvConfig(value, bb); } else { - throw new Error('Missing required field "env"'); + throw new Error("Missing required field \"env\""); + } + + var value = message["client_css_in_js"]; + if (value != null) { + var encoded = CSSInJSBehavior[value]; +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"CSSInJSBehavior\""); +bb.writeByte(encoded); + } else { + throw new Error("Missing required field \"client_css_in_js\""); } + } function decodeLoadedRouteConfig(bb) { @@ -811,7 +848,7 @@ function decodeLoadedRouteConfig(bb) { result["dir"] = bb.readString(); var length = bb.readVarUint(); - var values = (result["extensions"] = Array(length)); + var values = result["extensions"] = Array(length); for (var i = 0; i < length; i++) values[i] = bb.readString(); result["static_dir"] = bb.readString(); result["asset_prefix"] = bb.readString(); @@ -819,39 +856,40 @@ function decodeLoadedRouteConfig(bb) { } function encodeLoadedRouteConfig(message, bb) { + var value = message["dir"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "dir"'); + throw new Error("Missing required field \"dir\""); } var value = message["extensions"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; bb.writeString(value); } } else { - throw new Error('Missing required field "extensions"'); + throw new Error("Missing required field \"extensions\""); } var value = message["static_dir"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "static_dir"'); + throw new Error("Missing required field \"static_dir\""); } var value = message["asset_prefix"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "asset_prefix"'); + throw new Error("Missing required field \"asset_prefix\""); } + } function decodeRouteConfig(bb) { @@ -859,41 +897,41 @@ function decodeRouteConfig(bb) { while (true) { switch (bb.readByte()) { - case 0: - return result; - - case 1: - var length = bb.readVarUint(); - var values = (result["dir"] = Array(length)); - for (var i = 0; i < length; i++) values[i] = bb.readString(); - break; - - case 2: - var length = bb.readVarUint(); - var values = (result["extensions"] = Array(length)); - for (var i = 0; i < length; i++) values[i] = bb.readString(); - break; - - case 3: - result["static_dir"] = bb.readString(); - break; - - case 4: - result["asset_prefix"] = bb.readString(); - break; - - default: - throw new Error("Attempted to parse invalid message"); + case 0: + return result; + + case 1: + var length = bb.readVarUint(); + var values = result["dir"] = Array(length); + for (var i = 0; i < length; i++) values[i] = bb.readString(); + break; + + case 2: + var length = bb.readVarUint(); + var values = result["extensions"] = Array(length); + for (var i = 0; i < length; i++) values[i] = bb.readString(); + break; + + case 3: + result["static_dir"] = bb.readString(); + break; + + case 4: + result["asset_prefix"] = bb.readString(); + break; + + default: + throw new Error("Attempted to parse invalid message"); } } } function encodeRouteConfig(message, bb) { + var value = message["dir"]; if (value != null) { bb.writeByte(1); - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; @@ -904,8 +942,7 @@ function encodeRouteConfig(message, bb) { var value = message["extensions"]; if (value != null) { bb.writeByte(2); - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; @@ -925,6 +962,7 @@ function encodeRouteConfig(message, bb) { bb.writeString(value); } bb.writeByte(0); + } function decodeTransformOptions(bb) { @@ -932,114 +970,115 @@ function decodeTransformOptions(bb) { while (true) { switch (bb.readByte()) { - case 0: - return result; - - case 1: - result["jsx"] = decodeJSX(bb); - break; - - case 2: - result["tsconfig_override"] = bb.readString(); - break; - - case 3: - result["resolve"] = ResolveMode[bb.readByte()]; - break; - - case 4: - result["origin"] = bb.readString(); - break; - - case 5: - result["absolute_working_dir"] = bb.readString(); - break; - - case 6: - result["define"] = decodeStringMap(bb); - break; - - case 7: - result["preserve_symlinks"] = !!bb.readByte(); - break; - - case 8: - var length = bb.readVarUint(); - var values = (result["entry_points"] = Array(length)); - for (var i = 0; i < length; i++) values[i] = bb.readString(); - break; - - case 9: - result["write"] = !!bb.readByte(); - break; - - case 10: - var length = bb.readVarUint(); - var values = (result["inject"] = Array(length)); - for (var i = 0; i < length; i++) values[i] = bb.readString(); - break; - - case 11: - result["output_dir"] = bb.readString(); - break; - - case 12: - var length = bb.readVarUint(); - var values = (result["external"] = Array(length)); - for (var i = 0; i < length; i++) values[i] = bb.readString(); - break; - - case 13: - result["loaders"] = decodeLoaderMap(bb); - break; - - case 14: - var length = bb.readVarUint(); - var values = (result["main_fields"] = Array(length)); - for (var i = 0; i < length; i++) values[i] = bb.readString(); - break; - - case 15: - result["platform"] = Platform[bb.readByte()]; - break; - - case 16: - result["serve"] = !!bb.readByte(); - break; - - case 17: - var length = bb.readVarUint(); - var values = (result["extension_order"] = Array(length)); - for (var i = 0; i < length; i++) values[i] = bb.readString(); - break; - - case 18: - result["generate_node_module_bundle"] = !!bb.readByte(); - break; - - case 19: - result["node_modules_bundle_path"] = bb.readString(); - break; - - case 20: - result["node_modules_bundle_path_server"] = bb.readString(); - break; - - case 21: - result["framework"] = decodeFrameworkConfig(bb); - break; - - case 22: - result["router"] = decodeRouteConfig(bb); - break; - - default: - throw new Error("Attempted to parse invalid message"); + case 0: + return result; + + case 1: + result["jsx"] = decodeJSX(bb); + break; + + case 2: + result["tsconfig_override"] = bb.readString(); + break; + + case 3: + result["resolve"] = ResolveMode[bb.readByte()]; + break; + + case 4: + result["origin"] = bb.readString(); + break; + + case 5: + result["absolute_working_dir"] = bb.readString(); + break; + + case 6: + result["define"] = decodeStringMap(bb); + break; + + case 7: + result["preserve_symlinks"] = !!bb.readByte(); + break; + + case 8: + var length = bb.readVarUint(); + var values = result["entry_points"] = Array(length); + for (var i = 0; i < length; i++) values[i] = bb.readString(); + break; + + case 9: + result["write"] = !!bb.readByte(); + break; + + case 10: + var length = bb.readVarUint(); + var values = result["inject"] = Array(length); + for (var i = 0; i < length; i++) values[i] = bb.readString(); + break; + + case 11: + result["output_dir"] = bb.readString(); + break; + + case 12: + var length = bb.readVarUint(); + var values = result["external"] = Array(length); + for (var i = 0; i < length; i++) values[i] = bb.readString(); + break; + + case 13: + result["loaders"] = decodeLoaderMap(bb); + break; + + case 14: + var length = bb.readVarUint(); + var values = result["main_fields"] = Array(length); + for (var i = 0; i < length; i++) values[i] = bb.readString(); + break; + + case 15: + result["platform"] = Platform[bb.readByte()]; + break; + + case 16: + result["serve"] = !!bb.readByte(); + break; + + case 17: + var length = bb.readVarUint(); + var values = result["extension_order"] = Array(length); + for (var i = 0; i < length; i++) values[i] = bb.readString(); + break; + + case 18: + result["generate_node_module_bundle"] = !!bb.readByte(); + break; + + case 19: + result["node_modules_bundle_path"] = bb.readString(); + break; + + case 20: + result["node_modules_bundle_path_server"] = bb.readString(); + break; + + case 21: + result["framework"] = decodeFrameworkConfig(bb); + break; + + case 22: + result["router"] = decodeRouteConfig(bb); + break; + + default: + throw new Error("Attempted to parse invalid message"); } } } function encodeTransformOptions(message, bb) { + var value = message["jsx"]; if (value != null) { bb.writeByte(1); @@ -1056,11 +1095,8 @@ function encodeTransformOptions(message, bb) { if (value != null) { bb.writeByte(3); var encoded = ResolveMode[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + JSON.stringify(value) + ' for enum "ResolveMode"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"ResolveMode\""); +bb.writeByte(encoded); } var value = message["origin"]; @@ -1090,8 +1126,7 @@ function encodeTransformOptions(message, bb) { var value = message["entry_points"]; if (value != null) { bb.writeByte(8); - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; @@ -1108,8 +1143,7 @@ function encodeTransformOptions(message, bb) { var value = message["inject"]; if (value != null) { bb.writeByte(10); - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; @@ -1126,8 +1160,7 @@ function encodeTransformOptions(message, bb) { var value = message["external"]; if (value != null) { bb.writeByte(12); - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; @@ -1144,8 +1177,7 @@ function encodeTransformOptions(message, bb) { var value = message["main_fields"]; if (value != null) { bb.writeByte(14); - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; @@ -1157,11 +1189,8 @@ function encodeTransformOptions(message, bb) { if (value != null) { bb.writeByte(15); var encoded = Platform[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + JSON.stringify(value) + ' for enum "Platform"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"Platform\""); +bb.writeByte(encoded); } var value = message["serve"]; @@ -1173,8 +1202,7 @@ function encodeTransformOptions(message, bb) { var value = message["extension_order"]; if (value != null) { bb.writeByte(17); - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; @@ -1212,6 +1240,7 @@ function encodeTransformOptions(message, bb) { encodeRouteConfig(value, bb); } bb.writeByte(0); + } function decodeFileHandle(bb) { @@ -1224,26 +1253,28 @@ function decodeFileHandle(bb) { } function encodeFileHandle(message, bb) { + var value = message["path"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "path"'); + throw new Error("Missing required field \"path\""); } var value = message["size"]; if (value != null) { bb.writeVarUint(value); } else { - throw new Error('Missing required field "size"'); + throw new Error("Missing required field \"size\""); } var value = message["fd"]; if (value != null) { bb.writeVarUint(value); } else { - throw new Error('Missing required field "fd"'); + throw new Error("Missing required field \"fd\""); } + } function decodeTransform(bb) { @@ -1251,36 +1282,37 @@ function decodeTransform(bb) { while (true) { switch (bb.readByte()) { - case 0: - return result; + case 0: + return result; - case 1: - result["handle"] = decodeFileHandle(bb); - break; + case 1: + result["handle"] = decodeFileHandle(bb); + break; - case 2: - result["path"] = bb.readString(); - break; + case 2: + result["path"] = bb.readString(); + break; - case 3: - result["contents"] = bb.readByteArray(); - break; + case 3: + result["contents"] = bb.readByteArray(); + break; - case 4: - result["loader"] = Loader[bb.readByte()]; - break; + case 4: + result["loader"] = Loader[bb.readByte()]; + break; - case 5: - result["options"] = decodeTransformOptions(bb); - break; + case 5: + result["options"] = decodeTransformOptions(bb); + break; - default: - throw new Error("Attempted to parse invalid message"); + default: + throw new Error("Attempted to parse invalid message"); } } } function encodeTransform(message, bb) { + var value = message["handle"]; if (value != null) { bb.writeByte(1); @@ -1296,18 +1328,15 @@ function encodeTransform(message, bb) { var value = message["contents"]; if (value != null) { bb.writeByte(3); - bb.writeByteArray(value); + bb.writeByteArray(value); } var value = message["loader"]; if (value != null) { bb.writeByte(4); var encoded = Loader[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + JSON.stringify(value) + ' for enum "Loader"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"Loader\""); +bb.writeByte(encoded); } var value = message["options"]; @@ -1316,18 +1345,19 @@ function encodeTransform(message, bb) { encodeTransformOptions(value, bb); } bb.writeByte(0); + } const TransformResponseStatus = { - 1: 1, - 2: 2, - success: 1, - fail: 2, + "1": 1, + "2": 2, + "success": 1, + "fail": 2 }; const TransformResponseStatusKeys = { - 1: "success", - 2: "fail", - success: "success", - fail: "fail", + "1": "success", + "2": "fail", + "success": "success", + "fail": "fail" }; function decodeOutputFile(bb) { @@ -1339,19 +1369,21 @@ function decodeOutputFile(bb) { } function encodeOutputFile(message, bb) { + var value = message["data"]; if (value != null) { - bb.writeByteArray(value); + bb.writeByteArray(value); } else { - throw new Error('Missing required field "data"'); + throw new Error("Missing required field \"data\""); } var value = message["path"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "path"'); + throw new Error("Missing required field \"path\""); } + } function decodeTransformResponse(bb) { @@ -1359,74 +1391,69 @@ function decodeTransformResponse(bb) { result["status"] = TransformResponseStatus[bb.readVarUint()]; var length = bb.readVarUint(); - var values = (result["files"] = Array(length)); + var values = result["files"] = Array(length); for (var i = 0; i < length; i++) values[i] = decodeOutputFile(bb); var length = bb.readVarUint(); - var values = (result["errors"] = Array(length)); + var values = result["errors"] = Array(length); for (var i = 0; i < length; i++) values[i] = decodeMessage(bb); return result; } function encodeTransformResponse(message, bb) { + var value = message["status"]; if (value != null) { var encoded = TransformResponseStatus[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + - JSON.stringify(value) + - ' for enum "TransformResponseStatus"' - ); - bb.writeVarUint(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"TransformResponseStatus\""); +bb.writeVarUint(encoded); } else { - throw new Error('Missing required field "status"'); + throw new Error("Missing required field \"status\""); } var value = message["files"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; encodeOutputFile(value, bb); } } else { - throw new Error('Missing required field "files"'); + throw new Error("Missing required field \"files\""); } var value = message["errors"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; encodeMessage(value, bb); } } else { - throw new Error('Missing required field "errors"'); + throw new Error("Missing required field \"errors\""); } + } const MessageKind = { - 1: 1, - 2: 2, - 3: 3, - 4: 4, - err: 1, - warn: 2, - note: 3, - debug: 4, + "1": 1, + "2": 2, + "3": 3, + "4": 4, + "err": 1, + "warn": 2, + "note": 3, + "debug": 4 }; const MessageKindKeys = { - 1: "err", - 2: "warn", - 3: "note", - 4: "debug", - err: "err", - warn: "warn", - note: "note", - debug: "debug", + "1": "err", + "2": "warn", + "3": "note", + "4": "debug", + "err": "err", + "warn": "warn", + "note": "note", + "debug": "debug" }; function decodeLocation(bb) { @@ -1443,54 +1470,56 @@ function decodeLocation(bb) { } function encodeLocation(message, bb) { + var value = message["file"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "file"'); + throw new Error("Missing required field \"file\""); } var value = message["namespace"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "namespace"'); + throw new Error("Missing required field \"namespace\""); } var value = message["line"]; if (value != null) { bb.writeInt32(value); } else { - throw new Error('Missing required field "line"'); + throw new Error("Missing required field \"line\""); } var value = message["column"]; if (value != null) { bb.writeInt32(value); } else { - throw new Error('Missing required field "column"'); + throw new Error("Missing required field \"column\""); } var value = message["line_text"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "line_text"'); + throw new Error("Missing required field \"line_text\""); } var value = message["suggestion"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "suggestion"'); + throw new Error("Missing required field \"suggestion\""); } var value = message["offset"]; if (value != null) { bb.writeVarUint(value); } else { - throw new Error('Missing required field "offset"'); + throw new Error("Missing required field \"offset\""); } + } function decodeMessageData(bb) { @@ -1498,24 +1527,25 @@ function decodeMessageData(bb) { while (true) { switch (bb.readByte()) { - case 0: - return result; + case 0: + return result; - case 1: - result["text"] = bb.readString(); - break; + case 1: + result["text"] = bb.readString(); + break; - case 2: - result["location"] = decodeLocation(bb); - break; + case 2: + result["location"] = decodeLocation(bb); + break; - default: - throw new Error("Attempted to parse invalid message"); + default: + throw new Error("Attempted to parse invalid message"); } } } function encodeMessageData(message, bb) { + var value = message["text"]; if (value != null) { bb.writeByte(1); @@ -1528,6 +1558,7 @@ function encodeMessageData(message, bb) { encodeLocation(value, bb); } bb.writeByte(0); + } function decodeMessage(bb) { @@ -1536,43 +1567,41 @@ function decodeMessage(bb) { result["kind"] = MessageKind[bb.readVarUint()]; result["data"] = decodeMessageData(bb); var length = bb.readVarUint(); - var values = (result["notes"] = Array(length)); + var values = result["notes"] = Array(length); for (var i = 0; i < length; i++) values[i] = decodeMessageData(bb); return result; } function encodeMessage(message, bb) { + var value = message["kind"]; if (value != null) { var encoded = MessageKind[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + JSON.stringify(value) + ' for enum "MessageKind"' - ); - bb.writeVarUint(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"MessageKind\""); +bb.writeVarUint(encoded); } else { - throw new Error('Missing required field "kind"'); + throw new Error("Missing required field \"kind\""); } var value = message["data"]; if (value != null) { encodeMessageData(value, bb); } else { - throw new Error('Missing required field "data"'); + throw new Error("Missing required field \"data\""); } var value = message["notes"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; encodeMessageData(value, bb); } } else { - throw new Error('Missing required field "notes"'); + throw new Error("Missing required field \"notes\""); } + } function decodeLog(bb) { @@ -1581,94 +1610,95 @@ function decodeLog(bb) { result["warnings"] = bb.readUint32(); result["errors"] = bb.readUint32(); var length = bb.readVarUint(); - var values = (result["msgs"] = Array(length)); + var values = result["msgs"] = Array(length); for (var i = 0; i < length; i++) values[i] = decodeMessage(bb); return result; } function encodeLog(message, bb) { + var value = message["warnings"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "warnings"'); + throw new Error("Missing required field \"warnings\""); } var value = message["errors"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "errors"'); + throw new Error("Missing required field \"errors\""); } var value = message["msgs"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; encodeMessage(value, bb); } } else { - throw new Error('Missing required field "msgs"'); + throw new Error("Missing required field \"msgs\""); } + } const Reloader = { - 1: 1, - 2: 2, - 3: 3, - disable: 1, - live: 2, - fast_refresh: 3, + "1": 1, + "2": 2, + "3": 3, + "disable": 1, + "live": 2, + "fast_refresh": 3 }; const ReloaderKeys = { - 1: "disable", - 2: "live", - 3: "fast_refresh", - disable: "disable", - live: "live", - fast_refresh: "fast_refresh", + "1": "disable", + "2": "live", + "3": "fast_refresh", + "disable": "disable", + "live": "live", + "fast_refresh": "fast_refresh" }; const WebsocketMessageKind = { - 1: 1, - 2: 2, - 3: 3, - 4: 4, - 5: 5, - 6: 6, - welcome: 1, - file_change_notification: 2, - build_success: 3, - build_fail: 4, - manifest_success: 5, - manifest_fail: 6, + "1": 1, + "2": 2, + "3": 3, + "4": 4, + "5": 5, + "6": 6, + "welcome": 1, + "file_change_notification": 2, + "build_success": 3, + "build_fail": 4, + "manifest_success": 5, + "manifest_fail": 6 }; const WebsocketMessageKindKeys = { - 1: "welcome", - 2: "file_change_notification", - 3: "build_success", - 4: "build_fail", - 5: "manifest_success", - 6: "manifest_fail", - welcome: "welcome", - file_change_notification: "file_change_notification", - build_success: "build_success", - build_fail: "build_fail", - manifest_success: "manifest_success", - manifest_fail: "manifest_fail", + "1": "welcome", + "2": "file_change_notification", + "3": "build_success", + "4": "build_fail", + "5": "manifest_success", + "6": "manifest_fail", + "welcome": "welcome", + "file_change_notification": "file_change_notification", + "build_success": "build_success", + "build_fail": "build_fail", + "manifest_success": "manifest_success", + "manifest_fail": "manifest_fail" }; const WebsocketCommandKind = { - 1: 1, - 2: 2, - build: 1, - manifest: 2, + "1": 1, + "2": 2, + "build": 1, + "manifest": 2 }; const WebsocketCommandKindKeys = { - 1: "build", - 2: "manifest", - build: "build", - manifest: "manifest", + "1": "build", + "2": "manifest", + "build": "build", + "manifest": "manifest" }; function decodeWebsocketMessage(bb) { @@ -1680,26 +1710,23 @@ function decodeWebsocketMessage(bb) { } function encodeWebsocketMessage(message, bb) { + var value = message["timestamp"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "timestamp"'); + throw new Error("Missing required field \"timestamp\""); } var value = message["kind"]; if (value != null) { var encoded = WebsocketMessageKind[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + - JSON.stringify(value) + - ' for enum "WebsocketMessageKind"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"WebsocketMessageKind\""); +bb.writeByte(encoded); } else { - throw new Error('Missing required field "kind"'); + throw new Error("Missing required field \"kind\""); } + } function decodeWebsocketMessageWelcome(bb) { @@ -1711,24 +1738,23 @@ function decodeWebsocketMessageWelcome(bb) { } function encodeWebsocketMessageWelcome(message, bb) { + var value = message["epoch"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "epoch"'); + throw new Error("Missing required field \"epoch\""); } var value = message["javascriptReloader"]; if (value != null) { var encoded = Reloader[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + JSON.stringify(value) + ' for enum "Reloader"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"Reloader\""); +bb.writeByte(encoded); } else { - throw new Error('Missing required field "javascriptReloader"'); + throw new Error("Missing required field \"javascriptReloader\""); } + } function decodeWebsocketMessageFileChangeNotification(bb) { @@ -1740,24 +1766,23 @@ function decodeWebsocketMessageFileChangeNotification(bb) { } function encodeWebsocketMessageFileChangeNotification(message, bb) { + var value = message["id"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "id"'); + throw new Error("Missing required field \"id\""); } var value = message["loader"]; if (value != null) { var encoded = Loader[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + JSON.stringify(value) + ' for enum "Loader"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"Loader\""); +bb.writeByte(encoded); } else { - throw new Error('Missing required field "loader"'); + throw new Error("Missing required field \"loader\""); } + } function decodeWebsocketCommand(bb) { @@ -1769,26 +1794,23 @@ function decodeWebsocketCommand(bb) { } function encodeWebsocketCommand(message, bb) { + var value = message["kind"]; if (value != null) { var encoded = WebsocketCommandKind[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + - JSON.stringify(value) + - ' for enum "WebsocketCommandKind"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"WebsocketCommandKind\""); +bb.writeByte(encoded); } else { - throw new Error('Missing required field "kind"'); + throw new Error("Missing required field \"kind\""); } var value = message["timestamp"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "timestamp"'); + throw new Error("Missing required field \"timestamp\""); } + } function decodeWebsocketCommandBuild(bb) { @@ -1799,12 +1821,14 @@ function decodeWebsocketCommandBuild(bb) { } function encodeWebsocketCommandBuild(message, bb) { + var value = message["id"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "id"'); + throw new Error("Missing required field \"id\""); } + } function decodeWebsocketCommandManifest(bb) { @@ -1815,12 +1839,14 @@ function decodeWebsocketCommandManifest(bb) { } function encodeWebsocketCommandManifest(message, bb) { + var value = message["id"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "id"'); + throw new Error("Missing required field \"id\""); } + } function decodeWebsocketMessageBuildSuccess(bb) { @@ -1835,45 +1861,44 @@ function decodeWebsocketMessageBuildSuccess(bb) { } function encodeWebsocketMessageBuildSuccess(message, bb) { + var value = message["id"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "id"'); + throw new Error("Missing required field \"id\""); } var value = message["from_timestamp"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "from_timestamp"'); + throw new Error("Missing required field \"from_timestamp\""); } var value = message["loader"]; if (value != null) { var encoded = Loader[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + JSON.stringify(value) + ' for enum "Loader"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"Loader\""); +bb.writeByte(encoded); } else { - throw new Error('Missing required field "loader"'); + throw new Error("Missing required field \"loader\""); } var value = message["module_path"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "module_path"'); + throw new Error("Missing required field \"module_path\""); } var value = message["blob_length"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "blob_length"'); + throw new Error("Missing required field \"blob_length\""); } + } function decodeWebsocketMessageBuildFailure(bb) { @@ -1888,45 +1913,44 @@ function decodeWebsocketMessageBuildFailure(bb) { } function encodeWebsocketMessageBuildFailure(message, bb) { + var value = message["id"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "id"'); + throw new Error("Missing required field \"id\""); } var value = message["from_timestamp"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "from_timestamp"'); + throw new Error("Missing required field \"from_timestamp\""); } var value = message["loader"]; if (value != null) { var encoded = Loader[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + JSON.stringify(value) + ' for enum "Loader"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"Loader\""); +bb.writeByte(encoded); } else { - throw new Error('Missing required field "loader"'); + throw new Error("Missing required field \"loader\""); } var value = message["module_path"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "module_path"'); + throw new Error("Missing required field \"module_path\""); } var value = message["log"]; if (value != null) { encodeLog(value, bb); } else { - throw new Error('Missing required field "log"'); + throw new Error("Missing required field \"log\""); } + } function decodeDependencyManifest(bb) { @@ -1937,44 +1961,47 @@ function decodeDependencyManifest(bb) { } function encodeDependencyManifest(message, bb) { + var value = message["ids"]; if (value != null) { - bb.writeUint32ByteArray(value); + bb.writeUint32ByteArray(value); } else { - throw new Error('Missing required field "ids"'); + throw new Error("Missing required field \"ids\""); } + } function decodeFileList(bb) { var result = {}; var length = bb.readVarUint(); - var values = (result["ptrs"] = Array(length)); + var values = result["ptrs"] = Array(length); for (var i = 0; i < length; i++) values[i] = decodeStringPointer(bb); result["files"] = bb.readString(); return result; } function encodeFileList(message, bb) { + var value = message["ptrs"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; encodeStringPointer(value, bb); } } else { - throw new Error('Missing required field "ptrs"'); + throw new Error("Missing required field \"ptrs\""); } var value = message["files"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "files"'); + throw new Error("Missing required field \"files\""); } + } function decodeWebsocketMessageResolveIDs(bb) { @@ -1986,51 +2013,54 @@ function decodeWebsocketMessageResolveIDs(bb) { } function encodeWebsocketMessageResolveIDs(message, bb) { + var value = message["id"]; if (value != null) { - bb.writeUint32ByteArray(value); + bb.writeUint32ByteArray(value); } else { - throw new Error('Missing required field "id"'); + throw new Error("Missing required field \"id\""); } var value = message["list"]; if (value != null) { encodeFileList(value, bb); } else { - throw new Error('Missing required field "list"'); + throw new Error("Missing required field \"list\""); } + } function decodeWebsocketCommandResolveIDs(bb) { var result = {}; var length = bb.readVarUint(); - var values = (result["ptrs"] = Array(length)); + var values = result["ptrs"] = Array(length); for (var i = 0; i < length; i++) values[i] = decodeStringPointer(bb); result["files"] = bb.readString(); return result; } function encodeWebsocketCommandResolveIDs(message, bb) { + var value = message["ptrs"]; if (value != null) { - var values = value, - n = values.length; + var values = value, n = values.length; bb.writeVarUint(n); for (var i = 0; i < n; i++) { value = values[i]; encodeStringPointer(value, bb); } } else { - throw new Error('Missing required field "ptrs"'); + throw new Error("Missing required field \"ptrs\""); } var value = message["files"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "files"'); + throw new Error("Missing required field \"files\""); } + } function decodeWebsocketMessageManifestSuccess(bb) { @@ -2044,38 +2074,37 @@ function decodeWebsocketMessageManifestSuccess(bb) { } function encodeWebsocketMessageManifestSuccess(message, bb) { + var value = message["id"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "id"'); + throw new Error("Missing required field \"id\""); } var value = message["module_path"]; if (value != null) { bb.writeString(value); } else { - throw new Error('Missing required field "module_path"'); + throw new Error("Missing required field \"module_path\""); } var value = message["loader"]; if (value != null) { var encoded = Loader[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + JSON.stringify(value) + ' for enum "Loader"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"Loader\""); +bb.writeByte(encoded); } else { - throw new Error('Missing required field "loader"'); + throw new Error("Missing required field \"loader\""); } var value = message["manifest"]; if (value != null) { encodeDependencyManifest(value, bb); } else { - throw new Error('Missing required field "manifest"'); + throw new Error("Missing required field \"manifest\""); } + } function decodeWebsocketMessageManifestFailure(bb) { @@ -2089,139 +2118,140 @@ function decodeWebsocketMessageManifestFailure(bb) { } function encodeWebsocketMessageManifestFailure(message, bb) { + var value = message["id"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "id"'); + throw new Error("Missing required field \"id\""); } var value = message["from_timestamp"]; if (value != null) { bb.writeUint32(value); } else { - throw new Error('Missing required field "from_timestamp"'); + throw new Error("Missing required field \"from_timestamp\""); } var value = message["loader"]; if (value != null) { var encoded = Loader[value]; - if (encoded === void 0) - throw new Error( - "Invalid value " + JSON.stringify(value) + ' for enum "Loader"' - ); - bb.writeByte(encoded); +if (encoded === void 0) throw new Error("Invalid value " + JSON.stringify(value) + " for enum \"Loader\""); +bb.writeByte(encoded); } else { - throw new Error('Missing required field "loader"'); + throw new Error("Missing required field \"loader\""); } var value = message["log"]; if (value != null) { encodeLog(value, bb); } else { - throw new Error('Missing required field "log"'); - } -} - -export { Loader }; -export { LoaderKeys }; -export { ResolveMode }; -export { ResolveModeKeys }; -export { Platform }; -export { PlatformKeys }; -export { JSXRuntime }; -export { JSXRuntimeKeys }; -export { decodeJSX }; -export { encodeJSX }; -export { decodeStringPointer }; -export { encodeStringPointer }; -export { decodeJavascriptBundledModule }; -export { encodeJavascriptBundledModule }; -export { decodeJavascriptBundledPackage }; -export { encodeJavascriptBundledPackage }; -export { decodeJavascriptBundle }; -export { encodeJavascriptBundle }; -export { decodeJavascriptBundleContainer }; -export { encodeJavascriptBundleContainer }; -export { ScanDependencyMode }; -export { ScanDependencyModeKeys }; -export { ModuleImportType }; -export { ModuleImportTypeKeys }; -export { decodeModuleImportRecord }; -export { encodeModuleImportRecord }; -export { decodeModule }; -export { encodeModule }; -export { decodeStringMap }; -export { encodeStringMap }; -export { decodeLoaderMap }; -export { encodeLoaderMap }; -export { DotEnvBehavior }; -export { DotEnvBehaviorKeys }; -export { decodeEnvConfig }; -export { encodeEnvConfig }; -export { decodeLoadedEnvConfig }; -export { encodeLoadedEnvConfig }; -export { decodeFrameworkConfig }; -export { encodeFrameworkConfig }; -export { decodeLoadedFramework }; -export { encodeLoadedFramework }; -export { decodeLoadedRouteConfig }; -export { encodeLoadedRouteConfig }; -export { decodeRouteConfig }; -export { encodeRouteConfig }; -export { decodeTransformOptions }; -export { encodeTransformOptions }; -export { decodeFileHandle }; -export { encodeFileHandle }; -export { decodeTransform }; -export { encodeTransform }; -export { TransformResponseStatus }; -export { TransformResponseStatusKeys }; -export { decodeOutputFile }; -export { encodeOutputFile }; -export { decodeTransformResponse }; -export { encodeTransformResponse }; -export { MessageKind }; -export { MessageKindKeys }; -export { decodeLocation }; -export { encodeLocation }; -export { decodeMessageData }; -export { encodeMessageData }; -export { decodeMessage }; -export { encodeMessage }; -export { decodeLog }; -export { encodeLog }; -export { Reloader }; -export { ReloaderKeys }; -export { WebsocketMessageKind }; -export { WebsocketMessageKindKeys }; -export { WebsocketCommandKind }; -export { WebsocketCommandKindKeys }; -export { decodeWebsocketMessage }; -export { encodeWebsocketMessage }; -export { decodeWebsocketMessageWelcome }; -export { encodeWebsocketMessageWelcome }; -export { decodeWebsocketMessageFileChangeNotification }; -export { encodeWebsocketMessageFileChangeNotification }; -export { decodeWebsocketCommand }; -export { encodeWebsocketCommand }; -export { decodeWebsocketCommandBuild }; -export { encodeWebsocketCommandBuild }; -export { decodeWebsocketCommandManifest }; -export { encodeWebsocketCommandManifest }; -export { decodeWebsocketMessageBuildSuccess }; -export { encodeWebsocketMessageBuildSuccess }; -export { decodeWebsocketMessageBuildFailure }; -export { encodeWebsocketMessageBuildFailure }; -export { decodeDependencyManifest }; -export { encodeDependencyManifest }; -export { decodeFileList }; -export { encodeFileList }; -export { decodeWebsocketMessageResolveIDs }; -export { encodeWebsocketMessageResolveIDs }; -export { decodeWebsocketCommandResolveIDs }; -export { encodeWebsocketCommandResolveIDs }; -export { decodeWebsocketMessageManifestSuccess }; -export { encodeWebsocketMessageManifestSuccess }; -export { decodeWebsocketMessageManifestFailure }; -export { encodeWebsocketMessageManifestFailure }; + throw new Error("Missing required field \"log\""); + } + +} + +export { Loader } +export { LoaderKeys } +export { ResolveMode } +export { ResolveModeKeys } +export { Platform } +export { PlatformKeys } +export { CSSInJSBehavior } +export { CSSInJSBehaviorKeys } +export { JSXRuntime } +export { JSXRuntimeKeys } +export { decodeJSX } +export { encodeJSX } +export { decodeStringPointer } +export { encodeStringPointer } +export { decodeJavascriptBundledModule } +export { encodeJavascriptBundledModule } +export { decodeJavascriptBundledPackage } +export { encodeJavascriptBundledPackage } +export { decodeJavascriptBundle } +export { encodeJavascriptBundle } +export { decodeJavascriptBundleContainer } +export { encodeJavascriptBundleContainer } +export { ScanDependencyMode } +export { ScanDependencyModeKeys } +export { ModuleImportType } +export { ModuleImportTypeKeys } +export { decodeModuleImportRecord } +export { encodeModuleImportRecord } +export { decodeModule } +export { encodeModule } +export { decodeStringMap } +export { encodeStringMap } +export { decodeLoaderMap } +export { encodeLoaderMap } +export { DotEnvBehavior } +export { DotEnvBehaviorKeys } +export { decodeEnvConfig } +export { encodeEnvConfig } +export { decodeLoadedEnvConfig } +export { encodeLoadedEnvConfig } +export { decodeFrameworkConfig } +export { encodeFrameworkConfig } +export { decodeLoadedFramework } +export { encodeLoadedFramework } +export { decodeLoadedRouteConfig } +export { encodeLoadedRouteConfig } +export { decodeRouteConfig } +export { encodeRouteConfig } +export { decodeTransformOptions } +export { encodeTransformOptions } +export { decodeFileHandle } +export { encodeFileHandle } +export { decodeTransform } +export { encodeTransform } +export { TransformResponseStatus } +export { TransformResponseStatusKeys } +export { decodeOutputFile } +export { encodeOutputFile } +export { decodeTransformResponse } +export { encodeTransformResponse } +export { MessageKind } +export { MessageKindKeys } +export { decodeLocation } +export { encodeLocation } +export { decodeMessageData } +export { encodeMessageData } +export { decodeMessage } +export { encodeMessage } +export { decodeLog } +export { encodeLog } +export { Reloader } +export { ReloaderKeys } +export { WebsocketMessageKind } +export { WebsocketMessageKindKeys } +export { WebsocketCommandKind } +export { WebsocketCommandKindKeys } +export { decodeWebsocketMessage } +export { encodeWebsocketMessage } +export { decodeWebsocketMessageWelcome } +export { encodeWebsocketMessageWelcome } +export { decodeWebsocketMessageFileChangeNotification } +export { encodeWebsocketMessageFileChangeNotification } +export { decodeWebsocketCommand } +export { encodeWebsocketCommand } +export { decodeWebsocketCommandBuild } +export { encodeWebsocketCommandBuild } +export { decodeWebsocketCommandManifest } +export { encodeWebsocketCommandManifest } +export { decodeWebsocketMessageBuildSuccess } +export { encodeWebsocketMessageBuildSuccess } +export { decodeWebsocketMessageBuildFailure } +export { encodeWebsocketMessageBuildFailure } +export { decodeDependencyManifest } +export { encodeDependencyManifest } +export { decodeFileList } +export { encodeFileList } +export { decodeWebsocketMessageResolveIDs } +export { encodeWebsocketMessageResolveIDs } +export { decodeWebsocketCommandResolveIDs } +export { encodeWebsocketCommandResolveIDs } +export { decodeWebsocketMessageManifestSuccess } +export { encodeWebsocketMessageManifestSuccess } +export { decodeWebsocketMessageManifestFailure } +export { encodeWebsocketMessageManifestFailure }
\ No newline at end of file diff --git a/src/api/schema.peechy b/src/api/schema.peechy index a40cacef1..63c8501b2 100644 --- a/src/api/schema.peechy +++ b/src/api/schema.peechy @@ -23,6 +23,11 @@ smol Platform { bun = 3; } +smol CSSInJSBehavior { + facade = 1; + facade_onimportcss = 2; +} + smol JSXRuntime { automatic = 1; classic = 2; @@ -31,7 +36,7 @@ smol JSXRuntime { struct JSX { string factory; JSXRuntime runtime; - string fragment; + string fragment;\ bool development; // Probably react @@ -160,6 +165,8 @@ message FrameworkConfig { bool development = 4; EnvConfig client_env = 5; EnvConfig server_env = 6; + + CSSInJSBehavior client_css_in_js = 7; } struct LoadedFramework { @@ -168,6 +175,8 @@ struct LoadedFramework { bool development; bool client; LoadedEnvConfig env; + + CSSInJSBehavior client_css_in_js; } struct LoadedRouteConfig { diff --git a/src/api/schema.zig b/src/api/schema.zig index 69a77082a..9219bcaa7 100644 --- a/src/api/schema.zig +++ b/src/api/schema.zig @@ -1,4 +1,3 @@ - const std = @import("std"); pub const Reader = struct { @@ -282,1826 +281,1749 @@ pub fn Writer(comptime WritableStream: type) type { pub const ByteWriter = Writer(*std.io.FixedBufferStream([]u8)); pub const FileWriter = Writer(std.fs.File); +pub const Api = struct { + pub const Loader = enum(u8) { + _none, + /// jsx + jsx, + /// js + js, + /// ts + ts, -pub const Api = struct { - -pub const Loader = enum(u8) { - -_none, - /// jsx - jsx, - - /// js - js, - - /// ts - ts, - - /// tsx - tsx, - - /// css - css, - - /// file - file, - - /// json - json, - -_, - - pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { - return try std.json.stringify(@tagName(self), opts, o); - } - - -}; - -pub const ResolveMode = enum(u8) { - -_none, - /// disable - disable, + /// tsx + tsx, - /// lazy - lazy, + /// css + css, - /// dev - dev, + /// file + file, - /// bundle - bundle, + /// json + json, -_, + _, - pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { - return try std.json.stringify(@tagName(self), opts, o); - } - - -}; - -pub const Platform = enum(u8) { + pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { + return try std.json.stringify(@tagName(self), opts, o); + } + }; -_none, - /// browser - browser, + pub const ResolveMode = enum(u8) { + _none, + /// disable + disable, - /// node - node, + /// lazy + lazy, - /// bun - bun, + /// dev + dev, -_, + /// bundle + bundle, - pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { - return try std.json.stringify(@tagName(self), opts, o); - } + _, - -}; - -pub const JsxRuntime = enum(u8) { + pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { + return try std.json.stringify(@tagName(self), opts, o); + } + }; -_none, - /// automatic - automatic, + pub const Platform = enum(u8) { + _none, + /// browser + browser, - /// classic - classic, + /// node + node, -_, + /// bun + bun, - pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { - return try std.json.stringify(@tagName(self), opts, o); - } + _, - -}; - -pub const Jsx = struct { -/// factory -factory: []const u8, + pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { + return try std.json.stringify(@tagName(self), opts, o); + } + }; -/// runtime -runtime: JsxRuntime, + pub const CssInJsBehavior = enum(u8) { + _none, + /// facade + facade, -/// fragment -fragment: []const u8, + /// facade_onimportcss + facade_onimportcss, -/// development -development: bool = false, + _, -/// import_source -import_source: []const u8, + pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { + return try std.json.stringify(@tagName(self), opts, o); + } + }; -/// react_fast_refresh -react_fast_refresh: bool = false, + pub const JsxRuntime = enum(u8) { + _none, + /// automatic + automatic, + /// classic + classic, -pub fn decode(reader: anytype) anyerror!Jsx { - var this = std.mem.zeroes(Jsx); + _, - this.factory = try reader.readValue([]const u8); - this.runtime = try reader.readValue(JsxRuntime); - this.fragment = try reader.readValue([]const u8); - this.development = try reader.readValue(bool); - this.import_source = try reader.readValue([]const u8); - this.react_fast_refresh = try reader.readValue(bool); - return this; -} + pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { + return try std.json.stringify(@tagName(self), opts, o); + } + }; -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeValue(this.factory); - try writer.writeEnum(this.runtime); - try writer.writeValue(this.fragment); - try writer.writeInt(@intCast(u8, @boolToInt(this.development))); - try writer.writeValue(this.import_source); - try writer.writeInt(@intCast(u8, @boolToInt(this.react_fast_refresh))); -} + pub const Jsx = struct { + /// factory + factory: []const u8, -}; + /// runtime + runtime: JsxRuntime, -pub const StringPointer = packed struct { -/// offset -offset: u32 = 0, + /// fragment + fragment: []const u8, -/// length -length: u32 = 0, + /// development + development: bool = false, + /// import_source + import_source: []const u8, -pub fn decode(reader: anytype) anyerror!StringPointer { - var this = std.mem.zeroes(StringPointer); + /// react_fast_refresh + react_fast_refresh: bool = false, - this.offset = try reader.readValue(u32); - this.length = try reader.readValue(u32); - return this; -} + pub fn decode(reader: anytype) anyerror!Jsx { + var this = std.mem.zeroes(Jsx); -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeInt(this.offset); - try writer.writeInt(this.length); -} + this.factory = try reader.readValue([]const u8); + this.runtime = try reader.readValue(JsxRuntime); + this.fragment = try reader.readValue([]const u8); + this.development = try reader.readValue(bool); + this.import_source = try reader.readValue([]const u8); + this.react_fast_refresh = try reader.readValue(bool); + return this; + } -}; + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeValue(this.factory); + try writer.writeEnum(this.runtime); + try writer.writeValue(this.fragment); + try writer.writeInt(@intCast(u8, @boolToInt(this.development))); + try writer.writeValue(this.import_source); + try writer.writeInt(@intCast(u8, @boolToInt(this.react_fast_refresh))); + } + }; -pub const JavascriptBundledModule = struct { -/// path -path: StringPointer, + pub const StringPointer = packed struct { + /// offset + offset: u32 = 0, -/// code -code: StringPointer, + /// length + length: u32 = 0, -/// package_id -package_id: u32 = 0, + pub fn decode(reader: anytype) anyerror!StringPointer { + var this = std.mem.zeroes(StringPointer); -/// id -id: u32 = 0, + this.offset = try reader.readValue(u32); + this.length = try reader.readValue(u32); + return this; + } -/// path_extname_length -path_extname_length: u8 = 0, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeInt(this.offset); + try writer.writeInt(this.length); + } + }; + pub const JavascriptBundledModule = struct { + /// path + path: StringPointer, -pub fn decode(reader: anytype) anyerror!JavascriptBundledModule { - var this = std.mem.zeroes(JavascriptBundledModule); + /// code + code: StringPointer, - this.path = try reader.readValue(StringPointer); - this.code = try reader.readValue(StringPointer); - this.package_id = try reader.readValue(u32); - this.id = try reader.readValue(u32); - this.path_extname_length = try reader.readValue(u8); - return this; -} + /// package_id + package_id: u32 = 0, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeValue(this.path); - try writer.writeValue(this.code); - try writer.writeInt(this.package_id); - try writer.writeInt(this.id); - try writer.writeInt(this.path_extname_length); -} + /// id + id: u32 = 0, -}; + /// path_extname_length + path_extname_length: u8 = 0, -pub const JavascriptBundledPackage = struct { -/// name -name: StringPointer, + pub fn decode(reader: anytype) anyerror!JavascriptBundledModule { + var this = std.mem.zeroes(JavascriptBundledModule); -/// version -version: StringPointer, + this.path = try reader.readValue(StringPointer); + this.code = try reader.readValue(StringPointer); + this.package_id = try reader.readValue(u32); + this.id = try reader.readValue(u32); + this.path_extname_length = try reader.readValue(u8); + return this; + } -/// hash -hash: u32 = 0, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeValue(this.path); + try writer.writeValue(this.code); + try writer.writeInt(this.package_id); + try writer.writeInt(this.id); + try writer.writeInt(this.path_extname_length); + } + }; -/// modules_offset -modules_offset: u32 = 0, + pub const JavascriptBundledPackage = struct { + /// name + name: StringPointer, -/// modules_length -modules_length: u32 = 0, + /// version + version: StringPointer, + /// hash + hash: u32 = 0, -pub fn decode(reader: anytype) anyerror!JavascriptBundledPackage { - var this = std.mem.zeroes(JavascriptBundledPackage); + /// modules_offset + modules_offset: u32 = 0, - this.name = try reader.readValue(StringPointer); - this.version = try reader.readValue(StringPointer); - this.hash = try reader.readValue(u32); - this.modules_offset = try reader.readValue(u32); - this.modules_length = try reader.readValue(u32); - return this; -} + /// modules_length + modules_length: u32 = 0, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeValue(this.name); - try writer.writeValue(this.version); - try writer.writeInt(this.hash); - try writer.writeInt(this.modules_offset); - try writer.writeInt(this.modules_length); -} + pub fn decode(reader: anytype) anyerror!JavascriptBundledPackage { + var this = std.mem.zeroes(JavascriptBundledPackage); -}; + this.name = try reader.readValue(StringPointer); + this.version = try reader.readValue(StringPointer); + this.hash = try reader.readValue(u32); + this.modules_offset = try reader.readValue(u32); + this.modules_length = try reader.readValue(u32); + return this; + } -pub const JavascriptBundle = struct { -/// modules -modules: []const JavascriptBundledModule, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeValue(this.name); + try writer.writeValue(this.version); + try writer.writeInt(this.hash); + try writer.writeInt(this.modules_offset); + try writer.writeInt(this.modules_length); + } + }; -/// packages -packages: []const JavascriptBundledPackage, + pub const JavascriptBundle = struct { + /// modules + modules: []const JavascriptBundledModule, -/// etag -etag: []const u8, + /// packages + packages: []const JavascriptBundledPackage, -/// generated_at -generated_at: u32 = 0, + /// etag + etag: []const u8, -/// app_package_json_dependencies_hash -app_package_json_dependencies_hash: []const u8, + /// generated_at + generated_at: u32 = 0, -/// import_from_name -import_from_name: []const u8, + /// app_package_json_dependencies_hash + app_package_json_dependencies_hash: []const u8, -/// manifest_string -manifest_string: []const u8, + /// import_from_name + import_from_name: []const u8, + /// manifest_string + manifest_string: []const u8, -pub fn decode(reader: anytype) anyerror!JavascriptBundle { - var this = std.mem.zeroes(JavascriptBundle); + pub fn decode(reader: anytype) anyerror!JavascriptBundle { + var this = std.mem.zeroes(JavascriptBundle); - this.modules = try reader.readArray(JavascriptBundledModule); - this.packages = try reader.readArray(JavascriptBundledPackage); - this.etag = try reader.readArray(u8); - this.generated_at = try reader.readValue(u32); - this.app_package_json_dependencies_hash = try reader.readArray(u8); - this.import_from_name = try reader.readArray(u8); - this.manifest_string = try reader.readArray(u8); - return this; -} + this.modules = try reader.readArray(JavascriptBundledModule); + this.packages = try reader.readArray(JavascriptBundledPackage); + this.etag = try reader.readArray(u8); + this.generated_at = try reader.readValue(u32); + this.app_package_json_dependencies_hash = try reader.readArray(u8); + this.import_from_name = try reader.readArray(u8); + this.manifest_string = try reader.readArray(u8); + return this; + } -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeArray(JavascriptBundledModule, this.modules); - try writer.writeArray(JavascriptBundledPackage, this.packages); - try writer.writeArray(u8, this.etag); - try writer.writeInt(this.generated_at); - try writer.writeArray(u8, this.app_package_json_dependencies_hash); - try writer.writeArray(u8, this.import_from_name); - try writer.writeArray(u8, this.manifest_string); -} + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeArray(JavascriptBundledModule, this.modules); + try writer.writeArray(JavascriptBundledPackage, this.packages); + try writer.writeArray(u8, this.etag); + try writer.writeInt(this.generated_at); + try writer.writeArray(u8, this.app_package_json_dependencies_hash); + try writer.writeArray(u8, this.import_from_name); + try writer.writeArray(u8, this.manifest_string); + } + }; -}; + pub const JavascriptBundleContainer = struct { + /// bundle_format_version + bundle_format_version: ?u32 = null, -pub const JavascriptBundleContainer = struct { -/// bundle_format_version -bundle_format_version: ?u32 = null, - -/// bundle -bundle: ?JavascriptBundle = null, - -/// framework -framework: ?LoadedFramework = null, - -/// routes -routes: ?LoadedRouteConfig = null, - -/// code_length -code_length: ?u32 = null, - - -pub fn decode(reader: anytype) anyerror!JavascriptBundleContainer { - var this = std.mem.zeroes(JavascriptBundleContainer); - - while(true) { - switch (try reader.readByte()) { - 0 => { return this; }, - - 1 => { - this.bundle_format_version = try reader.readValue(u32); -}, - 2 => { - this.bundle = try reader.readValue(JavascriptBundle); -}, - 3 => { - this.framework = try reader.readValue(LoadedFramework); -}, - 4 => { - this.routes = try reader.readValue(LoadedRouteConfig); -}, - 5 => { - this.code_length = try reader.readValue(u32); -}, - else => { - return error.InvalidMessage; - }, - } - } -unreachable; -} + /// bundle + bundle: ?JavascriptBundle = null, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { -if (this.bundle_format_version) |bundle_format_version| { - try writer.writeFieldID(1); - try writer.writeInt(bundle_format_version); -} -if (this.bundle) |bundle| { - try writer.writeFieldID(2); - try writer.writeValue(bundle); -} -if (this.framework) |framework| { - try writer.writeFieldID(3); - try writer.writeValue(framework); -} -if (this.routes) |routes| { - try writer.writeFieldID(4); - try writer.writeValue(routes); -} -if (this.code_length) |code_length| { - try writer.writeFieldID(5); - try writer.writeInt(code_length); -} -try writer.endMessage(); -} + /// framework + framework: ?LoadedFramework = null, -}; - -pub const ScanDependencyMode = enum(u8) { + /// routes + routes: ?LoadedRouteConfig = null, -_none, - /// app - app, + /// code_length + code_length: ?u32 = null, - /// all - all, + pub fn decode(reader: anytype) anyerror!JavascriptBundleContainer { + var this = std.mem.zeroes(JavascriptBundleContainer); -_, + while (true) { + switch (try reader.readByte()) { + 0 => { + return this; + }, - pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { - return try std.json.stringify(@tagName(self), opts, o); + 1 => { + this.bundle_format_version = try reader.readValue(u32); + }, + 2 => { + this.bundle = try reader.readValue(JavascriptBundle); + }, + 3 => { + this.framework = try reader.readValue(LoadedFramework); + }, + 4 => { + this.routes = try reader.readValue(LoadedRouteConfig); + }, + 5 => { + this.code_length = try reader.readValue(u32); + }, + else => { + return error.InvalidMessage; + }, } + } + unreachable; + } - -}; + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + if (this.bundle_format_version) |bundle_format_version| { + try writer.writeFieldID(1); + try writer.writeInt(bundle_format_version); + } + if (this.bundle) |bundle| { + try writer.writeFieldID(2); + try writer.writeValue(bundle); + } + if (this.framework) |framework| { + try writer.writeFieldID(3); + try writer.writeValue(framework); + } + if (this.routes) |routes| { + try writer.writeFieldID(4); + try writer.writeValue(routes); + } + if (this.code_length) |code_length| { + try writer.writeFieldID(5); + try writer.writeInt(code_length); + } + try writer.endMessage(); + } + }; -pub const ModuleImportType = enum(u8) { + pub const ScanDependencyMode = enum(u8) { + _none, + /// app + app, -_none, - /// import - import, + /// all + all, - /// require - require, + _, -_, + pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { + return try std.json.stringify(@tagName(self), opts, o); + } + }; - pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { - return try std.json.stringify(@tagName(self), opts, o); - } + pub const ModuleImportType = enum(u8) { + _none, + /// import + import, - -}; + /// require + require, -pub const ModuleImportRecord = struct { -/// kind -kind: ModuleImportType, + _, -/// path -path: []const u8, + pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { + return try std.json.stringify(@tagName(self), opts, o); + } + }; -/// dynamic -dynamic: bool = false, + pub const ModuleImportRecord = struct { + /// kind + kind: ModuleImportType, + /// path + path: []const u8, -pub fn decode(reader: anytype) anyerror!ModuleImportRecord { - var this = std.mem.zeroes(ModuleImportRecord); + /// dynamic + dynamic: bool = false, - this.kind = try reader.readValue(ModuleImportType); - this.path = try reader.readValue([]const u8); - this.dynamic = try reader.readValue(bool); - return this; -} + pub fn decode(reader: anytype) anyerror!ModuleImportRecord { + var this = std.mem.zeroes(ModuleImportRecord); -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeEnum(this.kind); - try writer.writeValue(this.path); - try writer.writeInt(@intCast(u8, @boolToInt(this.dynamic))); -} + this.kind = try reader.readValue(ModuleImportType); + this.path = try reader.readValue([]const u8); + this.dynamic = try reader.readValue(bool); + return this; + } -}; + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeEnum(this.kind); + try writer.writeValue(this.path); + try writer.writeInt(@intCast(u8, @boolToInt(this.dynamic))); + } + }; -pub const Module = struct { -/// path -path: []const u8, + pub const Module = struct { + /// path + path: []const u8, -/// imports -imports: []const ModuleImportRecord, + /// imports + imports: []const ModuleImportRecord, + pub fn decode(reader: anytype) anyerror!Module { + var this = std.mem.zeroes(Module); -pub fn decode(reader: anytype) anyerror!Module { - var this = std.mem.zeroes(Module); + this.path = try reader.readValue([]const u8); + this.imports = try reader.readArray(ModuleImportRecord); + return this; + } - this.path = try reader.readValue([]const u8); - this.imports = try reader.readArray(ModuleImportRecord); - return this; -} + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeValue(this.path); + try writer.writeArray(ModuleImportRecord, this.imports); + } + }; -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeValue(this.path); - try writer.writeArray(ModuleImportRecord, this.imports); -} + pub const StringMap = struct { + /// keys + keys: []const []const u8, -}; + /// values + values: []const []const u8, -pub const StringMap = struct { -/// keys -keys: []const []const u8, + pub fn decode(reader: anytype) anyerror!StringMap { + var this = std.mem.zeroes(StringMap); -/// values -values: []const []const u8, + this.keys = try reader.readArray([]const u8); + this.values = try reader.readArray([]const u8); + return this; + } + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeArray([]const u8, this.keys); + try writer.writeArray([]const u8, this.values); + } + }; -pub fn decode(reader: anytype) anyerror!StringMap { - var this = std.mem.zeroes(StringMap); + pub const LoaderMap = struct { + /// extensions + extensions: []const []const u8, - this.keys = try reader.readArray([]const u8); - this.values = try reader.readArray([]const u8); - return this; -} + /// loaders + loaders: []const Loader, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeArray([]const u8, this.keys); - try writer.writeArray([]const u8, this.values); -} + pub fn decode(reader: anytype) anyerror!LoaderMap { + var this = std.mem.zeroes(LoaderMap); -}; + this.extensions = try reader.readArray([]const u8); + this.loaders = try reader.readArray(Loader); + return this; + } -pub const LoaderMap = struct { -/// extensions -extensions: []const []const u8, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeArray([]const u8, this.extensions); + try writer.writeArray(Loader, this.loaders); + } + }; -/// loaders -loaders: []const Loader, + pub const DotEnvBehavior = enum(u32) { + _none, + /// disable + disable, + /// prefix + prefix, -pub fn decode(reader: anytype) anyerror!LoaderMap { - var this = std.mem.zeroes(LoaderMap); + /// load_all + load_all, - this.extensions = try reader.readArray([]const u8); - this.loaders = try reader.readArray(Loader); - return this; -} + _, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeArray([]const u8, this.extensions); - try writer.writeArray(Loader, this.loaders); -} - -}; - -pub const DotEnvBehavior = enum(u32) { + pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { + return try std.json.stringify(@tagName(self), opts, o); + } + }; -_none, - /// disable - disable, + pub const EnvConfig = struct { + /// prefix + prefix: ?[]const u8 = null, - /// prefix - prefix, + /// defaults + defaults: ?StringMap = null, - /// load_all - load_all, + pub fn decode(reader: anytype) anyerror!EnvConfig { + var this = std.mem.zeroes(EnvConfig); -_, + while (true) { + switch (try reader.readByte()) { + 0 => { + return this; + }, - pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { - return try std.json.stringify(@tagName(self), opts, o); + 1 => { + this.prefix = try reader.readValue([]const u8); + }, + 2 => { + this.defaults = try reader.readValue(StringMap); + }, + else => { + return error.InvalidMessage; + }, } + } + unreachable; + } - -}; - -pub const EnvConfig = struct { -/// prefix -prefix: ?[]const u8 = null, - -/// defaults -defaults: ?StringMap = null, - - -pub fn decode(reader: anytype) anyerror!EnvConfig { - var this = std.mem.zeroes(EnvConfig); - - while(true) { - switch (try reader.readByte()) { - 0 => { return this; }, - - 1 => { - this.prefix = try reader.readValue([]const u8); -}, - 2 => { - this.defaults = try reader.readValue(StringMap); -}, - else => { - return error.InvalidMessage; - }, - } - } -unreachable; -} - -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { -if (this.prefix) |prefix| { - try writer.writeFieldID(1); - try writer.writeValue(prefix); -} -if (this.defaults) |defaults| { - try writer.writeFieldID(2); - try writer.writeValue(defaults); -} -try writer.endMessage(); -} - -}; - -pub const LoadedEnvConfig = struct { -/// dotenv -dotenv: DotEnvBehavior, - -/// defaults -defaults: StringMap, - -/// prefix -prefix: []const u8, - - -pub fn decode(reader: anytype) anyerror!LoadedEnvConfig { - var this = std.mem.zeroes(LoadedEnvConfig); - - this.dotenv = try reader.readValue(DotEnvBehavior); - this.defaults = try reader.readValue(StringMap); - this.prefix = try reader.readValue([]const u8); - return this; -} - -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeEnum(this.dotenv); - try writer.writeValue(this.defaults); - try writer.writeValue(this.prefix); -} - -}; - -pub const FrameworkConfig = struct { -/// package -package: ?[]const u8 = null, - -/// client -client: ?[]const u8 = null, - -/// server -server: ?[]const u8 = null, - -/// development -development: ?bool = null, - -/// client_env -client_env: ?EnvConfig = null, - -/// server_env -server_env: ?EnvConfig = null, - - -pub fn decode(reader: anytype) anyerror!FrameworkConfig { - var this = std.mem.zeroes(FrameworkConfig); - - while(true) { - switch (try reader.readByte()) { - 0 => { return this; }, - - 1 => { - this.package = try reader.readValue([]const u8); -}, - 2 => { - this.client = try reader.readValue([]const u8); -}, - 3 => { - this.server = try reader.readValue([]const u8); -}, - 4 => { - this.development = try reader.readValue(bool); -}, - 5 => { - this.client_env = try reader.readValue(EnvConfig); -}, - 6 => { - this.server_env = try reader.readValue(EnvConfig); -}, - else => { - return error.InvalidMessage; - }, - } - } -unreachable; -} - -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { -if (this.package) |package| { - try writer.writeFieldID(1); - try writer.writeValue(package); -} -if (this.client) |client| { - try writer.writeFieldID(2); - try writer.writeValue(client); -} -if (this.server) |server| { - try writer.writeFieldID(3); - try writer.writeValue(server); -} -if (this.development) |development| { - try writer.writeFieldID(4); - try writer.writeInt(@intCast(u8, @boolToInt(development))); -} -if (this.client_env) |client_env| { - try writer.writeFieldID(5); - try writer.writeValue(client_env); -} -if (this.server_env) |server_env| { - try writer.writeFieldID(6); - try writer.writeValue(server_env); -} -try writer.endMessage(); -} + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + if (this.prefix) |prefix| { + try writer.writeFieldID(1); + try writer.writeValue(prefix); + } + if (this.defaults) |defaults| { + try writer.writeFieldID(2); + try writer.writeValue(defaults); + } + try writer.endMessage(); + } + }; -}; + pub const LoadedEnvConfig = struct { + /// dotenv + dotenv: DotEnvBehavior, -pub const LoadedFramework = struct { -/// entry_point -entry_point: []const u8, + /// defaults + defaults: StringMap, -/// package -package: []const u8, + /// prefix + prefix: []const u8, -/// development -development: bool = false, + pub fn decode(reader: anytype) anyerror!LoadedEnvConfig { + var this = std.mem.zeroes(LoadedEnvConfig); -/// client -client: bool = false, + this.dotenv = try reader.readValue(DotEnvBehavior); + this.defaults = try reader.readValue(StringMap); + this.prefix = try reader.readValue([]const u8); + return this; + } -/// env -env: LoadedEnvConfig, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeEnum(this.dotenv); + try writer.writeValue(this.defaults); + try writer.writeValue(this.prefix); + } + }; + pub const FrameworkConfig = struct { + /// package + package: ?[]const u8 = null, -pub fn decode(reader: anytype) anyerror!LoadedFramework { - var this = std.mem.zeroes(LoadedFramework); + /// client + client: ?[]const u8 = null, - this.entry_point = try reader.readValue([]const u8); - this.package = try reader.readValue([]const u8); - this.development = try reader.readValue(bool); - this.client = try reader.readValue(bool); - this.env = try reader.readValue(LoadedEnvConfig); - return this; -} + /// server + server: ?[]const u8 = null, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeValue(this.entry_point); - try writer.writeValue(this.package); - try writer.writeInt(@intCast(u8, @boolToInt(this.development))); - try writer.writeInt(@intCast(u8, @boolToInt(this.client))); - try writer.writeValue(this.env); -} + /// development + development: ?bool = null, -}; + /// client_env + client_env: ?EnvConfig = null, -pub const LoadedRouteConfig = struct { -/// dir -dir: []const u8, + /// server_env + server_env: ?EnvConfig = null, -/// extensions -extensions: []const []const u8, + /// client_css_in_js + client_css_in_js: ?CssInJsBehavior = null, -/// static_dir -static_dir: []const u8, + pub fn decode(reader: anytype) anyerror!FrameworkConfig { + var this = std.mem.zeroes(FrameworkConfig); -/// asset_prefix -asset_prefix: []const u8, + while (true) { + switch (try reader.readByte()) { + 0 => { + return this; + }, + 1 => { + this.package = try reader.readValue([]const u8); + }, + 2 => { + this.client = try reader.readValue([]const u8); + }, + 3 => { + this.server = try reader.readValue([]const u8); + }, + 4 => { + this.development = try reader.readValue(bool); + }, + 5 => { + this.client_env = try reader.readValue(EnvConfig); + }, + 6 => { + this.server_env = try reader.readValue(EnvConfig); + }, + 7 => { + this.client_css_in_js = try reader.readValue(CssInJsBehavior); + }, + else => { + return error.InvalidMessage; + }, + } + } + unreachable; + } -pub fn decode(reader: anytype) anyerror!LoadedRouteConfig { - var this = std.mem.zeroes(LoadedRouteConfig); + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + if (this.package) |package| { + try writer.writeFieldID(1); + try writer.writeValue(package); + } + if (this.client) |client| { + try writer.writeFieldID(2); + try writer.writeValue(client); + } + if (this.server) |server| { + try writer.writeFieldID(3); + try writer.writeValue(server); + } + if (this.development) |development| { + try writer.writeFieldID(4); + try writer.writeInt(@intCast(u8, @boolToInt(development))); + } + if (this.client_env) |client_env| { + try writer.writeFieldID(5); + try writer.writeValue(client_env); + } + if (this.server_env) |server_env| { + try writer.writeFieldID(6); + try writer.writeValue(server_env); + } + if (this.client_css_in_js) |client_css_in_js| { + try writer.writeFieldID(7); + try writer.writeEnum(client_css_in_js); + } + try writer.endMessage(); + } + }; - this.dir = try reader.readValue([]const u8); - this.extensions = try reader.readArray([]const u8); - this.static_dir = try reader.readValue([]const u8); - this.asset_prefix = try reader.readValue([]const u8); - return this; -} + pub const LoadedFramework = struct { + /// entry_point + entry_point: []const u8, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeValue(this.dir); - try writer.writeArray([]const u8, this.extensions); - try writer.writeValue(this.static_dir); - try writer.writeValue(this.asset_prefix); -} + /// package + package: []const u8, -}; + /// development + development: bool = false, -pub const RouteConfig = struct { -/// dir -dir: []const []const u8, - -/// extensions -extensions: []const []const u8, - -/// static_dir -static_dir: ?[]const u8 = null, - -/// asset_prefix -asset_prefix: ?[]const u8 = null, - - -pub fn decode(reader: anytype) anyerror!RouteConfig { - var this = std.mem.zeroes(RouteConfig); - - while(true) { - switch (try reader.readByte()) { - 0 => { return this; }, - - 1 => { - this.dir = try reader.readArray([]const u8); -}, - 2 => { - this.extensions = try reader.readArray([]const u8); -}, - 3 => { - this.static_dir = try reader.readValue([]const u8); -}, - 4 => { - this.asset_prefix = try reader.readValue([]const u8); -}, - else => { - return error.InvalidMessage; - }, - } - } -unreachable; -} + /// client + client: bool = false, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { -if (this.dir) |dir| { - try writer.writeFieldID(1); - try writer.writeArray([]const u8, dir); -} -if (this.extensions) |extensions| { - try writer.writeFieldID(2); - try writer.writeArray([]const u8, extensions); -} -if (this.static_dir) |static_dir| { - try writer.writeFieldID(3); - try writer.writeValue(static_dir); -} -if (this.asset_prefix) |asset_prefix| { - try writer.writeFieldID(4); - try writer.writeValue(asset_prefix); -} -try writer.endMessage(); -} + /// env + env: LoadedEnvConfig, -}; + /// client_css_in_js + client_css_in_js: CssInJsBehavior, -pub const TransformOptions = struct { -/// jsx -jsx: ?Jsx = null, + pub fn decode(reader: anytype) anyerror!LoadedFramework { + var this = std.mem.zeroes(LoadedFramework); -/// tsconfig_override -tsconfig_override: ?[]const u8 = null, - -/// resolve -resolve: ?ResolveMode = null, - -/// origin -origin: ?[]const u8 = null, - -/// absolute_working_dir -absolute_working_dir: ?[]const u8 = null, - -/// define -define: ?StringMap = null, - -/// preserve_symlinks -preserve_symlinks: ?bool = null, - -/// entry_points -entry_points: []const []const u8, - -/// write -write: ?bool = null, - -/// inject -inject: []const []const u8, - -/// output_dir -output_dir: ?[]const u8 = null, - -/// external -external: []const []const u8, - -/// loaders -loaders: ?LoaderMap = null, - -/// main_fields -main_fields: []const []const u8, - -/// platform -platform: ?Platform = null, - -/// serve -serve: ?bool = null, - -/// extension_order -extension_order: []const []const u8, - -/// generate_node_module_bundle -generate_node_module_bundle: ?bool = null, - -/// node_modules_bundle_path -node_modules_bundle_path: ?[]const u8 = null, - -/// node_modules_bundle_path_server -node_modules_bundle_path_server: ?[]const u8 = null, - -/// framework -framework: ?FrameworkConfig = null, - -/// router -router: ?RouteConfig = null, - - -pub fn decode(reader: anytype) anyerror!TransformOptions { - var this = std.mem.zeroes(TransformOptions); - - while(true) { - switch (try reader.readByte()) { - 0 => { return this; }, - - 1 => { - this.jsx = try reader.readValue(Jsx); -}, - 2 => { - this.tsconfig_override = try reader.readValue([]const u8); -}, - 3 => { - this.resolve = try reader.readValue(ResolveMode); -}, - 4 => { - this.origin = try reader.readValue([]const u8); -}, - 5 => { - this.absolute_working_dir = try reader.readValue([]const u8); -}, - 6 => { - this.define = try reader.readValue(StringMap); -}, - 7 => { - this.preserve_symlinks = try reader.readValue(bool); -}, - 8 => { - this.entry_points = try reader.readArray([]const u8); -}, - 9 => { - this.write = try reader.readValue(bool); -}, - 10 => { - this.inject = try reader.readArray([]const u8); -}, - 11 => { - this.output_dir = try reader.readValue([]const u8); -}, - 12 => { - this.external = try reader.readArray([]const u8); -}, - 13 => { - this.loaders = try reader.readValue(LoaderMap); -}, - 14 => { - this.main_fields = try reader.readArray([]const u8); -}, - 15 => { - this.platform = try reader.readValue(Platform); -}, - 16 => { - this.serve = try reader.readValue(bool); -}, - 17 => { - this.extension_order = try reader.readArray([]const u8); -}, - 18 => { - this.generate_node_module_bundle = try reader.readValue(bool); -}, - 19 => { - this.node_modules_bundle_path = try reader.readValue([]const u8); -}, - 20 => { - this.node_modules_bundle_path_server = try reader.readValue([]const u8); -}, - 21 => { - this.framework = try reader.readValue(FrameworkConfig); -}, - 22 => { - this.router = try reader.readValue(RouteConfig); -}, - else => { - return error.InvalidMessage; - }, - } - } -unreachable; -} + this.entry_point = try reader.readValue([]const u8); + this.package = try reader.readValue([]const u8); + this.development = try reader.readValue(bool); + this.client = try reader.readValue(bool); + this.env = try reader.readValue(LoadedEnvConfig); + this.client_css_in_js = try reader.readValue(CssInJsBehavior); + return this; + } -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { -if (this.jsx) |jsx| { - try writer.writeFieldID(1); - try writer.writeValue(jsx); -} -if (this.tsconfig_override) |tsconfig_override| { - try writer.writeFieldID(2); - try writer.writeValue(tsconfig_override); -} -if (this.resolve) |resolve| { - try writer.writeFieldID(3); - try writer.writeEnum(resolve); -} -if (this.origin) |origin| { - try writer.writeFieldID(4); - try writer.writeValue(origin); -} -if (this.absolute_working_dir) |absolute_working_dir| { - try writer.writeFieldID(5); - try writer.writeValue(absolute_working_dir); -} -if (this.define) |define| { - try writer.writeFieldID(6); - try writer.writeValue(define); -} -if (this.preserve_symlinks) |preserve_symlinks| { - try writer.writeFieldID(7); - try writer.writeInt(@intCast(u8, @boolToInt(preserve_symlinks))); -} -if (this.entry_points) |entry_points| { - try writer.writeFieldID(8); - try writer.writeArray([]const u8, entry_points); -} -if (this.write) |write| { - try writer.writeFieldID(9); - try writer.writeInt(@intCast(u8, @boolToInt(write))); -} -if (this.inject) |inject| { - try writer.writeFieldID(10); - try writer.writeArray([]const u8, inject); -} -if (this.output_dir) |output_dir| { - try writer.writeFieldID(11); - try writer.writeValue(output_dir); -} -if (this.external) |external| { - try writer.writeFieldID(12); - try writer.writeArray([]const u8, external); -} -if (this.loaders) |loaders| { - try writer.writeFieldID(13); - try writer.writeValue(loaders); -} -if (this.main_fields) |main_fields| { - try writer.writeFieldID(14); - try writer.writeArray([]const u8, main_fields); -} -if (this.platform) |platform| { - try writer.writeFieldID(15); - try writer.writeEnum(platform); -} -if (this.serve) |serve| { - try writer.writeFieldID(16); - try writer.writeInt(@intCast(u8, @boolToInt(serve))); -} -if (this.extension_order) |extension_order| { - try writer.writeFieldID(17); - try writer.writeArray([]const u8, extension_order); -} -if (this.generate_node_module_bundle) |generate_node_module_bundle| { - try writer.writeFieldID(18); - try writer.writeInt(@intCast(u8, @boolToInt(generate_node_module_bundle))); -} -if (this.node_modules_bundle_path) |node_modules_bundle_path| { - try writer.writeFieldID(19); - try writer.writeValue(node_modules_bundle_path); -} -if (this.node_modules_bundle_path_server) |node_modules_bundle_path_server| { - try writer.writeFieldID(20); - try writer.writeValue(node_modules_bundle_path_server); -} -if (this.framework) |framework| { - try writer.writeFieldID(21); - try writer.writeValue(framework); -} -if (this.router) |router| { - try writer.writeFieldID(22); - try writer.writeValue(router); -} -try writer.endMessage(); -} + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeValue(this.entry_point); + try writer.writeValue(this.package); + try writer.writeInt(@intCast(u8, @boolToInt(this.development))); + try writer.writeInt(@intCast(u8, @boolToInt(this.client))); + try writer.writeValue(this.env); + try writer.writeEnum(this.client_css_in_js); + } + }; -}; + pub const LoadedRouteConfig = struct { + /// dir + dir: []const u8, -pub const FileHandle = struct { -/// path -path: []const u8, + /// extensions + extensions: []const []const u8, -/// size -size: u32 = 0, + /// static_dir + static_dir: []const u8, -/// fd -fd: u32 = 0, + /// asset_prefix + asset_prefix: []const u8, + pub fn decode(reader: anytype) anyerror!LoadedRouteConfig { + var this = std.mem.zeroes(LoadedRouteConfig); -pub fn decode(reader: anytype) anyerror!FileHandle { - var this = std.mem.zeroes(FileHandle); + this.dir = try reader.readValue([]const u8); + this.extensions = try reader.readArray([]const u8); + this.static_dir = try reader.readValue([]const u8); + this.asset_prefix = try reader.readValue([]const u8); + return this; + } - this.path = try reader.readValue([]const u8); - this.size = try reader.readValue(u32); - this.fd = try reader.readValue(u32); - return this; -} + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeValue(this.dir); + try writer.writeArray([]const u8, this.extensions); + try writer.writeValue(this.static_dir); + try writer.writeValue(this.asset_prefix); + } + }; -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeValue(this.path); - try writer.writeInt(this.size); - try writer.writeInt(this.fd); -} + pub const RouteConfig = struct { + /// dir + dir: []const []const u8, -}; + /// extensions + extensions: []const []const u8, -pub const Transform = struct { -/// handle -handle: ?FileHandle = null, - -/// path -path: ?[]const u8 = null, - -/// contents -contents: []const u8, - -/// loader -loader: ?Loader = null, - -/// options -options: ?TransformOptions = null, - - -pub fn decode(reader: anytype) anyerror!Transform { - var this = std.mem.zeroes(Transform); - - while(true) { - switch (try reader.readByte()) { - 0 => { return this; }, - - 1 => { - this.handle = try reader.readValue(FileHandle); -}, - 2 => { - this.path = try reader.readValue([]const u8); -}, - 3 => { - this.contents = try reader.readArray(u8); -}, - 4 => { - this.loader = try reader.readValue(Loader); -}, - 5 => { - this.options = try reader.readValue(TransformOptions); -}, - else => { - return error.InvalidMessage; - }, - } - } -unreachable; -} + /// static_dir + static_dir: ?[]const u8 = null, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { -if (this.handle) |handle| { - try writer.writeFieldID(1); - try writer.writeValue(handle); -} -if (this.path) |path| { - try writer.writeFieldID(2); - try writer.writeValue(path); -} -if (this.contents) |contents| { - try writer.writeFieldID(3); - try writer.writeArray(u8, contents); -} -if (this.loader) |loader| { - try writer.writeFieldID(4); - try writer.writeEnum(loader); -} -if (this.options) |options| { - try writer.writeFieldID(5); - try writer.writeValue(options); -} -try writer.endMessage(); -} + /// asset_prefix + asset_prefix: ?[]const u8 = null, -}; + pub fn decode(reader: anytype) anyerror!RouteConfig { + var this = std.mem.zeroes(RouteConfig); -pub const TransformResponseStatus = enum(u32) { + while (true) { + switch (try reader.readByte()) { + 0 => { + return this; + }, -_none, - /// success - success, + 1 => { + this.dir = try reader.readArray([]const u8); + }, + 2 => { + this.extensions = try reader.readArray([]const u8); + }, + 3 => { + this.static_dir = try reader.readValue([]const u8); + }, + 4 => { + this.asset_prefix = try reader.readValue([]const u8); + }, + else => { + return error.InvalidMessage; + }, + } + } + unreachable; + } - /// fail - fail, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + if (this.dir) |dir| { + try writer.writeFieldID(1); + try writer.writeArray([]const u8, dir); + } + if (this.extensions) |extensions| { + try writer.writeFieldID(2); + try writer.writeArray([]const u8, extensions); + } + if (this.static_dir) |static_dir| { + try writer.writeFieldID(3); + try writer.writeValue(static_dir); + } + if (this.asset_prefix) |asset_prefix| { + try writer.writeFieldID(4); + try writer.writeValue(asset_prefix); + } + try writer.endMessage(); + } + }; -_, + pub const TransformOptions = struct { + /// jsx + jsx: ?Jsx = null, - pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { - return try std.json.stringify(@tagName(self), opts, o); - } + /// tsconfig_override + tsconfig_override: ?[]const u8 = null, - -}; + /// resolve + resolve: ?ResolveMode = null, -pub const OutputFile = struct { -/// data -data: []const u8, + /// origin + origin: ?[]const u8 = null, -/// path -path: []const u8, + /// absolute_working_dir + absolute_working_dir: ?[]const u8 = null, + /// define + define: ?StringMap = null, -pub fn decode(reader: anytype) anyerror!OutputFile { - var this = std.mem.zeroes(OutputFile); + /// preserve_symlinks + preserve_symlinks: ?bool = null, - this.data = try reader.readArray(u8); - this.path = try reader.readValue([]const u8); - return this; -} + /// entry_points + entry_points: []const []const u8, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeArray(u8, this.data); - try writer.writeValue(this.path); -} + /// write + write: ?bool = null, -}; + /// inject + inject: []const []const u8, -pub const TransformResponse = struct { -/// status -status: TransformResponseStatus, + /// output_dir + output_dir: ?[]const u8 = null, -/// files -files: []const OutputFile, + /// external + external: []const []const u8, -/// errors -errors: []const Message, + /// loaders + loaders: ?LoaderMap = null, + /// main_fields + main_fields: []const []const u8, -pub fn decode(reader: anytype) anyerror!TransformResponse { - var this = std.mem.zeroes(TransformResponse); + /// platform + platform: ?Platform = null, - this.status = try reader.readValue(TransformResponseStatus); - this.files = try reader.readArray(OutputFile); - this.errors = try reader.readArray(Message); - return this; -} + /// serve + serve: ?bool = null, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeEnum(this.status); - try writer.writeArray(OutputFile, this.files); - try writer.writeArray(Message, this.errors); -} + /// extension_order + extension_order: []const []const u8, -}; + /// generate_node_module_bundle + generate_node_module_bundle: ?bool = null, -pub const MessageKind = enum(u32) { + /// node_modules_bundle_path + node_modules_bundle_path: ?[]const u8 = null, -_none, - /// err - err, + /// node_modules_bundle_path_server + node_modules_bundle_path_server: ?[]const u8 = null, - /// warn - warn, + /// framework + framework: ?FrameworkConfig = null, - /// note - note, + /// router + router: ?RouteConfig = null, - /// debug - debug, + pub fn decode(reader: anytype) anyerror!TransformOptions { + var this = std.mem.zeroes(TransformOptions); -_, + while (true) { + switch (try reader.readByte()) { + 0 => { + return this; + }, - pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { - return try std.json.stringify(@tagName(self), opts, o); + 1 => { + this.jsx = try reader.readValue(Jsx); + }, + 2 => { + this.tsconfig_override = try reader.readValue([]const u8); + }, + 3 => { + this.resolve = try reader.readValue(ResolveMode); + }, + 4 => { + this.origin = try reader.readValue([]const u8); + }, + 5 => { + this.absolute_working_dir = try reader.readValue([]const u8); + }, + 6 => { + this.define = try reader.readValue(StringMap); + }, + 7 => { + this.preserve_symlinks = try reader.readValue(bool); + }, + 8 => { + this.entry_points = try reader.readArray([]const u8); + }, + 9 => { + this.write = try reader.readValue(bool); + }, + 10 => { + this.inject = try reader.readArray([]const u8); + }, + 11 => { + this.output_dir = try reader.readValue([]const u8); + }, + 12 => { + this.external = try reader.readArray([]const u8); + }, + 13 => { + this.loaders = try reader.readValue(LoaderMap); + }, + 14 => { + this.main_fields = try reader.readArray([]const u8); + }, + 15 => { + this.platform = try reader.readValue(Platform); + }, + 16 => { + this.serve = try reader.readValue(bool); + }, + 17 => { + this.extension_order = try reader.readArray([]const u8); + }, + 18 => { + this.generate_node_module_bundle = try reader.readValue(bool); + }, + 19 => { + this.node_modules_bundle_path = try reader.readValue([]const u8); + }, + 20 => { + this.node_modules_bundle_path_server = try reader.readValue([]const u8); + }, + 21 => { + this.framework = try reader.readValue(FrameworkConfig); + }, + 22 => { + this.router = try reader.readValue(RouteConfig); + }, + else => { + return error.InvalidMessage; + }, } + } + unreachable; + } - -}; - -pub const Location = struct { -/// file -file: []const u8, - -/// namespace -namespace: []const u8, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + if (this.jsx) |jsx| { + try writer.writeFieldID(1); + try writer.writeValue(jsx); + } + if (this.tsconfig_override) |tsconfig_override| { + try writer.writeFieldID(2); + try writer.writeValue(tsconfig_override); + } + if (this.resolve) |resolve| { + try writer.writeFieldID(3); + try writer.writeEnum(resolve); + } + if (this.origin) |origin| { + try writer.writeFieldID(4); + try writer.writeValue(origin); + } + if (this.absolute_working_dir) |absolute_working_dir| { + try writer.writeFieldID(5); + try writer.writeValue(absolute_working_dir); + } + if (this.define) |define| { + try writer.writeFieldID(6); + try writer.writeValue(define); + } + if (this.preserve_symlinks) |preserve_symlinks| { + try writer.writeFieldID(7); + try writer.writeInt(@intCast(u8, @boolToInt(preserve_symlinks))); + } + if (this.entry_points) |entry_points| { + try writer.writeFieldID(8); + try writer.writeArray([]const u8, entry_points); + } + if (this.write) |write| { + try writer.writeFieldID(9); + try writer.writeInt(@intCast(u8, @boolToInt(write))); + } + if (this.inject) |inject| { + try writer.writeFieldID(10); + try writer.writeArray([]const u8, inject); + } + if (this.output_dir) |output_dir| { + try writer.writeFieldID(11); + try writer.writeValue(output_dir); + } + if (this.external) |external| { + try writer.writeFieldID(12); + try writer.writeArray([]const u8, external); + } + if (this.loaders) |loaders| { + try writer.writeFieldID(13); + try writer.writeValue(loaders); + } + if (this.main_fields) |main_fields| { + try writer.writeFieldID(14); + try writer.writeArray([]const u8, main_fields); + } + if (this.platform) |platform| { + try writer.writeFieldID(15); + try writer.writeEnum(platform); + } + if (this.serve) |serve| { + try writer.writeFieldID(16); + try writer.writeInt(@intCast(u8, @boolToInt(serve))); + } + if (this.extension_order) |extension_order| { + try writer.writeFieldID(17); + try writer.writeArray([]const u8, extension_order); + } + if (this.generate_node_module_bundle) |generate_node_module_bundle| { + try writer.writeFieldID(18); + try writer.writeInt(@intCast(u8, @boolToInt(generate_node_module_bundle))); + } + if (this.node_modules_bundle_path) |node_modules_bundle_path| { + try writer.writeFieldID(19); + try writer.writeValue(node_modules_bundle_path); + } + if (this.node_modules_bundle_path_server) |node_modules_bundle_path_server| { + try writer.writeFieldID(20); + try writer.writeValue(node_modules_bundle_path_server); + } + if (this.framework) |framework| { + try writer.writeFieldID(21); + try writer.writeValue(framework); + } + if (this.router) |router| { + try writer.writeFieldID(22); + try writer.writeValue(router); + } + try writer.endMessage(); + } + }; -/// line -line: i32 = 0, + pub const FileHandle = struct { + /// path + path: []const u8, -/// column -column: i32 = 0, + /// size + size: u32 = 0, -/// line_text -line_text: []const u8, + /// fd + fd: u32 = 0, -/// suggestion -suggestion: []const u8, + pub fn decode(reader: anytype) anyerror!FileHandle { + var this = std.mem.zeroes(FileHandle); -/// offset -offset: u32 = 0, + this.path = try reader.readValue([]const u8); + this.size = try reader.readValue(u32); + this.fd = try reader.readValue(u32); + return this; + } + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeValue(this.path); + try writer.writeInt(this.size); + try writer.writeInt(this.fd); + } + }; -pub fn decode(reader: anytype) anyerror!Location { - var this = std.mem.zeroes(Location); + pub const Transform = struct { + /// handle + handle: ?FileHandle = null, - this.file = try reader.readValue([]const u8); - this.namespace = try reader.readValue([]const u8); - this.line = try reader.readValue(i32); - this.column = try reader.readValue(i32); - this.line_text = try reader.readValue([]const u8); - this.suggestion = try reader.readValue([]const u8); - this.offset = try reader.readValue(u32); - return this; -} + /// path + path: ?[]const u8 = null, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeValue(this.file); - try writer.writeValue(this.namespace); - try writer.writeInt(this.line); - try writer.writeInt(this.column); - try writer.writeValue(this.line_text); - try writer.writeValue(this.suggestion); - try writer.writeInt(this.offset); -} + /// contents + contents: []const u8, -}; + /// loader + loader: ?Loader = null, -pub const MessageData = struct { -/// text -text: ?[]const u8 = null, - -/// location -location: ?Location = null, - - -pub fn decode(reader: anytype) anyerror!MessageData { - var this = std.mem.zeroes(MessageData); - - while(true) { - switch (try reader.readByte()) { - 0 => { return this; }, - - 1 => { - this.text = try reader.readValue([]const u8); -}, - 2 => { - this.location = try reader.readValue(Location); -}, - else => { - return error.InvalidMessage; - }, - } - } -unreachable; -} + /// options + options: ?TransformOptions = null, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { -if (this.text) |text| { - try writer.writeFieldID(1); - try writer.writeValue(text); -} -if (this.location) |location| { - try writer.writeFieldID(2); - try writer.writeValue(location); -} -try writer.endMessage(); -} + pub fn decode(reader: anytype) anyerror!Transform { + var this = std.mem.zeroes(Transform); -}; + while (true) { + switch (try reader.readByte()) { + 0 => { + return this; + }, -pub const Message = struct { -/// kind -kind: MessageKind, + 1 => { + this.handle = try reader.readValue(FileHandle); + }, + 2 => { + this.path = try reader.readValue([]const u8); + }, + 3 => { + this.contents = try reader.readArray(u8); + }, + 4 => { + this.loader = try reader.readValue(Loader); + }, + 5 => { + this.options = try reader.readValue(TransformOptions); + }, + else => { + return error.InvalidMessage; + }, + } + } + unreachable; + } -/// data -data: MessageData, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + if (this.handle) |handle| { + try writer.writeFieldID(1); + try writer.writeValue(handle); + } + if (this.path) |path| { + try writer.writeFieldID(2); + try writer.writeValue(path); + } + if (this.contents) |contents| { + try writer.writeFieldID(3); + try writer.writeArray(u8, contents); + } + if (this.loader) |loader| { + try writer.writeFieldID(4); + try writer.writeEnum(loader); + } + if (this.options) |options| { + try writer.writeFieldID(5); + try writer.writeValue(options); + } + try writer.endMessage(); + } + }; -/// notes -notes: []const MessageData, + pub const TransformResponseStatus = enum(u32) { + _none, + /// success + success, + /// fail + fail, -pub fn decode(reader: anytype) anyerror!Message { - var this = std.mem.zeroes(Message); + _, - this.kind = try reader.readValue(MessageKind); - this.data = try reader.readValue(MessageData); - this.notes = try reader.readArray(MessageData); - return this; -} + pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { + return try std.json.stringify(@tagName(self), opts, o); + } + }; -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeEnum(this.kind); - try writer.writeValue(this.data); - try writer.writeArray(MessageData, this.notes); -} + pub const OutputFile = struct { + /// data + data: []const u8, -}; + /// path + path: []const u8, -pub const Log = struct { -/// warnings -warnings: u32 = 0, + pub fn decode(reader: anytype) anyerror!OutputFile { + var this = std.mem.zeroes(OutputFile); -/// errors -errors: u32 = 0, + this.data = try reader.readArray(u8); + this.path = try reader.readValue([]const u8); + return this; + } -/// msgs -msgs: []const Message, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeArray(u8, this.data); + try writer.writeValue(this.path); + } + }; + pub const TransformResponse = struct { + /// status + status: TransformResponseStatus, -pub fn decode(reader: anytype) anyerror!Log { - var this = std.mem.zeroes(Log); + /// files + files: []const OutputFile, - this.warnings = try reader.readValue(u32); - this.errors = try reader.readValue(u32); - this.msgs = try reader.readArray(Message); - return this; -} + /// errors + errors: []const Message, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeInt(this.warnings); - try writer.writeInt(this.errors); - try writer.writeArray(Message, this.msgs); -} + pub fn decode(reader: anytype) anyerror!TransformResponse { + var this = std.mem.zeroes(TransformResponse); -}; + this.status = try reader.readValue(TransformResponseStatus); + this.files = try reader.readArray(OutputFile); + this.errors = try reader.readArray(Message); + return this; + } -pub const Reloader = enum(u8) { + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeEnum(this.status); + try writer.writeArray(OutputFile, this.files); + try writer.writeArray(Message, this.errors); + } + }; -_none, - /// disable - disable, + pub const MessageKind = enum(u32) { + _none, + /// err + err, - /// live - live, + /// warn + warn, - /// fast_refresh - fast_refresh, + /// note + note, -_, + /// debug + debug, - pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { - return try std.json.stringify(@tagName(self), opts, o); - } + _, - -}; + pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { + return try std.json.stringify(@tagName(self), opts, o); + } + }; -pub const WebsocketMessageKind = enum(u8) { + pub const Location = struct { + /// file + file: []const u8, -_none, - /// welcome - welcome, + /// namespace + namespace: []const u8, - /// file_change_notification - file_change_notification, + /// line + line: i32 = 0, - /// build_success - build_success, + /// column + column: i32 = 0, - /// build_fail - build_fail, + /// line_text + line_text: []const u8, - /// manifest_success - manifest_success, + /// suggestion + suggestion: []const u8, - /// manifest_fail - manifest_fail, + /// offset + offset: u32 = 0, -_, + pub fn decode(reader: anytype) anyerror!Location { + var this = std.mem.zeroes(Location); - pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { - return try std.json.stringify(@tagName(self), opts, o); - } + this.file = try reader.readValue([]const u8); + this.namespace = try reader.readValue([]const u8); + this.line = try reader.readValue(i32); + this.column = try reader.readValue(i32); + this.line_text = try reader.readValue([]const u8); + this.suggestion = try reader.readValue([]const u8); + this.offset = try reader.readValue(u32); + return this; + } - -}; + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeValue(this.file); + try writer.writeValue(this.namespace); + try writer.writeInt(this.line); + try writer.writeInt(this.column); + try writer.writeValue(this.line_text); + try writer.writeValue(this.suggestion); + try writer.writeInt(this.offset); + } + }; -pub const WebsocketCommandKind = enum(u8) { + pub const MessageData = struct { + /// text + text: ?[]const u8 = null, -_none, - /// build - build, + /// location + location: ?Location = null, - /// manifest - manifest, + pub fn decode(reader: anytype) anyerror!MessageData { + var this = std.mem.zeroes(MessageData); -_, + while (true) { + switch (try reader.readByte()) { + 0 => { + return this; + }, - pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { - return try std.json.stringify(@tagName(self), opts, o); + 1 => { + this.text = try reader.readValue([]const u8); + }, + 2 => { + this.location = try reader.readValue(Location); + }, + else => { + return error.InvalidMessage; + }, } + } + unreachable; + } - -}; + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + if (this.text) |text| { + try writer.writeFieldID(1); + try writer.writeValue(text); + } + if (this.location) |location| { + try writer.writeFieldID(2); + try writer.writeValue(location); + } + try writer.endMessage(); + } + }; -pub const WebsocketMessage = struct { -/// timestamp -timestamp: u32 = 0, + pub const Message = struct { + /// kind + kind: MessageKind, -/// kind -kind: WebsocketMessageKind, + /// data + data: MessageData, + /// notes + notes: []const MessageData, -pub fn decode(reader: anytype) anyerror!WebsocketMessage { - var this = std.mem.zeroes(WebsocketMessage); + pub fn decode(reader: anytype) anyerror!Message { + var this = std.mem.zeroes(Message); - this.timestamp = try reader.readValue(u32); - this.kind = try reader.readValue(WebsocketMessageKind); - return this; -} - -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeInt(this.timestamp); - try writer.writeEnum(this.kind); -} + this.kind = try reader.readValue(MessageKind); + this.data = try reader.readValue(MessageData); + this.notes = try reader.readArray(MessageData); + return this; + } -}; + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeEnum(this.kind); + try writer.writeValue(this.data); + try writer.writeArray(MessageData, this.notes); + } + }; -pub const WebsocketMessageWelcome = struct { -/// epoch -epoch: u32 = 0, + pub const Log = struct { + /// warnings + warnings: u32 = 0, -/// javascriptReloader -javascript_reloader: Reloader, + /// errors + errors: u32 = 0, + /// msgs + msgs: []const Message, -pub fn decode(reader: anytype) anyerror!WebsocketMessageWelcome { - var this = std.mem.zeroes(WebsocketMessageWelcome); + pub fn decode(reader: anytype) anyerror!Log { + var this = std.mem.zeroes(Log); - this.epoch = try reader.readValue(u32); - this.javascript_reloader = try reader.readValue(Reloader); - return this; -} + this.warnings = try reader.readValue(u32); + this.errors = try reader.readValue(u32); + this.msgs = try reader.readArray(Message); + return this; + } -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeInt(this.epoch); - try writer.writeEnum(this.javascript_reloader); -} + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeInt(this.warnings); + try writer.writeInt(this.errors); + try writer.writeArray(Message, this.msgs); + } + }; -}; + pub const Reloader = enum(u8) { + _none, + /// disable + disable, -pub const WebsocketMessageFileChangeNotification = struct { -/// id -id: u32 = 0, + /// live + live, -/// loader -loader: Loader, + /// fast_refresh + fast_refresh, + _, -pub fn decode(reader: anytype) anyerror!WebsocketMessageFileChangeNotification { - var this = std.mem.zeroes(WebsocketMessageFileChangeNotification); + pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { + return try std.json.stringify(@tagName(self), opts, o); + } + }; - this.id = try reader.readValue(u32); - this.loader = try reader.readValue(Loader); - return this; -} + pub const WebsocketMessageKind = enum(u8) { + _none, + /// welcome + welcome, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeInt(this.id); - try writer.writeEnum(this.loader); -} + /// file_change_notification + file_change_notification, -}; + /// build_success + build_success, -pub const WebsocketCommand = struct { -/// kind -kind: WebsocketCommandKind, + /// build_fail + build_fail, -/// timestamp -timestamp: u32 = 0, + /// manifest_success + manifest_success, + /// manifest_fail + manifest_fail, -pub fn decode(reader: anytype) anyerror!WebsocketCommand { - var this = std.mem.zeroes(WebsocketCommand); + _, - this.kind = try reader.readValue(WebsocketCommandKind); - this.timestamp = try reader.readValue(u32); - return this; -} + pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { + return try std.json.stringify(@tagName(self), opts, o); + } + }; -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeEnum(this.kind); - try writer.writeInt(this.timestamp); -} + pub const WebsocketCommandKind = enum(u8) { + _none, + /// build + build, -}; + /// manifest + manifest, -pub const WebsocketCommandBuild = packed struct { -/// id -id: u32 = 0, + _, + pub fn jsonStringify(self: *const @This(), opts: anytype, o: anytype) !void { + return try std.json.stringify(@tagName(self), opts, o); + } + }; -pub fn decode(reader: anytype) anyerror!WebsocketCommandBuild { - var this = std.mem.zeroes(WebsocketCommandBuild); + pub const WebsocketMessage = struct { + /// timestamp + timestamp: u32 = 0, - this.id = try reader.readValue(u32); - return this; -} + /// kind + kind: WebsocketMessageKind, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeInt(this.id); -} + pub fn decode(reader: anytype) anyerror!WebsocketMessage { + var this = std.mem.zeroes(WebsocketMessage); -}; + this.timestamp = try reader.readValue(u32); + this.kind = try reader.readValue(WebsocketMessageKind); + return this; + } -pub const WebsocketCommandManifest = packed struct { -/// id -id: u32 = 0, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeInt(this.timestamp); + try writer.writeEnum(this.kind); + } + }; + pub const WebsocketMessageWelcome = struct { + /// epoch + epoch: u32 = 0, -pub fn decode(reader: anytype) anyerror!WebsocketCommandManifest { - var this = std.mem.zeroes(WebsocketCommandManifest); + /// javascriptReloader + javascript_reloader: Reloader, - this.id = try reader.readValue(u32); - return this; -} + pub fn decode(reader: anytype) anyerror!WebsocketMessageWelcome { + var this = std.mem.zeroes(WebsocketMessageWelcome); -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeInt(this.id); -} + this.epoch = try reader.readValue(u32); + this.javascript_reloader = try reader.readValue(Reloader); + return this; + } -}; + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeInt(this.epoch); + try writer.writeEnum(this.javascript_reloader); + } + }; -pub const WebsocketMessageBuildSuccess = struct { -/// id -id: u32 = 0, + pub const WebsocketMessageFileChangeNotification = struct { + /// id + id: u32 = 0, -/// from_timestamp -from_timestamp: u32 = 0, + /// loader + loader: Loader, -/// loader -loader: Loader, + pub fn decode(reader: anytype) anyerror!WebsocketMessageFileChangeNotification { + var this = std.mem.zeroes(WebsocketMessageFileChangeNotification); -/// module_path -module_path: []const u8, + this.id = try reader.readValue(u32); + this.loader = try reader.readValue(Loader); + return this; + } -/// blob_length -blob_length: u32 = 0, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeInt(this.id); + try writer.writeEnum(this.loader); + } + }; + pub const WebsocketCommand = struct { + /// kind + kind: WebsocketCommandKind, -pub fn decode(reader: anytype) anyerror!WebsocketMessageBuildSuccess { - var this = std.mem.zeroes(WebsocketMessageBuildSuccess); + /// timestamp + timestamp: u32 = 0, - this.id = try reader.readValue(u32); - this.from_timestamp = try reader.readValue(u32); - this.loader = try reader.readValue(Loader); - this.module_path = try reader.readValue([]const u8); - this.blob_length = try reader.readValue(u32); - return this; -} + pub fn decode(reader: anytype) anyerror!WebsocketCommand { + var this = std.mem.zeroes(WebsocketCommand); -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeInt(this.id); - try writer.writeInt(this.from_timestamp); - try writer.writeEnum(this.loader); - try writer.writeValue(this.module_path); - try writer.writeInt(this.blob_length); -} + this.kind = try reader.readValue(WebsocketCommandKind); + this.timestamp = try reader.readValue(u32); + return this; + } -}; + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeEnum(this.kind); + try writer.writeInt(this.timestamp); + } + }; -pub const WebsocketMessageBuildFailure = struct { -/// id -id: u32 = 0, + pub const WebsocketCommandBuild = packed struct { + /// id + id: u32 = 0, -/// from_timestamp -from_timestamp: u32 = 0, + pub fn decode(reader: anytype) anyerror!WebsocketCommandBuild { + var this = std.mem.zeroes(WebsocketCommandBuild); -/// loader -loader: Loader, + this.id = try reader.readValue(u32); + return this; + } -/// module_path -module_path: []const u8, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeInt(this.id); + } + }; -/// log -log: Log, + pub const WebsocketCommandManifest = packed struct { + /// id + id: u32 = 0, + pub fn decode(reader: anytype) anyerror!WebsocketCommandManifest { + var this = std.mem.zeroes(WebsocketCommandManifest); -pub fn decode(reader: anytype) anyerror!WebsocketMessageBuildFailure { - var this = std.mem.zeroes(WebsocketMessageBuildFailure); + this.id = try reader.readValue(u32); + return this; + } - this.id = try reader.readValue(u32); - this.from_timestamp = try reader.readValue(u32); - this.loader = try reader.readValue(Loader); - this.module_path = try reader.readValue([]const u8); - this.log = try reader.readValue(Log); - return this; -} + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeInt(this.id); + } + }; -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeInt(this.id); - try writer.writeInt(this.from_timestamp); - try writer.writeEnum(this.loader); - try writer.writeValue(this.module_path); - try writer.writeValue(this.log); -} + pub const WebsocketMessageBuildSuccess = struct { + /// id + id: u32 = 0, -}; + /// from_timestamp + from_timestamp: u32 = 0, -pub const DependencyManifest = struct { -/// ids -ids: []const u32, + /// loader + loader: Loader, + /// module_path + module_path: []const u8, -pub fn decode(reader: anytype) anyerror!DependencyManifest { - var this = std.mem.zeroes(DependencyManifest); + /// blob_length + blob_length: u32 = 0, - this.ids = try reader.readArray(u32); - return this; -} + pub fn decode(reader: anytype) anyerror!WebsocketMessageBuildSuccess { + var this = std.mem.zeroes(WebsocketMessageBuildSuccess); -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeArray(u32, this.ids); -} + this.id = try reader.readValue(u32); + this.from_timestamp = try reader.readValue(u32); + this.loader = try reader.readValue(Loader); + this.module_path = try reader.readValue([]const u8); + this.blob_length = try reader.readValue(u32); + return this; + } -}; + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeInt(this.id); + try writer.writeInt(this.from_timestamp); + try writer.writeEnum(this.loader); + try writer.writeValue(this.module_path); + try writer.writeInt(this.blob_length); + } + }; -pub const FileList = struct { -/// ptrs -ptrs: []const StringPointer, + pub const WebsocketMessageBuildFailure = struct { + /// id + id: u32 = 0, -/// files -files: []const u8, + /// from_timestamp + from_timestamp: u32 = 0, + /// loader + loader: Loader, -pub fn decode(reader: anytype) anyerror!FileList { - var this = std.mem.zeroes(FileList); + /// module_path + module_path: []const u8, - this.ptrs = try reader.readArray(StringPointer); - this.files = try reader.readValue([]const u8); - return this; -} + /// log + log: Log, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeArray(StringPointer, this.ptrs); - try writer.writeValue(this.files); -} + pub fn decode(reader: anytype) anyerror!WebsocketMessageBuildFailure { + var this = std.mem.zeroes(WebsocketMessageBuildFailure); -}; + this.id = try reader.readValue(u32); + this.from_timestamp = try reader.readValue(u32); + this.loader = try reader.readValue(Loader); + this.module_path = try reader.readValue([]const u8); + this.log = try reader.readValue(Log); + return this; + } -pub const WebsocketMessageResolveIDs = struct { -/// id -id: []const u32, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeInt(this.id); + try writer.writeInt(this.from_timestamp); + try writer.writeEnum(this.loader); + try writer.writeValue(this.module_path); + try writer.writeValue(this.log); + } + }; -/// list -list: FileList, + pub const DependencyManifest = struct { + /// ids + ids: []const u32, + pub fn decode(reader: anytype) anyerror!DependencyManifest { + var this = std.mem.zeroes(DependencyManifest); -pub fn decode(reader: anytype) anyerror!WebsocketMessageResolveIDs { - var this = std.mem.zeroes(WebsocketMessageResolveIDs); + this.ids = try reader.readArray(u32); + return this; + } - this.id = try reader.readArray(u32); - this.list = try reader.readValue(FileList); - return this; -} + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeArray(u32, this.ids); + } + }; -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeArray(u32, this.id); - try writer.writeValue(this.list); -} + pub const FileList = struct { + /// ptrs + ptrs: []const StringPointer, -}; + /// files + files: []const u8, -pub const WebsocketCommandResolveIDs = struct { -/// ptrs -ptrs: []const StringPointer, + pub fn decode(reader: anytype) anyerror!FileList { + var this = std.mem.zeroes(FileList); -/// files -files: []const u8, + this.ptrs = try reader.readArray(StringPointer); + this.files = try reader.readValue([]const u8); + return this; + } + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeArray(StringPointer, this.ptrs); + try writer.writeValue(this.files); + } + }; -pub fn decode(reader: anytype) anyerror!WebsocketCommandResolveIDs { - var this = std.mem.zeroes(WebsocketCommandResolveIDs); + pub const WebsocketMessageResolveIDs = struct { + /// id + id: []const u32, - this.ptrs = try reader.readArray(StringPointer); - this.files = try reader.readValue([]const u8); - return this; -} + /// list + list: FileList, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeArray(StringPointer, this.ptrs); - try writer.writeValue(this.files); -} + pub fn decode(reader: anytype) anyerror!WebsocketMessageResolveIDs { + var this = std.mem.zeroes(WebsocketMessageResolveIDs); -}; + this.id = try reader.readArray(u32); + this.list = try reader.readValue(FileList); + return this; + } -pub const WebsocketMessageManifestSuccess = struct { -/// id -id: u32 = 0, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeArray(u32, this.id); + try writer.writeValue(this.list); + } + }; -/// module_path -module_path: []const u8, + pub const WebsocketCommandResolveIDs = struct { + /// ptrs + ptrs: []const StringPointer, -/// loader -loader: Loader, + /// files + files: []const u8, -/// manifest -manifest: DependencyManifest, + pub fn decode(reader: anytype) anyerror!WebsocketCommandResolveIDs { + var this = std.mem.zeroes(WebsocketCommandResolveIDs); + this.ptrs = try reader.readArray(StringPointer); + this.files = try reader.readValue([]const u8); + return this; + } -pub fn decode(reader: anytype) anyerror!WebsocketMessageManifestSuccess { - var this = std.mem.zeroes(WebsocketMessageManifestSuccess); + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeArray(StringPointer, this.ptrs); + try writer.writeValue(this.files); + } + }; - this.id = try reader.readValue(u32); - this.module_path = try reader.readValue([]const u8); - this.loader = try reader.readValue(Loader); - this.manifest = try reader.readValue(DependencyManifest); - return this; -} + pub const WebsocketMessageManifestSuccess = struct { + /// id + id: u32 = 0, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeInt(this.id); - try writer.writeValue(this.module_path); - try writer.writeEnum(this.loader); - try writer.writeValue(this.manifest); -} + /// module_path + module_path: []const u8, -}; + /// loader + loader: Loader, -pub const WebsocketMessageManifestFailure = struct { -/// id -id: u32 = 0, + /// manifest + manifest: DependencyManifest, -/// from_timestamp -from_timestamp: u32 = 0, + pub fn decode(reader: anytype) anyerror!WebsocketMessageManifestSuccess { + var this = std.mem.zeroes(WebsocketMessageManifestSuccess); -/// loader -loader: Loader, + this.id = try reader.readValue(u32); + this.module_path = try reader.readValue([]const u8); + this.loader = try reader.readValue(Loader); + this.manifest = try reader.readValue(DependencyManifest); + return this; + } -/// log -log: Log, + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeInt(this.id); + try writer.writeValue(this.module_path); + try writer.writeEnum(this.loader); + try writer.writeValue(this.manifest); + } + }; + pub const WebsocketMessageManifestFailure = struct { + /// id + id: u32 = 0, -pub fn decode(reader: anytype) anyerror!WebsocketMessageManifestFailure { - var this = std.mem.zeroes(WebsocketMessageManifestFailure); + /// from_timestamp + from_timestamp: u32 = 0, - this.id = try reader.readValue(u32); - this.from_timestamp = try reader.readValue(u32); - this.loader = try reader.readValue(Loader); - this.log = try reader.readValue(Log); - return this; -} + /// loader + loader: Loader, -pub fn encode(this: *const @This(), writer: anytype) anyerror!void { - try writer.writeInt(this.id); - try writer.writeInt(this.from_timestamp); - try writer.writeEnum(this.loader); - try writer.writeValue(this.log); -} + /// log + log: Log, -}; + pub fn decode(reader: anytype) anyerror!WebsocketMessageManifestFailure { + var this = std.mem.zeroes(WebsocketMessageManifestFailure); + this.id = try reader.readValue(u32); + this.from_timestamp = try reader.readValue(u32); + this.loader = try reader.readValue(Loader); + this.log = try reader.readValue(Log); + return this; + } + pub fn encode(this: *const @This(), writer: anytype) anyerror!void { + try writer.writeInt(this.id); + try writer.writeInt(this.from_timestamp); + try writer.writeEnum(this.loader); + try writer.writeValue(this.log); + } + }; }; - const ExamplePackedStruct = packed struct { len: u32 = 0, offset: u32 = 0, diff --git a/src/bundler.zig b/src/bundler.zig index ac340a15b..410db7cc3 100644 --- a/src/bundler.zig +++ b/src/bundler.zig @@ -597,7 +597,7 @@ pub fn NewBundler(cache_files: bool) type { // 0x00000000\n // That uint32 denotes the byte offset in the file where the code for the bundle ends // - If the value is 0, that means the file did not finish writing or there are no modules - // - This imposes a maximum bundle size of around 4,294,967,295 bytes. If your JS is more than 4 GB, you probably should fix that... + // - This imposes a maximum bundle size of around 4,294,967,295 bytes. If your JS is more than 4 GB, you're a // The raw JavaScript is encoded as a UTF-8 string starting from the current position + 1 until the above byte offset. // This uint32 is useful for HTTP servers to separate: // - Which part of the bundle is the JS code? @@ -1734,6 +1734,7 @@ pub fn NewBundler(cache_files: bool) type { .externals = ast.externals, .runtime_imports = ast.runtime_imports, .require_ref = ast.require_ref, + .css_import_behavior = bundler.options.cssImportBehavior(), }, Linker, &bundler.linker, @@ -1750,6 +1751,8 @@ pub fn NewBundler(cache_files: bool) type { .externals = ast.externals, .runtime_imports = ast.runtime_imports, .require_ref = ast.require_ref, + + .css_import_behavior = bundler.options.cssImportBehavior(), }, Linker, &bundler.linker, @@ -1867,6 +1870,7 @@ pub fn NewBundler(cache_files: bool) type { defer bundler.resolver.log = original_resolver_logger; bundler.log = log; bundler.linker.allocator = allocator; + bundler.resolver.log = log; if (strings.eqlComptime(relative_path, "__runtime.js")) { diff --git a/src/feature_flags.zig b/src/feature_flags.zig index 5918f0f80..3fdc8cb29 100644 --- a/src/feature_flags.zig +++ b/src/feature_flags.zig @@ -17,7 +17,7 @@ pub const store_file_descriptors = !env.isWindows and !env.isBrowser; // This doesn't really seem to do anything for us pub const disable_filesystem_cache = false and std.Target.current.os.tag == .macos; -pub const css_in_js_import_behavior = CSSModulePolyfill.facade; +pub const css_in_js_import_behavior = CSSInJSImportBehavior.facade; pub const only_output_esm = true; @@ -47,10 +47,11 @@ pub const react_specific_warnings = true; // It only happens 1 out of every N times, probably like 50. pub const parallel_bun = false; -pub const CSSModulePolyfill = enum { +pub const CSSInJSImportBehavior = enum { // When you import a .css file and you reference the import in JavaScript // Just return whatever the property key they referenced was facade, + facade_onimportcss, }; // having issues compiling WebKit with this enabled diff --git a/src/http.zig b/src/http.zig index 83c2f8935..9869322c3 100644 --- a/src/http.zig +++ b/src/http.zig @@ -376,8 +376,8 @@ pub const RequestContext = struct { .request = req, .arena = arena, .bundler = bundler_, - .url = URLPath.parse(req.path), .log = undefined, + .url = URLPath.parse(req.path), .conn = conn, .allocator = undefined, .method = Method.which(req.method) orelse return error.InvalidMethod, @@ -927,7 +927,7 @@ pub const RequestContext = struct { clone.conn = ctx.conn.*; clone.message_buffer = try MutableString.init(server.allocator, 0); clone.ctx.conn = &clone.conn; - + clone.ctx.log = logger.Log.init(server.allocator); var printer_writer = try js_printer.BufferWriter.init(server.allocator); clone.builder = WatchBuilder{ @@ -1298,22 +1298,6 @@ pub const RequestContext = struct { _ = try std.Thread.spawn(.{}, WebsocketHandler.handle, .{handler}); } - pub fn auto500(ctx: *RequestContext) void { - if (ctx.has_called_done) { - return; - } - - defer ctx.done(); - - if (ctx.status == null) { - ctx.writeStatus(500) catch {}; - } - - if (!ctx.has_written_last_header) { - ctx.flushHeaders() catch {}; - } - } - threadlocal var client_entry_point: bundler.ClientEntryPoint = undefined; pub fn renderServeResult(ctx: *RequestContext, result: bundler.ServeResult) !void { @@ -1321,7 +1305,7 @@ pub const RequestContext = struct { ctx.appendHeader("Connection", "keep-alive"); } - if (std.meta.activeTag(result.file.value) == .noop) { + if (result.file.value == .noop) { return try ctx.sendNotFound(); } @@ -1616,9 +1600,6 @@ pub const RequestContext = struct { } pub fn handleGet(ctx: *RequestContext) !void { - - // errdefer ctx.auto500(); - const result = brk: { if (ctx.bundler.options.isFrontendFrameworkEnabled()) { break :brk try ctx.bundler.buildFile( @@ -1859,11 +1840,7 @@ pub const Server = struct { var request_arena = std.heap.ArenaAllocator.init(server.allocator); var req_ctx: RequestContext = undefined; - defer { - if (!req_ctx.controlled) { - req_ctx.arena.deinit(); - } - } + req_ctx = RequestContext.init( req, request_arena, @@ -1877,8 +1854,72 @@ pub const Server = struct { return; }; + defer { + if (!req_ctx.controlled) { + req_ctx.arena.deinit(); + } + } + req_ctx.allocator = &req_ctx.arena.allocator; req_ctx.log = logger.Log.init(req_ctx.allocator); + var log = &req_ctx.log; + + req_ctx.bundler.log = log; + req_ctx.bundler.linker.log = log; + req_ctx.bundler.resolver.log = log; + req_ctx.bundler.options.log = log; + + var did_print: bool = false; + + defer { + if (!req_ctx.controlled) { + if (!req_ctx.has_called_done) { + if (comptime isDebug) { + if (@errorReturnTrace()) |trace| { + std.debug.dumpStackTrace(trace.*); + Output.printError("\n", .{}); + } + } + + req_ctx.sendInternalError(error.InternalError) catch {}; + } + const status = req_ctx.status orelse @intCast(HTTPStatusCode, 500); + + if (log.msgs.items.len == 0) { + if (!did_print) { + switch (status) { + 101, 199...399 => { + Output.prettyln("<r><green>{d}<r><d> {s} <r>{s}<d> as {s}<r>", .{ status, @tagName(req_ctx.method), req.path, req_ctx.mime_type.value }); + }, + 400...499 => { + Output.prettyln("<r><yellow>{d}<r><d> {s} <r>{s}<d> as {s}<r>", .{ status, @tagName(req_ctx.method), req.path, req_ctx.mime_type.value }); + }, + else => { + Output.prettyln("<r><red>{d}<r><d> {s} <r>{s}<d> as {s}<r>", .{ status, @tagName(req_ctx.method), req.path, req_ctx.mime_type.value }); + }, + } + } + } else { + defer Output.flush(); + defer log.deinit(); + log.printForLogLevel(Output.errorWriter()) catch {}; + + if (!did_print) { + switch (status) { + 101, 199...399 => { + Output.prettyln("<r><green>{d}<r><d> <r>{s}<d> {s} as {s}<r>", .{ status, @tagName(req_ctx.method), req.path, req_ctx.mime_type.value }); + }, + 400...499 => { + Output.prettyln("<r><yellow>{d}<r><d> <r>{s}<d> {s} as {s}<r>", .{ status, @tagName(req_ctx.method), req.path, req_ctx.mime_type.value }); + }, + else => { + Output.prettyln("<r><red>{d}<r><d> <r>{s}<d> {s} as {s}<r>", .{ status, @tagName(req_ctx.method), req.path, req_ctx.mime_type.value }); + }, + } + } + } + } + } if (comptime FeatureFlags.keep_alive) { if (req_ctx.header("Connection")) |connection| { @@ -1892,6 +1933,7 @@ pub const Server = struct { var finished = req_ctx.handleReservedRoutes(server) catch |err| { Output.printErrorln("FAIL [{s}] - {s}: {s}", .{ @errorName(err), req.method, req.path }); + did_print = true; return; }; @@ -1901,6 +1943,7 @@ pub const Server = struct { finished = true; req_ctx.renderServeResult(result) catch |err| { Output.printErrorln("FAIL [{s}] - {s}: {s}", .{ @errorName(err), req.method, req.path }); + did_print = true; return; }; } @@ -1914,6 +1957,7 @@ pub const Server = struct { }, else => { Output.printErrorln("FAIL [{s}] - {s}: {s}", .{ @errorName(err), req.method, req.path }); + did_print = true; return; }, } @@ -1925,6 +1969,7 @@ pub const Server = struct { finished = true; req_ctx.renderServeResult(result) catch |err| { Output.printErrorln("FAIL [{s}] - {s}: {s}", .{ @errorName(err), req.method, req.path }); + did_print = true; return; }; } @@ -1938,6 +1983,7 @@ pub const Server = struct { }, else => { Output.printErrorln("FAIL [{s}] - {s}: {s}", .{ @errorName(err), req.method, req.path }); + did_print = true; return; }, } @@ -1952,6 +1998,7 @@ pub const Server = struct { }, else => { Output.printErrorln("FAIL [{s}] - {s}: {s}", .{ @errorName(err), req.method, req.path }); + did_print = true; return; }, } @@ -1966,47 +2013,13 @@ pub const Server = struct { }, else => { Output.printErrorln("FAIL [{s}] - {s}: {s}", .{ @errorName(err), req.method, req.path }); + did_print = true; return; }, } }; } } - - if (!req_ctx.controlled) { - const status = req_ctx.status orelse @intCast(HTTPStatusCode, 500); - - if (req_ctx.log.msgs.items.len == 0) { - switch (status) { - 101, 199...399 => { - Output.prettyln("<r><green>{d}<r><d> {s} <r>{s}<d> as {s}<r>", .{ status, @tagName(req_ctx.method), req.path, req_ctx.mime_type.value }); - }, - 400...499 => { - Output.prettyln("<r><yellow>{d}<r><d> {s} <r>{s}<d> as {s}<r>", .{ status, @tagName(req_ctx.method), req.path, req_ctx.mime_type.value }); - }, - else => { - Output.prettyln("<r><red>{d}<r><d> {s} <r>{s}<d> as {s}<r>", .{ status, @tagName(req_ctx.method), req.path, req_ctx.mime_type.value }); - }, - } - } else { - switch (status) { - 101, 199...399 => { - Output.prettyln("<r><green>{d}<r><d> <r>{s}<d> {s} as {s}<r>", .{ status, @tagName(req_ctx.method), req.path, req_ctx.mime_type.value }); - }, - 400...499 => { - Output.prettyln("<r><yellow>{d}<r><d> <r>{s}<d> {s} as {s}<r>", .{ status, @tagName(req_ctx.method), req.path, req_ctx.mime_type.value }); - }, - else => { - Output.prettyln("<r><red>{d}<r><d> <r>{s}<d> {s} as {s}<r>", .{ status, @tagName(req_ctx.method), req.path, req_ctx.mime_type.value }); - }, - } - - for (req_ctx.log.msgs.items) |msg| { - msg.writeFormat(Output.errorWriter()) catch continue; - } - req_ctx.log.deinit(); - } - } } pub fn initWatcher(server: *Server) !void { diff --git a/src/javascript/jsc/javascript.zig b/src/javascript/jsc/javascript.zig index a462515b7..dc545ae87 100644 --- a/src/javascript/jsc/javascript.zig +++ b/src/javascript/jsc/javascript.zig @@ -294,6 +294,7 @@ pub const VirtualMachine = struct { log = __log; } else { log = try allocator.create(logger.Log); + log.* = logger.Log.init(allocator); } VirtualMachine.vm = try allocator.create(VirtualMachine); diff --git a/src/js_parser/js_parser.zig b/src/js_parser/js_parser.zig index 889da4c2e..9d37230cd 100644 --- a/src/js_parser/js_parser.zig +++ b/src/js_parser/js_parser.zig @@ -8359,7 +8359,6 @@ pub fn NewParser( var left = _left; var loc = p.lexer.loc(); var optional_chain: ?js_ast.OptionalChain = null; - while (true) { if (p.lexer.loc().start == p.after_arrow_body_loc.start) { while (true) { @@ -9115,11 +9114,12 @@ pub fn NewParser( } pub fn panic(p: *P, comptime str: string, args: anytype) noreturn { + @setCold(true); var panic_buffer = p.allocator.alloc(u8, 32 * 1024) catch unreachable; var panic_stream = std.io.fixedBufferStream(panic_buffer); p.log.addRangeErrorFmt(p.source, p.lexer.range(), p.allocator, str, args) catch unreachable; p.log.print(panic_stream.writer()) catch unreachable; - Global.panic("{s}", .{panic_buffer}); + Global.panic("{s}", .{panic_buffer[0..panic_stream.pos]}); } pub fn _parsePrefix(p: *P, level: Level, errors: *DeferredErrors, flags: Expr.EFlags) anyerror!Expr { @@ -9293,7 +9293,7 @@ pub fn NewParser( _ = p.pushScopeForParsePass(.function_args, loc) catch unreachable; defer p.popScope(); // Output.print("HANDLE START ", .{}); - return p.e(p.parseArrowBody(args, p.m(FnOrArrowDataParse{})) catch unreachable, loc); + return p.e(try p.parseArrowBody(args, p.m(FnOrArrowDataParse{})), loc); } const ref = p.storeNameInRef(name) catch unreachable; @@ -9680,14 +9680,14 @@ pub fn NewParser( if (is_ts_arrow_fn) { try p.skipTypeScriptTypeParameters(); try p.lexer.expect(.t_open_paren); - return p.parseParenExpr(loc, level, ParenExprOpts{ .force_arrow_fn = true }) catch unreachable; + return try p.parseParenExpr(loc, level, ParenExprOpts{ .force_arrow_fn = true }); } } if (is_jsx_enabled) { // Use NextInsideJSXElement() instead of Next() so we parse "<<" as "<" try p.lexer.nextInsideJSXElement(); - const element = p.parseJSXElement(loc) catch unreachable; + const element = try p.parseJSXElement(loc); // The call to parseJSXElement() above doesn't consume the last // TGreaterThan because the caller knows what Next() function to call. @@ -9704,7 +9704,7 @@ pub fn NewParser( // "<T>(x) => {}" if (p.trySkipTypeScriptTypeParametersThenOpenParenWithBacktracking()) { try p.lexer.expect(.t_open_paren); - return p.parseParenExpr(loc, level, ParenExprOpts{}) catch unreachable; + return p.parseParenExpr(loc, level, ParenExprOpts{}); } // "<T>x" @@ -9795,7 +9795,7 @@ pub fn NewParser( range: logger.Range, name: string = "", - pub fn parse(p: *P) !JSXTag { + pub fn parse(p: *P) anyerror!JSXTag { const loc = p.lexer.loc(); // A missing tag is a fragment @@ -9838,7 +9838,7 @@ pub fn NewParser( if (strings.indexOfChar(member, '-')) |index| { try p.log.addError(p.source, logger.Loc{ .start = member_range.loc.start + @intCast(i32, index) }, "Unexpected \"-\""); - p.panic("", .{}); + return error.SyntaxError; } var _name = try p.allocator.alloc(u8, name.len + 1 + member.len); @@ -9872,7 +9872,7 @@ pub fn NewParser( } } - pub fn parseJSXElement(p: *P, loc: logger.Loc) !Expr { + pub fn parseJSXElement(p: *P, loc: logger.Loc) anyerror!Expr { if (only_scan_imports_and_do_not_visit) { p.needs_jsx_import = true; } @@ -10032,7 +10032,7 @@ pub fn NewParser( if (p.lexer.token != .t_slash) { // This is a child element - children.append(p.parseJSXElement(less_than_loc) catch unreachable) catch unreachable; + children.append(try p.parseJSXElement(less_than_loc)) catch unreachable; // The call to parseJSXElement() above doesn't consume the last // TGreaterThan because the caller knows what Next() function to call. @@ -10047,10 +10047,10 @@ pub fn NewParser( const end_tag = try JSXTag.parse(p); if (!strings.eql(end_tag.name, tag.name)) { try p.log.addRangeErrorFmt(p.source, end_tag.range, p.allocator, "Expected closing tag </{s}> to match opening tag <{s}>", .{ - tag.name, end_tag.name, + tag.name, }); - p.panic("", .{}); + return error.SyntaxError; } if (p.lexer.token != .t_greater_than) { diff --git a/src/js_printer.zig b/src/js_printer.zig index 9e26029f3..1fd6463da 100644 --- a/src/js_printer.zig +++ b/src/js_printer.zig @@ -8,6 +8,7 @@ const alloc = @import("alloc.zig"); const rename = @import("renamer.zig"); const runtime = @import("runtime.zig"); +const Api = @import("./api/schema.zig").Api; const fs = @import("fs.zig"); usingnamespace @import("global.zig"); usingnamespace @import("ast/base.zig"); @@ -81,6 +82,8 @@ pub const Options = struct { bundle_export_ref: ?js_ast.Ref = null, rewrite_require_resolve: bool = true, + css_import_behavior: Api.CssInJsBehavior = Api.CssInJsBehavior.facade, + // TODO: remove this // The reason for this is: // 1. You're bundling a React component @@ -2869,26 +2872,46 @@ pub fn NewPrinter( p.needs_semicolon = false; }, .s_import => |s| { - if (FeatureFlags.css_in_js_import_behavior == .facade) { - // TODO: check loader instead - if (strings.eqlComptime(p.import_records[s.import_record_index].path.name.ext, ".css")) { - // This comment exists to let tooling authors know which files CSS originated from - // To parse this, you just look for a line that starts with //@import url(" - p.print("//@import url(\""); - // We do not URL escape here. - p.print(p.import_records[s.import_record_index].path.text); - - // If they actually use the code, then we emit a facade that just echos whatever they write - if (s.default_name) |name| { - p.print("\"); css-module-facade\nvar "); - p.printSymbol(name.ref.?); - p.print(" = new Proxy({}, {get(_,className,__){return className;}});\n"); - } else { - p.print("\"); css-import-facade\n"); - } - return; + // TODO: check loader instead + if (strings.eqlComptime(p.import_records[s.import_record_index].path.name.ext, ".css")) { + switch (p.options.css_import_behavior) { + .facade => { + + // This comment exists to let tooling authors know which files CSS originated from + // To parse this, you just look for a line that starts with //@import url(" + p.print("//@import url(\""); + // We do not URL escape here. + p.print(p.import_records[s.import_record_index].path.text); + + // If they actually use the code, then we emit a facade that just echos whatever they write + if (s.default_name) |name| { + p.print("\"); css-module-facade\nvar "); + p.printSymbol(name.ref.?); + p.print(" = new Proxy({}, {get(_,className,__){return className;}});\n"); + } else { + p.print("\"); css-import-facade\n"); + } + + return; + }, + + .facade_onimportcss => { + p.print("globalThis.document?.dispatchEvent(new CustomEvent(\"onimportcss\", {detail: \""); + p.print(p.import_records[s.import_record_index].path.text); + p.print("\"}));\n"); + + // If they actually use the code, then we emit a facade that just echos whatever they write + if (s.default_name) |name| { + p.print("var "); + p.printSymbol(name.ref.?); + p.print(" = new Proxy({}, {get(_,className,__){return className;}});\n"); + } + }, + else => {}, } + + return; } const record = p.import_records[s.import_record_index]; diff --git a/src/logger.zig b/src/logger.zig index 8904ee1e1..cf9fb6960 100644 --- a/src/logger.zig +++ b/src/logger.zig @@ -19,10 +19,21 @@ pub const Kind = enum(i8) { verbose, pub inline fn shouldPrint(this: Kind, other: Log.Level) bool { - return @enumToInt(this) - @enumToInt(other) >= 0; + return switch (other) { + .err => switch (this) { + .err, .note => true, + else => false, + }, + .warn => switch (this) { + .err, .warn, .note => true, + else => false, + }, + .info, .debug => this != .verbose, + .verbose => true, + }; } - pub fn string(self: Kind) string { + pub inline fn string(self: Kind) string { return switch (self) { .err => "error", .warn => "warn", @@ -32,7 +43,7 @@ pub const Kind = enum(i8) { }; } - pub fn toAPI(kind: Kind) Api.MessageKind { + pub inline fn toAPI(kind: Kind) Api.MessageKind { return switch (kind) { .err => err, .warn => warn, @@ -46,23 +57,23 @@ pub const Kind = enum(i8) { pub const Loc = packed struct { start: i32 = -1, - pub fn toNullable(loc: *Loc) ?Loc { + pub inline fn toNullable(loc: *Loc) ?Loc { return if (loc.start == -1) null else loc.*; } // TODO: remove this stupidity - pub fn toUsize(self: *const Loc) usize { + pub inline fn toUsize(self: *const Loc) usize { return @intCast(usize, self.start); } // TODO: remove this stupidity - pub fn i(self: *const Loc) usize { + pub inline fn i(self: *const Loc) usize { return @intCast(usize, self.start); } pub const Empty = Loc{ .start = -1 }; - pub fn eql(loc: *Loc, other: Loc) bool { + pub inline fn eql(loc: *Loc, other: Loc) bool { return loc.start == other.start; } @@ -327,7 +338,7 @@ pub const Log = struct { warnings: usize = 0, errors: usize = 0, msgs: ArrayList(Msg), - level: Level = Level.info, + level: Level = if (isDebug) Level.info else Level.warn, pub fn toAPI(this: *const Log, allocator: *std.mem.Allocator) !Api.Log { return Api.Log{ @@ -366,21 +377,27 @@ pub const Log = struct { } pub fn appendToMaybeRecycled(self: *Log, other: *Log, source: *const Source) !void { + try other.msgs.appendSlice(self.msgs.items); + other.warnings += self.warnings; + other.errors += self.errors; + if (source.contents_is_recycled) { - for (self.msgs.items) |*_msg| { - var msg: *Msg = _msg; - if (msg.data.location) |*location| { + var i: usize = 0; + var j: usize = other.msgs.items.len - self.msgs.items.len; + + while (i < self.msgs.items.len) : ({ + i += 1; + j += 1; + }) { + const msg = self.msgs.items[i]; + if (msg.data.location) |location| { if (location.line_text) |line_text| { - location.line_text = try other.msgs.allocator.dupe(u8, line_text); + other.msgs.items[j].data.location.?.line_text = try other.msgs.allocator.dupe(u8, line_text); } } } } - try other.msgs.appendSlice(self.msgs.items); - other.warnings += self.warnings; - other.errors += self.errors; - self.msgs.deinit(); } @@ -389,6 +406,8 @@ pub const Log = struct { } pub fn addVerboseWithNotes(log: *Log, source: ?*const Source, loc: Loc, text: string, notes: []Data) !void { + if (!Kind.shouldPrint(.verbose, log.level)) return; + try log.addMsg(Msg{ .kind = .verbose, .data = rangeData(source, Range{ .loc = loc }, text), @@ -456,6 +475,7 @@ pub const Log = struct { } pub fn addRangeWarning(log: *Log, source: ?*const Source, r: Range, text: string) !void { + if (!Kind.shouldPrint(.warn, log.level)) return; log.warnings += 1; try log.addMsg(Msg{ .kind = .warn, @@ -464,6 +484,7 @@ pub const Log = struct { } pub fn addWarningFmt(log: *Log, source: ?*const Source, l: Loc, allocator: *std.mem.Allocator, comptime text: string, args: anytype) !void { + if (!Kind.shouldPrint(.warn, log.level)) return; log.warnings += 1; try log.addMsg(Msg{ .kind = .warn, @@ -472,6 +493,7 @@ pub const Log = struct { } pub fn addRangeWarningFmt(log: *Log, source: ?*const Source, r: Range, allocator: *std.mem.Allocator, comptime text: string, args: anytype) !void { + if (!Kind.shouldPrint(.warn, log.level)) return; log.warnings += 1; try log.addMsg(Msg{ .kind = .warn, @@ -480,6 +502,7 @@ pub const Log = struct { } pub fn addWarning(log: *Log, source: ?*const Source, l: Loc, text: string) !void { + if (!Kind.shouldPrint(.warn, log.level)) return; log.warnings += 1; try log.addMsg(Msg{ .kind = .warn, @@ -488,6 +511,7 @@ pub const Log = struct { } pub fn addRangeDebug(log: *Log, source: ?*const Source, r: Range, text: string) !void { + if (!Kind.shouldPrint(.debug, log.level)) return; try log.addMsg(Msg{ .kind = .debug, .data = rangeData(source, r, text), @@ -495,6 +519,7 @@ pub const Log = struct { } pub fn addRangeDebugWithNotes(log: *Log, source: ?*const Source, r: Range, text: string, notes: []Data) !void { + if (!Kind.shouldPrint(.debug, log.level)) return; // log.de += 1; try log.addMsg(Msg{ .kind = Kind.debug, @@ -513,6 +538,7 @@ pub const Log = struct { } pub fn addRangeWarningWithNotes(log: *Log, source: ?*const Source, r: Range, text: string, notes: []Data) !void { + if (!Kind.shouldPrint(.warn, log.level)) return; log.warnings += 1; try log.addMsg(Msg{ .kind = .warning, @@ -540,11 +566,15 @@ pub const Log = struct { } pub fn printForLogLevel(self: *Log, to: anytype) !void { + var printed = false; for (self.msgs.items) |msg| { if (msg.kind.shouldPrint(self.level)) { try msg.writeFormat(to); + printed = true; } } + + if (printed) _ = try to.write("\n"); } pub fn toZigException(this: *const Log, allocator: *std.mem.Allocator) *js.ZigException.Holder { diff --git a/src/options.zig b/src/options.zig index c989e32f2..1fc07191d 100644 --- a/src/options.zig +++ b/src/options.zig @@ -716,6 +716,19 @@ pub const BundleOptions = struct { env: Env = Env{}, transform_options: Api.TransformOptions, + pub inline fn cssImportBehavior(this: *const BundleOptions) Api.CssInJsBehavior { + switch (this.platform) { + .neutral, .browser => { + if (this.framework) |framework| { + return framework.client_css_in_js; + } + + return .facade; + }, + else => return .facade, + } + } + pub fn areDefinesUnset(this: *const BundleOptions) bool { return !this.defines_loaded; } @@ -1382,6 +1395,8 @@ pub const Framework = struct { client_env: Env = Env{}, server_env: Env = Env{}, + client_css_in_js: Api.CssInJsBehavior = .facade, + fn normalizedPath(allocator: *std.mem.Allocator, toplevel_path: string, path: string) !string { std.debug.assert(std.fs.path.isAbsolute(path)); var str = path; @@ -1412,6 +1427,7 @@ pub const Framework = struct { .package = loaded.package, .development = loaded.development, .from_bundle = true, + .client_css_in_js = loaded.client_css_in_js, }; if (loaded.client) { @@ -1432,6 +1448,7 @@ pub const Framework = struct { .development = this.development, .client = true, .env = this.client_env.toAPI(), + .client_css_in_js = this.client_css_in_js, }; } } else { @@ -1442,6 +1459,7 @@ pub const Framework = struct { .development = this.development, .client = false, .env = this.server_env.toAPI(), + .client_css_in_js = this.client_css_in_js, }; } } @@ -1462,6 +1480,10 @@ pub const Framework = struct { .package = transform.package orelse "", .development = transform.development orelse true, .resolved = false, + .client_css_in_js = switch (transform.client_css_in_js orelse .facade) { + .facade_onimportcss => .facade_onimportcss, + else => .facade, + }, }; } }; diff --git a/src/resolver/package_json.zig b/src/resolver/package_json.zig index 45f5c3e48..fea7fef8a 100644 --- a/src/resolver/package_json.zig +++ b/src/resolver/package_json.zig @@ -153,6 +153,16 @@ pub const PackageJSON = struct { } } + if (json.asProperty("css")) |css_prop| { + if (css_prop.expr.asString(allocator)) |str| { + if (strings.eqlComptime(str, "onimportcss")) { + framework.client_css_in_js = .facade_onimportcss; + } else { + framework.client_css_in_js = .facade; + } + } + } + if (comptime read_define) { if (json.asProperty("define")) |defines| { if (defines.expr.asProperty("client")) |client| { diff --git a/src/router.zig b/src/router.zig index ca2ac462e..fb561fcf3 100644 --- a/src/router.zig +++ b/src/router.zig @@ -151,7 +151,7 @@ pub fn loadRoutes( dir_info, ResolverType, resolver, - route.children.offset, + route.children.offset - 1, false, ); @@ -437,10 +437,20 @@ pub const RouteMap = struct { for (this.segments[0..segment_i]) |segment| { segment_offset += @truncate(u16, segment.len); } + var total_offset: u16 = 0; + + var current_i: u16 = head.parent; + const slices = this.map.routes; + const names = slices.items(.name); + const parents = slices.items(.parent); + while (current_i != Route.top_level_parent) : (current_i = parents[current_i]) { + total_offset += @truncate(u16, names[current_i].len); + } + this.params.append( this.allocator, Param{ - .key = .{ .offset = head.part.name.offset, .len = head.part.name.len }, + .key = .{ .offset = head.part.name.offset + total_offset + segment_i, .len = head.part.name.len }, .value = .{ .offset = segment_offset, .len = @truncate(u16, this.segments[segment_i].len) }, .kind = head.part.tag, }, diff --git a/src/runtime.js b/src/runtime.js index bbc8dddab..d3416cbe4 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -41,7 +41,7 @@ export var __commonJS = (cb, name) => { var has_run = false; return { - [`#init_${name}`]() { + [`[load] ${name}`]() { if (has_run) { return mod.exports; } @@ -84,7 +84,7 @@ export var __commonJS = (cb, name) => { return mod.exports; }, - }[`#init_${name}`]; + }[`[load] ${name}`]; }; var require_cache = new WeakMap(); |