From 49f0c132da075b8e38cf7e455cffd1ab9a25edfe Mon Sep 17 00:00:00 2001 From: David Konsumer Date: Sat, 18 Nov 2023 14:39:40 -0800 Subject: [PATCH 1/7] start of build for raylib5 --- CMakeLists.txt | 2 +- src/generated/node-raylib-drm.js | 2316 +++++++++++++++--------------- src/generated/node-raylib.js | 2316 +++++++++++++++--------------- 3 files changed, 2317 insertions(+), 2317 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4fa51eb..178a57b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,7 +29,7 @@ if (NOT raylib_FOUND) FetchContent_Declare( raylib GIT_REPOSITORY https://github.com/raysan5/raylib.git - GIT_TAG 4.5.0 + GIT_TAG 5.0 GIT_SHALLOW TRUE ) FetchContent_GetProperties(raylib) diff --git a/src/generated/node-raylib-drm.js b/src/generated/node-raylib-drm.js index fc21812..7b2b53f 100644 --- a/src/generated/node-raylib-drm.js +++ b/src/generated/node-raylib-drm.js @@ -20,7 +20,7 @@ const raylib = {} * * @return {undefined} */ -function InitWindow (width, height, title) { +function InitWindow(width, height, title) { return r.BindInitWindow( width, height, @@ -34,7 +34,7 @@ raylib.InitWindow = InitWindow * * @return {boolean} The resulting bool. */ -function WindowShouldClose () { +function WindowShouldClose() { return r.BindWindowShouldClose() } raylib.WindowShouldClose = WindowShouldClose @@ -44,7 +44,7 @@ raylib.WindowShouldClose = WindowShouldClose * * @return {undefined} */ -function CloseWindow () { +function CloseWindow() { return r.BindCloseWindow() } raylib.CloseWindow = CloseWindow @@ -54,7 +54,7 @@ raylib.CloseWindow = CloseWindow * * @return {boolean} The resulting bool. */ -function IsWindowReady () { +function IsWindowReady() { return r.BindIsWindowReady() } raylib.IsWindowReady = IsWindowReady @@ -64,7 +64,7 @@ raylib.IsWindowReady = IsWindowReady * * @return {boolean} The resulting bool. */ -function IsWindowFullscreen () { +function IsWindowFullscreen() { return r.BindIsWindowFullscreen() } raylib.IsWindowFullscreen = IsWindowFullscreen @@ -74,7 +74,7 @@ raylib.IsWindowFullscreen = IsWindowFullscreen * * @return {boolean} The resulting bool. */ -function IsWindowHidden () { +function IsWindowHidden() { return r.BindIsWindowHidden() } raylib.IsWindowHidden = IsWindowHidden @@ -84,7 +84,7 @@ raylib.IsWindowHidden = IsWindowHidden * * @return {boolean} The resulting bool. */ -function IsWindowMinimized () { +function IsWindowMinimized() { return r.BindIsWindowMinimized() } raylib.IsWindowMinimized = IsWindowMinimized @@ -94,7 +94,7 @@ raylib.IsWindowMinimized = IsWindowMinimized * * @return {boolean} The resulting bool. */ -function IsWindowMaximized () { +function IsWindowMaximized() { return r.BindIsWindowMaximized() } raylib.IsWindowMaximized = IsWindowMaximized @@ -104,7 +104,7 @@ raylib.IsWindowMaximized = IsWindowMaximized * * @return {boolean} The resulting bool. */ -function IsWindowFocused () { +function IsWindowFocused() { return r.BindIsWindowFocused() } raylib.IsWindowFocused = IsWindowFocused @@ -114,7 +114,7 @@ raylib.IsWindowFocused = IsWindowFocused * * @return {boolean} The resulting bool. */ -function IsWindowResized () { +function IsWindowResized() { return r.BindIsWindowResized() } raylib.IsWindowResized = IsWindowResized @@ -126,7 +126,7 @@ raylib.IsWindowResized = IsWindowResized * * @return {boolean} The resulting bool. */ -function IsWindowState (flag) { +function IsWindowState(flag) { return r.BindIsWindowState( flag ) @@ -140,7 +140,7 @@ raylib.IsWindowState = IsWindowState * * @return {undefined} */ -function SetWindowState (flags) { +function SetWindowState(flags) { return r.BindSetWindowState( flags ) @@ -154,7 +154,7 @@ raylib.SetWindowState = SetWindowState * * @return {undefined} */ -function ClearWindowState (flags) { +function ClearWindowState(flags) { return r.BindClearWindowState( flags ) @@ -166,7 +166,7 @@ raylib.ClearWindowState = ClearWindowState * * @return {undefined} */ -function ToggleFullscreen () { +function ToggleFullscreen() { return r.BindToggleFullscreen() } raylib.ToggleFullscreen = ToggleFullscreen @@ -176,7 +176,7 @@ raylib.ToggleFullscreen = ToggleFullscreen * * @return {undefined} */ -function MaximizeWindow () { +function MaximizeWindow() { return r.BindMaximizeWindow() } raylib.MaximizeWindow = MaximizeWindow @@ -186,7 +186,7 @@ raylib.MaximizeWindow = MaximizeWindow * * @return {undefined} */ -function MinimizeWindow () { +function MinimizeWindow() { return r.BindMinimizeWindow() } raylib.MinimizeWindow = MinimizeWindow @@ -196,7 +196,7 @@ raylib.MinimizeWindow = MinimizeWindow * * @return {undefined} */ -function RestoreWindow () { +function RestoreWindow() { return r.BindRestoreWindow() } raylib.RestoreWindow = RestoreWindow @@ -208,7 +208,7 @@ raylib.RestoreWindow = RestoreWindow * * @return {undefined} */ -function SetWindowIcon (image) { +function SetWindowIcon(image) { return r.BindSetWindowIcon( image.data, image.width, @@ -227,7 +227,7 @@ raylib.SetWindowIcon = SetWindowIcon * * @return {undefined} */ -function SetWindowIcons (images, count) { +function SetWindowIcons(images, count) { return r.BindSetWindowIcons( images, count @@ -242,7 +242,7 @@ raylib.SetWindowIcons = SetWindowIcons * * @return {undefined} */ -function SetWindowTitle (title) { +function SetWindowTitle(title) { return r.BindSetWindowTitle( title ) @@ -257,7 +257,7 @@ raylib.SetWindowTitle = SetWindowTitle * * @return {undefined} */ -function SetWindowPosition (x, y) { +function SetWindowPosition(x, y) { return r.BindSetWindowPosition( x, y @@ -272,7 +272,7 @@ raylib.SetWindowPosition = SetWindowPosition * * @return {undefined} */ -function SetWindowMonitor (monitor) { +function SetWindowMonitor(monitor) { return r.BindSetWindowMonitor( monitor ) @@ -287,7 +287,7 @@ raylib.SetWindowMonitor = SetWindowMonitor * * @return {undefined} */ -function SetWindowMinSize (width, height) { +function SetWindowMinSize(width, height) { return r.BindSetWindowMinSize( width, height @@ -303,7 +303,7 @@ raylib.SetWindowMinSize = SetWindowMinSize * * @return {undefined} */ -function SetWindowSize (width, height) { +function SetWindowSize(width, height) { return r.BindSetWindowSize( width, height @@ -318,7 +318,7 @@ raylib.SetWindowSize = SetWindowSize * * @return {undefined} */ -function SetWindowOpacity (opacity) { +function SetWindowOpacity(opacity) { return r.BindSetWindowOpacity( opacity ) @@ -330,7 +330,7 @@ raylib.SetWindowOpacity = SetWindowOpacity * * @return {number} The resulting void *. */ -function GetWindowHandle () { +function GetWindowHandle() { return r.BindGetWindowHandle() } raylib.GetWindowHandle = GetWindowHandle @@ -340,7 +340,7 @@ raylib.GetWindowHandle = GetWindowHandle * * @return {number} The resulting int. */ -function GetScreenWidth () { +function GetScreenWidth() { return r.BindGetScreenWidth() } raylib.GetScreenWidth = GetScreenWidth @@ -350,7 +350,7 @@ raylib.GetScreenWidth = GetScreenWidth * * @return {number} The resulting int. */ -function GetScreenHeight () { +function GetScreenHeight() { return r.BindGetScreenHeight() } raylib.GetScreenHeight = GetScreenHeight @@ -360,7 +360,7 @@ raylib.GetScreenHeight = GetScreenHeight * * @return {number} The resulting int. */ -function GetRenderWidth () { +function GetRenderWidth() { return r.BindGetRenderWidth() } raylib.GetRenderWidth = GetRenderWidth @@ -370,7 +370,7 @@ raylib.GetRenderWidth = GetRenderWidth * * @return {number} The resulting int. */ -function GetRenderHeight () { +function GetRenderHeight() { return r.BindGetRenderHeight() } raylib.GetRenderHeight = GetRenderHeight @@ -380,7 +380,7 @@ raylib.GetRenderHeight = GetRenderHeight * * @return {number} The resulting int. */ -function GetMonitorCount () { +function GetMonitorCount() { return r.BindGetMonitorCount() } raylib.GetMonitorCount = GetMonitorCount @@ -390,7 +390,7 @@ raylib.GetMonitorCount = GetMonitorCount * * @return {number} The resulting int. */ -function GetCurrentMonitor () { +function GetCurrentMonitor() { return r.BindGetCurrentMonitor() } raylib.GetCurrentMonitor = GetCurrentMonitor @@ -402,7 +402,7 @@ raylib.GetCurrentMonitor = GetCurrentMonitor * * @return {Vector2} The resulting Vector2. */ -function GetMonitorPosition (monitor) { +function GetMonitorPosition(monitor) { return r.BindGetMonitorPosition( monitor ) @@ -416,7 +416,7 @@ raylib.GetMonitorPosition = GetMonitorPosition * * @return {number} The resulting int. */ -function GetMonitorWidth (monitor) { +function GetMonitorWidth(monitor) { return r.BindGetMonitorWidth( monitor ) @@ -430,7 +430,7 @@ raylib.GetMonitorWidth = GetMonitorWidth * * @return {number} The resulting int. */ -function GetMonitorHeight (monitor) { +function GetMonitorHeight(monitor) { return r.BindGetMonitorHeight( monitor ) @@ -444,7 +444,7 @@ raylib.GetMonitorHeight = GetMonitorHeight * * @return {number} The resulting int. */ -function GetMonitorPhysicalWidth (monitor) { +function GetMonitorPhysicalWidth(monitor) { return r.BindGetMonitorPhysicalWidth( monitor ) @@ -458,7 +458,7 @@ raylib.GetMonitorPhysicalWidth = GetMonitorPhysicalWidth * * @return {number} The resulting int. */ -function GetMonitorPhysicalHeight (monitor) { +function GetMonitorPhysicalHeight(monitor) { return r.BindGetMonitorPhysicalHeight( monitor ) @@ -472,7 +472,7 @@ raylib.GetMonitorPhysicalHeight = GetMonitorPhysicalHeight * * @return {number} The resulting int. */ -function GetMonitorRefreshRate (monitor) { +function GetMonitorRefreshRate(monitor) { return r.BindGetMonitorRefreshRate( monitor ) @@ -484,7 +484,7 @@ raylib.GetMonitorRefreshRate = GetMonitorRefreshRate * * @return {Vector2} The resulting Vector2. */ -function GetWindowPosition () { +function GetWindowPosition() { return r.BindGetWindowPosition() } raylib.GetWindowPosition = GetWindowPosition @@ -494,7 +494,7 @@ raylib.GetWindowPosition = GetWindowPosition * * @return {Vector2} The resulting Vector2. */ -function GetWindowScaleDPI () { +function GetWindowScaleDPI() { return r.BindGetWindowScaleDPI() } raylib.GetWindowScaleDPI = GetWindowScaleDPI @@ -506,7 +506,7 @@ raylib.GetWindowScaleDPI = GetWindowScaleDPI * * @return {string} The resulting const char *. */ -function GetMonitorName (monitor) { +function GetMonitorName(monitor) { return r.BindGetMonitorName( monitor ) @@ -520,7 +520,7 @@ raylib.GetMonitorName = GetMonitorName * * @return {undefined} */ -function SetClipboardText (text) { +function SetClipboardText(text) { return r.BindSetClipboardText( text ) @@ -532,7 +532,7 @@ raylib.SetClipboardText = SetClipboardText * * @return {string} The resulting const char *. */ -function GetClipboardText () { +function GetClipboardText() { return r.BindGetClipboardText() } raylib.GetClipboardText = GetClipboardText @@ -542,7 +542,7 @@ raylib.GetClipboardText = GetClipboardText * * @return {undefined} */ -function EnableEventWaiting () { +function EnableEventWaiting() { return r.BindEnableEventWaiting() } raylib.EnableEventWaiting = EnableEventWaiting @@ -552,7 +552,7 @@ raylib.EnableEventWaiting = EnableEventWaiting * * @return {undefined} */ -function DisableEventWaiting () { +function DisableEventWaiting() { return r.BindDisableEventWaiting() } raylib.DisableEventWaiting = DisableEventWaiting @@ -562,7 +562,7 @@ raylib.DisableEventWaiting = DisableEventWaiting * * @return {undefined} */ -function SwapScreenBuffer () { +function SwapScreenBuffer() { return r.BindSwapScreenBuffer() } raylib.SwapScreenBuffer = SwapScreenBuffer @@ -572,7 +572,7 @@ raylib.SwapScreenBuffer = SwapScreenBuffer * * @return {undefined} */ -function PollInputEvents () { +function PollInputEvents() { return r.BindPollInputEvents() } raylib.PollInputEvents = PollInputEvents @@ -584,7 +584,7 @@ raylib.PollInputEvents = PollInputEvents * * @return {undefined} */ -function WaitTime (seconds) { +function WaitTime(seconds) { return r.BindWaitTime( seconds ) @@ -596,7 +596,7 @@ raylib.WaitTime = WaitTime * * @return {undefined} */ -function ShowCursor () { +function ShowCursor() { return r.BindShowCursor() } raylib.ShowCursor = ShowCursor @@ -606,7 +606,7 @@ raylib.ShowCursor = ShowCursor * * @return {undefined} */ -function HideCursor () { +function HideCursor() { return r.BindHideCursor() } raylib.HideCursor = HideCursor @@ -616,7 +616,7 @@ raylib.HideCursor = HideCursor * * @return {boolean} The resulting bool. */ -function IsCursorHidden () { +function IsCursorHidden() { return r.BindIsCursorHidden() } raylib.IsCursorHidden = IsCursorHidden @@ -626,7 +626,7 @@ raylib.IsCursorHidden = IsCursorHidden * * @return {undefined} */ -function EnableCursor () { +function EnableCursor() { return r.BindEnableCursor() } raylib.EnableCursor = EnableCursor @@ -636,7 +636,7 @@ raylib.EnableCursor = EnableCursor * * @return {undefined} */ -function DisableCursor () { +function DisableCursor() { return r.BindDisableCursor() } raylib.DisableCursor = DisableCursor @@ -646,7 +646,7 @@ raylib.DisableCursor = DisableCursor * * @return {boolean} The resulting bool. */ -function IsCursorOnScreen () { +function IsCursorOnScreen() { return r.BindIsCursorOnScreen() } raylib.IsCursorOnScreen = IsCursorOnScreen @@ -658,7 +658,7 @@ raylib.IsCursorOnScreen = IsCursorOnScreen * * @return {undefined} */ -function ClearBackground (color) { +function ClearBackground(color) { return r.BindClearBackground( color.r, color.g, @@ -673,7 +673,7 @@ raylib.ClearBackground = ClearBackground * * @return {undefined} */ -function BeginDrawing () { +function BeginDrawing() { return r.BindBeginDrawing() } raylib.BeginDrawing = BeginDrawing @@ -683,7 +683,7 @@ raylib.BeginDrawing = BeginDrawing * * @return {undefined} */ -function EndDrawing () { +function EndDrawing() { return r.BindEndDrawing() } raylib.EndDrawing = EndDrawing @@ -695,7 +695,7 @@ raylib.EndDrawing = EndDrawing * * @return {undefined} */ -function BeginMode2D (camera) { +function BeginMode2D(camera) { return r.BindBeginMode2D( camera.offset.x, camera.offset.y, @@ -712,7 +712,7 @@ raylib.BeginMode2D = BeginMode2D * * @return {undefined} */ -function EndMode2D () { +function EndMode2D() { return r.BindEndMode2D() } raylib.EndMode2D = EndMode2D @@ -724,7 +724,7 @@ raylib.EndMode2D = EndMode2D * * @return {undefined} */ -function BeginMode3D (camera) { +function BeginMode3D(camera) { return r.BindBeginMode3D( camera.position.x, camera.position.y, @@ -746,7 +746,7 @@ raylib.BeginMode3D = BeginMode3D * * @return {undefined} */ -function EndMode3D () { +function EndMode3D() { return r.BindEndMode3D() } raylib.EndMode3D = EndMode3D @@ -758,7 +758,7 @@ raylib.EndMode3D = EndMode3D * * @return {undefined} */ -function BeginTextureMode (target) { +function BeginTextureMode(target) { return r.BindBeginTextureMode( target.id, target.texture.id, @@ -780,7 +780,7 @@ raylib.BeginTextureMode = BeginTextureMode * * @return {undefined} */ -function EndTextureMode () { +function EndTextureMode() { return r.BindEndTextureMode() } raylib.EndTextureMode = EndTextureMode @@ -792,7 +792,7 @@ raylib.EndTextureMode = EndTextureMode * * @return {undefined} */ -function BeginShaderMode (shader) { +function BeginShaderMode(shader) { return r.BindBeginShaderMode( shader.id, shader.locs @@ -805,7 +805,7 @@ raylib.BeginShaderMode = BeginShaderMode * * @return {undefined} */ -function EndShaderMode () { +function EndShaderMode() { return r.BindEndShaderMode() } raylib.EndShaderMode = EndShaderMode @@ -817,7 +817,7 @@ raylib.EndShaderMode = EndShaderMode * * @return {undefined} */ -function BeginBlendMode (mode) { +function BeginBlendMode(mode) { return r.BindBeginBlendMode( mode ) @@ -829,7 +829,7 @@ raylib.BeginBlendMode = BeginBlendMode * * @return {undefined} */ -function EndBlendMode () { +function EndBlendMode() { return r.BindEndBlendMode() } raylib.EndBlendMode = EndBlendMode @@ -844,7 +844,7 @@ raylib.EndBlendMode = EndBlendMode * * @return {undefined} */ -function BeginScissorMode (x, y, width, height) { +function BeginScissorMode(x, y, width, height) { return r.BindBeginScissorMode( x, y, @@ -859,7 +859,7 @@ raylib.BeginScissorMode = BeginScissorMode * * @return {undefined} */ -function EndScissorMode () { +function EndScissorMode() { return r.BindEndScissorMode() } raylib.EndScissorMode = EndScissorMode @@ -869,7 +869,7 @@ raylib.EndScissorMode = EndScissorMode * * @return {undefined} */ -function EndVrStereoMode () { +function EndVrStereoMode() { return r.BindEndVrStereoMode() } raylib.EndVrStereoMode = EndVrStereoMode @@ -882,7 +882,7 @@ raylib.EndVrStereoMode = EndVrStereoMode * * @return {Shader} The resulting Shader. */ -function LoadShader (vsFileName, fsFileName) { +function LoadShader(vsFileName, fsFileName) { return r.BindLoadShader( vsFileName, fsFileName @@ -898,7 +898,7 @@ raylib.LoadShader = LoadShader * * @return {Shader} The resulting Shader. */ -function LoadShaderFromMemory (vsCode, fsCode) { +function LoadShaderFromMemory(vsCode, fsCode) { return r.BindLoadShaderFromMemory( vsCode, fsCode @@ -913,7 +913,7 @@ raylib.LoadShaderFromMemory = LoadShaderFromMemory * * @return {boolean} The resulting bool. */ -function IsShaderReady (shader) { +function IsShaderReady(shader) { return r.BindIsShaderReady( shader.id, shader.locs @@ -929,7 +929,7 @@ raylib.IsShaderReady = IsShaderReady * * @return {number} The resulting int. */ -function GetShaderLocation (shader, uniformName) { +function GetShaderLocation(shader, uniformName) { return r.BindGetShaderLocation( shader.id, shader.locs, @@ -946,7 +946,7 @@ raylib.GetShaderLocation = GetShaderLocation * * @return {number} The resulting int. */ -function GetShaderLocationAttrib (shader, attribName) { +function GetShaderLocationAttrib(shader, attribName) { return r.BindGetShaderLocationAttrib( shader.id, shader.locs, @@ -964,7 +964,7 @@ raylib.GetShaderLocationAttrib = GetShaderLocationAttrib * * @return {undefined} */ -function SetShaderValueMatrix (shader, locIndex, mat) { +function SetShaderValueMatrix(shader, locIndex, mat) { return r.BindSetShaderValueMatrix( shader.id, shader.locs, @@ -998,7 +998,7 @@ raylib.SetShaderValueMatrix = SetShaderValueMatrix * * @return {undefined} */ -function SetShaderValueTexture (shader, locIndex, texture) { +function SetShaderValueTexture(shader, locIndex, texture) { return r.BindSetShaderValueTexture( shader.id, shader.locs, @@ -1019,7 +1019,7 @@ raylib.SetShaderValueTexture = SetShaderValueTexture * * @return {undefined} */ -function UnloadShader (shader) { +function UnloadShader(shader) { return r.BindUnloadShader( shader.id, shader.locs @@ -1035,7 +1035,7 @@ raylib.UnloadShader = UnloadShader * * @return {Ray} The resulting Ray. */ -function GetMouseRay (mousePosition, camera) { +function GetMouseRay(mousePosition, camera) { return r.BindGetMouseRay( mousePosition.x, mousePosition.y, @@ -1061,7 +1061,7 @@ raylib.GetMouseRay = GetMouseRay * * @return {Matrix} The resulting Matrix. */ -function GetCameraMatrix (camera) { +function GetCameraMatrix(camera) { return r.BindGetCameraMatrix( camera.position.x, camera.position.y, @@ -1085,7 +1085,7 @@ raylib.GetCameraMatrix = GetCameraMatrix * * @return {Matrix} The resulting Matrix. */ -function GetCameraMatrix2D (camera) { +function GetCameraMatrix2D(camera) { return r.BindGetCameraMatrix2D( camera.offset.x, camera.offset.y, @@ -1105,7 +1105,7 @@ raylib.GetCameraMatrix2D = GetCameraMatrix2D * * @return {Vector2} The resulting Vector2. */ -function GetWorldToScreen (position, camera) { +function GetWorldToScreen(position, camera) { return r.BindGetWorldToScreen( position.x, position.y, @@ -1133,7 +1133,7 @@ raylib.GetWorldToScreen = GetWorldToScreen * * @return {Vector2} The resulting Vector2. */ -function GetScreenToWorld2D (position, camera) { +function GetScreenToWorld2D(position, camera) { return r.BindGetScreenToWorld2D( position.x, position.y, @@ -1157,7 +1157,7 @@ raylib.GetScreenToWorld2D = GetScreenToWorld2D * * @return {Vector2} The resulting Vector2. */ -function GetWorldToScreenEx (position, camera, width, height) { +function GetWorldToScreenEx(position, camera, width, height) { return r.BindGetWorldToScreenEx( position.x, position.y, @@ -1187,7 +1187,7 @@ raylib.GetWorldToScreenEx = GetWorldToScreenEx * * @return {Vector2} The resulting Vector2. */ -function GetWorldToScreen2D (position, camera) { +function GetWorldToScreen2D(position, camera) { return r.BindGetWorldToScreen2D( position.x, position.y, @@ -1208,7 +1208,7 @@ raylib.GetWorldToScreen2D = GetWorldToScreen2D * * @return {undefined} */ -function SetTargetFPS (fps) { +function SetTargetFPS(fps) { return r.BindSetTargetFPS( fps ) @@ -1220,7 +1220,7 @@ raylib.SetTargetFPS = SetTargetFPS * * @return {number} The resulting int. */ -function GetFPS () { +function GetFPS() { return r.BindGetFPS() } raylib.GetFPS = GetFPS @@ -1230,7 +1230,7 @@ raylib.GetFPS = GetFPS * * @return {number} The resulting float. */ -function GetFrameTime () { +function GetFrameTime() { return r.BindGetFrameTime() } raylib.GetFrameTime = GetFrameTime @@ -1240,7 +1240,7 @@ raylib.GetFrameTime = GetFrameTime * * @return {number} The resulting double. */ -function GetTime () { +function GetTime() { return r.BindGetTime() } raylib.GetTime = GetTime @@ -1253,7 +1253,7 @@ raylib.GetTime = GetTime * * @return {number} The resulting int. */ -function GetRandomValue (min, max) { +function GetRandomValue(min, max) { return r.BindGetRandomValue( min, max @@ -1268,7 +1268,7 @@ raylib.GetRandomValue = GetRandomValue * * @return {undefined} */ -function SetRandomSeed (seed) { +function SetRandomSeed(seed) { return r.BindSetRandomSeed( seed ) @@ -1282,7 +1282,7 @@ raylib.SetRandomSeed = SetRandomSeed * * @return {undefined} */ -function TakeScreenshot (fileName) { +function TakeScreenshot(fileName) { return r.BindTakeScreenshot( fileName ) @@ -1296,7 +1296,7 @@ raylib.TakeScreenshot = TakeScreenshot * * @return {undefined} */ -function SetConfigFlags (flags) { +function SetConfigFlags(flags) { return r.BindSetConfigFlags( flags ) @@ -1310,7 +1310,7 @@ raylib.SetConfigFlags = SetConfigFlags * * @return {undefined} */ -function SetTraceLogLevel (logLevel) { +function SetTraceLogLevel(logLevel) { return r.BindSetTraceLogLevel( logLevel ) @@ -1324,7 +1324,7 @@ raylib.SetTraceLogLevel = SetTraceLogLevel * * @return {number} The resulting void *. */ -function MemAlloc (size) { +function MemAlloc(size) { return r.BindMemAlloc( size ) @@ -1339,7 +1339,7 @@ raylib.MemAlloc = MemAlloc * * @return {number} The resulting void *. */ -function MemRealloc (ptr, size) { +function MemRealloc(ptr, size) { return r.BindMemRealloc( ptr, size @@ -1354,7 +1354,7 @@ raylib.MemRealloc = MemRealloc * * @return {undefined} */ -function MemFree (ptr) { +function MemFree(ptr) { return r.BindMemFree( ptr ) @@ -1368,7 +1368,7 @@ raylib.MemFree = MemFree * * @return {undefined} */ -function OpenURL (url) { +function OpenURL(url) { return r.BindOpenURL( url ) @@ -1383,7 +1383,7 @@ raylib.OpenURL = OpenURL * * @return {Buffer} The resulting unsigned char *. */ -function LoadFileData (fileName, bytesRead) { +function LoadFileData(fileName, bytesRead) { return r.BindLoadFileData( fileName, bytesRead @@ -1398,7 +1398,7 @@ raylib.LoadFileData = LoadFileData * * @return {undefined} */ -function UnloadFileData (data) { +function UnloadFileData(data) { return r.BindUnloadFileData( data ) @@ -1414,7 +1414,7 @@ raylib.UnloadFileData = UnloadFileData * * @return {boolean} The resulting bool. */ -function SaveFileData (fileName, data, bytesToWrite) { +function SaveFileData(fileName, data, bytesToWrite) { return r.BindSaveFileData( fileName, data, @@ -1432,7 +1432,7 @@ raylib.SaveFileData = SaveFileData * * @return {boolean} The resulting bool. */ -function ExportDataAsCode (data, size, fileName) { +function ExportDataAsCode(data, size, fileName) { return r.BindExportDataAsCode( data, size, @@ -1448,7 +1448,7 @@ raylib.ExportDataAsCode = ExportDataAsCode * * @return {string} The resulting char *. */ -function LoadFileText (fileName) { +function LoadFileText(fileName) { return r.BindLoadFileText( fileName ) @@ -1462,7 +1462,7 @@ raylib.LoadFileText = LoadFileText * * @return {undefined} */ -function UnloadFileText (text) { +function UnloadFileText(text) { return r.BindUnloadFileText( text ) @@ -1477,7 +1477,7 @@ raylib.UnloadFileText = UnloadFileText * * @return {boolean} The resulting bool. */ -function SaveFileText (fileName, text) { +function SaveFileText(fileName, text) { return r.BindSaveFileText( fileName, text @@ -1492,7 +1492,7 @@ raylib.SaveFileText = SaveFileText * * @return {boolean} The resulting bool. */ -function FileExists (fileName) { +function FileExists(fileName) { return r.BindFileExists( fileName ) @@ -1506,7 +1506,7 @@ raylib.FileExists = FileExists * * @return {boolean} The resulting bool. */ -function DirectoryExists (dirPath) { +function DirectoryExists(dirPath) { return r.BindDirectoryExists( dirPath ) @@ -1521,7 +1521,7 @@ raylib.DirectoryExists = DirectoryExists * * @return {boolean} The resulting bool. */ -function IsFileExtension (fileName, ext) { +function IsFileExtension(fileName, ext) { return r.BindIsFileExtension( fileName, ext @@ -1536,7 +1536,7 @@ raylib.IsFileExtension = IsFileExtension * * @return {number} The resulting int. */ -function GetFileLength (fileName) { +function GetFileLength(fileName) { return r.BindGetFileLength( fileName ) @@ -1550,7 +1550,7 @@ raylib.GetFileLength = GetFileLength * * @return {string} The resulting const char *. */ -function GetFileExtension (fileName) { +function GetFileExtension(fileName) { return r.BindGetFileExtension( fileName ) @@ -1564,7 +1564,7 @@ raylib.GetFileExtension = GetFileExtension * * @return {string} The resulting const char *. */ -function GetFileName (filePath) { +function GetFileName(filePath) { return r.BindGetFileName( filePath ) @@ -1578,7 +1578,7 @@ raylib.GetFileName = GetFileName * * @return {string} The resulting const char *. */ -function GetFileNameWithoutExt (filePath) { +function GetFileNameWithoutExt(filePath) { return r.BindGetFileNameWithoutExt( filePath ) @@ -1592,7 +1592,7 @@ raylib.GetFileNameWithoutExt = GetFileNameWithoutExt * * @return {string} The resulting const char *. */ -function GetDirectoryPath (filePath) { +function GetDirectoryPath(filePath) { return r.BindGetDirectoryPath( filePath ) @@ -1606,7 +1606,7 @@ raylib.GetDirectoryPath = GetDirectoryPath * * @return {string} The resulting const char *. */ -function GetPrevDirectoryPath (dirPath) { +function GetPrevDirectoryPath(dirPath) { return r.BindGetPrevDirectoryPath( dirPath ) @@ -1618,7 +1618,7 @@ raylib.GetPrevDirectoryPath = GetPrevDirectoryPath * * @return {string} The resulting const char *. */ -function GetWorkingDirectory () { +function GetWorkingDirectory() { return r.BindGetWorkingDirectory() } raylib.GetWorkingDirectory = GetWorkingDirectory @@ -1628,7 +1628,7 @@ raylib.GetWorkingDirectory = GetWorkingDirectory * * @return {string} The resulting const char *. */ -function GetApplicationDirectory () { +function GetApplicationDirectory() { return r.BindGetApplicationDirectory() } raylib.GetApplicationDirectory = GetApplicationDirectory @@ -1640,7 +1640,7 @@ raylib.GetApplicationDirectory = GetApplicationDirectory * * @return {boolean} The resulting bool. */ -function ChangeDirectory (dir) { +function ChangeDirectory(dir) { return r.BindChangeDirectory( dir ) @@ -1654,7 +1654,7 @@ raylib.ChangeDirectory = ChangeDirectory * * @return {boolean} The resulting bool. */ -function IsPathFile (path) { +function IsPathFile(path) { return r.BindIsPathFile( path ) @@ -1668,7 +1668,7 @@ raylib.IsPathFile = IsPathFile * * @return {FilePathList} The resulting FilePathList. */ -function LoadDirectoryFiles (dirPath) { +function LoadDirectoryFiles(dirPath) { return r.BindLoadDirectoryFiles( dirPath ) @@ -1684,7 +1684,7 @@ raylib.LoadDirectoryFiles = LoadDirectoryFiles * * @return {FilePathList} The resulting FilePathList. */ -function LoadDirectoryFilesEx (basePath, filter, scanSubdirs) { +function LoadDirectoryFilesEx(basePath, filter, scanSubdirs) { return r.BindLoadDirectoryFilesEx( basePath, filter, @@ -1700,7 +1700,7 @@ raylib.LoadDirectoryFilesEx = LoadDirectoryFilesEx * * @return {undefined} */ -function UnloadDirectoryFiles (files) { +function UnloadDirectoryFiles(files) { return r.BindUnloadDirectoryFiles( files.capacity, files.count, @@ -1714,7 +1714,7 @@ raylib.UnloadDirectoryFiles = UnloadDirectoryFiles * * @return {boolean} The resulting bool. */ -function IsFileDropped () { +function IsFileDropped() { return r.BindIsFileDropped() } raylib.IsFileDropped = IsFileDropped @@ -1724,7 +1724,7 @@ raylib.IsFileDropped = IsFileDropped * * @return {FilePathList} The resulting FilePathList. */ -function LoadDroppedFiles () { +function LoadDroppedFiles() { return r.BindLoadDroppedFiles() } raylib.LoadDroppedFiles = LoadDroppedFiles @@ -1736,7 +1736,7 @@ raylib.LoadDroppedFiles = LoadDroppedFiles * * @return {undefined} */ -function UnloadDroppedFiles (files) { +function UnloadDroppedFiles(files) { return r.BindUnloadDroppedFiles( files.capacity, files.count, @@ -1752,7 +1752,7 @@ raylib.UnloadDroppedFiles = UnloadDroppedFiles * * @return {number} The resulting long. */ -function GetFileModTime (fileName) { +function GetFileModTime(fileName) { return r.BindGetFileModTime( fileName ) @@ -1768,7 +1768,7 @@ raylib.GetFileModTime = GetFileModTime * * @return {Buffer} The resulting unsigned char *. */ -function CompressData (data, dataSize, compDataSize) { +function CompressData(data, dataSize, compDataSize) { return r.BindCompressData( data, dataSize, @@ -1786,7 +1786,7 @@ raylib.CompressData = CompressData * * @return {Buffer} The resulting unsigned char *. */ -function DecompressData (compData, compDataSize, dataSize) { +function DecompressData(compData, compDataSize, dataSize) { return r.BindDecompressData( compData, compDataSize, @@ -1804,7 +1804,7 @@ raylib.DecompressData = DecompressData * * @return {string} The resulting char *. */ -function EncodeDataBase64 (data, dataSize, outputSize) { +function EncodeDataBase64(data, dataSize, outputSize) { return r.BindEncodeDataBase64( data, dataSize, @@ -1821,7 +1821,7 @@ raylib.EncodeDataBase64 = EncodeDataBase64 * * @return {Buffer} The resulting unsigned char *. */ -function DecodeDataBase64 (data, outputSize) { +function DecodeDataBase64(data, outputSize) { return r.BindDecodeDataBase64( data, outputSize @@ -1836,7 +1836,7 @@ raylib.DecodeDataBase64 = DecodeDataBase64 * * @return {boolean} The resulting bool. */ -function IsKeyPressed (key) { +function IsKeyPressed(key) { return r.BindIsKeyPressed( key ) @@ -1850,7 +1850,7 @@ raylib.IsKeyPressed = IsKeyPressed * * @return {boolean} The resulting bool. */ -function IsKeyDown (key) { +function IsKeyDown(key) { return r.BindIsKeyDown( key ) @@ -1864,7 +1864,7 @@ raylib.IsKeyDown = IsKeyDown * * @return {boolean} The resulting bool. */ -function IsKeyReleased (key) { +function IsKeyReleased(key) { return r.BindIsKeyReleased( key ) @@ -1878,7 +1878,7 @@ raylib.IsKeyReleased = IsKeyReleased * * @return {boolean} The resulting bool. */ -function IsKeyUp (key) { +function IsKeyUp(key) { return r.BindIsKeyUp( key ) @@ -1892,7 +1892,7 @@ raylib.IsKeyUp = IsKeyUp * * @return {undefined} */ -function SetExitKey (key) { +function SetExitKey(key) { return r.BindSetExitKey( key ) @@ -1904,7 +1904,7 @@ raylib.SetExitKey = SetExitKey * * @return {number} The resulting int. */ -function GetKeyPressed () { +function GetKeyPressed() { return r.BindGetKeyPressed() } raylib.GetKeyPressed = GetKeyPressed @@ -1914,7 +1914,7 @@ raylib.GetKeyPressed = GetKeyPressed * * @return {number} The resulting int. */ -function GetCharPressed () { +function GetCharPressed() { return r.BindGetCharPressed() } raylib.GetCharPressed = GetCharPressed @@ -1926,7 +1926,7 @@ raylib.GetCharPressed = GetCharPressed * * @return {boolean} The resulting bool. */ -function IsGamepadAvailable (gamepad) { +function IsGamepadAvailable(gamepad) { return r.BindIsGamepadAvailable( gamepad ) @@ -1940,7 +1940,7 @@ raylib.IsGamepadAvailable = IsGamepadAvailable * * @return {string} The resulting const char *. */ -function GetGamepadName (gamepad) { +function GetGamepadName(gamepad) { return r.BindGetGamepadName( gamepad ) @@ -1955,7 +1955,7 @@ raylib.GetGamepadName = GetGamepadName * * @return {boolean} The resulting bool. */ -function IsGamepadButtonPressed (gamepad, button) { +function IsGamepadButtonPressed(gamepad, button) { return r.BindIsGamepadButtonPressed( gamepad, button @@ -1971,7 +1971,7 @@ raylib.IsGamepadButtonPressed = IsGamepadButtonPressed * * @return {boolean} The resulting bool. */ -function IsGamepadButtonDown (gamepad, button) { +function IsGamepadButtonDown(gamepad, button) { return r.BindIsGamepadButtonDown( gamepad, button @@ -1987,7 +1987,7 @@ raylib.IsGamepadButtonDown = IsGamepadButtonDown * * @return {boolean} The resulting bool. */ -function IsGamepadButtonReleased (gamepad, button) { +function IsGamepadButtonReleased(gamepad, button) { return r.BindIsGamepadButtonReleased( gamepad, button @@ -2003,7 +2003,7 @@ raylib.IsGamepadButtonReleased = IsGamepadButtonReleased * * @return {boolean} The resulting bool. */ -function IsGamepadButtonUp (gamepad, button) { +function IsGamepadButtonUp(gamepad, button) { return r.BindIsGamepadButtonUp( gamepad, button @@ -2016,7 +2016,7 @@ raylib.IsGamepadButtonUp = IsGamepadButtonUp * * @return {number} The resulting int. */ -function GetGamepadButtonPressed () { +function GetGamepadButtonPressed() { return r.BindGetGamepadButtonPressed() } raylib.GetGamepadButtonPressed = GetGamepadButtonPressed @@ -2028,7 +2028,7 @@ raylib.GetGamepadButtonPressed = GetGamepadButtonPressed * * @return {number} The resulting int. */ -function GetGamepadAxisCount (gamepad) { +function GetGamepadAxisCount(gamepad) { return r.BindGetGamepadAxisCount( gamepad ) @@ -2043,7 +2043,7 @@ raylib.GetGamepadAxisCount = GetGamepadAxisCount * * @return {number} The resulting float. */ -function GetGamepadAxisMovement (gamepad, axis) { +function GetGamepadAxisMovement(gamepad, axis) { return r.BindGetGamepadAxisMovement( gamepad, axis @@ -2058,7 +2058,7 @@ raylib.GetGamepadAxisMovement = GetGamepadAxisMovement * * @return {number} The resulting int. */ -function SetGamepadMappings (mappings) { +function SetGamepadMappings(mappings) { return r.BindSetGamepadMappings( mappings ) @@ -2072,7 +2072,7 @@ raylib.SetGamepadMappings = SetGamepadMappings * * @return {boolean} The resulting bool. */ -function IsMouseButtonPressed (button) { +function IsMouseButtonPressed(button) { return r.BindIsMouseButtonPressed( button ) @@ -2086,7 +2086,7 @@ raylib.IsMouseButtonPressed = IsMouseButtonPressed * * @return {boolean} The resulting bool. */ -function IsMouseButtonDown (button) { +function IsMouseButtonDown(button) { return r.BindIsMouseButtonDown( button ) @@ -2100,7 +2100,7 @@ raylib.IsMouseButtonDown = IsMouseButtonDown * * @return {boolean} The resulting bool. */ -function IsMouseButtonReleased (button) { +function IsMouseButtonReleased(button) { return r.BindIsMouseButtonReleased( button ) @@ -2114,7 +2114,7 @@ raylib.IsMouseButtonReleased = IsMouseButtonReleased * * @return {boolean} The resulting bool. */ -function IsMouseButtonUp (button) { +function IsMouseButtonUp(button) { return r.BindIsMouseButtonUp( button ) @@ -2126,7 +2126,7 @@ raylib.IsMouseButtonUp = IsMouseButtonUp * * @return {number} The resulting int. */ -function GetMouseX () { +function GetMouseX() { return r.BindGetMouseX() } raylib.GetMouseX = GetMouseX @@ -2136,7 +2136,7 @@ raylib.GetMouseX = GetMouseX * * @return {number} The resulting int. */ -function GetMouseY () { +function GetMouseY() { return r.BindGetMouseY() } raylib.GetMouseY = GetMouseY @@ -2146,7 +2146,7 @@ raylib.GetMouseY = GetMouseY * * @return {Vector2} The resulting Vector2. */ -function GetMousePosition () { +function GetMousePosition() { return r.BindGetMousePosition() } raylib.GetMousePosition = GetMousePosition @@ -2156,7 +2156,7 @@ raylib.GetMousePosition = GetMousePosition * * @return {Vector2} The resulting Vector2. */ -function GetMouseDelta () { +function GetMouseDelta() { return r.BindGetMouseDelta() } raylib.GetMouseDelta = GetMouseDelta @@ -2169,7 +2169,7 @@ raylib.GetMouseDelta = GetMouseDelta * * @return {undefined} */ -function SetMousePosition (x, y) { +function SetMousePosition(x, y) { return r.BindSetMousePosition( x, y @@ -2185,7 +2185,7 @@ raylib.SetMousePosition = SetMousePosition * * @return {undefined} */ -function SetMouseOffset (offsetX, offsetY) { +function SetMouseOffset(offsetX, offsetY) { return r.BindSetMouseOffset( offsetX, offsetY @@ -2201,7 +2201,7 @@ raylib.SetMouseOffset = SetMouseOffset * * @return {undefined} */ -function SetMouseScale (scaleX, scaleY) { +function SetMouseScale(scaleX, scaleY) { return r.BindSetMouseScale( scaleX, scaleY @@ -2214,7 +2214,7 @@ raylib.SetMouseScale = SetMouseScale * * @return {number} The resulting float. */ -function GetMouseWheelMove () { +function GetMouseWheelMove() { return r.BindGetMouseWheelMove() } raylib.GetMouseWheelMove = GetMouseWheelMove @@ -2224,7 +2224,7 @@ raylib.GetMouseWheelMove = GetMouseWheelMove * * @return {Vector2} The resulting Vector2. */ -function GetMouseWheelMoveV () { +function GetMouseWheelMoveV() { return r.BindGetMouseWheelMoveV() } raylib.GetMouseWheelMoveV = GetMouseWheelMoveV @@ -2236,7 +2236,7 @@ raylib.GetMouseWheelMoveV = GetMouseWheelMoveV * * @return {undefined} */ -function SetMouseCursor (cursor) { +function SetMouseCursor(cursor) { return r.BindSetMouseCursor( cursor ) @@ -2248,7 +2248,7 @@ raylib.SetMouseCursor = SetMouseCursor * * @return {number} The resulting int. */ -function GetTouchX () { +function GetTouchX() { return r.BindGetTouchX() } raylib.GetTouchX = GetTouchX @@ -2258,7 +2258,7 @@ raylib.GetTouchX = GetTouchX * * @return {number} The resulting int. */ -function GetTouchY () { +function GetTouchY() { return r.BindGetTouchY() } raylib.GetTouchY = GetTouchY @@ -2270,7 +2270,7 @@ raylib.GetTouchY = GetTouchY * * @return {Vector2} The resulting Vector2. */ -function GetTouchPosition (index) { +function GetTouchPosition(index) { return r.BindGetTouchPosition( index ) @@ -2284,7 +2284,7 @@ raylib.GetTouchPosition = GetTouchPosition * * @return {number} The resulting int. */ -function GetTouchPointId (index) { +function GetTouchPointId(index) { return r.BindGetTouchPointId( index ) @@ -2296,7 +2296,7 @@ raylib.GetTouchPointId = GetTouchPointId * * @return {number} The resulting int. */ -function GetTouchPointCount () { +function GetTouchPointCount() { return r.BindGetTouchPointCount() } raylib.GetTouchPointCount = GetTouchPointCount @@ -2308,7 +2308,7 @@ raylib.GetTouchPointCount = GetTouchPointCount * * @return {undefined} */ -function SetGesturesEnabled (flags) { +function SetGesturesEnabled(flags) { return r.BindSetGesturesEnabled( flags ) @@ -2322,7 +2322,7 @@ raylib.SetGesturesEnabled = SetGesturesEnabled * * @return {boolean} The resulting bool. */ -function IsGestureDetected (gesture) { +function IsGestureDetected(gesture) { return r.BindIsGestureDetected( gesture ) @@ -2334,7 +2334,7 @@ raylib.IsGestureDetected = IsGestureDetected * * @return {number} The resulting int. */ -function GetGestureDetected () { +function GetGestureDetected() { return r.BindGetGestureDetected() } raylib.GetGestureDetected = GetGestureDetected @@ -2344,7 +2344,7 @@ raylib.GetGestureDetected = GetGestureDetected * * @return {number} The resulting float. */ -function GetGestureHoldDuration () { +function GetGestureHoldDuration() { return r.BindGetGestureHoldDuration() } raylib.GetGestureHoldDuration = GetGestureHoldDuration @@ -2354,7 +2354,7 @@ raylib.GetGestureHoldDuration = GetGestureHoldDuration * * @return {Vector2} The resulting Vector2. */ -function GetGestureDragVector () { +function GetGestureDragVector() { return r.BindGetGestureDragVector() } raylib.GetGestureDragVector = GetGestureDragVector @@ -2364,7 +2364,7 @@ raylib.GetGestureDragVector = GetGestureDragVector * * @return {number} The resulting float. */ -function GetGestureDragAngle () { +function GetGestureDragAngle() { return r.BindGetGestureDragAngle() } raylib.GetGestureDragAngle = GetGestureDragAngle @@ -2374,7 +2374,7 @@ raylib.GetGestureDragAngle = GetGestureDragAngle * * @return {Vector2} The resulting Vector2. */ -function GetGesturePinchVector () { +function GetGesturePinchVector() { return r.BindGetGesturePinchVector() } raylib.GetGesturePinchVector = GetGesturePinchVector @@ -2384,7 +2384,7 @@ raylib.GetGesturePinchVector = GetGesturePinchVector * * @return {number} The resulting float. */ -function GetGesturePinchAngle () { +function GetGesturePinchAngle() { return r.BindGetGesturePinchAngle() } raylib.GetGesturePinchAngle = GetGesturePinchAngle @@ -2399,7 +2399,7 @@ raylib.GetGesturePinchAngle = GetGesturePinchAngle * * @return {undefined} */ -function UpdateCameraPro (camera, movement, rotation, zoom) { +function UpdateCameraPro(camera, movement, rotation, zoom) { return r.BindUpdateCameraPro( camera, movement.x, @@ -2421,7 +2421,7 @@ raylib.UpdateCameraPro = UpdateCameraPro * * @return {undefined} */ -function SetShapesTexture (texture, source) { +function SetShapesTexture(texture, source) { return r.BindSetShapesTexture( texture.id, texture.width, @@ -2445,7 +2445,7 @@ raylib.SetShapesTexture = SetShapesTexture * * @return {undefined} */ -function DrawPixel (posX, posY, color) { +function DrawPixel(posX, posY, color) { return r.BindDrawPixel( posX, posY, @@ -2465,7 +2465,7 @@ raylib.DrawPixel = DrawPixel * * @return {undefined} */ -function DrawPixelV (position, color) { +function DrawPixelV(position, color) { return r.BindDrawPixelV( position.x, position.y, @@ -2488,7 +2488,7 @@ raylib.DrawPixelV = DrawPixelV * * @return {undefined} */ -function DrawLine (startPosX, startPosY, endPosX, endPosY, color) { +function DrawLine(startPosX, startPosY, endPosX, endPosY, color) { return r.BindDrawLine( startPosX, startPosY, @@ -2511,7 +2511,7 @@ raylib.DrawLine = DrawLine * * @return {undefined} */ -function DrawLineV (startPos, endPos, color) { +function DrawLineV(startPos, endPos, color) { return r.BindDrawLineV( startPos.x, startPos.y, @@ -2535,7 +2535,7 @@ raylib.DrawLineV = DrawLineV * * @return {undefined} */ -function DrawLineEx (startPos, endPos, thick, color) { +function DrawLineEx(startPos, endPos, thick, color) { return r.BindDrawLineEx( startPos.x, startPos.y, @@ -2560,7 +2560,7 @@ raylib.DrawLineEx = DrawLineEx * * @return {undefined} */ -function DrawLineBezier (startPos, endPos, thick, color) { +function DrawLineBezier(startPos, endPos, thick, color) { return r.BindDrawLineBezier( startPos.x, startPos.y, @@ -2586,7 +2586,7 @@ raylib.DrawLineBezier = DrawLineBezier * * @return {undefined} */ -function DrawLineBezierQuad (startPos, endPos, controlPos, thick, color) { +function DrawLineBezierQuad(startPos, endPos, controlPos, thick, color) { return r.BindDrawLineBezierQuad( startPos.x, startPos.y, @@ -2615,7 +2615,7 @@ raylib.DrawLineBezierQuad = DrawLineBezierQuad * * @return {undefined} */ -function DrawLineBezierCubic (startPos, endPos, startControlPos, endControlPos, thick, color) { +function DrawLineBezierCubic(startPos, endPos, startControlPos, endControlPos, thick, color) { return r.BindDrawLineBezierCubic( startPos.x, startPos.y, @@ -2643,7 +2643,7 @@ raylib.DrawLineBezierCubic = DrawLineBezierCubic * * @return {undefined} */ -function DrawLineStrip (points, pointCount, color) { +function DrawLineStrip(points, pointCount, color) { return r.BindDrawLineStrip( points, pointCount, @@ -2665,7 +2665,7 @@ raylib.DrawLineStrip = DrawLineStrip * * @return {undefined} */ -function DrawCircle (centerX, centerY, radius, color) { +function DrawCircle(centerX, centerY, radius, color) { return r.BindDrawCircle( centerX, centerY, @@ -2690,7 +2690,7 @@ raylib.DrawCircle = DrawCircle * * @return {undefined} */ -function DrawCircleSector (center, radius, startAngle, endAngle, segments, color) { +function DrawCircleSector(center, radius, startAngle, endAngle, segments, color) { return r.BindDrawCircleSector( center.x, center.y, @@ -2718,7 +2718,7 @@ raylib.DrawCircleSector = DrawCircleSector * * @return {undefined} */ -function DrawCircleSectorLines (center, radius, startAngle, endAngle, segments, color) { +function DrawCircleSectorLines(center, radius, startAngle, endAngle, segments, color) { return r.BindDrawCircleSectorLines( center.x, center.y, @@ -2745,7 +2745,7 @@ raylib.DrawCircleSectorLines = DrawCircleSectorLines * * @return {undefined} */ -function DrawCircleGradient (centerX, centerY, radius, color1, color2) { +function DrawCircleGradient(centerX, centerY, radius, color1, color2) { return r.BindDrawCircleGradient( centerX, centerY, @@ -2771,7 +2771,7 @@ raylib.DrawCircleGradient = DrawCircleGradient * * @return {undefined} */ -function DrawCircleV (center, radius, color) { +function DrawCircleV(center, radius, color) { return r.BindDrawCircleV( center.x, center.y, @@ -2794,7 +2794,7 @@ raylib.DrawCircleV = DrawCircleV * * @return {undefined} */ -function DrawCircleLines (centerX, centerY, radius, color) { +function DrawCircleLines(centerX, centerY, radius, color) { return r.BindDrawCircleLines( centerX, centerY, @@ -2818,7 +2818,7 @@ raylib.DrawCircleLines = DrawCircleLines * * @return {undefined} */ -function DrawEllipse (centerX, centerY, radiusH, radiusV, color) { +function DrawEllipse(centerX, centerY, radiusH, radiusV, color) { return r.BindDrawEllipse( centerX, centerY, @@ -2843,7 +2843,7 @@ raylib.DrawEllipse = DrawEllipse * * @return {undefined} */ -function DrawEllipseLines (centerX, centerY, radiusH, radiusV, color) { +function DrawEllipseLines(centerX, centerY, radiusH, radiusV, color) { return r.BindDrawEllipseLines( centerX, centerY, @@ -2870,7 +2870,7 @@ raylib.DrawEllipseLines = DrawEllipseLines * * @return {undefined} */ -function DrawRing (center, innerRadius, outerRadius, startAngle, endAngle, segments, color) { +function DrawRing(center, innerRadius, outerRadius, startAngle, endAngle, segments, color) { return r.BindDrawRing( center.x, center.y, @@ -2900,7 +2900,7 @@ raylib.DrawRing = DrawRing * * @return {undefined} */ -function DrawRingLines (center, innerRadius, outerRadius, startAngle, endAngle, segments, color) { +function DrawRingLines(center, innerRadius, outerRadius, startAngle, endAngle, segments, color) { return r.BindDrawRingLines( center.x, center.y, @@ -2928,7 +2928,7 @@ raylib.DrawRingLines = DrawRingLines * * @return {undefined} */ -function DrawRectangle (posX, posY, width, height, color) { +function DrawRectangle(posX, posY, width, height, color) { return r.BindDrawRectangle( posX, posY, @@ -2951,7 +2951,7 @@ raylib.DrawRectangle = DrawRectangle * * @return {undefined} */ -function DrawRectangleV (position, size, color) { +function DrawRectangleV(position, size, color) { return r.BindDrawRectangleV( position.x, position.y, @@ -2973,7 +2973,7 @@ raylib.DrawRectangleV = DrawRectangleV * * @return {undefined} */ -function DrawRectangleRec (rec, color) { +function DrawRectangleRec(rec, color) { return r.BindDrawRectangleRec( rec.x, rec.y, @@ -2997,7 +2997,7 @@ raylib.DrawRectangleRec = DrawRectangleRec * * @return {undefined} */ -function DrawRectanglePro (rec, origin, rotation, color) { +function DrawRectanglePro(rec, origin, rotation, color) { return r.BindDrawRectanglePro( rec.x, rec.y, @@ -3026,7 +3026,7 @@ raylib.DrawRectanglePro = DrawRectanglePro * * @return {undefined} */ -function DrawRectangleGradientV (posX, posY, width, height, color1, color2) { +function DrawRectangleGradientV(posX, posY, width, height, color1, color2) { return r.BindDrawRectangleGradientV( posX, posY, @@ -3056,7 +3056,7 @@ raylib.DrawRectangleGradientV = DrawRectangleGradientV * * @return {undefined} */ -function DrawRectangleGradientH (posX, posY, width, height, color1, color2) { +function DrawRectangleGradientH(posX, posY, width, height, color1, color2) { return r.BindDrawRectangleGradientH( posX, posY, @@ -3085,7 +3085,7 @@ raylib.DrawRectangleGradientH = DrawRectangleGradientH * * @return {undefined} */ -function DrawRectangleGradientEx (rec, col1, col2, col3, col4) { +function DrawRectangleGradientEx(rec, col1, col2, col3, col4) { return r.BindDrawRectangleGradientEx( rec.x, rec.y, @@ -3122,7 +3122,7 @@ raylib.DrawRectangleGradientEx = DrawRectangleGradientEx * * @return {undefined} */ -function DrawRectangleLines (posX, posY, width, height, color) { +function DrawRectangleLines(posX, posY, width, height, color) { return r.BindDrawRectangleLines( posX, posY, @@ -3145,7 +3145,7 @@ raylib.DrawRectangleLines = DrawRectangleLines * * @return {undefined} */ -function DrawRectangleLinesEx (rec, lineThick, color) { +function DrawRectangleLinesEx(rec, lineThick, color) { return r.BindDrawRectangleLinesEx( rec.x, rec.y, @@ -3170,7 +3170,7 @@ raylib.DrawRectangleLinesEx = DrawRectangleLinesEx * * @return {undefined} */ -function DrawRectangleRounded (rec, roundness, segments, color) { +function DrawRectangleRounded(rec, roundness, segments, color) { return r.BindDrawRectangleRounded( rec.x, rec.y, @@ -3197,7 +3197,7 @@ raylib.DrawRectangleRounded = DrawRectangleRounded * * @return {undefined} */ -function DrawRectangleRoundedLines (rec, roundness, segments, lineThick, color) { +function DrawRectangleRoundedLines(rec, roundness, segments, lineThick, color) { return r.BindDrawRectangleRoundedLines( rec.x, rec.y, @@ -3224,7 +3224,7 @@ raylib.DrawRectangleRoundedLines = DrawRectangleRoundedLines * * @return {undefined} */ -function DrawTriangle (v1, v2, v3, color) { +function DrawTriangle(v1, v2, v3, color) { return r.BindDrawTriangle( v1.x, v1.y, @@ -3250,7 +3250,7 @@ raylib.DrawTriangle = DrawTriangle * * @return {undefined} */ -function DrawTriangleLines (v1, v2, v3, color) { +function DrawTriangleLines(v1, v2, v3, color) { return r.BindDrawTriangleLines( v1.x, v1.y, @@ -3275,7 +3275,7 @@ raylib.DrawTriangleLines = DrawTriangleLines * * @return {undefined} */ -function DrawTriangleFan (points, pointCount, color) { +function DrawTriangleFan(points, pointCount, color) { return r.BindDrawTriangleFan( points, pointCount, @@ -3296,7 +3296,7 @@ raylib.DrawTriangleFan = DrawTriangleFan * * @return {undefined} */ -function DrawTriangleStrip (points, pointCount, color) { +function DrawTriangleStrip(points, pointCount, color) { return r.BindDrawTriangleStrip( points, pointCount, @@ -3319,7 +3319,7 @@ raylib.DrawTriangleStrip = DrawTriangleStrip * * @return {undefined} */ -function DrawPoly (center, sides, radius, rotation, color) { +function DrawPoly(center, sides, radius, rotation, color) { return r.BindDrawPoly( center.x, center.y, @@ -3345,7 +3345,7 @@ raylib.DrawPoly = DrawPoly * * @return {undefined} */ -function DrawPolyLines (center, sides, radius, rotation, color) { +function DrawPolyLines(center, sides, radius, rotation, color) { return r.BindDrawPolyLines( center.x, center.y, @@ -3372,7 +3372,7 @@ raylib.DrawPolyLines = DrawPolyLines * * @return {undefined} */ -function DrawPolyLinesEx (center, sides, radius, rotation, lineThick, color) { +function DrawPolyLinesEx(center, sides, radius, rotation, lineThick, color) { return r.BindDrawPolyLinesEx( center.x, center.y, @@ -3396,7 +3396,7 @@ raylib.DrawPolyLinesEx = DrawPolyLinesEx * * @return {boolean} The resulting bool. */ -function CheckCollisionRecs (rec1, rec2) { +function CheckCollisionRecs(rec1, rec2) { return r.BindCheckCollisionRecs( rec1.x, rec1.y, @@ -3420,7 +3420,7 @@ raylib.CheckCollisionRecs = CheckCollisionRecs * * @return {boolean} The resulting bool. */ -function CheckCollisionCircles (center1, radius1, center2, radius2) { +function CheckCollisionCircles(center1, radius1, center2, radius2) { return r.BindCheckCollisionCircles( center1.x, center1.y, @@ -3441,7 +3441,7 @@ raylib.CheckCollisionCircles = CheckCollisionCircles * * @return {boolean} The resulting bool. */ -function CheckCollisionCircleRec (center, radius, rec) { +function CheckCollisionCircleRec(center, radius, rec) { return r.BindCheckCollisionCircleRec( center.x, center.y, @@ -3462,7 +3462,7 @@ raylib.CheckCollisionCircleRec = CheckCollisionCircleRec * * @return {boolean} The resulting bool. */ -function CheckCollisionPointRec (point, rec) { +function CheckCollisionPointRec(point, rec) { return r.BindCheckCollisionPointRec( point.x, point.y, @@ -3483,7 +3483,7 @@ raylib.CheckCollisionPointRec = CheckCollisionPointRec * * @return {boolean} The resulting bool. */ -function CheckCollisionPointCircle (point, center, radius) { +function CheckCollisionPointCircle(point, center, radius) { return r.BindCheckCollisionPointCircle( point.x, point.y, @@ -3504,7 +3504,7 @@ raylib.CheckCollisionPointCircle = CheckCollisionPointCircle * * @return {boolean} The resulting bool. */ -function CheckCollisionPointTriangle (point, p1, p2, p3) { +function CheckCollisionPointTriangle(point, p1, p2, p3) { return r.BindCheckCollisionPointTriangle( point.x, point.y, @@ -3527,7 +3527,7 @@ raylib.CheckCollisionPointTriangle = CheckCollisionPointTriangle * * @return {boolean} The resulting bool. */ -function CheckCollisionPointPoly (point, points, pointCount) { +function CheckCollisionPointPoly(point, points, pointCount) { return r.BindCheckCollisionPointPoly( point.x, point.y, @@ -3548,7 +3548,7 @@ raylib.CheckCollisionPointPoly = CheckCollisionPointPoly * * @return {boolean} The resulting bool. */ -function CheckCollisionLines (startPos1, endPos1, startPos2, endPos2, collisionPoint) { +function CheckCollisionLines(startPos1, endPos1, startPos2, endPos2, collisionPoint) { return r.BindCheckCollisionLines( startPos1.x, startPos1.y, @@ -3573,7 +3573,7 @@ raylib.CheckCollisionLines = CheckCollisionLines * * @return {boolean} The resulting bool. */ -function CheckCollisionPointLine (point, p1, p2, threshold) { +function CheckCollisionPointLine(point, p1, p2, threshold) { return r.BindCheckCollisionPointLine( point.x, point.y, @@ -3594,7 +3594,7 @@ raylib.CheckCollisionPointLine = CheckCollisionPointLine * * @return {Rectangle} The resulting Rectangle. */ -function GetCollisionRec (rec1, rec2) { +function GetCollisionRec(rec1, rec2) { return r.BindGetCollisionRec( rec1.x, rec1.y, @@ -3615,7 +3615,7 @@ raylib.GetCollisionRec = GetCollisionRec * * @return {Image} The resulting Image. */ -function LoadImage (fileName) { +function LoadImage(fileName) { return r.BindLoadImage( fileName ) @@ -3633,7 +3633,7 @@ raylib.LoadImage = LoadImage * * @return {Image} The resulting Image. */ -function LoadImageRaw (fileName, width, height, format, headerSize) { +function LoadImageRaw(fileName, width, height, format, headerSize) { return r.BindLoadImageRaw( fileName, width, @@ -3652,7 +3652,7 @@ raylib.LoadImageRaw = LoadImageRaw * * @return {Image} The resulting Image. */ -function LoadImageAnim (fileName, frames) { +function LoadImageAnim(fileName, frames) { return r.BindLoadImageAnim( fileName, frames @@ -3669,7 +3669,7 @@ raylib.LoadImageAnim = LoadImageAnim * * @return {Image} The resulting Image. */ -function LoadImageFromMemory (fileType, fileData, dataSize) { +function LoadImageFromMemory(fileType, fileData, dataSize) { return r.BindLoadImageFromMemory( fileType, fileData, @@ -3685,7 +3685,7 @@ raylib.LoadImageFromMemory = LoadImageFromMemory * * @return {Image} The resulting Image. */ -function LoadImageFromTexture (texture) { +function LoadImageFromTexture(texture) { return r.BindLoadImageFromTexture( texture.id, texture.width, @@ -3701,7 +3701,7 @@ raylib.LoadImageFromTexture = LoadImageFromTexture * * @return {Image} The resulting Image. */ -function LoadImageFromScreen () { +function LoadImageFromScreen() { return r.BindLoadImageFromScreen() } raylib.LoadImageFromScreen = LoadImageFromScreen @@ -3713,7 +3713,7 @@ raylib.LoadImageFromScreen = LoadImageFromScreen * * @return {boolean} The resulting bool. */ -function IsImageReady (image) { +function IsImageReady(image) { return r.BindIsImageReady( image.data, image.width, @@ -3731,7 +3731,7 @@ raylib.IsImageReady = IsImageReady * * @return {undefined} */ -function UnloadImage (image) { +function UnloadImage(image) { return r.BindUnloadImage( image.data, image.width, @@ -3750,7 +3750,7 @@ raylib.UnloadImage = UnloadImage * * @return {boolean} The resulting bool. */ -function ExportImage (image, fileName) { +function ExportImage(image, fileName) { return r.BindExportImage( image.data, image.width, @@ -3770,7 +3770,7 @@ raylib.ExportImage = ExportImage * * @return {boolean} The resulting bool. */ -function ExportImageAsCode (image, fileName) { +function ExportImageAsCode(image, fileName) { return r.BindExportImageAsCode( image.data, image.width, @@ -3791,7 +3791,7 @@ raylib.ExportImageAsCode = ExportImageAsCode * * @return {Image} The resulting Image. */ -function GenImageColor (width, height, color) { +function GenImageColor(width, height, color) { return r.BindGenImageColor( width, height, @@ -3813,7 +3813,7 @@ raylib.GenImageColor = GenImageColor * * @return {Image} The resulting Image. */ -function GenImageGradientV (width, height, top, bottom) { +function GenImageGradientV(width, height, top, bottom) { return r.BindGenImageGradientV( width, height, @@ -3839,7 +3839,7 @@ raylib.GenImageGradientV = GenImageGradientV * * @return {Image} The resulting Image. */ -function GenImageGradientH (width, height, left, right) { +function GenImageGradientH(width, height, left, right) { return r.BindGenImageGradientH( width, height, @@ -3866,7 +3866,7 @@ raylib.GenImageGradientH = GenImageGradientH * * @return {Image} The resulting Image. */ -function GenImageGradientRadial (width, height, density, inner, outer) { +function GenImageGradientRadial(width, height, density, inner, outer) { return r.BindGenImageGradientRadial( width, height, @@ -3895,7 +3895,7 @@ raylib.GenImageGradientRadial = GenImageGradientRadial * * @return {Image} The resulting Image. */ -function GenImageChecked (width, height, checksX, checksY, col1, col2) { +function GenImageChecked(width, height, checksX, checksY, col1, col2) { return r.BindGenImageChecked( width, height, @@ -3922,7 +3922,7 @@ raylib.GenImageChecked = GenImageChecked * * @return {Image} The resulting Image. */ -function GenImageWhiteNoise (width, height, factor) { +function GenImageWhiteNoise(width, height, factor) { return r.BindGenImageWhiteNoise( width, height, @@ -3942,7 +3942,7 @@ raylib.GenImageWhiteNoise = GenImageWhiteNoise * * @return {Image} The resulting Image. */ -function GenImagePerlinNoise (width, height, offsetX, offsetY, scale) { +function GenImagePerlinNoise(width, height, offsetX, offsetY, scale) { return r.BindGenImagePerlinNoise( width, height, @@ -3962,7 +3962,7 @@ raylib.GenImagePerlinNoise = GenImagePerlinNoise * * @return {Image} The resulting Image. */ -function GenImageCellular (width, height, tileSize) { +function GenImageCellular(width, height, tileSize) { return r.BindGenImageCellular( width, height, @@ -3980,7 +3980,7 @@ raylib.GenImageCellular = GenImageCellular * * @return {Image} The resulting Image. */ -function GenImageText (width, height, text) { +function GenImageText(width, height, text) { return r.BindGenImageText( width, height, @@ -3996,7 +3996,7 @@ raylib.GenImageText = GenImageText * * @return {Image} The resulting Image. */ -function ImageCopy (image) { +function ImageCopy(image) { return r.BindImageCopy( image.data, image.width, @@ -4015,7 +4015,7 @@ raylib.ImageCopy = ImageCopy * * @return {Image} The resulting Image. */ -function ImageFromImage (image, rec) { +function ImageFromImage(image, rec) { return r.BindImageFromImage( image.data, image.width, @@ -4039,7 +4039,7 @@ raylib.ImageFromImage = ImageFromImage * * @return {Image} The resulting Image. */ -function ImageText (text, fontSize, color) { +function ImageText(text, fontSize, color) { return r.BindImageText( text, fontSize, @@ -4062,7 +4062,7 @@ raylib.ImageText = ImageText * * @return {Image} The resulting Image. */ -function ImageTextEx (font, text, fontSize, spacing, tint) { +function ImageTextEx(font, text, fontSize, spacing, tint) { return r.BindImageTextEx( font.baseSize, font.glyphCount, @@ -4093,7 +4093,7 @@ raylib.ImageTextEx = ImageTextEx * * @return {undefined} */ -function ImageBlurGaussian (image, blurSize) { +function ImageBlurGaussian(image, blurSize) { return r.BindImageBlurGaussian( image, blurSize @@ -4108,7 +4108,7 @@ raylib.ImageBlurGaussian = ImageBlurGaussian * * @return {number} The resulting Color *. */ -function LoadImageColors (image) { +function LoadImageColors(image) { return r.BindLoadImageColors( image.data, image.width, @@ -4128,7 +4128,7 @@ raylib.LoadImageColors = LoadImageColors * * @return {number} The resulting Color *. */ -function LoadImagePalette (image, maxPaletteSize, colorCount) { +function LoadImagePalette(image, maxPaletteSize, colorCount) { return r.BindLoadImagePalette( image.data, image.width, @@ -4148,7 +4148,7 @@ raylib.LoadImagePalette = LoadImagePalette * * @return {undefined} */ -function UnloadImageColors (colors) { +function UnloadImageColors(colors) { return r.BindUnloadImageColors( colors ) @@ -4162,7 +4162,7 @@ raylib.UnloadImageColors = UnloadImageColors * * @return {undefined} */ -function UnloadImagePalette (colors) { +function UnloadImagePalette(colors) { return r.BindUnloadImagePalette( colors ) @@ -4177,7 +4177,7 @@ raylib.UnloadImagePalette = UnloadImagePalette * * @return {Rectangle} The resulting Rectangle. */ -function GetImageAlphaBorder (image, threshold) { +function GetImageAlphaBorder(image, threshold) { return r.BindGetImageAlphaBorder( image.data, image.width, @@ -4198,7 +4198,7 @@ raylib.GetImageAlphaBorder = GetImageAlphaBorder * * @return {Color} The resulting Color. */ -function GetImageColor (image, x, y) { +function GetImageColor(image, x, y) { return r.BindGetImageColor( image.data, image.width, @@ -4222,7 +4222,7 @@ raylib.GetImageColor = GetImageColor * * @return {undefined} */ -function ImageDrawCircleLines (dst, centerX, centerY, radius, color) { +function ImageDrawCircleLines(dst, centerX, centerY, radius, color) { return r.BindImageDrawCircleLines( dst, centerX, @@ -4246,7 +4246,7 @@ raylib.ImageDrawCircleLines = ImageDrawCircleLines * * @return {undefined} */ -function ImageDrawCircleLinesV (dst, center, radius, color) { +function ImageDrawCircleLinesV(dst, center, radius, color) { return r.BindImageDrawCircleLinesV( dst, center.x, @@ -4267,7 +4267,7 @@ raylib.ImageDrawCircleLinesV = ImageDrawCircleLinesV * * @return {Texture2D} The resulting Texture2D. */ -function LoadTexture (fileName) { +function LoadTexture(fileName) { return r.BindLoadTexture( fileName ) @@ -4281,7 +4281,7 @@ raylib.LoadTexture = LoadTexture * * @return {Texture2D} The resulting Texture2D. */ -function LoadTextureFromImage (image) { +function LoadTextureFromImage(image) { return r.BindLoadTextureFromImage( image.data, image.width, @@ -4300,7 +4300,7 @@ raylib.LoadTextureFromImage = LoadTextureFromImage * * @return {TextureCubemap} The resulting TextureCubemap. */ -function LoadTextureCubemap (image, layout) { +function LoadTextureCubemap(image, layout) { return r.BindLoadTextureCubemap( image.data, image.width, @@ -4320,7 +4320,7 @@ raylib.LoadTextureCubemap = LoadTextureCubemap * * @return {RenderTexture2D} The resulting RenderTexture2D. */ -function LoadRenderTexture (width, height) { +function LoadRenderTexture(width, height) { return r.BindLoadRenderTexture( width, height @@ -4335,7 +4335,7 @@ raylib.LoadRenderTexture = LoadRenderTexture * * @return {boolean} The resulting bool. */ -function IsTextureReady (texture) { +function IsTextureReady(texture) { return r.BindIsTextureReady( texture.id, texture.width, @@ -4353,7 +4353,7 @@ raylib.IsTextureReady = IsTextureReady * * @return {undefined} */ -function UnloadTexture (texture) { +function UnloadTexture(texture) { return r.BindUnloadTexture( texture.id, texture.width, @@ -4371,7 +4371,7 @@ raylib.UnloadTexture = UnloadTexture * * @return {boolean} The resulting bool. */ -function IsRenderTextureReady (target) { +function IsRenderTextureReady(target) { return r.BindIsRenderTextureReady( target.id, target.texture.id, @@ -4395,7 +4395,7 @@ raylib.IsRenderTextureReady = IsRenderTextureReady * * @return {undefined} */ -function UnloadRenderTexture (target) { +function UnloadRenderTexture(target) { return r.BindUnloadRenderTexture( target.id, target.texture.id, @@ -4420,7 +4420,7 @@ raylib.UnloadRenderTexture = UnloadRenderTexture * * @return {undefined} */ -function UpdateTexture (texture, pixels) { +function UpdateTexture(texture, pixels) { return r.BindUpdateTexture( texture.id, texture.width, @@ -4441,7 +4441,7 @@ raylib.UpdateTexture = UpdateTexture * * @return {undefined} */ -function UpdateTextureRec (texture, rec, pixels) { +function UpdateTextureRec(texture, rec, pixels) { return r.BindUpdateTextureRec( texture.id, texture.width, @@ -4465,7 +4465,7 @@ raylib.UpdateTextureRec = UpdateTextureRec * * @return {undefined} */ -function SetTextureFilter (texture, filter) { +function SetTextureFilter(texture, filter) { return r.BindSetTextureFilter( texture.id, texture.width, @@ -4485,7 +4485,7 @@ raylib.SetTextureFilter = SetTextureFilter * * @return {undefined} */ -function SetTextureWrap (texture, wrap) { +function SetTextureWrap(texture, wrap) { return r.BindSetTextureWrap( texture.id, texture.width, @@ -4507,7 +4507,7 @@ raylib.SetTextureWrap = SetTextureWrap * * @return {undefined} */ -function DrawTexture (texture, posX, posY, tint) { +function DrawTexture(texture, posX, posY, tint) { return r.BindDrawTexture( texture.id, texture.width, @@ -4533,7 +4533,7 @@ raylib.DrawTexture = DrawTexture * * @return {undefined} */ -function DrawTextureV (texture, position, tint) { +function DrawTextureV(texture, position, tint) { return r.BindDrawTextureV( texture.id, texture.width, @@ -4561,7 +4561,7 @@ raylib.DrawTextureV = DrawTextureV * * @return {undefined} */ -function DrawTextureEx (texture, position, rotation, scale, tint) { +function DrawTextureEx(texture, position, rotation, scale, tint) { return r.BindDrawTextureEx( texture.id, texture.width, @@ -4590,7 +4590,7 @@ raylib.DrawTextureEx = DrawTextureEx * * @return {undefined} */ -function DrawTextureRec (texture, source, position, tint) { +function DrawTextureRec(texture, source, position, tint) { return r.BindDrawTextureRec( texture.id, texture.width, @@ -4623,7 +4623,7 @@ raylib.DrawTextureRec = DrawTextureRec * * @return {undefined} */ -function DrawTexturePro (texture, source, dest, origin, rotation, tint) { +function DrawTexturePro(texture, source, dest, origin, rotation, tint) { return r.BindDrawTexturePro( texture.id, texture.width, @@ -4661,7 +4661,7 @@ raylib.DrawTexturePro = DrawTexturePro * * @return {undefined} */ -function DrawTextureNPatch (texture, nPatchInfo, dest, origin, rotation, tint) { +function DrawTextureNPatch(texture, nPatchInfo, dest, origin, rotation, tint) { return r.BindDrawTextureNPatch( texture.id, texture.width, @@ -4700,7 +4700,7 @@ raylib.DrawTextureNPatch = DrawTextureNPatch * * @return {Color} The resulting Color. */ -function Fade (color, alpha) { +function Fade(color, alpha) { return r.BindFade( color.r, color.g, @@ -4718,7 +4718,7 @@ raylib.Fade = Fade * * @return {number} The resulting int. */ -function ColorToInt (color) { +function ColorToInt(color) { return r.BindColorToInt( color.r, color.g, @@ -4735,7 +4735,7 @@ raylib.ColorToInt = ColorToInt * * @return {Vector4} The resulting Vector4. */ -function ColorNormalize (color) { +function ColorNormalize(color) { return r.BindColorNormalize( color.r, color.g, @@ -4752,7 +4752,7 @@ raylib.ColorNormalize = ColorNormalize * * @return {Color} The resulting Color. */ -function ColorFromNormalized (normalized) { +function ColorFromNormalized(normalized) { return r.BindColorFromNormalized( normalized.x, normalized.y, @@ -4769,7 +4769,7 @@ raylib.ColorFromNormalized = ColorFromNormalized * * @return {Vector3} The resulting Vector3. */ -function ColorToHSV (color) { +function ColorToHSV(color) { return r.BindColorToHSV( color.r, color.g, @@ -4788,7 +4788,7 @@ raylib.ColorToHSV = ColorToHSV * * @return {Color} The resulting Color. */ -function ColorFromHSV (hue, saturation, value) { +function ColorFromHSV(hue, saturation, value) { return r.BindColorFromHSV( hue, saturation, @@ -4805,7 +4805,7 @@ raylib.ColorFromHSV = ColorFromHSV * * @return {Color} The resulting Color. */ -function ColorTint (color, tint) { +function ColorTint(color, tint) { return r.BindColorTint( color.r, color.g, @@ -4827,7 +4827,7 @@ raylib.ColorTint = ColorTint * * @return {Color} The resulting Color. */ -function ColorBrightness (color, factor) { +function ColorBrightness(color, factor) { return r.BindColorBrightness( color.r, color.g, @@ -4846,7 +4846,7 @@ raylib.ColorBrightness = ColorBrightness * * @return {Color} The resulting Color. */ -function ColorContrast (color, contrast) { +function ColorContrast(color, contrast) { return r.BindColorContrast( color.r, color.g, @@ -4865,7 +4865,7 @@ raylib.ColorContrast = ColorContrast * * @return {Color} The resulting Color. */ -function ColorAlpha (color, alpha) { +function ColorAlpha(color, alpha) { return r.BindColorAlpha( color.r, color.g, @@ -4885,7 +4885,7 @@ raylib.ColorAlpha = ColorAlpha * * @return {Color} The resulting Color. */ -function ColorAlphaBlend (dst, src, tint) { +function ColorAlphaBlend(dst, src, tint) { return r.BindColorAlphaBlend( dst.r, dst.g, @@ -4910,7 +4910,7 @@ raylib.ColorAlphaBlend = ColorAlphaBlend * * @return {Color} The resulting Color. */ -function GetColor (hexValue) { +function GetColor(hexValue) { return r.BindGetColor( hexValue ) @@ -4925,7 +4925,7 @@ raylib.GetColor = GetColor * * @return {Color} The resulting Color. */ -function GetPixelColor (srcPtr, format) { +function GetPixelColor(srcPtr, format) { return r.BindGetPixelColor( srcPtr, format @@ -4942,7 +4942,7 @@ raylib.GetPixelColor = GetPixelColor * * @return {undefined} */ -function SetPixelColor (dstPtr, color, format) { +function SetPixelColor(dstPtr, color, format) { return r.BindSetPixelColor( dstPtr, color.r, @@ -4963,7 +4963,7 @@ raylib.SetPixelColor = SetPixelColor * * @return {number} The resulting int. */ -function GetPixelDataSize (width, height, format) { +function GetPixelDataSize(width, height, format) { return r.BindGetPixelDataSize( width, height, @@ -4977,7 +4977,7 @@ raylib.GetPixelDataSize = GetPixelDataSize * * @return {Font} The resulting Font. */ -function GetFontDefault () { +function GetFontDefault() { return r.BindGetFontDefault() } raylib.GetFontDefault = GetFontDefault @@ -4989,7 +4989,7 @@ raylib.GetFontDefault = GetFontDefault * * @return {Font} The resulting Font. */ -function LoadFont (fileName) { +function LoadFont(fileName) { return r.BindLoadFont( fileName ) @@ -5006,7 +5006,7 @@ raylib.LoadFont = LoadFont * * @return {Font} The resulting Font. */ -function LoadFontEx (fileName, fontSize, fontChars, glyphCount) { +function LoadFontEx(fileName, fontSize, fontChars, glyphCount) { return r.BindLoadFontEx( fileName, fontSize, @@ -5025,7 +5025,7 @@ raylib.LoadFontEx = LoadFontEx * * @return {Font} The resulting Font. */ -function LoadFontFromImage (image, key, firstChar) { +function LoadFontFromImage(image, key, firstChar) { return r.BindLoadFontFromImage( image.data, image.width, @@ -5053,7 +5053,7 @@ raylib.LoadFontFromImage = LoadFontFromImage * * @return {Font} The resulting Font. */ -function LoadFontFromMemory (fileType, fileData, dataSize, fontSize, fontChars, glyphCount) { +function LoadFontFromMemory(fileType, fileData, dataSize, fontSize, fontChars, glyphCount) { return r.BindLoadFontFromMemory( fileType, fileData, @@ -5072,7 +5072,7 @@ raylib.LoadFontFromMemory = LoadFontFromMemory * * @return {boolean} The resulting bool. */ -function IsFontReady (font) { +function IsFontReady(font) { return r.BindIsFontReady( font.baseSize, font.glyphCount, @@ -5100,7 +5100,7 @@ raylib.IsFontReady = IsFontReady * * @return {number} The resulting GlyphInfo *. */ -function LoadFontData (fileData, dataSize, fontSize, fontChars, glyphCount, type) { +function LoadFontData(fileData, dataSize, fontSize, fontChars, glyphCount, type) { return r.BindLoadFontData( fileData, dataSize, @@ -5124,7 +5124,7 @@ raylib.LoadFontData = LoadFontData * * @return {Image} The resulting Image. */ -function GenImageFontAtlas (chars, recs, glyphCount, fontSize, padding, packMethod) { +function GenImageFontAtlas(chars, recs, glyphCount, fontSize, padding, packMethod) { return r.BindGenImageFontAtlas( chars, recs, @@ -5144,7 +5144,7 @@ raylib.GenImageFontAtlas = GenImageFontAtlas * * @return {undefined} */ -function UnloadFontData (chars, glyphCount) { +function UnloadFontData(chars, glyphCount) { return r.BindUnloadFontData( chars, glyphCount @@ -5159,7 +5159,7 @@ raylib.UnloadFontData = UnloadFontData * * @return {undefined} */ -function UnloadFont (font) { +function UnloadFont(font) { return r.BindUnloadFont( font.baseSize, font.glyphCount, @@ -5183,7 +5183,7 @@ raylib.UnloadFont = UnloadFont * * @return {boolean} The resulting bool. */ -function ExportFontAsCode (font, fileName) { +function ExportFontAsCode(font, fileName) { return r.BindExportFontAsCode( font.baseSize, font.glyphCount, @@ -5208,7 +5208,7 @@ raylib.ExportFontAsCode = ExportFontAsCode * * @return {undefined} */ -function DrawFPS (posX, posY) { +function DrawFPS(posX, posY) { return r.BindDrawFPS( posX, posY @@ -5227,7 +5227,7 @@ raylib.DrawFPS = DrawFPS * * @return {undefined} */ -function DrawText (text, posX, posY, fontSize, color) { +function DrawText(text, posX, posY, fontSize, color) { return r.BindDrawText( text, posX, @@ -5253,7 +5253,7 @@ raylib.DrawText = DrawText * * @return {undefined} */ -function DrawTextEx (font, text, position, fontSize, spacing, tint) { +function DrawTextEx(font, text, position, fontSize, spacing, tint) { return r.BindDrawTextEx( font.baseSize, font.glyphCount, @@ -5292,7 +5292,7 @@ raylib.DrawTextEx = DrawTextEx * * @return {undefined} */ -function DrawTextPro (font, text, position, origin, rotation, fontSize, spacing, tint) { +function DrawTextPro(font, text, position, origin, rotation, fontSize, spacing, tint) { return r.BindDrawTextPro( font.baseSize, font.glyphCount, @@ -5331,7 +5331,7 @@ raylib.DrawTextPro = DrawTextPro * * @return {undefined} */ -function DrawTextCodepoint (font, codepoint, position, fontSize, tint) { +function DrawTextCodepoint(font, codepoint, position, fontSize, tint) { return r.BindDrawTextCodepoint( font.baseSize, font.glyphCount, @@ -5368,7 +5368,7 @@ raylib.DrawTextCodepoint = DrawTextCodepoint * * @return {undefined} */ -function DrawTextCodepoints (font, codepoints, count, position, fontSize, spacing, tint) { +function DrawTextCodepoints(font, codepoints, count, position, fontSize, spacing, tint) { return r.BindDrawTextCodepoints( font.baseSize, font.glyphCount, @@ -5402,7 +5402,7 @@ raylib.DrawTextCodepoints = DrawTextCodepoints * * @return {number} The resulting int. */ -function MeasureText (text, fontSize) { +function MeasureText(text, fontSize) { return r.BindMeasureText( text, fontSize @@ -5420,7 +5420,7 @@ raylib.MeasureText = MeasureText * * @return {Vector2} The resulting Vector2. */ -function MeasureTextEx (font, text, fontSize, spacing) { +function MeasureTextEx(font, text, fontSize, spacing) { return r.BindMeasureTextEx( font.baseSize, font.glyphCount, @@ -5447,7 +5447,7 @@ raylib.MeasureTextEx = MeasureTextEx * * @return {number} The resulting int. */ -function GetGlyphIndex (font, codepoint) { +function GetGlyphIndex(font, codepoint) { return r.BindGetGlyphIndex( font.baseSize, font.glyphCount, @@ -5472,7 +5472,7 @@ raylib.GetGlyphIndex = GetGlyphIndex * * @return {GlyphInfo} The resulting GlyphInfo. */ -function GetGlyphInfo (font, codepoint) { +function GetGlyphInfo(font, codepoint) { return r.BindGetGlyphInfo( font.baseSize, font.glyphCount, @@ -5497,7 +5497,7 @@ raylib.GetGlyphInfo = GetGlyphInfo * * @return {Rectangle} The resulting Rectangle. */ -function GetGlyphAtlasRec (font, codepoint) { +function GetGlyphAtlasRec(font, codepoint) { return r.BindGetGlyphAtlasRec( font.baseSize, font.glyphCount, @@ -5522,7 +5522,7 @@ raylib.GetGlyphAtlasRec = GetGlyphAtlasRec * * @return {string} The resulting char *. */ -function LoadUTF8 (codepoints, length) { +function LoadUTF8(codepoints, length) { return r.BindLoadUTF8( codepoints, length @@ -5537,7 +5537,7 @@ raylib.LoadUTF8 = LoadUTF8 * * @return {undefined} */ -function UnloadUTF8 (text) { +function UnloadUTF8(text) { return r.BindUnloadUTF8( text ) @@ -5552,7 +5552,7 @@ raylib.UnloadUTF8 = UnloadUTF8 * * @return {number} The resulting int *. */ -function LoadCodepoints (text, count) { +function LoadCodepoints(text, count) { return r.BindLoadCodepoints( text, count @@ -5567,7 +5567,7 @@ raylib.LoadCodepoints = LoadCodepoints * * @return {undefined} */ -function UnloadCodepoints (codepoints) { +function UnloadCodepoints(codepoints) { return r.BindUnloadCodepoints( codepoints ) @@ -5581,7 +5581,7 @@ raylib.UnloadCodepoints = UnloadCodepoints * * @return {number} The resulting int. */ -function GetCodepointCount (text) { +function GetCodepointCount(text) { return r.BindGetCodepointCount( text ) @@ -5596,7 +5596,7 @@ raylib.GetCodepointCount = GetCodepointCount * * @return {number} The resulting int. */ -function GetCodepoint (text, codepointSize) { +function GetCodepoint(text, codepointSize) { return r.BindGetCodepoint( text, codepointSize @@ -5612,7 +5612,7 @@ raylib.GetCodepoint = GetCodepoint * * @return {number} The resulting int. */ -function GetCodepointNext (text, codepointSize) { +function GetCodepointNext(text, codepointSize) { return r.BindGetCodepointNext( text, codepointSize @@ -5628,7 +5628,7 @@ raylib.GetCodepointNext = GetCodepointNext * * @return {number} The resulting int. */ -function GetCodepointPrevious (text, codepointSize) { +function GetCodepointPrevious(text, codepointSize) { return r.BindGetCodepointPrevious( text, codepointSize @@ -5644,7 +5644,7 @@ raylib.GetCodepointPrevious = GetCodepointPrevious * * @return {string} The resulting const char *. */ -function CodepointToUTF8 (codepoint, utf8Size) { +function CodepointToUTF8(codepoint, utf8Size) { return r.BindCodepointToUTF8( codepoint, utf8Size @@ -5660,7 +5660,7 @@ raylib.CodepointToUTF8 = CodepointToUTF8 * * @return {number} The resulting int. */ -function TextCopy (dst, src) { +function TextCopy(dst, src) { return r.BindTextCopy( dst, src @@ -5676,7 +5676,7 @@ raylib.TextCopy = TextCopy * * @return {boolean} The resulting bool. */ -function TextIsEqual (text1, text2) { +function TextIsEqual(text1, text2) { return r.BindTextIsEqual( text1, text2 @@ -5691,7 +5691,7 @@ raylib.TextIsEqual = TextIsEqual * * @return {number} The resulting unsigned int. */ -function TextLength (text) { +function TextLength(text) { return r.BindTextLength( text ) @@ -5707,7 +5707,7 @@ raylib.TextLength = TextLength * * @return {string} The resulting const char *. */ -function TextSubtext (text, position, length) { +function TextSubtext(text, position, length) { return r.BindTextSubtext( text, position, @@ -5725,7 +5725,7 @@ raylib.TextSubtext = TextSubtext * * @return {string} The resulting char *. */ -function TextReplace (text, replace, by) { +function TextReplace(text, replace, by) { return r.BindTextReplace( text, replace, @@ -5743,7 +5743,7 @@ raylib.TextReplace = TextReplace * * @return {string} The resulting char *. */ -function TextInsert (text, insert, position) { +function TextInsert(text, insert, position) { return r.BindTextInsert( text, insert, @@ -5761,7 +5761,7 @@ raylib.TextInsert = TextInsert * * @return {string} The resulting const char *. */ -function TextJoin (textList, count, delimiter) { +function TextJoin(textList, count, delimiter) { return r.BindTextJoin( textList, count, @@ -5779,7 +5779,7 @@ raylib.TextJoin = TextJoin * * @return {number} The resulting const char **. */ -function TextSplit (text, delimiter, count) { +function TextSplit(text, delimiter, count) { return r.BindTextSplit( text, delimiter, @@ -5797,7 +5797,7 @@ raylib.TextSplit = TextSplit * * @return {undefined} */ -function TextAppend (text, append, position) { +function TextAppend(text, append, position) { return r.BindTextAppend( text, append, @@ -5814,7 +5814,7 @@ raylib.TextAppend = TextAppend * * @return {number} The resulting int. */ -function TextFindIndex (text, find) { +function TextFindIndex(text, find) { return r.BindTextFindIndex( text, find @@ -5829,7 +5829,7 @@ raylib.TextFindIndex = TextFindIndex * * @return {string} The resulting const char *. */ -function TextToUpper (text) { +function TextToUpper(text) { return r.BindTextToUpper( text ) @@ -5843,7 +5843,7 @@ raylib.TextToUpper = TextToUpper * * @return {string} The resulting const char *. */ -function TextToLower (text) { +function TextToLower(text) { return r.BindTextToLower( text ) @@ -5857,7 +5857,7 @@ raylib.TextToLower = TextToLower * * @return {string} The resulting const char *. */ -function TextToPascal (text) { +function TextToPascal(text) { return r.BindTextToPascal( text ) @@ -5871,7 +5871,7 @@ raylib.TextToPascal = TextToPascal * * @return {number} The resulting int. */ -function TextToInteger (text) { +function TextToInteger(text) { return r.BindTextToInteger( text ) @@ -5887,7 +5887,7 @@ raylib.TextToInteger = TextToInteger * * @return {undefined} */ -function DrawLine3D (startPos, endPos, color) { +function DrawLine3D(startPos, endPos, color) { return r.BindDrawLine3D( startPos.x, startPos.y, @@ -5911,7 +5911,7 @@ raylib.DrawLine3D = DrawLine3D * * @return {undefined} */ -function DrawPoint3D (position, color) { +function DrawPoint3D(position, color) { return r.BindDrawPoint3D( position.x, position.y, @@ -5935,7 +5935,7 @@ raylib.DrawPoint3D = DrawPoint3D * * @return {undefined} */ -function DrawCircle3D (center, radius, rotationAxis, rotationAngle, color) { +function DrawCircle3D(center, radius, rotationAxis, rotationAngle, color) { return r.BindDrawCircle3D( center.x, center.y, @@ -5963,7 +5963,7 @@ raylib.DrawCircle3D = DrawCircle3D * * @return {undefined} */ -function DrawTriangle3D (v1, v2, v3, color) { +function DrawTriangle3D(v1, v2, v3, color) { return r.BindDrawTriangle3D( v1.x, v1.y, @@ -5991,7 +5991,7 @@ raylib.DrawTriangle3D = DrawTriangle3D * * @return {undefined} */ -function DrawTriangleStrip3D (points, pointCount, color) { +function DrawTriangleStrip3D(points, pointCount, color) { return r.BindDrawTriangleStrip3D( points, pointCount, @@ -6014,7 +6014,7 @@ raylib.DrawTriangleStrip3D = DrawTriangleStrip3D * * @return {undefined} */ -function DrawCube (position, width, height, length, color) { +function DrawCube(position, width, height, length, color) { return r.BindDrawCube( position.x, position.y, @@ -6039,7 +6039,7 @@ raylib.DrawCube = DrawCube * * @return {undefined} */ -function DrawCubeV (position, size, color) { +function DrawCubeV(position, size, color) { return r.BindDrawCubeV( position.x, position.y, @@ -6066,7 +6066,7 @@ raylib.DrawCubeV = DrawCubeV * * @return {undefined} */ -function DrawCubeWires (position, width, height, length, color) { +function DrawCubeWires(position, width, height, length, color) { return r.BindDrawCubeWires( position.x, position.y, @@ -6091,7 +6091,7 @@ raylib.DrawCubeWires = DrawCubeWires * * @return {undefined} */ -function DrawCubeWiresV (position, size, color) { +function DrawCubeWiresV(position, size, color) { return r.BindDrawCubeWiresV( position.x, position.y, @@ -6116,7 +6116,7 @@ raylib.DrawCubeWiresV = DrawCubeWiresV * * @return {undefined} */ -function DrawSphere (centerPos, radius, color) { +function DrawSphere(centerPos, radius, color) { return r.BindDrawSphere( centerPos.x, centerPos.y, @@ -6141,7 +6141,7 @@ raylib.DrawSphere = DrawSphere * * @return {undefined} */ -function DrawSphereEx (centerPos, radius, rings, slices, color) { +function DrawSphereEx(centerPos, radius, rings, slices, color) { return r.BindDrawSphereEx( centerPos.x, centerPos.y, @@ -6168,7 +6168,7 @@ raylib.DrawSphereEx = DrawSphereEx * * @return {undefined} */ -function DrawSphereWires (centerPos, radius, rings, slices, color) { +function DrawSphereWires(centerPos, radius, rings, slices, color) { return r.BindDrawSphereWires( centerPos.x, centerPos.y, @@ -6196,7 +6196,7 @@ raylib.DrawSphereWires = DrawSphereWires * * @return {undefined} */ -function DrawCylinder (position, radiusTop, radiusBottom, height, slices, color) { +function DrawCylinder(position, radiusTop, radiusBottom, height, slices, color) { return r.BindDrawCylinder( position.x, position.y, @@ -6225,7 +6225,7 @@ raylib.DrawCylinder = DrawCylinder * * @return {undefined} */ -function DrawCylinderEx (startPos, endPos, startRadius, endRadius, sides, color) { +function DrawCylinderEx(startPos, endPos, startRadius, endRadius, sides, color) { return r.BindDrawCylinderEx( startPos.x, startPos.y, @@ -6256,7 +6256,7 @@ raylib.DrawCylinderEx = DrawCylinderEx * * @return {undefined} */ -function DrawCylinderWires (position, radiusTop, radiusBottom, height, slices, color) { +function DrawCylinderWires(position, radiusTop, radiusBottom, height, slices, color) { return r.BindDrawCylinderWires( position.x, position.y, @@ -6285,7 +6285,7 @@ raylib.DrawCylinderWires = DrawCylinderWires * * @return {undefined} */ -function DrawCylinderWiresEx (startPos, endPos, startRadius, endRadius, sides, color) { +function DrawCylinderWiresEx(startPos, endPos, startRadius, endRadius, sides, color) { return r.BindDrawCylinderWiresEx( startPos.x, startPos.y, @@ -6316,7 +6316,7 @@ raylib.DrawCylinderWiresEx = DrawCylinderWiresEx * * @return {undefined} */ -function DrawCapsule (startPos, endPos, radius, slices, rings, color) { +function DrawCapsule(startPos, endPos, radius, slices, rings, color) { return r.BindDrawCapsule( startPos.x, startPos.y, @@ -6347,7 +6347,7 @@ raylib.DrawCapsule = DrawCapsule * * @return {undefined} */ -function DrawCapsuleWires (startPos, endPos, radius, slices, rings, color) { +function DrawCapsuleWires(startPos, endPos, radius, slices, rings, color) { return r.BindDrawCapsuleWires( startPos.x, startPos.y, @@ -6375,7 +6375,7 @@ raylib.DrawCapsuleWires = DrawCapsuleWires * * @return {undefined} */ -function DrawPlane (centerPos, size, color) { +function DrawPlane(centerPos, size, color) { return r.BindDrawPlane( centerPos.x, centerPos.y, @@ -6398,7 +6398,7 @@ raylib.DrawPlane = DrawPlane * * @return {undefined} */ -function DrawRay (ray, color) { +function DrawRay(ray, color) { return r.BindDrawRay( ray.position.x, ray.position.y, @@ -6422,7 +6422,7 @@ raylib.DrawRay = DrawRay * * @return {undefined} */ -function DrawGrid (slices, spacing) { +function DrawGrid(slices, spacing) { return r.BindDrawGrid( slices, spacing @@ -6437,7 +6437,7 @@ raylib.DrawGrid = DrawGrid * * @return {Model} The resulting Model. */ -function LoadModel (fileName) { +function LoadModel(fileName) { return r.BindLoadModel( fileName ) @@ -6451,7 +6451,7 @@ raylib.LoadModel = LoadModel * * @return {Model} The resulting Model. */ -function LoadModelFromMesh (mesh) { +function LoadModelFromMesh(mesh) { return r.BindLoadModelFromMesh( mesh.vertexCount, mesh.triangleCount, @@ -6479,7 +6479,7 @@ raylib.LoadModelFromMesh = LoadModelFromMesh * * @return {boolean} The resulting bool. */ -function IsModelReady (model) { +function IsModelReady(model) { return r.BindIsModelReady( model.transform.m0, model.transform.m4, @@ -6516,7 +6516,7 @@ raylib.IsModelReady = IsModelReady * * @return {undefined} */ -function UnloadModel (model) { +function UnloadModel(model) { return r.BindUnloadModel( model.transform.m0, model.transform.m4, @@ -6553,7 +6553,7 @@ raylib.UnloadModel = UnloadModel * * @return {BoundingBox} The resulting BoundingBox. */ -function GetModelBoundingBox (model) { +function GetModelBoundingBox(model) { return r.BindGetModelBoundingBox( model.transform.m0, model.transform.m4, @@ -6593,7 +6593,7 @@ raylib.GetModelBoundingBox = GetModelBoundingBox * * @return {undefined} */ -function DrawModel (model, position, scale, tint) { +function DrawModel(model, position, scale, tint) { return r.BindDrawModel( model.transform.m0, model.transform.m4, @@ -6643,7 +6643,7 @@ raylib.DrawModel = DrawModel * * @return {undefined} */ -function DrawModelEx (model, position, rotationAxis, rotationAngle, scale, tint) { +function DrawModelEx(model, position, rotationAxis, rotationAngle, scale, tint) { return r.BindDrawModelEx( model.transform.m0, model.transform.m4, @@ -6697,7 +6697,7 @@ raylib.DrawModelEx = DrawModelEx * * @return {undefined} */ -function DrawModelWires (model, position, scale, tint) { +function DrawModelWires(model, position, scale, tint) { return r.BindDrawModelWires( model.transform.m0, model.transform.m4, @@ -6747,7 +6747,7 @@ raylib.DrawModelWires = DrawModelWires * * @return {undefined} */ -function DrawModelWiresEx (model, position, rotationAxis, rotationAngle, scale, tint) { +function DrawModelWiresEx(model, position, rotationAxis, rotationAngle, scale, tint) { return r.BindDrawModelWiresEx( model.transform.m0, model.transform.m4, @@ -6799,7 +6799,7 @@ raylib.DrawModelWiresEx = DrawModelWiresEx * * @return {undefined} */ -function DrawBoundingBox (box, color) { +function DrawBoundingBox(box, color) { return r.BindDrawBoundingBox( box.min.x, box.min.y, @@ -6826,7 +6826,7 @@ raylib.DrawBoundingBox = DrawBoundingBox * * @return {undefined} */ -function DrawBillboard (camera, texture, position, size, tint) { +function DrawBillboard(camera, texture, position, size, tint) { return r.BindDrawBillboard( camera.position.x, camera.position.y, @@ -6868,7 +6868,7 @@ raylib.DrawBillboard = DrawBillboard * * @return {undefined} */ -function DrawBillboardRec (camera, texture, source, position, size, tint) { +function DrawBillboardRec(camera, texture, source, position, size, tint) { return r.BindDrawBillboardRec( camera.position.x, camera.position.y, @@ -6918,7 +6918,7 @@ raylib.DrawBillboardRec = DrawBillboardRec * * @return {undefined} */ -function DrawBillboardPro (camera, texture, source, position, up, size, origin, rotation, tint) { +function DrawBillboardPro(camera, texture, source, position, up, size, origin, rotation, tint) { return r.BindDrawBillboardPro( camera.position.x, camera.position.y, @@ -6970,7 +6970,7 @@ raylib.DrawBillboardPro = DrawBillboardPro * * @return {undefined} */ -function UpdateMeshBuffer (mesh, index, data, dataSize, offset) { +function UpdateMeshBuffer(mesh, index, data, dataSize, offset) { return r.BindUpdateMeshBuffer( mesh.vertexCount, mesh.triangleCount, @@ -7002,7 +7002,7 @@ raylib.UpdateMeshBuffer = UpdateMeshBuffer * * @return {undefined} */ -function UnloadMesh (mesh) { +function UnloadMesh(mesh) { return r.BindUnloadMesh( mesh.vertexCount, mesh.triangleCount, @@ -7031,7 +7031,7 @@ raylib.UnloadMesh = UnloadMesh * * @return {boolean} The resulting bool. */ -function ExportMesh (mesh, fileName) { +function ExportMesh(mesh, fileName) { return r.BindExportMesh( mesh.vertexCount, mesh.triangleCount, @@ -7060,7 +7060,7 @@ raylib.ExportMesh = ExportMesh * * @return {BoundingBox} The resulting BoundingBox. */ -function GetMeshBoundingBox (mesh) { +function GetMeshBoundingBox(mesh) { return r.BindGetMeshBoundingBox( mesh.vertexCount, mesh.triangleCount, @@ -7089,7 +7089,7 @@ raylib.GetMeshBoundingBox = GetMeshBoundingBox * * @return {Mesh} The resulting Mesh. */ -function GenMeshPoly (sides, radius) { +function GenMeshPoly(sides, radius) { return r.BindGenMeshPoly( sides, radius @@ -7107,7 +7107,7 @@ raylib.GenMeshPoly = GenMeshPoly * * @return {Mesh} The resulting Mesh. */ -function GenMeshPlane (width, length, resX, resZ) { +function GenMeshPlane(width, length, resX, resZ) { return r.BindGenMeshPlane( width, length, @@ -7126,7 +7126,7 @@ raylib.GenMeshPlane = GenMeshPlane * * @return {Mesh} The resulting Mesh. */ -function GenMeshCube (width, height, length) { +function GenMeshCube(width, height, length) { return r.BindGenMeshCube( width, height, @@ -7144,7 +7144,7 @@ raylib.GenMeshCube = GenMeshCube * * @return {Mesh} The resulting Mesh. */ -function GenMeshSphere (radius, rings, slices) { +function GenMeshSphere(radius, rings, slices) { return r.BindGenMeshSphere( radius, rings, @@ -7162,7 +7162,7 @@ raylib.GenMeshSphere = GenMeshSphere * * @return {Mesh} The resulting Mesh. */ -function GenMeshHemiSphere (radius, rings, slices) { +function GenMeshHemiSphere(radius, rings, slices) { return r.BindGenMeshHemiSphere( radius, rings, @@ -7180,7 +7180,7 @@ raylib.GenMeshHemiSphere = GenMeshHemiSphere * * @return {Mesh} The resulting Mesh. */ -function GenMeshCylinder (radius, height, slices) { +function GenMeshCylinder(radius, height, slices) { return r.BindGenMeshCylinder( radius, height, @@ -7198,7 +7198,7 @@ raylib.GenMeshCylinder = GenMeshCylinder * * @return {Mesh} The resulting Mesh. */ -function GenMeshCone (radius, height, slices) { +function GenMeshCone(radius, height, slices) { return r.BindGenMeshCone( radius, height, @@ -7217,7 +7217,7 @@ raylib.GenMeshCone = GenMeshCone * * @return {Mesh} The resulting Mesh. */ -function GenMeshTorus (radius, size, radSeg, sides) { +function GenMeshTorus(radius, size, radSeg, sides) { return r.BindGenMeshTorus( radius, size, @@ -7237,7 +7237,7 @@ raylib.GenMeshTorus = GenMeshTorus * * @return {Mesh} The resulting Mesh. */ -function GenMeshKnot (radius, size, radSeg, sides) { +function GenMeshKnot(radius, size, radSeg, sides) { return r.BindGenMeshKnot( radius, size, @@ -7255,7 +7255,7 @@ raylib.GenMeshKnot = GenMeshKnot * * @return {Mesh} The resulting Mesh. */ -function GenMeshHeightmap (heightmap, size) { +function GenMeshHeightmap(heightmap, size) { return r.BindGenMeshHeightmap( heightmap.data, heightmap.width, @@ -7277,7 +7277,7 @@ raylib.GenMeshHeightmap = GenMeshHeightmap * * @return {Mesh} The resulting Mesh. */ -function GenMeshCubicmap (cubicmap, cubeSize) { +function GenMeshCubicmap(cubicmap, cubeSize) { return r.BindGenMeshCubicmap( cubicmap.data, cubicmap.width, @@ -7299,7 +7299,7 @@ raylib.GenMeshCubicmap = GenMeshCubicmap * * @return {number} The resulting ModelAnimation *. */ -function LoadModelAnimations (fileName, animCount) { +function LoadModelAnimations(fileName, animCount) { return r.BindLoadModelAnimations( fileName, animCount @@ -7316,7 +7316,7 @@ raylib.LoadModelAnimations = LoadModelAnimations * * @return {undefined} */ -function UpdateModelAnimation (model, anim, frame) { +function UpdateModelAnimation(model, anim, frame) { return r.BindUpdateModelAnimation( model.transform.m0, model.transform.m4, @@ -7358,7 +7358,7 @@ raylib.UpdateModelAnimation = UpdateModelAnimation * * @return {undefined} */ -function UnloadModelAnimation (anim) { +function UnloadModelAnimation(anim) { return r.BindUnloadModelAnimation( anim.boneCount, anim.frameCount, @@ -7376,7 +7376,7 @@ raylib.UnloadModelAnimation = UnloadModelAnimation * * @return {undefined} */ -function UnloadModelAnimations (animations, count) { +function UnloadModelAnimations(animations, count) { return r.BindUnloadModelAnimations( animations, count @@ -7392,7 +7392,7 @@ raylib.UnloadModelAnimations = UnloadModelAnimations * * @return {boolean} The resulting bool. */ -function IsModelAnimationValid (model, anim) { +function IsModelAnimationValid(model, anim) { return r.BindIsModelAnimationValid( model.transform.m0, model.transform.m4, @@ -7436,7 +7436,7 @@ raylib.IsModelAnimationValid = IsModelAnimationValid * * @return {boolean} The resulting bool. */ -function CheckCollisionSpheres (center1, radius1, center2, radius2) { +function CheckCollisionSpheres(center1, radius1, center2, radius2) { return r.BindCheckCollisionSpheres( center1.x, center1.y, @@ -7458,7 +7458,7 @@ raylib.CheckCollisionSpheres = CheckCollisionSpheres * * @return {boolean} The resulting bool. */ -function CheckCollisionBoxes (box1, box2) { +function CheckCollisionBoxes(box1, box2) { return r.BindCheckCollisionBoxes( box1.min.x, box1.min.y, @@ -7485,7 +7485,7 @@ raylib.CheckCollisionBoxes = CheckCollisionBoxes * * @return {boolean} The resulting bool. */ -function CheckCollisionBoxSphere (box, center, radius) { +function CheckCollisionBoxSphere(box, center, radius) { return r.BindCheckCollisionBoxSphere( box.min.x, box.min.y, @@ -7510,7 +7510,7 @@ raylib.CheckCollisionBoxSphere = CheckCollisionBoxSphere * * @return {RayCollision} The resulting RayCollision. */ -function GetRayCollisionSphere (ray, center, radius) { +function GetRayCollisionSphere(ray, center, radius) { return r.BindGetRayCollisionSphere( ray.position.x, ray.position.y, @@ -7534,7 +7534,7 @@ raylib.GetRayCollisionSphere = GetRayCollisionSphere * * @return {RayCollision} The resulting RayCollision. */ -function GetRayCollisionBox (ray, box) { +function GetRayCollisionBox(ray, box) { return r.BindGetRayCollisionBox( ray.position.x, ray.position.y, @@ -7561,7 +7561,7 @@ raylib.GetRayCollisionBox = GetRayCollisionBox * * @return {RayCollision} The resulting RayCollision. */ -function GetRayCollisionMesh (ray, mesh, transform) { +function GetRayCollisionMesh(ray, mesh, transform) { return r.BindGetRayCollisionMesh( ray.position.x, ray.position.y, @@ -7614,7 +7614,7 @@ raylib.GetRayCollisionMesh = GetRayCollisionMesh * * @return {RayCollision} The resulting RayCollision. */ -function GetRayCollisionTriangle (ray, p1, p2, p3) { +function GetRayCollisionTriangle(ray, p1, p2, p3) { return r.BindGetRayCollisionTriangle( ray.position.x, ray.position.y, @@ -7646,7 +7646,7 @@ raylib.GetRayCollisionTriangle = GetRayCollisionTriangle * * @return {RayCollision} The resulting RayCollision. */ -function GetRayCollisionQuad (ray, p1, p2, p3, p4) { +function GetRayCollisionQuad(ray, p1, p2, p3, p4) { return r.BindGetRayCollisionQuad( ray.position.x, ray.position.y, @@ -7675,7 +7675,7 @@ raylib.GetRayCollisionQuad = GetRayCollisionQuad * * @return {undefined} */ -function InitAudioDevice () { +function InitAudioDevice() { return r.BindInitAudioDevice() } raylib.InitAudioDevice = InitAudioDevice @@ -7685,7 +7685,7 @@ raylib.InitAudioDevice = InitAudioDevice * * @return {undefined} */ -function CloseAudioDevice () { +function CloseAudioDevice() { return r.BindCloseAudioDevice() } raylib.CloseAudioDevice = CloseAudioDevice @@ -7695,7 +7695,7 @@ raylib.CloseAudioDevice = CloseAudioDevice * * @return {boolean} The resulting bool. */ -function IsAudioDeviceReady () { +function IsAudioDeviceReady() { return r.BindIsAudioDeviceReady() } raylib.IsAudioDeviceReady = IsAudioDeviceReady @@ -7707,7 +7707,7 @@ raylib.IsAudioDeviceReady = IsAudioDeviceReady * * @return {undefined} */ -function SetMasterVolume (volume) { +function SetMasterVolume(volume) { return r.BindSetMasterVolume( volume ) @@ -7721,7 +7721,7 @@ raylib.SetMasterVolume = SetMasterVolume * * @return {Wave} The resulting Wave. */ -function LoadWave (fileName) { +function LoadWave(fileName) { return r.BindLoadWave( fileName ) @@ -7737,7 +7737,7 @@ raylib.LoadWave = LoadWave * * @return {Wave} The resulting Wave. */ -function LoadWaveFromMemory (fileType, fileData, dataSize) { +function LoadWaveFromMemory(fileType, fileData, dataSize) { return r.BindLoadWaveFromMemory( fileType, fileData, @@ -7753,7 +7753,7 @@ raylib.LoadWaveFromMemory = LoadWaveFromMemory * * @return {boolean} The resulting bool. */ -function IsWaveReady (wave) { +function IsWaveReady(wave) { return r.BindIsWaveReady( wave.frameCount, wave.sampleRate, @@ -7771,7 +7771,7 @@ raylib.IsWaveReady = IsWaveReady * * @return {Sound} The resulting Sound. */ -function LoadSound (fileName) { +function LoadSound(fileName) { return r.BindLoadSound( fileName ) @@ -7785,7 +7785,7 @@ raylib.LoadSound = LoadSound * * @return {Sound} The resulting Sound. */ -function LoadSoundFromWave (wave) { +function LoadSoundFromWave(wave) { return r.BindLoadSoundFromWave( wave.frameCount, wave.sampleRate, @@ -7803,7 +7803,7 @@ raylib.LoadSoundFromWave = LoadSoundFromWave * * @return {boolean} The resulting bool. */ -function IsSoundReady (sound) { +function IsSoundReady(sound) { return r.BindIsSoundReady( sound.stream.buffer, sound.stream.processor, @@ -7824,7 +7824,7 @@ raylib.IsSoundReady = IsSoundReady * * @return {undefined} */ -function UpdateSound (sound, data, sampleCount) { +function UpdateSound(sound, data, sampleCount) { return r.BindUpdateSound( sound.stream.buffer, sound.stream.processor, @@ -7845,7 +7845,7 @@ raylib.UpdateSound = UpdateSound * * @return {undefined} */ -function UnloadWave (wave) { +function UnloadWave(wave) { return r.BindUnloadWave( wave.frameCount, wave.sampleRate, @@ -7863,7 +7863,7 @@ raylib.UnloadWave = UnloadWave * * @return {undefined} */ -function UnloadSound (sound) { +function UnloadSound(sound) { return r.BindUnloadSound( sound.stream.buffer, sound.stream.processor, @@ -7883,7 +7883,7 @@ raylib.UnloadSound = UnloadSound * * @return {boolean} The resulting bool. */ -function ExportWave (wave, fileName) { +function ExportWave(wave, fileName) { return r.BindExportWave( wave.frameCount, wave.sampleRate, @@ -7903,7 +7903,7 @@ raylib.ExportWave = ExportWave * * @return {boolean} The resulting bool. */ -function ExportWaveAsCode (wave, fileName) { +function ExportWaveAsCode(wave, fileName) { return r.BindExportWaveAsCode( wave.frameCount, wave.sampleRate, @@ -7922,7 +7922,7 @@ raylib.ExportWaveAsCode = ExportWaveAsCode * * @return {undefined} */ -function PlaySound (sound) { +function PlaySound(sound) { return r.BindPlaySound( sound.stream.buffer, sound.stream.processor, @@ -7941,7 +7941,7 @@ raylib.PlaySound = PlaySound * * @return {undefined} */ -function StopSound (sound) { +function StopSound(sound) { return r.BindStopSound( sound.stream.buffer, sound.stream.processor, @@ -7960,7 +7960,7 @@ raylib.StopSound = StopSound * * @return {undefined} */ -function PauseSound (sound) { +function PauseSound(sound) { return r.BindPauseSound( sound.stream.buffer, sound.stream.processor, @@ -7979,7 +7979,7 @@ raylib.PauseSound = PauseSound * * @return {undefined} */ -function ResumeSound (sound) { +function ResumeSound(sound) { return r.BindResumeSound( sound.stream.buffer, sound.stream.processor, @@ -7998,7 +7998,7 @@ raylib.ResumeSound = ResumeSound * * @return {boolean} The resulting bool. */ -function IsSoundPlaying (sound) { +function IsSoundPlaying(sound) { return r.BindIsSoundPlaying( sound.stream.buffer, sound.stream.processor, @@ -8018,7 +8018,7 @@ raylib.IsSoundPlaying = IsSoundPlaying * * @return {undefined} */ -function SetSoundVolume (sound, volume) { +function SetSoundVolume(sound, volume) { return r.BindSetSoundVolume( sound.stream.buffer, sound.stream.processor, @@ -8039,7 +8039,7 @@ raylib.SetSoundVolume = SetSoundVolume * * @return {undefined} */ -function SetSoundPitch (sound, pitch) { +function SetSoundPitch(sound, pitch) { return r.BindSetSoundPitch( sound.stream.buffer, sound.stream.processor, @@ -8060,7 +8060,7 @@ raylib.SetSoundPitch = SetSoundPitch * * @return {undefined} */ -function SetSoundPan (sound, pan) { +function SetSoundPan(sound, pan) { return r.BindSetSoundPan( sound.stream.buffer, sound.stream.processor, @@ -8080,7 +8080,7 @@ raylib.SetSoundPan = SetSoundPan * * @return {Wave} The resulting Wave. */ -function WaveCopy (wave) { +function WaveCopy(wave) { return r.BindWaveCopy( wave.frameCount, wave.sampleRate, @@ -8098,7 +8098,7 @@ raylib.WaveCopy = WaveCopy * * @return {number} The resulting float *. */ -function LoadWaveSamples (wave) { +function LoadWaveSamples(wave) { return r.BindLoadWaveSamples( wave.frameCount, wave.sampleRate, @@ -8116,7 +8116,7 @@ raylib.LoadWaveSamples = LoadWaveSamples * * @return {undefined} */ -function UnloadWaveSamples (samples) { +function UnloadWaveSamples(samples) { return r.BindUnloadWaveSamples( samples ) @@ -8130,7 +8130,7 @@ raylib.UnloadWaveSamples = UnloadWaveSamples * * @return {Music} The resulting Music. */ -function LoadMusicStream (fileName) { +function LoadMusicStream(fileName) { return r.BindLoadMusicStream( fileName ) @@ -8146,7 +8146,7 @@ raylib.LoadMusicStream = LoadMusicStream * * @return {Music} The resulting Music. */ -function LoadMusicStreamFromMemory (fileType, data, dataSize) { +function LoadMusicStreamFromMemory(fileType, data, dataSize) { return r.BindLoadMusicStreamFromMemory( fileType, data, @@ -8162,7 +8162,7 @@ raylib.LoadMusicStreamFromMemory = LoadMusicStreamFromMemory * * @return {boolean} The resulting bool. */ -function IsMusicReady (music) { +function IsMusicReady(music) { return r.BindIsMusicReady( music.stream.buffer, music.stream.processor, @@ -8184,7 +8184,7 @@ raylib.IsMusicReady = IsMusicReady * * @return {undefined} */ -function UnloadMusicStream (music) { +function UnloadMusicStream(music) { return r.BindUnloadMusicStream( music.stream.buffer, music.stream.processor, @@ -8206,7 +8206,7 @@ raylib.UnloadMusicStream = UnloadMusicStream * * @return {undefined} */ -function PlayMusicStream (music) { +function PlayMusicStream(music) { return r.BindPlayMusicStream( music.stream.buffer, music.stream.processor, @@ -8228,7 +8228,7 @@ raylib.PlayMusicStream = PlayMusicStream * * @return {boolean} The resulting bool. */ -function IsMusicStreamPlaying (music) { +function IsMusicStreamPlaying(music) { return r.BindIsMusicStreamPlaying( music.stream.buffer, music.stream.processor, @@ -8250,7 +8250,7 @@ raylib.IsMusicStreamPlaying = IsMusicStreamPlaying * * @return {undefined} */ -function UpdateMusicStream (music) { +function UpdateMusicStream(music) { return r.BindUpdateMusicStream( music.stream.buffer, music.stream.processor, @@ -8272,7 +8272,7 @@ raylib.UpdateMusicStream = UpdateMusicStream * * @return {undefined} */ -function StopMusicStream (music) { +function StopMusicStream(music) { return r.BindStopMusicStream( music.stream.buffer, music.stream.processor, @@ -8294,7 +8294,7 @@ raylib.StopMusicStream = StopMusicStream * * @return {undefined} */ -function PauseMusicStream (music) { +function PauseMusicStream(music) { return r.BindPauseMusicStream( music.stream.buffer, music.stream.processor, @@ -8316,7 +8316,7 @@ raylib.PauseMusicStream = PauseMusicStream * * @return {undefined} */ -function ResumeMusicStream (music) { +function ResumeMusicStream(music) { return r.BindResumeMusicStream( music.stream.buffer, music.stream.processor, @@ -8339,7 +8339,7 @@ raylib.ResumeMusicStream = ResumeMusicStream * * @return {undefined} */ -function SeekMusicStream (music, position) { +function SeekMusicStream(music, position) { return r.BindSeekMusicStream( music.stream.buffer, music.stream.processor, @@ -8363,7 +8363,7 @@ raylib.SeekMusicStream = SeekMusicStream * * @return {undefined} */ -function SetMusicVolume (music, volume) { +function SetMusicVolume(music, volume) { return r.BindSetMusicVolume( music.stream.buffer, music.stream.processor, @@ -8387,7 +8387,7 @@ raylib.SetMusicVolume = SetMusicVolume * * @return {undefined} */ -function SetMusicPitch (music, pitch) { +function SetMusicPitch(music, pitch) { return r.BindSetMusicPitch( music.stream.buffer, music.stream.processor, @@ -8411,7 +8411,7 @@ raylib.SetMusicPitch = SetMusicPitch * * @return {undefined} */ -function SetMusicPan (music, pan) { +function SetMusicPan(music, pan) { return r.BindSetMusicPan( music.stream.buffer, music.stream.processor, @@ -8434,7 +8434,7 @@ raylib.SetMusicPan = SetMusicPan * * @return {number} The resulting float. */ -function GetMusicTimeLength (music) { +function GetMusicTimeLength(music) { return r.BindGetMusicTimeLength( music.stream.buffer, music.stream.processor, @@ -8456,7 +8456,7 @@ raylib.GetMusicTimeLength = GetMusicTimeLength * * @return {number} The resulting float. */ -function GetMusicTimePlayed (music) { +function GetMusicTimePlayed(music) { return r.BindGetMusicTimePlayed( music.stream.buffer, music.stream.processor, @@ -8480,7 +8480,7 @@ raylib.GetMusicTimePlayed = GetMusicTimePlayed * * @return {AudioStream} The resulting AudioStream. */ -function LoadAudioStream (sampleRate, sampleSize, channels) { +function LoadAudioStream(sampleRate, sampleSize, channels) { return r.BindLoadAudioStream( sampleRate, sampleSize, @@ -8496,7 +8496,7 @@ raylib.LoadAudioStream = LoadAudioStream * * @return {boolean} The resulting bool. */ -function IsAudioStreamReady (stream) { +function IsAudioStreamReady(stream) { return r.BindIsAudioStreamReady( stream.buffer, stream.processor, @@ -8514,7 +8514,7 @@ raylib.IsAudioStreamReady = IsAudioStreamReady * * @return {undefined} */ -function UnloadAudioStream (stream) { +function UnloadAudioStream(stream) { return r.BindUnloadAudioStream( stream.buffer, stream.processor, @@ -8534,7 +8534,7 @@ raylib.UnloadAudioStream = UnloadAudioStream * * @return {undefined} */ -function UpdateAudioStream (stream, data, frameCount) { +function UpdateAudioStream(stream, data, frameCount) { return r.BindUpdateAudioStream( stream.buffer, stream.processor, @@ -8554,7 +8554,7 @@ raylib.UpdateAudioStream = UpdateAudioStream * * @return {boolean} The resulting bool. */ -function IsAudioStreamProcessed (stream) { +function IsAudioStreamProcessed(stream) { return r.BindIsAudioStreamProcessed( stream.buffer, stream.processor, @@ -8572,7 +8572,7 @@ raylib.IsAudioStreamProcessed = IsAudioStreamProcessed * * @return {undefined} */ -function PlayAudioStream (stream) { +function PlayAudioStream(stream) { return r.BindPlayAudioStream( stream.buffer, stream.processor, @@ -8590,7 +8590,7 @@ raylib.PlayAudioStream = PlayAudioStream * * @return {undefined} */ -function PauseAudioStream (stream) { +function PauseAudioStream(stream) { return r.BindPauseAudioStream( stream.buffer, stream.processor, @@ -8608,7 +8608,7 @@ raylib.PauseAudioStream = PauseAudioStream * * @return {undefined} */ -function ResumeAudioStream (stream) { +function ResumeAudioStream(stream) { return r.BindResumeAudioStream( stream.buffer, stream.processor, @@ -8626,7 +8626,7 @@ raylib.ResumeAudioStream = ResumeAudioStream * * @return {boolean} The resulting bool. */ -function IsAudioStreamPlaying (stream) { +function IsAudioStreamPlaying(stream) { return r.BindIsAudioStreamPlaying( stream.buffer, stream.processor, @@ -8644,7 +8644,7 @@ raylib.IsAudioStreamPlaying = IsAudioStreamPlaying * * @return {undefined} */ -function StopAudioStream (stream) { +function StopAudioStream(stream) { return r.BindStopAudioStream( stream.buffer, stream.processor, @@ -8663,7 +8663,7 @@ raylib.StopAudioStream = StopAudioStream * * @return {undefined} */ -function SetAudioStreamVolume (stream, volume) { +function SetAudioStreamVolume(stream, volume) { return r.BindSetAudioStreamVolume( stream.buffer, stream.processor, @@ -8683,7 +8683,7 @@ raylib.SetAudioStreamVolume = SetAudioStreamVolume * * @return {undefined} */ -function SetAudioStreamPitch (stream, pitch) { +function SetAudioStreamPitch(stream, pitch) { return r.BindSetAudioStreamPitch( stream.buffer, stream.processor, @@ -8703,7 +8703,7 @@ raylib.SetAudioStreamPitch = SetAudioStreamPitch * * @return {undefined} */ -function SetAudioStreamPan (stream, pan) { +function SetAudioStreamPan(stream, pan) { return r.BindSetAudioStreamPan( stream.buffer, stream.processor, @@ -8722,7 +8722,7 @@ raylib.SetAudioStreamPan = SetAudioStreamPan * * @return {undefined} */ -function SetAudioStreamBufferSizeDefault (size) { +function SetAudioStreamBufferSizeDefault(size) { return r.BindSetAudioStreamBufferSizeDefault( size ) @@ -8739,7 +8739,7 @@ raylib.SetAudioStreamBufferSizeDefault = SetAudioStreamBufferSizeDefault * * @return {number} The resulting float. */ -function EaseLinearNone (t, b, c, d) { +function EaseLinearNone(t, b, c, d) { return r.BindEaseLinearNone( t, b, @@ -8759,7 +8759,7 @@ raylib.EaseLinearNone = EaseLinearNone * * @return {number} The resulting float. */ -function EaseLinearIn (t, b, c, d) { +function EaseLinearIn(t, b, c, d) { return r.BindEaseLinearIn( t, b, @@ -8779,7 +8779,7 @@ raylib.EaseLinearIn = EaseLinearIn * * @return {number} The resulting float. */ -function EaseLinearOut (t, b, c, d) { +function EaseLinearOut(t, b, c, d) { return r.BindEaseLinearOut( t, b, @@ -8799,7 +8799,7 @@ raylib.EaseLinearOut = EaseLinearOut * * @return {number} The resulting float. */ -function EaseLinearInOut (t, b, c, d) { +function EaseLinearInOut(t, b, c, d) { return r.BindEaseLinearInOut( t, b, @@ -8819,7 +8819,7 @@ raylib.EaseLinearInOut = EaseLinearInOut * * @return {number} The resulting float. */ -function EaseSineIn (t, b, c, d) { +function EaseSineIn(t, b, c, d) { return r.BindEaseSineIn( t, b, @@ -8839,7 +8839,7 @@ raylib.EaseSineIn = EaseSineIn * * @return {number} The resulting float. */ -function EaseSineOut (t, b, c, d) { +function EaseSineOut(t, b, c, d) { return r.BindEaseSineOut( t, b, @@ -8859,7 +8859,7 @@ raylib.EaseSineOut = EaseSineOut * * @return {number} The resulting float. */ -function EaseSineInOut (t, b, c, d) { +function EaseSineInOut(t, b, c, d) { return r.BindEaseSineInOut( t, b, @@ -8879,7 +8879,7 @@ raylib.EaseSineInOut = EaseSineInOut * * @return {number} The resulting float. */ -function EaseCircIn (t, b, c, d) { +function EaseCircIn(t, b, c, d) { return r.BindEaseCircIn( t, b, @@ -8899,7 +8899,7 @@ raylib.EaseCircIn = EaseCircIn * * @return {number} The resulting float. */ -function EaseCircOut (t, b, c, d) { +function EaseCircOut(t, b, c, d) { return r.BindEaseCircOut( t, b, @@ -8919,7 +8919,7 @@ raylib.EaseCircOut = EaseCircOut * * @return {number} The resulting float. */ -function EaseCircInOut (t, b, c, d) { +function EaseCircInOut(t, b, c, d) { return r.BindEaseCircInOut( t, b, @@ -8939,7 +8939,7 @@ raylib.EaseCircInOut = EaseCircInOut * * @return {number} The resulting float. */ -function EaseCubicIn (t, b, c, d) { +function EaseCubicIn(t, b, c, d) { return r.BindEaseCubicIn( t, b, @@ -8959,7 +8959,7 @@ raylib.EaseCubicIn = EaseCubicIn * * @return {number} The resulting float. */ -function EaseCubicOut (t, b, c, d) { +function EaseCubicOut(t, b, c, d) { return r.BindEaseCubicOut( t, b, @@ -8979,7 +8979,7 @@ raylib.EaseCubicOut = EaseCubicOut * * @return {number} The resulting float. */ -function EaseCubicInOut (t, b, c, d) { +function EaseCubicInOut(t, b, c, d) { return r.BindEaseCubicInOut( t, b, @@ -8999,7 +8999,7 @@ raylib.EaseCubicInOut = EaseCubicInOut * * @return {number} The resulting float. */ -function EaseQuadIn (t, b, c, d) { +function EaseQuadIn(t, b, c, d) { return r.BindEaseQuadIn( t, b, @@ -9019,7 +9019,7 @@ raylib.EaseQuadIn = EaseQuadIn * * @return {number} The resulting float. */ -function EaseQuadOut (t, b, c, d) { +function EaseQuadOut(t, b, c, d) { return r.BindEaseQuadOut( t, b, @@ -9039,7 +9039,7 @@ raylib.EaseQuadOut = EaseQuadOut * * @return {number} The resulting float. */ -function EaseQuadInOut (t, b, c, d) { +function EaseQuadInOut(t, b, c, d) { return r.BindEaseQuadInOut( t, b, @@ -9059,7 +9059,7 @@ raylib.EaseQuadInOut = EaseQuadInOut * * @return {number} The resulting float. */ -function EaseExpoIn (t, b, c, d) { +function EaseExpoIn(t, b, c, d) { return r.BindEaseExpoIn( t, b, @@ -9079,7 +9079,7 @@ raylib.EaseExpoIn = EaseExpoIn * * @return {number} The resulting float. */ -function EaseExpoOut (t, b, c, d) { +function EaseExpoOut(t, b, c, d) { return r.BindEaseExpoOut( t, b, @@ -9099,7 +9099,7 @@ raylib.EaseExpoOut = EaseExpoOut * * @return {number} The resulting float. */ -function EaseExpoInOut (t, b, c, d) { +function EaseExpoInOut(t, b, c, d) { return r.BindEaseExpoInOut( t, b, @@ -9119,7 +9119,7 @@ raylib.EaseExpoInOut = EaseExpoInOut * * @return {number} The resulting float. */ -function EaseBackIn (t, b, c, d) { +function EaseBackIn(t, b, c, d) { return r.BindEaseBackIn( t, b, @@ -9139,7 +9139,7 @@ raylib.EaseBackIn = EaseBackIn * * @return {number} The resulting float. */ -function EaseBackOut (t, b, c, d) { +function EaseBackOut(t, b, c, d) { return r.BindEaseBackOut( t, b, @@ -9159,7 +9159,7 @@ raylib.EaseBackOut = EaseBackOut * * @return {number} The resulting float. */ -function EaseBackInOut (t, b, c, d) { +function EaseBackInOut(t, b, c, d) { return r.BindEaseBackInOut( t, b, @@ -9179,7 +9179,7 @@ raylib.EaseBackInOut = EaseBackInOut * * @return {number} The resulting float. */ -function EaseBounceOut (t, b, c, d) { +function EaseBounceOut(t, b, c, d) { return r.BindEaseBounceOut( t, b, @@ -9199,7 +9199,7 @@ raylib.EaseBounceOut = EaseBounceOut * * @return {number} The resulting float. */ -function EaseBounceIn (t, b, c, d) { +function EaseBounceIn(t, b, c, d) { return r.BindEaseBounceIn( t, b, @@ -9219,7 +9219,7 @@ raylib.EaseBounceIn = EaseBounceIn * * @return {number} The resulting float. */ -function EaseBounceInOut (t, b, c, d) { +function EaseBounceInOut(t, b, c, d) { return r.BindEaseBounceInOut( t, b, @@ -9239,7 +9239,7 @@ raylib.EaseBounceInOut = EaseBounceInOut * * @return {number} The resulting float. */ -function EaseElasticIn (t, b, c, d) { +function EaseElasticIn(t, b, c, d) { return r.BindEaseElasticIn( t, b, @@ -9259,7 +9259,7 @@ raylib.EaseElasticIn = EaseElasticIn * * @return {number} The resulting float. */ -function EaseElasticOut (t, b, c, d) { +function EaseElasticOut(t, b, c, d) { return r.BindEaseElasticOut( t, b, @@ -9279,7 +9279,7 @@ raylib.EaseElasticOut = EaseElasticOut * * @return {number} The resulting float. */ -function EaseElasticInOut (t, b, c, d) { +function EaseElasticInOut(t, b, c, d) { return r.BindEaseElasticInOut( t, b, @@ -9289,7 +9289,7 @@ function EaseElasticInOut (t, b, c, d) { } raylib.EaseElasticInOut = EaseElasticInOut -function Clamp (value, min, max) { +function Clamp(value, min, max) { return r.BindClamp( value, min, @@ -9298,7 +9298,7 @@ function Clamp (value, min, max) { } raylib.Clamp = Clamp -function Lerp (start, end, amount) { +function Lerp(start, end, amount) { return r.BindLerp( start, end, @@ -9307,7 +9307,7 @@ function Lerp (start, end, amount) { } raylib.Lerp = Lerp -function Normalize (value, start, end) { +function Normalize(value, start, end) { return r.BindNormalize( value, start, @@ -9316,7 +9316,7 @@ function Normalize (value, start, end) { } raylib.Normalize = Normalize -function Remap (value, inputStart, inputEnd, outputStart, outputEnd) { +function Remap(value, inputStart, inputEnd, outputStart, outputEnd) { return r.BindRemap( value, inputStart, @@ -9327,7 +9327,7 @@ function Remap (value, inputStart, inputEnd, outputStart, outputEnd) { } raylib.Remap = Remap -function Wrap (value, min, max) { +function Wrap(value, min, max) { return r.BindWrap( value, min, @@ -9336,7 +9336,7 @@ function Wrap (value, min, max) { } raylib.Wrap = Wrap -function FloatEquals (x, y) { +function FloatEquals(x, y) { return r.BindFloatEquals( x, y @@ -9344,17 +9344,17 @@ function FloatEquals (x, y) { } raylib.FloatEquals = FloatEquals -function Vector2Zero () { +function Vector2Zero() { return r.BindVector2Zero() } raylib.Vector2Zero = Vector2Zero -function Vector2One () { +function Vector2One() { return r.BindVector2One() } raylib.Vector2One = Vector2One -function Vector2Add (v1, v2) { +function Vector2Add(v1, v2) { return r.BindVector2Add( v1.x, v1.y, @@ -9364,7 +9364,7 @@ function Vector2Add (v1, v2) { } raylib.Vector2Add = Vector2Add -function Vector2AddValue (v, add) { +function Vector2AddValue(v, add) { return r.BindVector2AddValue( v.x, v.y, @@ -9373,7 +9373,7 @@ function Vector2AddValue (v, add) { } raylib.Vector2AddValue = Vector2AddValue -function Vector2Subtract (v1, v2) { +function Vector2Subtract(v1, v2) { return r.BindVector2Subtract( v1.x, v1.y, @@ -9383,7 +9383,7 @@ function Vector2Subtract (v1, v2) { } raylib.Vector2Subtract = Vector2Subtract -function Vector2SubtractValue (v, sub) { +function Vector2SubtractValue(v, sub) { return r.BindVector2SubtractValue( v.x, v.y, @@ -9392,7 +9392,7 @@ function Vector2SubtractValue (v, sub) { } raylib.Vector2SubtractValue = Vector2SubtractValue -function Vector2Length (v) { +function Vector2Length(v) { return r.BindVector2Length( v.x, v.y @@ -9400,7 +9400,7 @@ function Vector2Length (v) { } raylib.Vector2Length = Vector2Length -function Vector2LengthSqr (v) { +function Vector2LengthSqr(v) { return r.BindVector2LengthSqr( v.x, v.y @@ -9408,7 +9408,7 @@ function Vector2LengthSqr (v) { } raylib.Vector2LengthSqr = Vector2LengthSqr -function Vector2DotProduct (v1, v2) { +function Vector2DotProduct(v1, v2) { return r.BindVector2DotProduct( v1.x, v1.y, @@ -9418,7 +9418,7 @@ function Vector2DotProduct (v1, v2) { } raylib.Vector2DotProduct = Vector2DotProduct -function Vector2Distance (v1, v2) { +function Vector2Distance(v1, v2) { return r.BindVector2Distance( v1.x, v1.y, @@ -9428,7 +9428,7 @@ function Vector2Distance (v1, v2) { } raylib.Vector2Distance = Vector2Distance -function Vector2DistanceSqr (v1, v2) { +function Vector2DistanceSqr(v1, v2) { return r.BindVector2DistanceSqr( v1.x, v1.y, @@ -9438,7 +9438,7 @@ function Vector2DistanceSqr (v1, v2) { } raylib.Vector2DistanceSqr = Vector2DistanceSqr -function Vector2Angle (v1, v2) { +function Vector2Angle(v1, v2) { return r.BindVector2Angle( v1.x, v1.y, @@ -9448,7 +9448,7 @@ function Vector2Angle (v1, v2) { } raylib.Vector2Angle = Vector2Angle -function Vector2LineAngle (start, end) { +function Vector2LineAngle(start, end) { return r.BindVector2LineAngle( start.x, start.y, @@ -9458,7 +9458,7 @@ function Vector2LineAngle (start, end) { } raylib.Vector2LineAngle = Vector2LineAngle -function Vector2Scale (v, scale) { +function Vector2Scale(v, scale) { return r.BindVector2Scale( v.x, v.y, @@ -9467,7 +9467,7 @@ function Vector2Scale (v, scale) { } raylib.Vector2Scale = Vector2Scale -function Vector2Multiply (v1, v2) { +function Vector2Multiply(v1, v2) { return r.BindVector2Multiply( v1.x, v1.y, @@ -9477,7 +9477,7 @@ function Vector2Multiply (v1, v2) { } raylib.Vector2Multiply = Vector2Multiply -function Vector2Negate (v) { +function Vector2Negate(v) { return r.BindVector2Negate( v.x, v.y @@ -9485,7 +9485,7 @@ function Vector2Negate (v) { } raylib.Vector2Negate = Vector2Negate -function Vector2Divide (v1, v2) { +function Vector2Divide(v1, v2) { return r.BindVector2Divide( v1.x, v1.y, @@ -9495,7 +9495,7 @@ function Vector2Divide (v1, v2) { } raylib.Vector2Divide = Vector2Divide -function Vector2Normalize (v) { +function Vector2Normalize(v) { return r.BindVector2Normalize( v.x, v.y @@ -9503,7 +9503,7 @@ function Vector2Normalize (v) { } raylib.Vector2Normalize = Vector2Normalize -function Vector2Transform (v, mat) { +function Vector2Transform(v, mat) { return r.BindVector2Transform( v.x, v.y, @@ -9527,7 +9527,7 @@ function Vector2Transform (v, mat) { } raylib.Vector2Transform = Vector2Transform -function Vector2Lerp (v1, v2, amount) { +function Vector2Lerp(v1, v2, amount) { return r.BindVector2Lerp( v1.x, v1.y, @@ -9538,7 +9538,7 @@ function Vector2Lerp (v1, v2, amount) { } raylib.Vector2Lerp = Vector2Lerp -function Vector2Reflect (v, normal) { +function Vector2Reflect(v, normal) { return r.BindVector2Reflect( v.x, v.y, @@ -9548,7 +9548,7 @@ function Vector2Reflect (v, normal) { } raylib.Vector2Reflect = Vector2Reflect -function Vector2Rotate (v, angle) { +function Vector2Rotate(v, angle) { return r.BindVector2Rotate( v.x, v.y, @@ -9557,7 +9557,7 @@ function Vector2Rotate (v, angle) { } raylib.Vector2Rotate = Vector2Rotate -function Vector2MoveTowards (v, target, maxDistance) { +function Vector2MoveTowards(v, target, maxDistance) { return r.BindVector2MoveTowards( v.x, v.y, @@ -9568,7 +9568,7 @@ function Vector2MoveTowards (v, target, maxDistance) { } raylib.Vector2MoveTowards = Vector2MoveTowards -function Vector2Invert (v) { +function Vector2Invert(v) { return r.BindVector2Invert( v.x, v.y @@ -9576,7 +9576,7 @@ function Vector2Invert (v) { } raylib.Vector2Invert = Vector2Invert -function Vector2Clamp (v, min, max) { +function Vector2Clamp(v, min, max) { return r.BindVector2Clamp( v.x, v.y, @@ -9588,7 +9588,7 @@ function Vector2Clamp (v, min, max) { } raylib.Vector2Clamp = Vector2Clamp -function Vector2ClampValue (v, min, max) { +function Vector2ClampValue(v, min, max) { return r.BindVector2ClampValue( v.x, v.y, @@ -9598,7 +9598,7 @@ function Vector2ClampValue (v, min, max) { } raylib.Vector2ClampValue = Vector2ClampValue -function Vector2Equals (p, q) { +function Vector2Equals(p, q) { return r.BindVector2Equals( p.x, p.y, @@ -9608,17 +9608,17 @@ function Vector2Equals (p, q) { } raylib.Vector2Equals = Vector2Equals -function Vector3Zero () { +function Vector3Zero() { return r.BindVector3Zero() } raylib.Vector3Zero = Vector3Zero -function Vector3One () { +function Vector3One() { return r.BindVector3One() } raylib.Vector3One = Vector3One -function Vector3Add (v1, v2) { +function Vector3Add(v1, v2) { return r.BindVector3Add( v1.x, v1.y, @@ -9630,7 +9630,7 @@ function Vector3Add (v1, v2) { } raylib.Vector3Add = Vector3Add -function Vector3AddValue (v, add) { +function Vector3AddValue(v, add) { return r.BindVector3AddValue( v.x, v.y, @@ -9640,7 +9640,7 @@ function Vector3AddValue (v, add) { } raylib.Vector3AddValue = Vector3AddValue -function Vector3Subtract (v1, v2) { +function Vector3Subtract(v1, v2) { return r.BindVector3Subtract( v1.x, v1.y, @@ -9652,7 +9652,7 @@ function Vector3Subtract (v1, v2) { } raylib.Vector3Subtract = Vector3Subtract -function Vector3SubtractValue (v, sub) { +function Vector3SubtractValue(v, sub) { return r.BindVector3SubtractValue( v.x, v.y, @@ -9662,7 +9662,7 @@ function Vector3SubtractValue (v, sub) { } raylib.Vector3SubtractValue = Vector3SubtractValue -function Vector3Scale (v, scalar) { +function Vector3Scale(v, scalar) { return r.BindVector3Scale( v.x, v.y, @@ -9672,7 +9672,7 @@ function Vector3Scale (v, scalar) { } raylib.Vector3Scale = Vector3Scale -function Vector3Multiply (v1, v2) { +function Vector3Multiply(v1, v2) { return r.BindVector3Multiply( v1.x, v1.y, @@ -9684,7 +9684,7 @@ function Vector3Multiply (v1, v2) { } raylib.Vector3Multiply = Vector3Multiply -function Vector3CrossProduct (v1, v2) { +function Vector3CrossProduct(v1, v2) { return r.BindVector3CrossProduct( v1.x, v1.y, @@ -9696,7 +9696,7 @@ function Vector3CrossProduct (v1, v2) { } raylib.Vector3CrossProduct = Vector3CrossProduct -function Vector3Perpendicular (v) { +function Vector3Perpendicular(v) { return r.BindVector3Perpendicular( v.x, v.y, @@ -9705,21 +9705,21 @@ function Vector3Perpendicular (v) { } raylib.Vector3Perpendicular = Vector3Perpendicular -function Vector3Length (v) { +function Vector3Length(v) { return r.BindVector3Length( v ) } raylib.Vector3Length = Vector3Length -function Vector3LengthSqr (v) { +function Vector3LengthSqr(v) { return r.BindVector3LengthSqr( v ) } raylib.Vector3LengthSqr = Vector3LengthSqr -function Vector3DotProduct (v1, v2) { +function Vector3DotProduct(v1, v2) { return r.BindVector3DotProduct( v1.x, v1.y, @@ -9731,7 +9731,7 @@ function Vector3DotProduct (v1, v2) { } raylib.Vector3DotProduct = Vector3DotProduct -function Vector3Distance (v1, v2) { +function Vector3Distance(v1, v2) { return r.BindVector3Distance( v1.x, v1.y, @@ -9743,7 +9743,7 @@ function Vector3Distance (v1, v2) { } raylib.Vector3Distance = Vector3Distance -function Vector3DistanceSqr (v1, v2) { +function Vector3DistanceSqr(v1, v2) { return r.BindVector3DistanceSqr( v1.x, v1.y, @@ -9755,7 +9755,7 @@ function Vector3DistanceSqr (v1, v2) { } raylib.Vector3DistanceSqr = Vector3DistanceSqr -function Vector3Angle (v1, v2) { +function Vector3Angle(v1, v2) { return r.BindVector3Angle( v1.x, v1.y, @@ -9767,7 +9767,7 @@ function Vector3Angle (v1, v2) { } raylib.Vector3Angle = Vector3Angle -function Vector3Negate (v) { +function Vector3Negate(v) { return r.BindVector3Negate( v.x, v.y, @@ -9776,7 +9776,7 @@ function Vector3Negate (v) { } raylib.Vector3Negate = Vector3Negate -function Vector3Divide (v1, v2) { +function Vector3Divide(v1, v2) { return r.BindVector3Divide( v1.x, v1.y, @@ -9788,7 +9788,7 @@ function Vector3Divide (v1, v2) { } raylib.Vector3Divide = Vector3Divide -function Vector3Normalize (v) { +function Vector3Normalize(v) { return r.BindVector3Normalize( v.x, v.y, @@ -9797,7 +9797,7 @@ function Vector3Normalize (v) { } raylib.Vector3Normalize = Vector3Normalize -function Vector3OrthoNormalize (v1, v2) { +function Vector3OrthoNormalize(v1, v2) { return r.BindVector3OrthoNormalize( v1, v2 @@ -9805,7 +9805,7 @@ function Vector3OrthoNormalize (v1, v2) { } raylib.Vector3OrthoNormalize = Vector3OrthoNormalize -function Vector3Transform (v, mat) { +function Vector3Transform(v, mat) { return r.BindVector3Transform( v.x, v.y, @@ -9830,7 +9830,7 @@ function Vector3Transform (v, mat) { } raylib.Vector3Transform = Vector3Transform -function Vector3RotateByQuaternion (v, q) { +function Vector3RotateByQuaternion(v, q) { return r.BindVector3RotateByQuaternion( v.x, v.y, @@ -9840,7 +9840,7 @@ function Vector3RotateByQuaternion (v, q) { } raylib.Vector3RotateByQuaternion = Vector3RotateByQuaternion -function Vector3RotateByAxisAngle (v, axis, angle) { +function Vector3RotateByAxisAngle(v, axis, angle) { return r.BindVector3RotateByAxisAngle( v.x, v.y, @@ -9853,7 +9853,7 @@ function Vector3RotateByAxisAngle (v, axis, angle) { } raylib.Vector3RotateByAxisAngle = Vector3RotateByAxisAngle -function Vector3Lerp (v1, v2, amount) { +function Vector3Lerp(v1, v2, amount) { return r.BindVector3Lerp( v1.x, v1.y, @@ -9866,7 +9866,7 @@ function Vector3Lerp (v1, v2, amount) { } raylib.Vector3Lerp = Vector3Lerp -function Vector3Reflect (v, normal) { +function Vector3Reflect(v, normal) { return r.BindVector3Reflect( v.x, v.y, @@ -9878,7 +9878,7 @@ function Vector3Reflect (v, normal) { } raylib.Vector3Reflect = Vector3Reflect -function Vector3Min (v1, v2) { +function Vector3Min(v1, v2) { return r.BindVector3Min( v1.x, v1.y, @@ -9890,7 +9890,7 @@ function Vector3Min (v1, v2) { } raylib.Vector3Min = Vector3Min -function Vector3Max (v1, v2) { +function Vector3Max(v1, v2) { return r.BindVector3Max( v1.x, v1.y, @@ -9902,7 +9902,7 @@ function Vector3Max (v1, v2) { } raylib.Vector3Max = Vector3Max -function Vector3Barycenter (p, a, b, c) { +function Vector3Barycenter(p, a, b, c) { return r.BindVector3Barycenter( p.x, p.y, @@ -9920,7 +9920,7 @@ function Vector3Barycenter (p, a, b, c) { } raylib.Vector3Barycenter = Vector3Barycenter -function Vector3Unproject (source, projection, view) { +function Vector3Unproject(source, projection, view) { return r.BindVector3Unproject( source.x, source.y, @@ -9961,7 +9961,7 @@ function Vector3Unproject (source, projection, view) { } raylib.Vector3Unproject = Vector3Unproject -function Vector3Invert (v) { +function Vector3Invert(v) { return r.BindVector3Invert( v.x, v.y, @@ -9970,7 +9970,7 @@ function Vector3Invert (v) { } raylib.Vector3Invert = Vector3Invert -function Vector3Clamp (v, min, max) { +function Vector3Clamp(v, min, max) { return r.BindVector3Clamp( v.x, v.y, @@ -9985,7 +9985,7 @@ function Vector3Clamp (v, min, max) { } raylib.Vector3Clamp = Vector3Clamp -function Vector3ClampValue (v, min, max) { +function Vector3ClampValue(v, min, max) { return r.BindVector3ClampValue( v.x, v.y, @@ -9996,7 +9996,7 @@ function Vector3ClampValue (v, min, max) { } raylib.Vector3ClampValue = Vector3ClampValue -function Vector3Equals (p, q) { +function Vector3Equals(p, q) { return r.BindVector3Equals( p.x, p.y, @@ -10008,7 +10008,7 @@ function Vector3Equals (p, q) { } raylib.Vector3Equals = Vector3Equals -function Vector3Refract (v, n, r) { +function Vector3Refract(v, n, r) { return r.BindVector3Refract( v.x, v.y, @@ -10021,7 +10021,7 @@ function Vector3Refract (v, n, r) { } raylib.Vector3Refract = Vector3Refract -function MatrixDeterminant (mat) { +function MatrixDeterminant(mat) { return r.BindMatrixDeterminant( mat.m0, mat.m4, @@ -10043,7 +10043,7 @@ function MatrixDeterminant (mat) { } raylib.MatrixDeterminant = MatrixDeterminant -function MatrixTrace (mat) { +function MatrixTrace(mat) { return r.BindMatrixTrace( mat.m0, mat.m4, @@ -10065,7 +10065,7 @@ function MatrixTrace (mat) { } raylib.MatrixTrace = MatrixTrace -function MatrixTranspose (mat) { +function MatrixTranspose(mat) { return r.BindMatrixTranspose( mat.m0, mat.m4, @@ -10087,7 +10087,7 @@ function MatrixTranspose (mat) { } raylib.MatrixTranspose = MatrixTranspose -function MatrixInvert (mat) { +function MatrixInvert(mat) { return r.BindMatrixInvert( mat.m0, mat.m4, @@ -10109,12 +10109,12 @@ function MatrixInvert (mat) { } raylib.MatrixInvert = MatrixInvert -function MatrixIdentity () { +function MatrixIdentity() { return r.BindMatrixIdentity() } raylib.MatrixIdentity = MatrixIdentity -function MatrixAdd (left, right) { +function MatrixAdd(left, right) { return r.BindMatrixAdd( left.m0, left.m4, @@ -10152,7 +10152,7 @@ function MatrixAdd (left, right) { } raylib.MatrixAdd = MatrixAdd -function MatrixSubtract (left, right) { +function MatrixSubtract(left, right) { return r.BindMatrixSubtract( left.m0, left.m4, @@ -10190,7 +10190,7 @@ function MatrixSubtract (left, right) { } raylib.MatrixSubtract = MatrixSubtract -function MatrixMultiply (left, right) { +function MatrixMultiply(left, right) { return r.BindMatrixMultiply( left.m0, left.m4, @@ -10228,7 +10228,7 @@ function MatrixMultiply (left, right) { } raylib.MatrixMultiply = MatrixMultiply -function MatrixTranslate (x, y, z) { +function MatrixTranslate(x, y, z) { return r.BindMatrixTranslate( x, y, @@ -10237,7 +10237,7 @@ function MatrixTranslate (x, y, z) { } raylib.MatrixTranslate = MatrixTranslate -function MatrixRotate (axis, angle) { +function MatrixRotate(axis, angle) { return r.BindMatrixRotate( axis.x, axis.y, @@ -10247,28 +10247,28 @@ function MatrixRotate (axis, angle) { } raylib.MatrixRotate = MatrixRotate -function MatrixRotateX (angle) { +function MatrixRotateX(angle) { return r.BindMatrixRotateX( angle ) } raylib.MatrixRotateX = MatrixRotateX -function MatrixRotateY (angle) { +function MatrixRotateY(angle) { return r.BindMatrixRotateY( angle ) } raylib.MatrixRotateY = MatrixRotateY -function MatrixRotateZ (angle) { +function MatrixRotateZ(angle) { return r.BindMatrixRotateZ( angle ) } raylib.MatrixRotateZ = MatrixRotateZ -function MatrixRotateXYZ (angle) { +function MatrixRotateXYZ(angle) { return r.BindMatrixRotateXYZ( angle.x, angle.y, @@ -10277,7 +10277,7 @@ function MatrixRotateXYZ (angle) { } raylib.MatrixRotateXYZ = MatrixRotateXYZ -function MatrixRotateZYX (angle) { +function MatrixRotateZYX(angle) { return r.BindMatrixRotateZYX( angle.x, angle.y, @@ -10286,7 +10286,7 @@ function MatrixRotateZYX (angle) { } raylib.MatrixRotateZYX = MatrixRotateZYX -function MatrixScale (x, y, z) { +function MatrixScale(x, y, z) { return r.BindMatrixScale( x, y, @@ -10295,7 +10295,7 @@ function MatrixScale (x, y, z) { } raylib.MatrixScale = MatrixScale -function MatrixFrustum (left, right, bottom, top, near, far) { +function MatrixFrustum(left, right, bottom, top, near, far) { return r.BindMatrixFrustum( left, right, @@ -10307,7 +10307,7 @@ function MatrixFrustum (left, right, bottom, top, near, far) { } raylib.MatrixFrustum = MatrixFrustum -function MatrixPerspective (fovy, aspect, near, far) { +function MatrixPerspective(fovy, aspect, near, far) { return r.BindMatrixPerspective( fovy, aspect, @@ -10317,7 +10317,7 @@ function MatrixPerspective (fovy, aspect, near, far) { } raylib.MatrixPerspective = MatrixPerspective -function MatrixOrtho (left, right, bottom, top, near, far) { +function MatrixOrtho(left, right, bottom, top, near, far) { return r.BindMatrixOrtho( left, right, @@ -10329,7 +10329,7 @@ function MatrixOrtho (left, right, bottom, top, near, far) { } raylib.MatrixOrtho = MatrixOrtho -function MatrixLookAt (eye, target, up) { +function MatrixLookAt(eye, target, up) { return r.BindMatrixLookAt( eye.x, eye.y, @@ -10344,7 +10344,7 @@ function MatrixLookAt (eye, target, up) { } raylib.MatrixLookAt = MatrixLookAt -function QuaternionAdd (q1, q2) { +function QuaternionAdd(q1, q2) { return r.BindQuaternionAdd( q1, q2 @@ -10352,7 +10352,7 @@ function QuaternionAdd (q1, q2) { } raylib.QuaternionAdd = QuaternionAdd -function QuaternionAddValue (q, add) { +function QuaternionAddValue(q, add) { return r.BindQuaternionAddValue( q, add @@ -10360,7 +10360,7 @@ function QuaternionAddValue (q, add) { } raylib.QuaternionAddValue = QuaternionAddValue -function QuaternionSubtract (q1, q2) { +function QuaternionSubtract(q1, q2) { return r.BindQuaternionSubtract( q1, q2 @@ -10368,7 +10368,7 @@ function QuaternionSubtract (q1, q2) { } raylib.QuaternionSubtract = QuaternionSubtract -function QuaternionSubtractValue (q, sub) { +function QuaternionSubtractValue(q, sub) { return r.BindQuaternionSubtractValue( q, sub @@ -10376,33 +10376,33 @@ function QuaternionSubtractValue (q, sub) { } raylib.QuaternionSubtractValue = QuaternionSubtractValue -function QuaternionIdentity () { +function QuaternionIdentity() { return r.BindQuaternionIdentity() } raylib.QuaternionIdentity = QuaternionIdentity -function QuaternionLength (q) { +function QuaternionLength(q) { return r.BindQuaternionLength( q ) } raylib.QuaternionLength = QuaternionLength -function QuaternionNormalize (q) { +function QuaternionNormalize(q) { return r.BindQuaternionNormalize( q ) } raylib.QuaternionNormalize = QuaternionNormalize -function QuaternionInvert (q) { +function QuaternionInvert(q) { return r.BindQuaternionInvert( q ) } raylib.QuaternionInvert = QuaternionInvert -function QuaternionMultiply (q1, q2) { +function QuaternionMultiply(q1, q2) { return r.BindQuaternionMultiply( q1, q2 @@ -10410,7 +10410,7 @@ function QuaternionMultiply (q1, q2) { } raylib.QuaternionMultiply = QuaternionMultiply -function QuaternionScale (q, mul) { +function QuaternionScale(q, mul) { return r.BindQuaternionScale( q, mul @@ -10418,7 +10418,7 @@ function QuaternionScale (q, mul) { } raylib.QuaternionScale = QuaternionScale -function QuaternionDivide (q1, q2) { +function QuaternionDivide(q1, q2) { return r.BindQuaternionDivide( q1, q2 @@ -10426,7 +10426,7 @@ function QuaternionDivide (q1, q2) { } raylib.QuaternionDivide = QuaternionDivide -function QuaternionLerp (q1, q2, amount) { +function QuaternionLerp(q1, q2, amount) { return r.BindQuaternionLerp( q1, q2, @@ -10435,7 +10435,7 @@ function QuaternionLerp (q1, q2, amount) { } raylib.QuaternionLerp = QuaternionLerp -function QuaternionNlerp (q1, q2, amount) { +function QuaternionNlerp(q1, q2, amount) { return r.BindQuaternionNlerp( q1, q2, @@ -10444,7 +10444,7 @@ function QuaternionNlerp (q1, q2, amount) { } raylib.QuaternionNlerp = QuaternionNlerp -function QuaternionSlerp (q1, q2, amount) { +function QuaternionSlerp(q1, q2, amount) { return r.BindQuaternionSlerp( q1, q2, @@ -10453,7 +10453,7 @@ function QuaternionSlerp (q1, q2, amount) { } raylib.QuaternionSlerp = QuaternionSlerp -function QuaternionFromVector3ToVector3 (from, to) { +function QuaternionFromVector3ToVector3(from, to) { return r.BindQuaternionFromVector3ToVector3( from.x, from.y, @@ -10465,7 +10465,7 @@ function QuaternionFromVector3ToVector3 (from, to) { } raylib.QuaternionFromVector3ToVector3 = QuaternionFromVector3ToVector3 -function QuaternionFromMatrix (mat) { +function QuaternionFromMatrix(mat) { return r.BindQuaternionFromMatrix( mat.m0, mat.m4, @@ -10487,14 +10487,14 @@ function QuaternionFromMatrix (mat) { } raylib.QuaternionFromMatrix = QuaternionFromMatrix -function QuaternionToMatrix (q) { +function QuaternionToMatrix(q) { return r.BindQuaternionToMatrix( q ) } raylib.QuaternionToMatrix = QuaternionToMatrix -function QuaternionFromAxisAngle (axis, angle) { +function QuaternionFromAxisAngle(axis, angle) { return r.BindQuaternionFromAxisAngle( axis.x, axis.y, @@ -10504,7 +10504,7 @@ function QuaternionFromAxisAngle (axis, angle) { } raylib.QuaternionFromAxisAngle = QuaternionFromAxisAngle -function QuaternionToAxisAngle (q, outAxis, outAngle) { +function QuaternionToAxisAngle(q, outAxis, outAngle) { return r.BindQuaternionToAxisAngle( q, outAxis, @@ -10513,7 +10513,7 @@ function QuaternionToAxisAngle (q, outAxis, outAngle) { } raylib.QuaternionToAxisAngle = QuaternionToAxisAngle -function QuaternionFromEuler (pitch, yaw, roll) { +function QuaternionFromEuler(pitch, yaw, roll) { return r.BindQuaternionFromEuler( pitch, yaw, @@ -10522,14 +10522,14 @@ function QuaternionFromEuler (pitch, yaw, roll) { } raylib.QuaternionFromEuler = QuaternionFromEuler -function QuaternionToEuler (q) { +function QuaternionToEuler(q) { return r.BindQuaternionToEuler( q ) } raylib.QuaternionToEuler = QuaternionToEuler -function QuaternionTransform (q, mat) { +function QuaternionTransform(q, mat) { return r.BindQuaternionTransform( q, mat.m0, @@ -10552,7 +10552,7 @@ function QuaternionTransform (q, mat) { } raylib.QuaternionTransform = QuaternionTransform -function QuaternionEquals (p, q) { +function QuaternionEquals(p, q) { return r.BindQuaternionEquals( p, q @@ -10565,7 +10565,7 @@ raylib.QuaternionEquals = QuaternionEquals * * @return {undefined} */ -function GuiEnable () { +function GuiEnable() { return r.BindGuiEnable() } raylib.GuiEnable = GuiEnable @@ -10575,7 +10575,7 @@ raylib.GuiEnable = GuiEnable * * @return {undefined} */ -function GuiDisable () { +function GuiDisable() { return r.BindGuiDisable() } raylib.GuiDisable = GuiDisable @@ -10585,7 +10585,7 @@ raylib.GuiDisable = GuiDisable * * @return {undefined} */ -function GuiLock () { +function GuiLock() { return r.BindGuiLock() } raylib.GuiLock = GuiLock @@ -10595,7 +10595,7 @@ raylib.GuiLock = GuiLock * * @return {undefined} */ -function GuiUnlock () { +function GuiUnlock() { return r.BindGuiUnlock() } raylib.GuiUnlock = GuiUnlock @@ -10605,7 +10605,7 @@ raylib.GuiUnlock = GuiUnlock * * @return {boolean} The resulting bool. */ -function GuiIsLocked () { +function GuiIsLocked() { return r.BindGuiIsLocked() } raylib.GuiIsLocked = GuiIsLocked @@ -10617,7 +10617,7 @@ raylib.GuiIsLocked = GuiIsLocked * * @return {undefined} */ -function GuiFade (alpha) { +function GuiFade(alpha) { return r.BindGuiFade( alpha ) @@ -10631,7 +10631,7 @@ raylib.GuiFade = GuiFade * * @return {undefined} */ -function GuiSetState (state) { +function GuiSetState(state) { return r.BindGuiSetState( state ) @@ -10643,7 +10643,7 @@ raylib.GuiSetState = GuiSetState * * @return {number} The resulting int. */ -function GuiGetState () { +function GuiGetState() { return r.BindGuiGetState() } raylib.GuiGetState = GuiGetState @@ -10655,7 +10655,7 @@ raylib.GuiGetState = GuiGetState * * @return {undefined} */ -function GuiSetFont (font) { +function GuiSetFont(font) { return r.BindGuiSetFont( font.baseSize, font.glyphCount, @@ -10676,7 +10676,7 @@ raylib.GuiSetFont = GuiSetFont * * @return {Font} The resulting Font. */ -function GuiGetFont () { +function GuiGetFont() { return r.BindGuiGetFont() } raylib.GuiGetFont = GuiGetFont @@ -10690,7 +10690,7 @@ raylib.GuiGetFont = GuiGetFont * * @return {undefined} */ -function GuiSetStyle (control, property, value) { +function GuiSetStyle(control, property, value) { return r.BindGuiSetStyle( control, property, @@ -10707,7 +10707,7 @@ raylib.GuiSetStyle = GuiSetStyle * * @return {number} The resulting int. */ -function GuiGetStyle (control, property) { +function GuiGetStyle(control, property) { return r.BindGuiGetStyle( control, property @@ -10723,7 +10723,7 @@ raylib.GuiGetStyle = GuiGetStyle * * @return {boolean} The resulting bool. */ -function GuiWindowBox (bounds, title) { +function GuiWindowBox(bounds, title) { return r.BindGuiWindowBox( bounds.x, bounds.y, @@ -10742,7 +10742,7 @@ raylib.GuiWindowBox = GuiWindowBox * * @return {undefined} */ -function GuiGroupBox (bounds, text) { +function GuiGroupBox(bounds, text) { return r.BindGuiGroupBox( bounds.x, bounds.y, @@ -10761,7 +10761,7 @@ raylib.GuiGroupBox = GuiGroupBox * * @return {undefined} */ -function GuiLine (bounds, text) { +function GuiLine(bounds, text) { return r.BindGuiLine( bounds.x, bounds.y, @@ -10780,7 +10780,7 @@ raylib.GuiLine = GuiLine * * @return {undefined} */ -function GuiPanel (bounds, text) { +function GuiPanel(bounds, text) { return r.BindGuiPanel( bounds.x, bounds.y, @@ -10801,7 +10801,7 @@ raylib.GuiPanel = GuiPanel * * @return {number} The resulting int. */ -function GuiTabBar (bounds, text, count, active) { +function GuiTabBar(bounds, text, count, active) { return r.BindGuiTabBar( bounds.x, bounds.y, @@ -10824,7 +10824,7 @@ raylib.GuiTabBar = GuiTabBar * * @return {Rectangle} The resulting Rectangle. */ -function GuiScrollPanel (bounds, text, content, scroll) { +function GuiScrollPanel(bounds, text, content, scroll) { return r.BindGuiScrollPanel( bounds.x, bounds.y, @@ -10848,7 +10848,7 @@ raylib.GuiScrollPanel = GuiScrollPanel * * @return {undefined} */ -function GuiLabel (bounds, text) { +function GuiLabel(bounds, text) { return r.BindGuiLabel( bounds.x, bounds.y, @@ -10867,7 +10867,7 @@ raylib.GuiLabel = GuiLabel * * @return {boolean} The resulting bool. */ -function GuiButton (bounds, text) { +function GuiButton(bounds, text) { return r.BindGuiButton( bounds.x, bounds.y, @@ -10886,7 +10886,7 @@ raylib.GuiButton = GuiButton * * @return {boolean} The resulting bool. */ -function GuiLabelButton (bounds, text) { +function GuiLabelButton(bounds, text) { return r.BindGuiLabelButton( bounds.x, bounds.y, @@ -10906,7 +10906,7 @@ raylib.GuiLabelButton = GuiLabelButton * * @return {boolean} The resulting bool. */ -function GuiToggle (bounds, text, active) { +function GuiToggle(bounds, text, active) { return r.BindGuiToggle( bounds.x, bounds.y, @@ -10927,7 +10927,7 @@ raylib.GuiToggle = GuiToggle * * @return {number} The resulting int. */ -function GuiToggleGroup (bounds, text, active) { +function GuiToggleGroup(bounds, text, active) { return r.BindGuiToggleGroup( bounds.x, bounds.y, @@ -10948,7 +10948,7 @@ raylib.GuiToggleGroup = GuiToggleGroup * * @return {boolean} The resulting bool. */ -function GuiCheckBox (bounds, text, checked) { +function GuiCheckBox(bounds, text, checked) { return r.BindGuiCheckBox( bounds.x, bounds.y, @@ -10969,7 +10969,7 @@ raylib.GuiCheckBox = GuiCheckBox * * @return {number} The resulting int. */ -function GuiComboBox (bounds, text, active) { +function GuiComboBox(bounds, text, active) { return r.BindGuiComboBox( bounds.x, bounds.y, @@ -10991,7 +10991,7 @@ raylib.GuiComboBox = GuiComboBox * * @return {boolean} The resulting bool. */ -function GuiDropdownBox (bounds, text, active, editMode) { +function GuiDropdownBox(bounds, text, active, editMode) { return r.BindGuiDropdownBox( bounds.x, bounds.y, @@ -11016,7 +11016,7 @@ raylib.GuiDropdownBox = GuiDropdownBox * * @return {boolean} The resulting bool. */ -function GuiSpinner (bounds, text, value, minValue, maxValue, editMode) { +function GuiSpinner(bounds, text, value, minValue, maxValue, editMode) { return r.BindGuiSpinner( bounds.x, bounds.y, @@ -11043,7 +11043,7 @@ raylib.GuiSpinner = GuiSpinner * * @return {boolean} The resulting bool. */ -function GuiValueBox (bounds, text, value, minValue, maxValue, editMode) { +function GuiValueBox(bounds, text, value, minValue, maxValue, editMode) { return r.BindGuiValueBox( bounds.x, bounds.y, @@ -11068,7 +11068,7 @@ raylib.GuiValueBox = GuiValueBox * * @return {boolean} The resulting bool. */ -function GuiTextBox (bounds, text, textSize, editMode) { +function GuiTextBox(bounds, text, textSize, editMode) { return r.BindGuiTextBox( bounds.x, bounds.y, @@ -11091,7 +11091,7 @@ raylib.GuiTextBox = GuiTextBox * * @return {boolean} The resulting bool. */ -function GuiTextBoxMulti (bounds, text, textSize, editMode) { +function GuiTextBoxMulti(bounds, text, textSize, editMode) { return r.BindGuiTextBoxMulti( bounds.x, bounds.y, @@ -11116,7 +11116,7 @@ raylib.GuiTextBoxMulti = GuiTextBoxMulti * * @return {number} The resulting float. */ -function GuiSlider (bounds, textLeft, textRight, value, minValue, maxValue) { +function GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue) { return r.BindGuiSlider( bounds.x, bounds.y, @@ -11143,7 +11143,7 @@ raylib.GuiSlider = GuiSlider * * @return {number} The resulting float. */ -function GuiSliderBar (bounds, textLeft, textRight, value, minValue, maxValue) { +function GuiSliderBar(bounds, textLeft, textRight, value, minValue, maxValue) { return r.BindGuiSliderBar( bounds.x, bounds.y, @@ -11170,7 +11170,7 @@ raylib.GuiSliderBar = GuiSliderBar * * @return {number} The resulting float. */ -function GuiProgressBar (bounds, textLeft, textRight, value, minValue, maxValue) { +function GuiProgressBar(bounds, textLeft, textRight, value, minValue, maxValue) { return r.BindGuiProgressBar( bounds.x, bounds.y, @@ -11193,7 +11193,7 @@ raylib.GuiProgressBar = GuiProgressBar * * @return {undefined} */ -function GuiStatusBar (bounds, text) { +function GuiStatusBar(bounds, text) { return r.BindGuiStatusBar( bounds.x, bounds.y, @@ -11212,7 +11212,7 @@ raylib.GuiStatusBar = GuiStatusBar * * @return {undefined} */ -function GuiDummyRec (bounds, text) { +function GuiDummyRec(bounds, text) { return r.BindGuiDummyRec( bounds.x, bounds.y, @@ -11233,7 +11233,7 @@ raylib.GuiDummyRec = GuiDummyRec * * @return {Vector2} The resulting Vector2. */ -function GuiGrid (bounds, text, spacing, subdivs) { +function GuiGrid(bounds, text, spacing, subdivs) { return r.BindGuiGrid( bounds.x, bounds.y, @@ -11256,7 +11256,7 @@ raylib.GuiGrid = GuiGrid * * @return {number} The resulting int. */ -function GuiListView (bounds, text, scrollIndex, active) { +function GuiListView(bounds, text, scrollIndex, active) { return r.BindGuiListView( bounds.x, bounds.y, @@ -11281,7 +11281,7 @@ raylib.GuiListView = GuiListView * * @return {number} The resulting int. */ -function GuiListViewEx (bounds, text, count, focus, scrollIndex, active) { +function GuiListViewEx(bounds, text, count, focus, scrollIndex, active) { return r.BindGuiListViewEx( bounds.x, bounds.y, @@ -11306,7 +11306,7 @@ raylib.GuiListViewEx = GuiListViewEx * * @return {number} The resulting int. */ -function GuiMessageBox (bounds, title, message, buttons) { +function GuiMessageBox(bounds, title, message, buttons) { return r.BindGuiMessageBox( bounds.x, bounds.y, @@ -11332,7 +11332,7 @@ raylib.GuiMessageBox = GuiMessageBox * * @return {number} The resulting int. */ -function GuiTextInputBox (bounds, title, message, buttons, text, textMaxSize, secretViewActive) { +function GuiTextInputBox(bounds, title, message, buttons, text, textMaxSize, secretViewActive) { return r.BindGuiTextInputBox( bounds.x, bounds.y, @@ -11357,7 +11357,7 @@ raylib.GuiTextInputBox = GuiTextInputBox * * @return {Color} The resulting Color. */ -function GuiColorPicker (bounds, text, color) { +function GuiColorPicker(bounds, text, color) { return r.BindGuiColorPicker( bounds.x, bounds.y, @@ -11381,7 +11381,7 @@ raylib.GuiColorPicker = GuiColorPicker * * @return {Color} The resulting Color. */ -function GuiColorPanel (bounds, text, color) { +function GuiColorPanel(bounds, text, color) { return r.BindGuiColorPanel( bounds.x, bounds.y, @@ -11405,7 +11405,7 @@ raylib.GuiColorPanel = GuiColorPanel * * @return {number} The resulting float. */ -function GuiColorBarAlpha (bounds, text, alpha) { +function GuiColorBarAlpha(bounds, text, alpha) { return r.BindGuiColorBarAlpha( bounds.x, bounds.y, @@ -11426,7 +11426,7 @@ raylib.GuiColorBarAlpha = GuiColorBarAlpha * * @return {number} The resulting float. */ -function GuiColorBarHue (bounds, text, value) { +function GuiColorBarHue(bounds, text, value) { return r.BindGuiColorBarHue( bounds.x, bounds.y, @@ -11445,7 +11445,7 @@ raylib.GuiColorBarHue = GuiColorBarHue * * @return {undefined} */ -function GuiLoadStyle (fileName) { +function GuiLoadStyle(fileName) { return r.BindGuiLoadStyle( fileName ) @@ -11457,7 +11457,7 @@ raylib.GuiLoadStyle = GuiLoadStyle * * @return {undefined} */ -function GuiLoadStyleDefault () { +function GuiLoadStyleDefault() { return r.BindGuiLoadStyleDefault() } raylib.GuiLoadStyleDefault = GuiLoadStyleDefault @@ -11467,7 +11467,7 @@ raylib.GuiLoadStyleDefault = GuiLoadStyleDefault * * @return {undefined} */ -function GuiEnableTooltip () { +function GuiEnableTooltip() { return r.BindGuiEnableTooltip() } raylib.GuiEnableTooltip = GuiEnableTooltip @@ -11477,7 +11477,7 @@ raylib.GuiEnableTooltip = GuiEnableTooltip * * @return {undefined} */ -function GuiDisableTooltip () { +function GuiDisableTooltip() { return r.BindGuiDisableTooltip() } raylib.GuiDisableTooltip = GuiDisableTooltip @@ -11489,7 +11489,7 @@ raylib.GuiDisableTooltip = GuiDisableTooltip * * @return {undefined} */ -function GuiSetTooltip (tooltip) { +function GuiSetTooltip(tooltip) { return r.BindGuiSetTooltip( tooltip ) @@ -11504,7 +11504,7 @@ raylib.GuiSetTooltip = GuiSetTooltip * * @return {string} The resulting const char *. */ -function GuiIconText (iconId, text) { +function GuiIconText(iconId, text) { return r.BindGuiIconText( iconId, text @@ -11517,7 +11517,7 @@ raylib.GuiIconText = GuiIconText * * @return {number} The resulting unsigned int *. */ -function GuiGetIcons () { +function GuiGetIcons() { return r.BindGuiGetIcons() } raylib.GuiGetIcons = GuiGetIcons @@ -11530,7 +11530,7 @@ raylib.GuiGetIcons = GuiGetIcons * * @return {number} The resulting char **. */ -function GuiLoadIcons (fileName, loadIconsName) { +function GuiLoadIcons(fileName, loadIconsName) { return r.BindGuiLoadIcons( fileName, loadIconsName @@ -11538,7 +11538,7 @@ function GuiLoadIcons (fileName, loadIconsName) { } raylib.GuiLoadIcons = GuiLoadIcons -function GuiDrawIcon (iconId, posX, posY, pixelSize, color) { +function GuiDrawIcon(iconId, posX, posY, pixelSize, color) { return r.BindGuiDrawIcon( iconId, posX, @@ -11559,7 +11559,7 @@ raylib.GuiDrawIcon = GuiDrawIcon * * @return {undefined} */ -function GuiSetIconScale (scale) { +function GuiSetIconScale(scale) { return r.BindGuiSetIconScale( scale ) @@ -11573,7 +11573,7 @@ raylib.GuiSetIconScale = GuiSetIconScale * * @return {undefined} */ -function rlMatrixMode (mode) { +function rlMatrixMode(mode) { return r.BindrlMatrixMode( mode ) @@ -11585,7 +11585,7 @@ raylib.rlMatrixMode = rlMatrixMode * * @return {undefined} */ -function rlPushMatrix () { +function rlPushMatrix() { return r.BindrlPushMatrix() } raylib.rlPushMatrix = rlPushMatrix @@ -11595,7 +11595,7 @@ raylib.rlPushMatrix = rlPushMatrix * * @return {undefined} */ -function rlPopMatrix () { +function rlPopMatrix() { return r.BindrlPopMatrix() } raylib.rlPopMatrix = rlPopMatrix @@ -11605,7 +11605,7 @@ raylib.rlPopMatrix = rlPopMatrix * * @return {undefined} */ -function rlLoadIdentity () { +function rlLoadIdentity() { return r.BindrlLoadIdentity() } raylib.rlLoadIdentity = rlLoadIdentity @@ -11619,7 +11619,7 @@ raylib.rlLoadIdentity = rlLoadIdentity * * @return {undefined} */ -function rlTranslatef (x, y, z) { +function rlTranslatef(x, y, z) { return r.BindrlTranslatef( x, y, @@ -11638,7 +11638,7 @@ raylib.rlTranslatef = rlTranslatef * * @return {undefined} */ -function rlRotatef (angle, x, y, z) { +function rlRotatef(angle, x, y, z) { return r.BindrlRotatef( angle, x, @@ -11657,7 +11657,7 @@ raylib.rlRotatef = rlRotatef * * @return {undefined} */ -function rlScalef (x, y, z) { +function rlScalef(x, y, z) { return r.BindrlScalef( x, y, @@ -11673,14 +11673,14 @@ raylib.rlScalef = rlScalef * * @return {undefined} */ -function rlMultMatrixf (matf) { +function rlMultMatrixf(matf) { return r.BindrlMultMatrixf( matf ) } raylib.rlMultMatrixf = rlMultMatrixf -function rlFrustum (left, right, bottom, top, znear, zfar) { +function rlFrustum(left, right, bottom, top, znear, zfar) { return r.BindrlFrustum( left, right, @@ -11692,7 +11692,7 @@ function rlFrustum (left, right, bottom, top, znear, zfar) { } raylib.rlFrustum = rlFrustum -function rlOrtho (left, right, bottom, top, znear, zfar) { +function rlOrtho(left, right, bottom, top, znear, zfar) { return r.BindrlOrtho( left, right, @@ -11714,7 +11714,7 @@ raylib.rlOrtho = rlOrtho * * @return {undefined} */ -function rlViewport (x, y, width, height) { +function rlViewport(x, y, width, height) { return r.BindrlViewport( x, y, @@ -11731,7 +11731,7 @@ raylib.rlViewport = rlViewport * * @return {undefined} */ -function rlBegin (mode) { +function rlBegin(mode) { return r.BindrlBegin( mode ) @@ -11743,7 +11743,7 @@ raylib.rlBegin = rlBegin * * @return {undefined} */ -function rlEnd () { +function rlEnd() { return r.BindrlEnd() } raylib.rlEnd = rlEnd @@ -11756,7 +11756,7 @@ raylib.rlEnd = rlEnd * * @return {undefined} */ -function rlVertex2i (x, y) { +function rlVertex2i(x, y) { return r.BindrlVertex2i( x, y @@ -11772,7 +11772,7 @@ raylib.rlVertex2i = rlVertex2i * * @return {undefined} */ -function rlVertex2f (x, y) { +function rlVertex2f(x, y) { return r.BindrlVertex2f( x, y @@ -11789,7 +11789,7 @@ raylib.rlVertex2f = rlVertex2f * * @return {undefined} */ -function rlVertex3f (x, y, z) { +function rlVertex3f(x, y, z) { return r.BindrlVertex3f( x, y, @@ -11806,7 +11806,7 @@ raylib.rlVertex3f = rlVertex3f * * @return {undefined} */ -function rlTexCoord2f (x, y) { +function rlTexCoord2f(x, y) { return r.BindrlTexCoord2f( x, y @@ -11823,7 +11823,7 @@ raylib.rlTexCoord2f = rlTexCoord2f * * @return {undefined} */ -function rlNormal3f (x, y, z) { +function rlNormal3f(x, y, z) { return r.BindrlNormal3f( x, y, @@ -11842,7 +11842,7 @@ raylib.rlNormal3f = rlNormal3f * * @return {undefined} */ -function rlColor4ub (r, g, b, a) { +function rlColor4ub(r, g, b, a) { return r.BindrlColor4ub( r, g, @@ -11861,7 +11861,7 @@ raylib.rlColor4ub = rlColor4ub * * @return {undefined} */ -function rlColor3f (x, y, z) { +function rlColor3f(x, y, z) { return r.BindrlColor3f( x, y, @@ -11880,7 +11880,7 @@ raylib.rlColor3f = rlColor3f * * @return {undefined} */ -function rlColor4f (x, y, z, w) { +function rlColor4f(x, y, z, w) { return r.BindrlColor4f( x, y, @@ -11897,7 +11897,7 @@ raylib.rlColor4f = rlColor4f * * @return {boolean} The resulting bool. */ -function rlEnableVertexArray (vaoId) { +function rlEnableVertexArray(vaoId) { return r.BindrlEnableVertexArray( vaoId ) @@ -11909,7 +11909,7 @@ raylib.rlEnableVertexArray = rlEnableVertexArray * * @return {undefined} */ -function rlDisableVertexArray () { +function rlDisableVertexArray() { return r.BindrlDisableVertexArray() } raylib.rlDisableVertexArray = rlDisableVertexArray @@ -11921,7 +11921,7 @@ raylib.rlDisableVertexArray = rlDisableVertexArray * * @return {undefined} */ -function rlEnableVertexBuffer (id) { +function rlEnableVertexBuffer(id) { return r.BindrlEnableVertexBuffer( id ) @@ -11933,7 +11933,7 @@ raylib.rlEnableVertexBuffer = rlEnableVertexBuffer * * @return {undefined} */ -function rlDisableVertexBuffer () { +function rlDisableVertexBuffer() { return r.BindrlDisableVertexBuffer() } raylib.rlDisableVertexBuffer = rlDisableVertexBuffer @@ -11945,7 +11945,7 @@ raylib.rlDisableVertexBuffer = rlDisableVertexBuffer * * @return {undefined} */ -function rlEnableVertexBufferElement (id) { +function rlEnableVertexBufferElement(id) { return r.BindrlEnableVertexBufferElement( id ) @@ -11957,7 +11957,7 @@ raylib.rlEnableVertexBufferElement = rlEnableVertexBufferElement * * @return {undefined} */ -function rlDisableVertexBufferElement () { +function rlDisableVertexBufferElement() { return r.BindrlDisableVertexBufferElement() } raylib.rlDisableVertexBufferElement = rlDisableVertexBufferElement @@ -11969,7 +11969,7 @@ raylib.rlDisableVertexBufferElement = rlDisableVertexBufferElement * * @return {undefined} */ -function rlEnableVertexAttribute (index) { +function rlEnableVertexAttribute(index) { return r.BindrlEnableVertexAttribute( index ) @@ -11983,7 +11983,7 @@ raylib.rlEnableVertexAttribute = rlEnableVertexAttribute * * @return {undefined} */ -function rlDisableVertexAttribute (index) { +function rlDisableVertexAttribute(index) { return r.BindrlDisableVertexAttribute( index ) @@ -11997,7 +11997,7 @@ raylib.rlDisableVertexAttribute = rlDisableVertexAttribute * * @return {undefined} */ -function rlActiveTextureSlot (slot) { +function rlActiveTextureSlot(slot) { return r.BindrlActiveTextureSlot( slot ) @@ -12011,7 +12011,7 @@ raylib.rlActiveTextureSlot = rlActiveTextureSlot * * @return {undefined} */ -function rlEnableTexture (id) { +function rlEnableTexture(id) { return r.BindrlEnableTexture( id ) @@ -12023,7 +12023,7 @@ raylib.rlEnableTexture = rlEnableTexture * * @return {undefined} */ -function rlDisableTexture () { +function rlDisableTexture() { return r.BindrlDisableTexture() } raylib.rlDisableTexture = rlDisableTexture @@ -12035,7 +12035,7 @@ raylib.rlDisableTexture = rlDisableTexture * * @return {undefined} */ -function rlEnableTextureCubemap (id) { +function rlEnableTextureCubemap(id) { return r.BindrlEnableTextureCubemap( id ) @@ -12047,7 +12047,7 @@ raylib.rlEnableTextureCubemap = rlEnableTextureCubemap * * @return {undefined} */ -function rlDisableTextureCubemap () { +function rlDisableTextureCubemap() { return r.BindrlDisableTextureCubemap() } raylib.rlDisableTextureCubemap = rlDisableTextureCubemap @@ -12061,7 +12061,7 @@ raylib.rlDisableTextureCubemap = rlDisableTextureCubemap * * @return {undefined} */ -function rlTextureParameters (id, param, value) { +function rlTextureParameters(id, param, value) { return r.BindrlTextureParameters( id, param, @@ -12079,7 +12079,7 @@ raylib.rlTextureParameters = rlTextureParameters * * @return {undefined} */ -function rlCubemapParameters (id, param, value) { +function rlCubemapParameters(id, param, value) { return r.BindrlCubemapParameters( id, param, @@ -12095,7 +12095,7 @@ raylib.rlCubemapParameters = rlCubemapParameters * * @return {undefined} */ -function rlEnableShader (id) { +function rlEnableShader(id) { return r.BindrlEnableShader( id ) @@ -12107,7 +12107,7 @@ raylib.rlEnableShader = rlEnableShader * * @return {undefined} */ -function rlDisableShader () { +function rlDisableShader() { return r.BindrlDisableShader() } raylib.rlDisableShader = rlDisableShader @@ -12119,7 +12119,7 @@ raylib.rlDisableShader = rlDisableShader * * @return {undefined} */ -function rlEnableFramebuffer (id) { +function rlEnableFramebuffer(id) { return r.BindrlEnableFramebuffer( id ) @@ -12131,7 +12131,7 @@ raylib.rlEnableFramebuffer = rlEnableFramebuffer * * @return {undefined} */ -function rlDisableFramebuffer () { +function rlDisableFramebuffer() { return r.BindrlDisableFramebuffer() } raylib.rlDisableFramebuffer = rlDisableFramebuffer @@ -12143,7 +12143,7 @@ raylib.rlDisableFramebuffer = rlDisableFramebuffer * * @return {undefined} */ -function rlActiveDrawBuffers (count) { +function rlActiveDrawBuffers(count) { return r.BindrlActiveDrawBuffers( count ) @@ -12155,7 +12155,7 @@ raylib.rlActiveDrawBuffers = rlActiveDrawBuffers * * @return {undefined} */ -function rlEnableColorBlend () { +function rlEnableColorBlend() { return r.BindrlEnableColorBlend() } raylib.rlEnableColorBlend = rlEnableColorBlend @@ -12165,7 +12165,7 @@ raylib.rlEnableColorBlend = rlEnableColorBlend * * @return {undefined} */ -function rlDisableColorBlend () { +function rlDisableColorBlend() { return r.BindrlDisableColorBlend() } raylib.rlDisableColorBlend = rlDisableColorBlend @@ -12175,7 +12175,7 @@ raylib.rlDisableColorBlend = rlDisableColorBlend * * @return {undefined} */ -function rlEnableDepthTest () { +function rlEnableDepthTest() { return r.BindrlEnableDepthTest() } raylib.rlEnableDepthTest = rlEnableDepthTest @@ -12185,7 +12185,7 @@ raylib.rlEnableDepthTest = rlEnableDepthTest * * @return {undefined} */ -function rlDisableDepthTest () { +function rlDisableDepthTest() { return r.BindrlDisableDepthTest() } raylib.rlDisableDepthTest = rlDisableDepthTest @@ -12195,7 +12195,7 @@ raylib.rlDisableDepthTest = rlDisableDepthTest * * @return {undefined} */ -function rlEnableDepthMask () { +function rlEnableDepthMask() { return r.BindrlEnableDepthMask() } raylib.rlEnableDepthMask = rlEnableDepthMask @@ -12205,7 +12205,7 @@ raylib.rlEnableDepthMask = rlEnableDepthMask * * @return {undefined} */ -function rlDisableDepthMask () { +function rlDisableDepthMask() { return r.BindrlDisableDepthMask() } raylib.rlDisableDepthMask = rlDisableDepthMask @@ -12215,7 +12215,7 @@ raylib.rlDisableDepthMask = rlDisableDepthMask * * @return {undefined} */ -function rlEnableBackfaceCulling () { +function rlEnableBackfaceCulling() { return r.BindrlEnableBackfaceCulling() } raylib.rlEnableBackfaceCulling = rlEnableBackfaceCulling @@ -12225,7 +12225,7 @@ raylib.rlEnableBackfaceCulling = rlEnableBackfaceCulling * * @return {undefined} */ -function rlDisableBackfaceCulling () { +function rlDisableBackfaceCulling() { return r.BindrlDisableBackfaceCulling() } raylib.rlDisableBackfaceCulling = rlDisableBackfaceCulling @@ -12237,7 +12237,7 @@ raylib.rlDisableBackfaceCulling = rlDisableBackfaceCulling * * @return {undefined} */ -function rlSetCullFace (mode) { +function rlSetCullFace(mode) { return r.BindrlSetCullFace( mode ) @@ -12249,7 +12249,7 @@ raylib.rlSetCullFace = rlSetCullFace * * @return {undefined} */ -function rlEnableScissorTest () { +function rlEnableScissorTest() { return r.BindrlEnableScissorTest() } raylib.rlEnableScissorTest = rlEnableScissorTest @@ -12259,7 +12259,7 @@ raylib.rlEnableScissorTest = rlEnableScissorTest * * @return {undefined} */ -function rlDisableScissorTest () { +function rlDisableScissorTest() { return r.BindrlDisableScissorTest() } raylib.rlDisableScissorTest = rlDisableScissorTest @@ -12274,7 +12274,7 @@ raylib.rlDisableScissorTest = rlDisableScissorTest * * @return {undefined} */ -function rlScissor (x, y, width, height) { +function rlScissor(x, y, width, height) { return r.BindrlScissor( x, y, @@ -12289,7 +12289,7 @@ raylib.rlScissor = rlScissor * * @return {undefined} */ -function rlEnableWireMode () { +function rlEnableWireMode() { return r.BindrlEnableWireMode() } raylib.rlEnableWireMode = rlEnableWireMode @@ -12299,7 +12299,7 @@ raylib.rlEnableWireMode = rlEnableWireMode * * @return {undefined} */ -function rlDisableWireMode () { +function rlDisableWireMode() { return r.BindrlDisableWireMode() } raylib.rlDisableWireMode = rlDisableWireMode @@ -12311,7 +12311,7 @@ raylib.rlDisableWireMode = rlDisableWireMode * * @return {undefined} */ -function rlSetLineWidth (width) { +function rlSetLineWidth(width) { return r.BindrlSetLineWidth( width ) @@ -12323,7 +12323,7 @@ raylib.rlSetLineWidth = rlSetLineWidth * * @return {number} The resulting float. */ -function rlGetLineWidth () { +function rlGetLineWidth() { return r.BindrlGetLineWidth() } raylib.rlGetLineWidth = rlGetLineWidth @@ -12333,7 +12333,7 @@ raylib.rlGetLineWidth = rlGetLineWidth * * @return {undefined} */ -function rlEnableSmoothLines () { +function rlEnableSmoothLines() { return r.BindrlEnableSmoothLines() } raylib.rlEnableSmoothLines = rlEnableSmoothLines @@ -12343,7 +12343,7 @@ raylib.rlEnableSmoothLines = rlEnableSmoothLines * * @return {undefined} */ -function rlDisableSmoothLines () { +function rlDisableSmoothLines() { return r.BindrlDisableSmoothLines() } raylib.rlDisableSmoothLines = rlDisableSmoothLines @@ -12353,7 +12353,7 @@ raylib.rlDisableSmoothLines = rlDisableSmoothLines * * @return {undefined} */ -function rlEnableStereoRender () { +function rlEnableStereoRender() { return r.BindrlEnableStereoRender() } raylib.rlEnableStereoRender = rlEnableStereoRender @@ -12363,7 +12363,7 @@ raylib.rlEnableStereoRender = rlEnableStereoRender * * @return {undefined} */ -function rlDisableStereoRender () { +function rlDisableStereoRender() { return r.BindrlDisableStereoRender() } raylib.rlDisableStereoRender = rlDisableStereoRender @@ -12373,7 +12373,7 @@ raylib.rlDisableStereoRender = rlDisableStereoRender * * @return {boolean} The resulting bool. */ -function rlIsStereoRenderEnabled () { +function rlIsStereoRenderEnabled() { return r.BindrlIsStereoRenderEnabled() } raylib.rlIsStereoRenderEnabled = rlIsStereoRenderEnabled @@ -12388,7 +12388,7 @@ raylib.rlIsStereoRenderEnabled = rlIsStereoRenderEnabled * * @return {undefined} */ -function rlClearColor (r, g, b, a) { +function rlClearColor(r, g, b, a) { return r.BindrlClearColor( r, g, @@ -12403,7 +12403,7 @@ raylib.rlClearColor = rlClearColor * * @return {undefined} */ -function rlClearScreenBuffers () { +function rlClearScreenBuffers() { return r.BindrlClearScreenBuffers() } raylib.rlClearScreenBuffers = rlClearScreenBuffers @@ -12413,7 +12413,7 @@ raylib.rlClearScreenBuffers = rlClearScreenBuffers * * @return {undefined} */ -function rlCheckErrors () { +function rlCheckErrors() { return r.BindrlCheckErrors() } raylib.rlCheckErrors = rlCheckErrors @@ -12425,7 +12425,7 @@ raylib.rlCheckErrors = rlCheckErrors * * @return {undefined} */ -function rlSetBlendMode (mode) { +function rlSetBlendMode(mode) { return r.BindrlSetBlendMode( mode ) @@ -12441,7 +12441,7 @@ raylib.rlSetBlendMode = rlSetBlendMode * * @return {undefined} */ -function rlSetBlendFactors (glSrcFactor, glDstFactor, glEquation) { +function rlSetBlendFactors(glSrcFactor, glDstFactor, glEquation) { return r.BindrlSetBlendFactors( glSrcFactor, glDstFactor, @@ -12462,7 +12462,7 @@ raylib.rlSetBlendFactors = rlSetBlendFactors * * @return {undefined} */ -function rlSetBlendFactorsSeparate (glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha) { +function rlSetBlendFactorsSeparate(glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha) { return r.BindrlSetBlendFactorsSeparate( glSrcRGB, glDstRGB, @@ -12482,7 +12482,7 @@ raylib.rlSetBlendFactorsSeparate = rlSetBlendFactorsSeparate * * @return {undefined} */ -function rlglInit (width, height) { +function rlglInit(width, height) { return r.BindrlglInit( width, height @@ -12495,7 +12495,7 @@ raylib.rlglInit = rlglInit * * @return {undefined} */ -function rlglClose () { +function rlglClose() { return r.BindrlglClose() } raylib.rlglClose = rlglClose @@ -12507,7 +12507,7 @@ raylib.rlglClose = rlglClose * * @return {undefined} */ -function rlLoadExtensions (loader) { +function rlLoadExtensions(loader) { return r.BindrlLoadExtensions( loader ) @@ -12519,7 +12519,7 @@ raylib.rlLoadExtensions = rlLoadExtensions * * @return {number} The resulting int. */ -function rlGetVersion () { +function rlGetVersion() { return r.BindrlGetVersion() } raylib.rlGetVersion = rlGetVersion @@ -12531,7 +12531,7 @@ raylib.rlGetVersion = rlGetVersion * * @return {undefined} */ -function rlSetFramebufferWidth (width) { +function rlSetFramebufferWidth(width) { return r.BindrlSetFramebufferWidth( width ) @@ -12543,7 +12543,7 @@ raylib.rlSetFramebufferWidth = rlSetFramebufferWidth * * @return {number} The resulting int. */ -function rlGetFramebufferWidth () { +function rlGetFramebufferWidth() { return r.BindrlGetFramebufferWidth() } raylib.rlGetFramebufferWidth = rlGetFramebufferWidth @@ -12555,7 +12555,7 @@ raylib.rlGetFramebufferWidth = rlGetFramebufferWidth * * @return {undefined} */ -function rlSetFramebufferHeight (height) { +function rlSetFramebufferHeight(height) { return r.BindrlSetFramebufferHeight( height ) @@ -12567,7 +12567,7 @@ raylib.rlSetFramebufferHeight = rlSetFramebufferHeight * * @return {number} The resulting int. */ -function rlGetFramebufferHeight () { +function rlGetFramebufferHeight() { return r.BindrlGetFramebufferHeight() } raylib.rlGetFramebufferHeight = rlGetFramebufferHeight @@ -12577,7 +12577,7 @@ raylib.rlGetFramebufferHeight = rlGetFramebufferHeight * * @return {number} The resulting unsigned int. */ -function rlGetTextureIdDefault () { +function rlGetTextureIdDefault() { return r.BindrlGetTextureIdDefault() } raylib.rlGetTextureIdDefault = rlGetTextureIdDefault @@ -12587,7 +12587,7 @@ raylib.rlGetTextureIdDefault = rlGetTextureIdDefault * * @return {number} The resulting unsigned int. */ -function rlGetShaderIdDefault () { +function rlGetShaderIdDefault() { return r.BindrlGetShaderIdDefault() } raylib.rlGetShaderIdDefault = rlGetShaderIdDefault @@ -12597,7 +12597,7 @@ raylib.rlGetShaderIdDefault = rlGetShaderIdDefault * * @return {number} The resulting int *. */ -function rlGetShaderLocsDefault () { +function rlGetShaderLocsDefault() { return r.BindrlGetShaderLocsDefault() } raylib.rlGetShaderLocsDefault = rlGetShaderLocsDefault @@ -12610,7 +12610,7 @@ raylib.rlGetShaderLocsDefault = rlGetShaderLocsDefault * * @return {rlRenderBatch} The resulting rlRenderBatch. */ -function rlLoadRenderBatch (numBuffers, bufferElements) { +function rlLoadRenderBatch(numBuffers, bufferElements) { return r.BindrlLoadRenderBatch( numBuffers, bufferElements @@ -12625,7 +12625,7 @@ raylib.rlLoadRenderBatch = rlLoadRenderBatch * * @return {undefined} */ -function rlUnloadRenderBatch (batch) { +function rlUnloadRenderBatch(batch) { return r.BindrlUnloadRenderBatch( batch.bufferCount, batch.currentBuffer, @@ -12644,7 +12644,7 @@ raylib.rlUnloadRenderBatch = rlUnloadRenderBatch * * @return {undefined} */ -function rlDrawRenderBatch (batch) { +function rlDrawRenderBatch(batch) { return r.BindrlDrawRenderBatch( batch ) @@ -12658,7 +12658,7 @@ raylib.rlDrawRenderBatch = rlDrawRenderBatch * * @return {undefined} */ -function rlSetRenderBatchActive (batch) { +function rlSetRenderBatchActive(batch) { return r.BindrlSetRenderBatchActive( batch ) @@ -12670,7 +12670,7 @@ raylib.rlSetRenderBatchActive = rlSetRenderBatchActive * * @return {undefined} */ -function rlDrawRenderBatchActive () { +function rlDrawRenderBatchActive() { return r.BindrlDrawRenderBatchActive() } raylib.rlDrawRenderBatchActive = rlDrawRenderBatchActive @@ -12682,7 +12682,7 @@ raylib.rlDrawRenderBatchActive = rlDrawRenderBatchActive * * @return {boolean} The resulting bool. */ -function rlCheckRenderBatchLimit (vCount) { +function rlCheckRenderBatchLimit(vCount) { return r.BindrlCheckRenderBatchLimit( vCount ) @@ -12696,7 +12696,7 @@ raylib.rlCheckRenderBatchLimit = rlCheckRenderBatchLimit * * @return {undefined} */ -function rlSetTexture (id) { +function rlSetTexture(id) { return r.BindrlSetTexture( id ) @@ -12708,7 +12708,7 @@ raylib.rlSetTexture = rlSetTexture * * @return {number} The resulting unsigned int. */ -function rlLoadVertexArray () { +function rlLoadVertexArray() { return r.BindrlLoadVertexArray() } raylib.rlLoadVertexArray = rlLoadVertexArray @@ -12722,7 +12722,7 @@ raylib.rlLoadVertexArray = rlLoadVertexArray * * @return {number} The resulting unsigned int. */ -function rlLoadVertexBuffer (buffer, size, dynamic) { +function rlLoadVertexBuffer(buffer, size, dynamic) { return r.BindrlLoadVertexBuffer( buffer, size, @@ -12740,7 +12740,7 @@ raylib.rlLoadVertexBuffer = rlLoadVertexBuffer * * @return {number} The resulting unsigned int. */ -function rlLoadVertexBufferElement (buffer, size, dynamic) { +function rlLoadVertexBufferElement(buffer, size, dynamic) { return r.BindrlLoadVertexBufferElement( buffer, size, @@ -12759,7 +12759,7 @@ raylib.rlLoadVertexBufferElement = rlLoadVertexBufferElement * * @return {undefined} */ -function rlUpdateVertexBuffer (bufferId, data, dataSize, offset) { +function rlUpdateVertexBuffer(bufferId, data, dataSize, offset) { return r.BindrlUpdateVertexBuffer( bufferId, data, @@ -12779,7 +12779,7 @@ raylib.rlUpdateVertexBuffer = rlUpdateVertexBuffer * * @return {undefined} */ -function rlUpdateVertexBufferElements (id, data, dataSize, offset) { +function rlUpdateVertexBufferElements(id, data, dataSize, offset) { return r.BindrlUpdateVertexBufferElements( id, data, @@ -12789,21 +12789,21 @@ function rlUpdateVertexBufferElements (id, data, dataSize, offset) { } raylib.rlUpdateVertexBufferElements = rlUpdateVertexBufferElements -function rlUnloadVertexArray (vaoId) { +function rlUnloadVertexArray(vaoId) { return r.BindrlUnloadVertexArray( vaoId ) } raylib.rlUnloadVertexArray = rlUnloadVertexArray -function rlUnloadVertexBuffer (vboId) { +function rlUnloadVertexBuffer(vboId) { return r.BindrlUnloadVertexBuffer( vboId ) } raylib.rlUnloadVertexBuffer = rlUnloadVertexBuffer -function rlSetVertexAttribute (index, compSize, type, normalized, stride, pointer) { +function rlSetVertexAttribute(index, compSize, type, normalized, stride, pointer) { return r.BindrlSetVertexAttribute( index, compSize, @@ -12815,7 +12815,7 @@ function rlSetVertexAttribute (index, compSize, type, normalized, stride, pointe } raylib.rlSetVertexAttribute = rlSetVertexAttribute -function rlSetVertexAttributeDivisor (index, divisor) { +function rlSetVertexAttributeDivisor(index, divisor) { return r.BindrlSetVertexAttributeDivisor( index, divisor @@ -12833,7 +12833,7 @@ raylib.rlSetVertexAttributeDivisor = rlSetVertexAttributeDivisor * * @return {undefined} */ -function rlSetVertexAttributeDefault (locIndex, value, attribType, count) { +function rlSetVertexAttributeDefault(locIndex, value, attribType, count) { return r.BindrlSetVertexAttributeDefault( locIndex, value, @@ -12843,7 +12843,7 @@ function rlSetVertexAttributeDefault (locIndex, value, attribType, count) { } raylib.rlSetVertexAttributeDefault = rlSetVertexAttributeDefault -function rlDrawVertexArray (offset, count) { +function rlDrawVertexArray(offset, count) { return r.BindrlDrawVertexArray( offset, count @@ -12851,7 +12851,7 @@ function rlDrawVertexArray (offset, count) { } raylib.rlDrawVertexArray = rlDrawVertexArray -function rlDrawVertexArrayElements (offset, count, buffer) { +function rlDrawVertexArrayElements(offset, count, buffer) { return r.BindrlDrawVertexArrayElements( offset, count, @@ -12860,7 +12860,7 @@ function rlDrawVertexArrayElements (offset, count, buffer) { } raylib.rlDrawVertexArrayElements = rlDrawVertexArrayElements -function rlDrawVertexArrayInstanced (offset, count, instances) { +function rlDrawVertexArrayInstanced(offset, count, instances) { return r.BindrlDrawVertexArrayInstanced( offset, count, @@ -12869,7 +12869,7 @@ function rlDrawVertexArrayInstanced (offset, count, instances) { } raylib.rlDrawVertexArrayInstanced = rlDrawVertexArrayInstanced -function rlDrawVertexArrayElementsInstanced (offset, count, buffer, instances) { +function rlDrawVertexArrayElementsInstanced(offset, count, buffer, instances) { return r.BindrlDrawVertexArrayElementsInstanced( offset, count, @@ -12890,7 +12890,7 @@ raylib.rlDrawVertexArrayElementsInstanced = rlDrawVertexArrayElementsInstanced * * @return {number} The resulting unsigned int. */ -function rlLoadTexture (data, width, height, format, mipmapCount) { +function rlLoadTexture(data, width, height, format, mipmapCount) { return r.BindrlLoadTexture( data, width, @@ -12910,7 +12910,7 @@ raylib.rlLoadTexture = rlLoadTexture * * @return {number} The resulting unsigned int. */ -function rlLoadTextureDepth (width, height, useRenderBuffer) { +function rlLoadTextureDepth(width, height, useRenderBuffer) { return r.BindrlLoadTextureDepth( width, height, @@ -12928,7 +12928,7 @@ raylib.rlLoadTextureDepth = rlLoadTextureDepth * * @return {number} The resulting unsigned int. */ -function rlLoadTextureCubemap (data, size, format) { +function rlLoadTextureCubemap(data, size, format) { return r.BindrlLoadTextureCubemap( data, size, @@ -12950,7 +12950,7 @@ raylib.rlLoadTextureCubemap = rlLoadTextureCubemap * * @return {undefined} */ -function rlUpdateTexture (id, offsetX, offsetY, width, height, format, data) { +function rlUpdateTexture(id, offsetX, offsetY, width, height, format, data) { return r.BindrlUpdateTexture( id, offsetX, @@ -12973,7 +12973,7 @@ raylib.rlUpdateTexture = rlUpdateTexture * * @return {undefined} */ -function rlGetGlTextureFormats (format, glInternalFormat, glFormat, glType) { +function rlGetGlTextureFormats(format, glInternalFormat, glFormat, glType) { return r.BindrlGetGlTextureFormats( format, glInternalFormat, @@ -12990,7 +12990,7 @@ raylib.rlGetGlTextureFormats = rlGetGlTextureFormats * * @return {string} The resulting const char *. */ -function rlGetPixelFormatName (format) { +function rlGetPixelFormatName(format) { return r.BindrlGetPixelFormatName( format ) @@ -13004,7 +13004,7 @@ raylib.rlGetPixelFormatName = rlGetPixelFormatName * * @return {undefined} */ -function rlUnloadTexture (id) { +function rlUnloadTexture(id) { return r.BindrlUnloadTexture( id ) @@ -13022,7 +13022,7 @@ raylib.rlUnloadTexture = rlUnloadTexture * * @return {undefined} */ -function rlGenTextureMipmaps (id, width, height, format, mipmaps) { +function rlGenTextureMipmaps(id, width, height, format, mipmaps) { return r.BindrlGenTextureMipmaps( id, width, @@ -13043,7 +13043,7 @@ raylib.rlGenTextureMipmaps = rlGenTextureMipmaps * * @return {number} The resulting void *. */ -function rlReadTexturePixels (id, width, height, format) { +function rlReadTexturePixels(id, width, height, format) { return r.BindrlReadTexturePixels( id, width, @@ -13061,7 +13061,7 @@ raylib.rlReadTexturePixels = rlReadTexturePixels * * @return {Buffer} The resulting unsigned char *. */ -function rlReadScreenPixels (width, height) { +function rlReadScreenPixels(width, height) { return r.BindrlReadScreenPixels( width, height @@ -13077,7 +13077,7 @@ raylib.rlReadScreenPixels = rlReadScreenPixels * * @return {number} The resulting unsigned int. */ -function rlLoadFramebuffer (width, height) { +function rlLoadFramebuffer(width, height) { return r.BindrlLoadFramebuffer( width, height @@ -13096,7 +13096,7 @@ raylib.rlLoadFramebuffer = rlLoadFramebuffer * * @return {undefined} */ -function rlFramebufferAttach (fboId, texId, attachType, texType, mipLevel) { +function rlFramebufferAttach(fboId, texId, attachType, texType, mipLevel) { return r.BindrlFramebufferAttach( fboId, texId, @@ -13114,7 +13114,7 @@ raylib.rlFramebufferAttach = rlFramebufferAttach * * @return {boolean} The resulting bool. */ -function rlFramebufferComplete (id) { +function rlFramebufferComplete(id) { return r.BindrlFramebufferComplete( id ) @@ -13128,7 +13128,7 @@ raylib.rlFramebufferComplete = rlFramebufferComplete * * @return {undefined} */ -function rlUnloadFramebuffer (id) { +function rlUnloadFramebuffer(id) { return r.BindrlUnloadFramebuffer( id ) @@ -13143,7 +13143,7 @@ raylib.rlUnloadFramebuffer = rlUnloadFramebuffer * * @return {number} The resulting unsigned int. */ -function rlLoadShaderCode (vsCode, fsCode) { +function rlLoadShaderCode(vsCode, fsCode) { return r.BindrlLoadShaderCode( vsCode, fsCode @@ -13159,7 +13159,7 @@ raylib.rlLoadShaderCode = rlLoadShaderCode * * @return {number} The resulting unsigned int. */ -function rlCompileShader (shaderCode, type) { +function rlCompileShader(shaderCode, type) { return r.BindrlCompileShader( shaderCode, type @@ -13175,7 +13175,7 @@ raylib.rlCompileShader = rlCompileShader * * @return {number} The resulting unsigned int. */ -function rlLoadShaderProgram (vShaderId, fShaderId) { +function rlLoadShaderProgram(vShaderId, fShaderId) { return r.BindrlLoadShaderProgram( vShaderId, fShaderId @@ -13190,7 +13190,7 @@ raylib.rlLoadShaderProgram = rlLoadShaderProgram * * @return {undefined} */ -function rlUnloadShaderProgram (id) { +function rlUnloadShaderProgram(id) { return r.BindrlUnloadShaderProgram( id ) @@ -13205,7 +13205,7 @@ raylib.rlUnloadShaderProgram = rlUnloadShaderProgram * * @return {number} The resulting int. */ -function rlGetLocationUniform (shaderId, uniformName) { +function rlGetLocationUniform(shaderId, uniformName) { return r.BindrlGetLocationUniform( shaderId, uniformName @@ -13221,7 +13221,7 @@ raylib.rlGetLocationUniform = rlGetLocationUniform * * @return {number} The resulting int. */ -function rlGetLocationAttrib (shaderId, attribName) { +function rlGetLocationAttrib(shaderId, attribName) { return r.BindrlGetLocationAttrib( shaderId, attribName @@ -13239,7 +13239,7 @@ raylib.rlGetLocationAttrib = rlGetLocationAttrib * * @return {undefined} */ -function rlSetUniform (locIndex, value, uniformType, count) { +function rlSetUniform(locIndex, value, uniformType, count) { return r.BindrlSetUniform( locIndex, value, @@ -13257,7 +13257,7 @@ raylib.rlSetUniform = rlSetUniform * * @return {undefined} */ -function rlSetUniformMatrix (locIndex, mat) { +function rlSetUniformMatrix(locIndex, mat) { return r.BindrlSetUniformMatrix( locIndex, mat.m0, @@ -13288,7 +13288,7 @@ raylib.rlSetUniformMatrix = rlSetUniformMatrix * * @return {undefined} */ -function rlSetUniformSampler (locIndex, textureId) { +function rlSetUniformSampler(locIndex, textureId) { return r.BindrlSetUniformSampler( locIndex, textureId @@ -13304,7 +13304,7 @@ raylib.rlSetUniformSampler = rlSetUniformSampler * * @return {undefined} */ -function rlSetShader (id, locs) { +function rlSetShader(id, locs) { return r.BindrlSetShader( id, locs @@ -13319,7 +13319,7 @@ raylib.rlSetShader = rlSetShader * * @return {number} The resulting unsigned int. */ -function rlLoadComputeShaderProgram (shaderId) { +function rlLoadComputeShaderProgram(shaderId) { return r.BindrlLoadComputeShaderProgram( shaderId ) @@ -13335,7 +13335,7 @@ raylib.rlLoadComputeShaderProgram = rlLoadComputeShaderProgram * * @return {undefined} */ -function rlComputeShaderDispatch (groupX, groupY, groupZ) { +function rlComputeShaderDispatch(groupX, groupY, groupZ) { return r.BindrlComputeShaderDispatch( groupX, groupY, @@ -13353,7 +13353,7 @@ raylib.rlComputeShaderDispatch = rlComputeShaderDispatch * * @return {number} The resulting unsigned int. */ -function rlLoadShaderBuffer (size, data, usageHint) { +function rlLoadShaderBuffer(size, data, usageHint) { return r.BindrlLoadShaderBuffer( size, data, @@ -13369,7 +13369,7 @@ raylib.rlLoadShaderBuffer = rlLoadShaderBuffer * * @return {undefined} */ -function rlUnloadShaderBuffer (ssboId) { +function rlUnloadShaderBuffer(ssboId) { return r.BindrlUnloadShaderBuffer( ssboId ) @@ -13386,7 +13386,7 @@ raylib.rlUnloadShaderBuffer = rlUnloadShaderBuffer * * @return {undefined} */ -function rlUpdateShaderBuffer (id, data, dataSize, offset) { +function rlUpdateShaderBuffer(id, data, dataSize, offset) { return r.BindrlUpdateShaderBuffer( id, data, @@ -13404,7 +13404,7 @@ raylib.rlUpdateShaderBuffer = rlUpdateShaderBuffer * * @return {undefined} */ -function rlBindShaderBuffer (id, index) { +function rlBindShaderBuffer(id, index) { return r.BindrlBindShaderBuffer( id, index @@ -13422,7 +13422,7 @@ raylib.rlBindShaderBuffer = rlBindShaderBuffer * * @return {undefined} */ -function rlReadShaderBuffer (id, dest, count, offset) { +function rlReadShaderBuffer(id, dest, count, offset) { return r.BindrlReadShaderBuffer( id, dest, @@ -13443,7 +13443,7 @@ raylib.rlReadShaderBuffer = rlReadShaderBuffer * * @return {undefined} */ -function rlCopyShaderBuffer (destId, srcId, destOffset, srcOffset, count) { +function rlCopyShaderBuffer(destId, srcId, destOffset, srcOffset, count) { return r.BindrlCopyShaderBuffer( destId, srcId, @@ -13461,7 +13461,7 @@ raylib.rlCopyShaderBuffer = rlCopyShaderBuffer * * @return {number} The resulting unsigned int. */ -function rlGetShaderBufferSize (id) { +function rlGetShaderBufferSize(id) { return r.BindrlGetShaderBufferSize( id ) @@ -13478,7 +13478,7 @@ raylib.rlGetShaderBufferSize = rlGetShaderBufferSize * * @return {undefined} */ -function rlBindImageTexture (id, index, format, readonly) { +function rlBindImageTexture(id, index, format, readonly) { return r.BindrlBindImageTexture( id, index, @@ -13493,7 +13493,7 @@ raylib.rlBindImageTexture = rlBindImageTexture * * @return {Matrix} The resulting Matrix. */ -function rlGetMatrixModelview () { +function rlGetMatrixModelview() { return r.BindrlGetMatrixModelview() } raylib.rlGetMatrixModelview = rlGetMatrixModelview @@ -13503,7 +13503,7 @@ raylib.rlGetMatrixModelview = rlGetMatrixModelview * * @return {Matrix} The resulting Matrix. */ -function rlGetMatrixProjection () { +function rlGetMatrixProjection() { return r.BindrlGetMatrixProjection() } raylib.rlGetMatrixProjection = rlGetMatrixProjection @@ -13513,7 +13513,7 @@ raylib.rlGetMatrixProjection = rlGetMatrixProjection * * @return {Matrix} The resulting Matrix. */ -function rlGetMatrixTransform () { +function rlGetMatrixTransform() { return r.BindrlGetMatrixTransform() } raylib.rlGetMatrixTransform = rlGetMatrixTransform @@ -13525,7 +13525,7 @@ raylib.rlGetMatrixTransform = rlGetMatrixTransform * * @return {Matrix} The resulting Matrix. */ -function rlGetMatrixProjectionStereo (eye) { +function rlGetMatrixProjectionStereo(eye) { return r.BindrlGetMatrixProjectionStereo( eye ) @@ -13539,7 +13539,7 @@ raylib.rlGetMatrixProjectionStereo = rlGetMatrixProjectionStereo * * @return {Matrix} The resulting Matrix. */ -function rlGetMatrixViewOffsetStereo (eye) { +function rlGetMatrixViewOffsetStereo(eye) { return r.BindrlGetMatrixViewOffsetStereo( eye ) @@ -13553,7 +13553,7 @@ raylib.rlGetMatrixViewOffsetStereo = rlGetMatrixViewOffsetStereo * * @return {undefined} */ -function rlSetMatrixProjection (proj) { +function rlSetMatrixProjection(proj) { return r.BindrlSetMatrixProjection( proj.m0, proj.m4, @@ -13582,7 +13582,7 @@ raylib.rlSetMatrixProjection = rlSetMatrixProjection * * @return {undefined} */ -function rlSetMatrixModelview (view) { +function rlSetMatrixModelview(view) { return r.BindrlSetMatrixModelview( view.m0, view.m4, @@ -13612,7 +13612,7 @@ raylib.rlSetMatrixModelview = rlSetMatrixModelview * * @return {undefined} */ -function rlSetMatrixProjectionStereo (right, left) { +function rlSetMatrixProjectionStereo(right, left) { return r.BindrlSetMatrixProjectionStereo( right.m0, right.m4, @@ -13658,7 +13658,7 @@ raylib.rlSetMatrixProjectionStereo = rlSetMatrixProjectionStereo * * @return {undefined} */ -function rlSetMatrixViewOffsetStereo (right, left) { +function rlSetMatrixViewOffsetStereo(right, left) { return r.BindrlSetMatrixViewOffsetStereo( right.m0, right.m4, @@ -13701,7 +13701,7 @@ raylib.rlSetMatrixViewOffsetStereo = rlSetMatrixViewOffsetStereo * * @return {undefined} */ -function rlLoadDrawCube () { +function rlLoadDrawCube() { return r.BindrlLoadDrawCube() } raylib.rlLoadDrawCube = rlLoadDrawCube @@ -13711,7 +13711,7 @@ raylib.rlLoadDrawCube = rlLoadDrawCube * * @return {undefined} */ -function rlLoadDrawQuad () { +function rlLoadDrawQuad() { return r.BindrlLoadDrawQuad() } raylib.rlLoadDrawQuad = rlLoadDrawQuad @@ -13724,7 +13724,7 @@ raylib.rlLoadDrawQuad = rlLoadDrawQuad * * @return {undefined} */ -function UpdateCamera (camera, mode) { +function UpdateCamera(camera, mode) { const obj = r.BindUpdateCamera( camera.position.x, camera.position.y, @@ -13755,7 +13755,7 @@ raylib.UpdateCamera = UpdateCamera * * @return {undefined} */ -function ImageFormat (image, newFormat) { +function ImageFormat(image, newFormat) { const obj = r.BindImageFormat( image.data, image.width, @@ -13780,7 +13780,7 @@ raylib.ImageFormat = ImageFormat * * @return {undefined} */ -function ImageToPOT (image, fill) { +function ImageToPOT(image, fill) { const obj = r.BindImageToPOT( image.data, image.width, @@ -13808,7 +13808,7 @@ raylib.ImageToPOT = ImageToPOT * * @return {undefined} */ -function ImageCrop (image, crop) { +function ImageCrop(image, crop) { const obj = r.BindImageCrop( image.data, image.width, @@ -13836,7 +13836,7 @@ raylib.ImageCrop = ImageCrop * * @return {undefined} */ -function ImageAlphaCrop (image, threshold) { +function ImageAlphaCrop(image, threshold) { const obj = r.BindImageAlphaCrop( image.data, image.width, @@ -13862,7 +13862,7 @@ raylib.ImageAlphaCrop = ImageAlphaCrop * * @return {undefined} */ -function ImageAlphaClear (image, color, threshold) { +function ImageAlphaClear(image, color, threshold) { const obj = r.BindImageAlphaClear( image.data, image.width, @@ -13891,7 +13891,7 @@ raylib.ImageAlphaClear = ImageAlphaClear * * @return {undefined} */ -function ImageAlphaMask (image, alphaMask) { +function ImageAlphaMask(image, alphaMask) { const obj = r.BindImageAlphaMask( image.data, image.width, @@ -13919,7 +13919,7 @@ raylib.ImageAlphaMask = ImageAlphaMask * * @return {undefined} */ -function ImageAlphaPremultiply (image) { +function ImageAlphaPremultiply(image) { const obj = r.BindImageAlphaPremultiply( image.data, image.width, @@ -13944,7 +13944,7 @@ raylib.ImageAlphaPremultiply = ImageAlphaPremultiply * * @return {undefined} */ -function ImageResize (image, newWidth, newHeight) { +function ImageResize(image, newWidth, newHeight) { const obj = r.BindImageResize( image.data, image.width, @@ -13971,7 +13971,7 @@ raylib.ImageResize = ImageResize * * @return {undefined} */ -function ImageResizeNN (image, newWidth, newHeight) { +function ImageResizeNN(image, newWidth, newHeight) { const obj = r.BindImageResizeNN( image.data, image.width, @@ -14001,7 +14001,7 @@ raylib.ImageResizeNN = ImageResizeNN * * @return {undefined} */ -function ImageResizeCanvas (image, newWidth, newHeight, offsetX, offsetY, fill) { +function ImageResizeCanvas(image, newWidth, newHeight, offsetX, offsetY, fill) { const obj = r.BindImageResizeCanvas( image.data, image.width, @@ -14032,7 +14032,7 @@ raylib.ImageResizeCanvas = ImageResizeCanvas * * @return {undefined} */ -function ImageMipmaps (image) { +function ImageMipmaps(image) { const obj = r.BindImageMipmaps( image.data, image.width, @@ -14059,7 +14059,7 @@ raylib.ImageMipmaps = ImageMipmaps * * @return {undefined} */ -function ImageDither (image, rBpp, gBpp, bBpp, aBpp) { +function ImageDither(image, rBpp, gBpp, bBpp, aBpp) { const obj = r.BindImageDither( image.data, image.width, @@ -14086,7 +14086,7 @@ raylib.ImageDither = ImageDither * * @return {undefined} */ -function ImageFlipVertical (image) { +function ImageFlipVertical(image) { const obj = r.BindImageFlipVertical( image.data, image.width, @@ -14109,7 +14109,7 @@ raylib.ImageFlipVertical = ImageFlipVertical * * @return {undefined} */ -function ImageFlipHorizontal (image) { +function ImageFlipHorizontal(image) { const obj = r.BindImageFlipHorizontal( image.data, image.width, @@ -14132,7 +14132,7 @@ raylib.ImageFlipHorizontal = ImageFlipHorizontal * * @return {undefined} */ -function ImageRotateCW (image) { +function ImageRotateCW(image) { const obj = r.BindImageRotateCW( image.data, image.width, @@ -14155,7 +14155,7 @@ raylib.ImageRotateCW = ImageRotateCW * * @return {undefined} */ -function ImageRotateCCW (image) { +function ImageRotateCCW(image) { const obj = r.BindImageRotateCCW( image.data, image.width, @@ -14179,7 +14179,7 @@ raylib.ImageRotateCCW = ImageRotateCCW * * @return {undefined} */ -function ImageColorTint (image, color) { +function ImageColorTint(image, color) { const obj = r.BindImageColorTint( image.data, image.width, @@ -14206,7 +14206,7 @@ raylib.ImageColorTint = ImageColorTint * * @return {undefined} */ -function ImageColorInvert (image) { +function ImageColorInvert(image) { const obj = r.BindImageColorInvert( image.data, image.width, @@ -14229,7 +14229,7 @@ raylib.ImageColorInvert = ImageColorInvert * * @return {undefined} */ -function ImageColorGrayscale (image) { +function ImageColorGrayscale(image) { const obj = r.BindImageColorGrayscale( image.data, image.width, @@ -14253,7 +14253,7 @@ raylib.ImageColorGrayscale = ImageColorGrayscale * * @return {undefined} */ -function ImageColorContrast (image, contrast) { +function ImageColorContrast(image, contrast) { const obj = r.BindImageColorContrast( image.data, image.width, @@ -14278,7 +14278,7 @@ raylib.ImageColorContrast = ImageColorContrast * * @return {undefined} */ -function ImageColorBrightness (image, brightness) { +function ImageColorBrightness(image, brightness) { const obj = r.BindImageColorBrightness( image.data, image.width, @@ -14304,7 +14304,7 @@ raylib.ImageColorBrightness = ImageColorBrightness * * @return {undefined} */ -function ImageColorReplace (image, color, replace) { +function ImageColorReplace(image, color, replace) { const obj = r.BindImageColorReplace( image.data, image.width, @@ -14336,7 +14336,7 @@ raylib.ImageColorReplace = ImageColorReplace * * @return {undefined} */ -function ImageClearBackground (dst, color) { +function ImageClearBackground(dst, color) { const obj = r.BindImageClearBackground( dst.data, dst.width, @@ -14366,7 +14366,7 @@ raylib.ImageClearBackground = ImageClearBackground * * @return {undefined} */ -function ImageDrawPixel (dst, posX, posY, color) { +function ImageDrawPixel(dst, posX, posY, color) { const obj = r.BindImageDrawPixel( dst.data, dst.width, @@ -14397,7 +14397,7 @@ raylib.ImageDrawPixel = ImageDrawPixel * * @return {undefined} */ -function ImageDrawPixelV (dst, position, color) { +function ImageDrawPixelV(dst, position, color) { const obj = r.BindImageDrawPixelV( dst.data, dst.width, @@ -14431,7 +14431,7 @@ raylib.ImageDrawPixelV = ImageDrawPixelV * * @return {undefined} */ -function ImageDrawLine (dst, startPosX, startPosY, endPosX, endPosY, color) { +function ImageDrawLine(dst, startPosX, startPosY, endPosX, endPosY, color) { const obj = r.BindImageDrawLine( dst.data, dst.width, @@ -14465,7 +14465,7 @@ raylib.ImageDrawLine = ImageDrawLine * * @return {undefined} */ -function ImageDrawLineV (dst, start, end, color) { +function ImageDrawLineV(dst, start, end, color) { const obj = r.BindImageDrawLineV( dst.data, dst.width, @@ -14500,7 +14500,7 @@ raylib.ImageDrawLineV = ImageDrawLineV * * @return {undefined} */ -function ImageDrawCircle (dst, centerX, centerY, radius, color) { +function ImageDrawCircle(dst, centerX, centerY, radius, color) { const obj = r.BindImageDrawCircle( dst.data, dst.width, @@ -14533,7 +14533,7 @@ raylib.ImageDrawCircle = ImageDrawCircle * * @return {undefined} */ -function ImageDrawCircleV (dst, center, radius, color) { +function ImageDrawCircleV(dst, center, radius, color) { const obj = r.BindImageDrawCircleV( dst.data, dst.width, @@ -14568,7 +14568,7 @@ raylib.ImageDrawCircleV = ImageDrawCircleV * * @return {undefined} */ -function ImageDrawRectangle (dst, posX, posY, width, height, color) { +function ImageDrawRectangle(dst, posX, posY, width, height, color) { const obj = r.BindImageDrawRectangle( dst.data, dst.width, @@ -14602,7 +14602,7 @@ raylib.ImageDrawRectangle = ImageDrawRectangle * * @return {undefined} */ -function ImageDrawRectangleV (dst, position, size, color) { +function ImageDrawRectangleV(dst, position, size, color) { const obj = r.BindImageDrawRectangleV( dst.data, dst.width, @@ -14635,7 +14635,7 @@ raylib.ImageDrawRectangleV = ImageDrawRectangleV * * @return {undefined} */ -function ImageDrawRectangleRec (dst, rec, color) { +function ImageDrawRectangleRec(dst, rec, color) { const obj = r.BindImageDrawRectangleRec( dst.data, dst.width, @@ -14669,7 +14669,7 @@ raylib.ImageDrawRectangleRec = ImageDrawRectangleRec * * @return {undefined} */ -function ImageDrawRectangleLines (dst, rec, thick, color) { +function ImageDrawRectangleLines(dst, rec, thick, color) { const obj = r.BindImageDrawRectangleLines( dst.data, dst.width, @@ -14705,7 +14705,7 @@ raylib.ImageDrawRectangleLines = ImageDrawRectangleLines * * @return {undefined} */ -function ImageDraw (dst, src, srcRec, dstRec, tint) { +function ImageDraw(dst, src, srcRec, dstRec, tint) { const obj = r.BindImageDraw( dst.data, dst.width, @@ -14750,7 +14750,7 @@ raylib.ImageDraw = ImageDraw * * @return {undefined} */ -function ImageDrawText (dst, text, posX, posY, fontSize, color) { +function ImageDrawText(dst, text, posX, posY, fontSize, color) { const obj = r.BindImageDrawText( dst.data, dst.width, @@ -14787,7 +14787,7 @@ raylib.ImageDrawText = ImageDrawText * * @return {undefined} */ -function ImageDrawTextEx (dst, font, text, position, fontSize, spacing, tint) { +function ImageDrawTextEx(dst, font, text, position, fontSize, spacing, tint) { const obj = r.BindImageDrawTextEx( dst.data, dst.width, @@ -14829,7 +14829,7 @@ raylib.ImageDrawTextEx = ImageDrawTextEx * * @return {undefined} */ -function GenTextureMipmaps (texture) { +function GenTextureMipmaps(texture) { const obj = r.BindGenTextureMipmaps( texture.id, texture.width, @@ -14853,7 +14853,7 @@ raylib.GenTextureMipmaps = GenTextureMipmaps * * @return {undefined} */ -function UploadMesh (mesh, dynamic) { +function UploadMesh(mesh, dynamic) { const obj = r.BindUploadMesh( mesh.vertexCount, mesh.triangleCount, @@ -14887,7 +14887,7 @@ raylib.UploadMesh = UploadMesh * * @return {undefined} */ -function GenMeshTangents (mesh) { +function GenMeshTangents(mesh) { const obj = r.BindGenMeshTangents( mesh.vertexCount, mesh.triangleCount, @@ -14922,7 +14922,7 @@ raylib.GenMeshTangents = GenMeshTangents * * @return {undefined} */ -function SetModelMeshMaterial (model, meshId, materialId) { +function SetModelMeshMaterial(model, meshId, materialId) { const obj = r.BindSetModelMeshMaterial( model.transform.m0, model.transform.m4, @@ -14968,7 +14968,7 @@ raylib.SetModelMeshMaterial = SetModelMeshMaterial * * @return {undefined} */ -function WaveCrop (wave, initSample, finalSample) { +function WaveCrop(wave, initSample, finalSample) { const obj = r.BindWaveCrop( wave.frameCount, wave.sampleRate, @@ -14996,7 +14996,7 @@ raylib.WaveCrop = WaveCrop * * @return {undefined} */ -function WaveFormat (wave, sampleRate, sampleSize, channels) { +function WaveFormat(wave, sampleRate, sampleSize, channels) { const obj = r.BindWaveFormat( wave.frameCount, wave.sampleRate, @@ -15025,8 +15025,8 @@ raylib.WaveFormat = WaveFormat * * @return {Color} The new Color. */ -function Color (r, g, b, a) { - return { r, g, b, a } +function Color(r,g,b,a) { + return {r,g,b,a} } raylib.Color = Color @@ -15038,8 +15038,8 @@ raylib.Color = Color * * @return {Vector2} The new Vector2. */ -function Vector2 (x, y) { - return { x, y } +function Vector2(x,y) { + return {x,y} } raylib.Vector2 = Vector2 @@ -15052,8 +15052,8 @@ raylib.Vector2 = Vector2 * * @return {Vector3} The new Vector3. */ -function Vector3 (x, y, z) { - return { x, y, z } +function Vector3(x,y,z) { + return {x,y,z} } raylib.Vector3 = Vector3 @@ -15067,8 +15067,8 @@ raylib.Vector3 = Vector3 * * @return {Vector4} The new Vector4. */ -function Vector4 (x, y, z, w) { - return { x, y, z, w } +function Vector4(x,y,z,w) { + return {x,y,z,w} } raylib.Vector4 = Vector4 @@ -15082,8 +15082,8 @@ raylib.Vector4 = Vector4 * * @return {Rectangle} The new Rectangle. */ -function Rectangle (x, y, width, height) { - return { x, y, width, height } +function Rectangle(x,y,width,height) { + return {x,y,width,height} } raylib.Rectangle = Rectangle @@ -15097,8 +15097,8 @@ raylib.Rectangle = Rectangle * * @return {Camera2D} The new Camera2D. */ -function Camera2D (offset, target, rotation, zoom) { - return { offset, target, rotation, zoom } +function Camera2D(offset,target,rotation,zoom) { + return {offset,target,rotation,zoom} } raylib.Camera2D = Camera2D @@ -15113,8 +15113,8 @@ raylib.Camera2D = Camera2D * * @return {Camera3D} The new Camera3D. */ -function Camera3D (position, target, up, fovy, projection) { - return { position, target, up, fovy, projection } +function Camera3D(position,target,up,fovy,projection) { + return {position,target,up,fovy,projection} } raylib.Camera3D = Camera3D raylib.Camera = raylib.Camera3D @@ -15123,14 +15123,14 @@ raylib.Camera = raylib.Camera3D /** * Set shader uniform value float - * + * * @param {Shader} shader * @param {number} locIndex * @param {number} value - * + * * @returns {undefined} */ -function SetShaderFloat (shader, locIndex, value) { +function SetShaderFloat(shader, locIndex, value) { return r.BindSetShaderFloat( shader.id, shader.locs, @@ -15142,14 +15142,14 @@ raylib.SetShaderFloat = SetShaderFloat /** * Set shader uniform value float - * + * * @param {Shader} shader * @param {number} locIndex * @param {number} value - * + * * @returns {undefined} */ -function SetShaderInt (shader, locIndex, value) { +function SetShaderInt(shader, locIndex, value) { return r.BindSetShaderInt( shader.id, shader.locs, @@ -15161,14 +15161,14 @@ raylib.SetShaderInt = SetShaderInt /** * Set shader uniform value vector2 - * + * * @param {Shader} shader * @param {number} locIndex * @param {Vector2} value - * + * * @returns {undefined} */ -function SetShaderVec2 (shader, locIndex, value) { +function SetShaderVec2(shader, locIndex, value) { return r.BindSetShaderVec2( shader.id, shader.locs, @@ -15181,14 +15181,14 @@ raylib.SetShaderVec2 = SetShaderVec2 /** * Set shader uniform value vector3 - * + * * @param {Shader} shader * @param {number} locIndex * @param {Vector3} value - * + * * @returns {undefined} */ -function SetShaderVec3 (shader, locIndex, value) { +function SetShaderVec3(shader, locIndex, value) { return r.BindSetShaderVec3( shader.id, shader.locs, @@ -15202,14 +15202,14 @@ raylib.SetShaderVec3 = SetShaderVec3 /** * Set shader uniform value vector4 - * + * * @param {Shader} shader * @param {number} locIndex * @param {Vector4} value - * + * * @returns {undefined} */ -function SetShaderVec4 (shader, locIndex, value) { +function SetShaderVec4(shader, locIndex, value) { return r.BindSetShaderVec4( shader.id, shader.locs, @@ -17575,7 +17575,7 @@ raylib.NPATCH_THREE_PATCH_VERTICAL = 1 raylib.NPATCH_THREE_PATCH_HORIZONTAL = 2 /** - * + * * * @type {number} * @constant @@ -17583,7 +17583,7 @@ raylib.NPATCH_THREE_PATCH_HORIZONTAL = 2 raylib.STATE_NORMAL = 0 /** - * + * * * @type {number} * @constant @@ -17591,7 +17591,7 @@ raylib.STATE_NORMAL = 0 raylib.STATE_FOCUSED = 1 /** - * + * * * @type {number} * @constant @@ -17599,7 +17599,7 @@ raylib.STATE_FOCUSED = 1 raylib.STATE_PRESSED = 2 /** - * + * * * @type {number} * @constant @@ -17607,7 +17607,7 @@ raylib.STATE_PRESSED = 2 raylib.STATE_DISABLED = 3 /** - * + * * * @type {number} * @constant @@ -17615,7 +17615,7 @@ raylib.STATE_DISABLED = 3 raylib.TEXT_ALIGN_LEFT = 0 /** - * + * * * @type {number} * @constant @@ -17623,7 +17623,7 @@ raylib.TEXT_ALIGN_LEFT = 0 raylib.TEXT_ALIGN_CENTER = 1 /** - * + * * * @type {number} * @constant @@ -17631,7 +17631,7 @@ raylib.TEXT_ALIGN_CENTER = 1 raylib.TEXT_ALIGN_RIGHT = 2 /** - * + * * * @type {number} * @constant @@ -17647,7 +17647,7 @@ raylib.DEFAULT = 0 raylib.LABEL = 1 /** - * + * * * @type {number} * @constant @@ -17671,7 +17671,7 @@ raylib.TOGGLE = 3 raylib.SLIDER = 4 /** - * + * * * @type {number} * @constant @@ -17679,7 +17679,7 @@ raylib.SLIDER = 4 raylib.PROGRESSBAR = 5 /** - * + * * * @type {number} * @constant @@ -17687,7 +17687,7 @@ raylib.PROGRESSBAR = 5 raylib.CHECKBOX = 6 /** - * + * * * @type {number} * @constant @@ -17695,7 +17695,7 @@ raylib.CHECKBOX = 6 raylib.COMBOBOX = 7 /** - * + * * * @type {number} * @constant @@ -17711,7 +17711,7 @@ raylib.DROPDOWNBOX = 8 raylib.TEXTBOX = 9 /** - * + * * * @type {number} * @constant @@ -17727,7 +17727,7 @@ raylib.VALUEBOX = 10 raylib.SPINNER = 11 /** - * + * * * @type {number} * @constant @@ -17735,7 +17735,7 @@ raylib.SPINNER = 11 raylib.LISTVIEW = 12 /** - * + * * * @type {number} * @constant @@ -17743,7 +17743,7 @@ raylib.LISTVIEW = 12 raylib.COLORPICKER = 13 /** - * + * * * @type {number} * @constant @@ -17751,7 +17751,7 @@ raylib.COLORPICKER = 13 raylib.SCROLLBAR = 14 /** - * + * * * @type {number} * @constant @@ -17759,7 +17759,7 @@ raylib.SCROLLBAR = 14 raylib.STATUSBAR = 15 /** - * + * * * @type {number} * @constant @@ -17767,7 +17767,7 @@ raylib.STATUSBAR = 15 raylib.BORDER_COLOR_NORMAL = 0 /** - * + * * * @type {number} * @constant @@ -17775,7 +17775,7 @@ raylib.BORDER_COLOR_NORMAL = 0 raylib.BASE_COLOR_NORMAL = 1 /** - * + * * * @type {number} * @constant @@ -17783,7 +17783,7 @@ raylib.BASE_COLOR_NORMAL = 1 raylib.TEXT_COLOR_NORMAL = 2 /** - * + * * * @type {number} * @constant @@ -17791,7 +17791,7 @@ raylib.TEXT_COLOR_NORMAL = 2 raylib.BORDER_COLOR_FOCUSED = 3 /** - * + * * * @type {number} * @constant @@ -17799,7 +17799,7 @@ raylib.BORDER_COLOR_FOCUSED = 3 raylib.BASE_COLOR_FOCUSED = 4 /** - * + * * * @type {number} * @constant @@ -17807,7 +17807,7 @@ raylib.BASE_COLOR_FOCUSED = 4 raylib.TEXT_COLOR_FOCUSED = 5 /** - * + * * * @type {number} * @constant @@ -17815,7 +17815,7 @@ raylib.TEXT_COLOR_FOCUSED = 5 raylib.BORDER_COLOR_PRESSED = 6 /** - * + * * * @type {number} * @constant @@ -17823,7 +17823,7 @@ raylib.BORDER_COLOR_PRESSED = 6 raylib.BASE_COLOR_PRESSED = 7 /** - * + * * * @type {number} * @constant @@ -17831,7 +17831,7 @@ raylib.BASE_COLOR_PRESSED = 7 raylib.TEXT_COLOR_PRESSED = 8 /** - * + * * * @type {number} * @constant @@ -17839,7 +17839,7 @@ raylib.TEXT_COLOR_PRESSED = 8 raylib.BORDER_COLOR_DISABLED = 9 /** - * + * * * @type {number} * @constant @@ -17847,7 +17847,7 @@ raylib.BORDER_COLOR_DISABLED = 9 raylib.BASE_COLOR_DISABLED = 10 /** - * + * * * @type {number} * @constant @@ -17855,7 +17855,7 @@ raylib.BASE_COLOR_DISABLED = 10 raylib.TEXT_COLOR_DISABLED = 11 /** - * + * * * @type {number} * @constant @@ -17863,7 +17863,7 @@ raylib.TEXT_COLOR_DISABLED = 11 raylib.BORDER_WIDTH = 12 /** - * + * * * @type {number} * @constant @@ -17871,7 +17871,7 @@ raylib.BORDER_WIDTH = 12 raylib.TEXT_PADDING = 13 /** - * + * * * @type {number} * @constant @@ -17879,7 +17879,7 @@ raylib.TEXT_PADDING = 13 raylib.TEXT_ALIGNMENT = 14 /** - * + * * * @type {number} * @constant @@ -17951,7 +17951,7 @@ raylib.SLIDER_PADDING = 17 raylib.PROGRESS_PADDING = 16 /** - * + * * * @type {number} * @constant @@ -17959,7 +17959,7 @@ raylib.PROGRESS_PADDING = 16 raylib.ARROWS_SIZE = 16 /** - * + * * * @type {number} * @constant @@ -17975,7 +17975,7 @@ raylib.ARROWS_VISIBLE = 17 raylib.SCROLL_SLIDER_PADDING = 18 /** - * + * * * @type {number} * @constant @@ -17983,7 +17983,7 @@ raylib.SCROLL_SLIDER_PADDING = 18 raylib.SCROLL_SLIDER_SIZE = 19 /** - * + * * * @type {number} * @constant @@ -17991,7 +17991,7 @@ raylib.SCROLL_SLIDER_SIZE = 19 raylib.SCROLL_PADDING = 20 /** - * + * * * @type {number} * @constant @@ -18103,7 +18103,7 @@ raylib.SCROLLBAR_WIDTH = 18 raylib.SCROLLBAR_SIDE = 19 /** - * + * * * @type {number} * @constant @@ -18143,7 +18143,7 @@ raylib.HUEBAR_SELECTOR_HEIGHT = 19 raylib.HUEBAR_SELECTOR_OVERFLOW = 20 /** - * + * * * @type {number} * @constant @@ -18151,7 +18151,7 @@ raylib.HUEBAR_SELECTOR_OVERFLOW = 20 raylib.ICON_NONE = 0 /** - * + * * * @type {number} * @constant @@ -18159,7 +18159,7 @@ raylib.ICON_NONE = 0 raylib.ICON_FOLDER_FILE_OPEN = 1 /** - * + * * * @type {number} * @constant @@ -18167,7 +18167,7 @@ raylib.ICON_FOLDER_FILE_OPEN = 1 raylib.ICON_FILE_SAVE_CLASSIC = 2 /** - * + * * * @type {number} * @constant @@ -18175,7 +18175,7 @@ raylib.ICON_FILE_SAVE_CLASSIC = 2 raylib.ICON_FOLDER_OPEN = 3 /** - * + * * * @type {number} * @constant @@ -18183,7 +18183,7 @@ raylib.ICON_FOLDER_OPEN = 3 raylib.ICON_FOLDER_SAVE = 4 /** - * + * * * @type {number} * @constant @@ -18191,7 +18191,7 @@ raylib.ICON_FOLDER_SAVE = 4 raylib.ICON_FILE_OPEN = 5 /** - * + * * * @type {number} * @constant @@ -18199,7 +18199,7 @@ raylib.ICON_FILE_OPEN = 5 raylib.ICON_FILE_SAVE = 6 /** - * + * * * @type {number} * @constant @@ -18207,7 +18207,7 @@ raylib.ICON_FILE_SAVE = 6 raylib.ICON_FILE_EXPORT = 7 /** - * + * * * @type {number} * @constant @@ -18215,7 +18215,7 @@ raylib.ICON_FILE_EXPORT = 7 raylib.ICON_FILE_ADD = 8 /** - * + * * * @type {number} * @constant @@ -18223,7 +18223,7 @@ raylib.ICON_FILE_ADD = 8 raylib.ICON_FILE_DELETE = 9 /** - * + * * * @type {number} * @constant @@ -18231,7 +18231,7 @@ raylib.ICON_FILE_DELETE = 9 raylib.ICON_FILETYPE_TEXT = 10 /** - * + * * * @type {number} * @constant @@ -18239,7 +18239,7 @@ raylib.ICON_FILETYPE_TEXT = 10 raylib.ICON_FILETYPE_AUDIO = 11 /** - * + * * * @type {number} * @constant @@ -18247,7 +18247,7 @@ raylib.ICON_FILETYPE_AUDIO = 11 raylib.ICON_FILETYPE_IMAGE = 12 /** - * + * * * @type {number} * @constant @@ -18255,7 +18255,7 @@ raylib.ICON_FILETYPE_IMAGE = 12 raylib.ICON_FILETYPE_PLAY = 13 /** - * + * * * @type {number} * @constant @@ -18263,7 +18263,7 @@ raylib.ICON_FILETYPE_PLAY = 13 raylib.ICON_FILETYPE_VIDEO = 14 /** - * + * * * @type {number} * @constant @@ -18271,7 +18271,7 @@ raylib.ICON_FILETYPE_VIDEO = 14 raylib.ICON_FILETYPE_INFO = 15 /** - * + * * * @type {number} * @constant @@ -18279,7 +18279,7 @@ raylib.ICON_FILETYPE_INFO = 15 raylib.ICON_FILE_COPY = 16 /** - * + * * * @type {number} * @constant @@ -18287,7 +18287,7 @@ raylib.ICON_FILE_COPY = 16 raylib.ICON_FILE_CUT = 17 /** - * + * * * @type {number} * @constant @@ -18295,7 +18295,7 @@ raylib.ICON_FILE_CUT = 17 raylib.ICON_FILE_PASTE = 18 /** - * + * * * @type {number} * @constant @@ -18303,7 +18303,7 @@ raylib.ICON_FILE_PASTE = 18 raylib.ICON_CURSOR_HAND = 19 /** - * + * * * @type {number} * @constant @@ -18311,7 +18311,7 @@ raylib.ICON_CURSOR_HAND = 19 raylib.ICON_CURSOR_POINTER = 20 /** - * + * * * @type {number} * @constant @@ -18319,7 +18319,7 @@ raylib.ICON_CURSOR_POINTER = 20 raylib.ICON_CURSOR_CLASSIC = 21 /** - * + * * * @type {number} * @constant @@ -18327,7 +18327,7 @@ raylib.ICON_CURSOR_CLASSIC = 21 raylib.ICON_PENCIL = 22 /** - * + * * * @type {number} * @constant @@ -18335,7 +18335,7 @@ raylib.ICON_PENCIL = 22 raylib.ICON_PENCIL_BIG = 23 /** - * + * * * @type {number} * @constant @@ -18343,7 +18343,7 @@ raylib.ICON_PENCIL_BIG = 23 raylib.ICON_BRUSH_CLASSIC = 24 /** - * + * * * @type {number} * @constant @@ -18351,7 +18351,7 @@ raylib.ICON_BRUSH_CLASSIC = 24 raylib.ICON_BRUSH_PAINTER = 25 /** - * + * * * @type {number} * @constant @@ -18359,7 +18359,7 @@ raylib.ICON_BRUSH_PAINTER = 25 raylib.ICON_WATER_DROP = 26 /** - * + * * * @type {number} * @constant @@ -18367,7 +18367,7 @@ raylib.ICON_WATER_DROP = 26 raylib.ICON_COLOR_PICKER = 27 /** - * + * * * @type {number} * @constant @@ -18375,7 +18375,7 @@ raylib.ICON_COLOR_PICKER = 27 raylib.ICON_RUBBER = 28 /** - * + * * * @type {number} * @constant @@ -18383,7 +18383,7 @@ raylib.ICON_RUBBER = 28 raylib.ICON_COLOR_BUCKET = 29 /** - * + * * * @type {number} * @constant @@ -18391,7 +18391,7 @@ raylib.ICON_COLOR_BUCKET = 29 raylib.ICON_TEXT_T = 30 /** - * + * * * @type {number} * @constant @@ -18399,7 +18399,7 @@ raylib.ICON_TEXT_T = 30 raylib.ICON_TEXT_A = 31 /** - * + * * * @type {number} * @constant @@ -18407,7 +18407,7 @@ raylib.ICON_TEXT_A = 31 raylib.ICON_SCALE = 32 /** - * + * * * @type {number} * @constant @@ -18415,7 +18415,7 @@ raylib.ICON_SCALE = 32 raylib.ICON_RESIZE = 33 /** - * + * * * @type {number} * @constant @@ -18423,7 +18423,7 @@ raylib.ICON_RESIZE = 33 raylib.ICON_FILTER_POINT = 34 /** - * + * * * @type {number} * @constant @@ -18431,7 +18431,7 @@ raylib.ICON_FILTER_POINT = 34 raylib.ICON_FILTER_BILINEAR = 35 /** - * + * * * @type {number} * @constant @@ -18439,7 +18439,7 @@ raylib.ICON_FILTER_BILINEAR = 35 raylib.ICON_CROP = 36 /** - * + * * * @type {number} * @constant @@ -18447,7 +18447,7 @@ raylib.ICON_CROP = 36 raylib.ICON_CROP_ALPHA = 37 /** - * + * * * @type {number} * @constant @@ -18455,7 +18455,7 @@ raylib.ICON_CROP_ALPHA = 37 raylib.ICON_SQUARE_TOGGLE = 38 /** - * + * * * @type {number} * @constant @@ -18463,7 +18463,7 @@ raylib.ICON_SQUARE_TOGGLE = 38 raylib.ICON_SYMMETRY = 39 /** - * + * * * @type {number} * @constant @@ -18471,7 +18471,7 @@ raylib.ICON_SYMMETRY = 39 raylib.ICON_SYMMETRY_HORIZONTAL = 40 /** - * + * * * @type {number} * @constant @@ -18479,7 +18479,7 @@ raylib.ICON_SYMMETRY_HORIZONTAL = 40 raylib.ICON_SYMMETRY_VERTICAL = 41 /** - * + * * * @type {number} * @constant @@ -18487,7 +18487,7 @@ raylib.ICON_SYMMETRY_VERTICAL = 41 raylib.ICON_LENS = 42 /** - * + * * * @type {number} * @constant @@ -18495,7 +18495,7 @@ raylib.ICON_LENS = 42 raylib.ICON_LENS_BIG = 43 /** - * + * * * @type {number} * @constant @@ -18503,7 +18503,7 @@ raylib.ICON_LENS_BIG = 43 raylib.ICON_EYE_ON = 44 /** - * + * * * @type {number} * @constant @@ -18511,7 +18511,7 @@ raylib.ICON_EYE_ON = 44 raylib.ICON_EYE_OFF = 45 /** - * + * * * @type {number} * @constant @@ -18519,7 +18519,7 @@ raylib.ICON_EYE_OFF = 45 raylib.ICON_FILTER_TOP = 46 /** - * + * * * @type {number} * @constant @@ -18527,7 +18527,7 @@ raylib.ICON_FILTER_TOP = 46 raylib.ICON_FILTER = 47 /** - * + * * * @type {number} * @constant @@ -18535,7 +18535,7 @@ raylib.ICON_FILTER = 47 raylib.ICON_TARGET_POINT = 48 /** - * + * * * @type {number} * @constant @@ -18543,7 +18543,7 @@ raylib.ICON_TARGET_POINT = 48 raylib.ICON_TARGET_SMALL = 49 /** - * + * * * @type {number} * @constant @@ -18551,7 +18551,7 @@ raylib.ICON_TARGET_SMALL = 49 raylib.ICON_TARGET_BIG = 50 /** - * + * * * @type {number} * @constant @@ -18559,7 +18559,7 @@ raylib.ICON_TARGET_BIG = 50 raylib.ICON_TARGET_MOVE = 51 /** - * + * * * @type {number} * @constant @@ -18567,7 +18567,7 @@ raylib.ICON_TARGET_MOVE = 51 raylib.ICON_CURSOR_MOVE = 52 /** - * + * * * @type {number} * @constant @@ -18575,7 +18575,7 @@ raylib.ICON_CURSOR_MOVE = 52 raylib.ICON_CURSOR_SCALE = 53 /** - * + * * * @type {number} * @constant @@ -18583,7 +18583,7 @@ raylib.ICON_CURSOR_SCALE = 53 raylib.ICON_CURSOR_SCALE_RIGHT = 54 /** - * + * * * @type {number} * @constant @@ -18591,7 +18591,7 @@ raylib.ICON_CURSOR_SCALE_RIGHT = 54 raylib.ICON_CURSOR_SCALE_LEFT = 55 /** - * + * * * @type {number} * @constant @@ -18599,7 +18599,7 @@ raylib.ICON_CURSOR_SCALE_LEFT = 55 raylib.ICON_UNDO = 56 /** - * + * * * @type {number} * @constant @@ -18607,7 +18607,7 @@ raylib.ICON_UNDO = 56 raylib.ICON_REDO = 57 /** - * + * * * @type {number} * @constant @@ -18615,7 +18615,7 @@ raylib.ICON_REDO = 57 raylib.ICON_REREDO = 58 /** - * + * * * @type {number} * @constant @@ -18623,7 +18623,7 @@ raylib.ICON_REREDO = 58 raylib.ICON_MUTATE = 59 /** - * + * * * @type {number} * @constant @@ -18631,7 +18631,7 @@ raylib.ICON_MUTATE = 59 raylib.ICON_ROTATE = 60 /** - * + * * * @type {number} * @constant @@ -18639,7 +18639,7 @@ raylib.ICON_ROTATE = 60 raylib.ICON_REPEAT = 61 /** - * + * * * @type {number} * @constant @@ -18647,7 +18647,7 @@ raylib.ICON_REPEAT = 61 raylib.ICON_SHUFFLE = 62 /** - * + * * * @type {number} * @constant @@ -18655,7 +18655,7 @@ raylib.ICON_SHUFFLE = 62 raylib.ICON_EMPTYBOX = 63 /** - * + * * * @type {number} * @constant @@ -18663,7 +18663,7 @@ raylib.ICON_EMPTYBOX = 63 raylib.ICON_TARGET = 64 /** - * + * * * @type {number} * @constant @@ -18671,7 +18671,7 @@ raylib.ICON_TARGET = 64 raylib.ICON_TARGET_SMALL_FILL = 65 /** - * + * * * @type {number} * @constant @@ -18679,7 +18679,7 @@ raylib.ICON_TARGET_SMALL_FILL = 65 raylib.ICON_TARGET_BIG_FILL = 66 /** - * + * * * @type {number} * @constant @@ -18687,7 +18687,7 @@ raylib.ICON_TARGET_BIG_FILL = 66 raylib.ICON_TARGET_MOVE_FILL = 67 /** - * + * * * @type {number} * @constant @@ -18695,7 +18695,7 @@ raylib.ICON_TARGET_MOVE_FILL = 67 raylib.ICON_CURSOR_MOVE_FILL = 68 /** - * + * * * @type {number} * @constant @@ -18703,7 +18703,7 @@ raylib.ICON_CURSOR_MOVE_FILL = 68 raylib.ICON_CURSOR_SCALE_FILL = 69 /** - * + * * * @type {number} * @constant @@ -18711,7 +18711,7 @@ raylib.ICON_CURSOR_SCALE_FILL = 69 raylib.ICON_CURSOR_SCALE_RIGHT_FILL = 70 /** - * + * * * @type {number} * @constant @@ -18719,7 +18719,7 @@ raylib.ICON_CURSOR_SCALE_RIGHT_FILL = 70 raylib.ICON_CURSOR_SCALE_LEFT_FILL = 71 /** - * + * * * @type {number} * @constant @@ -18727,7 +18727,7 @@ raylib.ICON_CURSOR_SCALE_LEFT_FILL = 71 raylib.ICON_UNDO_FILL = 72 /** - * + * * * @type {number} * @constant @@ -18735,7 +18735,7 @@ raylib.ICON_UNDO_FILL = 72 raylib.ICON_REDO_FILL = 73 /** - * + * * * @type {number} * @constant @@ -18743,7 +18743,7 @@ raylib.ICON_REDO_FILL = 73 raylib.ICON_REREDO_FILL = 74 /** - * + * * * @type {number} * @constant @@ -18751,7 +18751,7 @@ raylib.ICON_REREDO_FILL = 74 raylib.ICON_MUTATE_FILL = 75 /** - * + * * * @type {number} * @constant @@ -18759,7 +18759,7 @@ raylib.ICON_MUTATE_FILL = 75 raylib.ICON_ROTATE_FILL = 76 /** - * + * * * @type {number} * @constant @@ -18767,7 +18767,7 @@ raylib.ICON_ROTATE_FILL = 76 raylib.ICON_REPEAT_FILL = 77 /** - * + * * * @type {number} * @constant @@ -18775,7 +18775,7 @@ raylib.ICON_REPEAT_FILL = 77 raylib.ICON_SHUFFLE_FILL = 78 /** - * + * * * @type {number} * @constant @@ -18783,7 +18783,7 @@ raylib.ICON_SHUFFLE_FILL = 78 raylib.ICON_EMPTYBOX_SMALL = 79 /** - * + * * * @type {number} * @constant @@ -18791,7 +18791,7 @@ raylib.ICON_EMPTYBOX_SMALL = 79 raylib.ICON_BOX = 80 /** - * + * * * @type {number} * @constant @@ -18799,7 +18799,7 @@ raylib.ICON_BOX = 80 raylib.ICON_BOX_TOP = 81 /** - * + * * * @type {number} * @constant @@ -18807,7 +18807,7 @@ raylib.ICON_BOX_TOP = 81 raylib.ICON_BOX_TOP_RIGHT = 82 /** - * + * * * @type {number} * @constant @@ -18815,7 +18815,7 @@ raylib.ICON_BOX_TOP_RIGHT = 82 raylib.ICON_BOX_RIGHT = 83 /** - * + * * * @type {number} * @constant @@ -18823,7 +18823,7 @@ raylib.ICON_BOX_RIGHT = 83 raylib.ICON_BOX_BOTTOM_RIGHT = 84 /** - * + * * * @type {number} * @constant @@ -18831,7 +18831,7 @@ raylib.ICON_BOX_BOTTOM_RIGHT = 84 raylib.ICON_BOX_BOTTOM = 85 /** - * + * * * @type {number} * @constant @@ -18839,7 +18839,7 @@ raylib.ICON_BOX_BOTTOM = 85 raylib.ICON_BOX_BOTTOM_LEFT = 86 /** - * + * * * @type {number} * @constant @@ -18847,7 +18847,7 @@ raylib.ICON_BOX_BOTTOM_LEFT = 86 raylib.ICON_BOX_LEFT = 87 /** - * + * * * @type {number} * @constant @@ -18855,7 +18855,7 @@ raylib.ICON_BOX_LEFT = 87 raylib.ICON_BOX_TOP_LEFT = 88 /** - * + * * * @type {number} * @constant @@ -18863,7 +18863,7 @@ raylib.ICON_BOX_TOP_LEFT = 88 raylib.ICON_BOX_CENTER = 89 /** - * + * * * @type {number} * @constant @@ -18871,7 +18871,7 @@ raylib.ICON_BOX_CENTER = 89 raylib.ICON_BOX_CIRCLE_MASK = 90 /** - * + * * * @type {number} * @constant @@ -18879,7 +18879,7 @@ raylib.ICON_BOX_CIRCLE_MASK = 90 raylib.ICON_POT = 91 /** - * + * * * @type {number} * @constant @@ -18887,7 +18887,7 @@ raylib.ICON_POT = 91 raylib.ICON_ALPHA_MULTIPLY = 92 /** - * + * * * @type {number} * @constant @@ -18895,7 +18895,7 @@ raylib.ICON_ALPHA_MULTIPLY = 92 raylib.ICON_ALPHA_CLEAR = 93 /** - * + * * * @type {number} * @constant @@ -18903,7 +18903,7 @@ raylib.ICON_ALPHA_CLEAR = 93 raylib.ICON_DITHERING = 94 /** - * + * * * @type {number} * @constant @@ -18911,7 +18911,7 @@ raylib.ICON_DITHERING = 94 raylib.ICON_MIPMAPS = 95 /** - * + * * * @type {number} * @constant @@ -18919,7 +18919,7 @@ raylib.ICON_MIPMAPS = 95 raylib.ICON_BOX_GRID = 96 /** - * + * * * @type {number} * @constant @@ -18927,7 +18927,7 @@ raylib.ICON_BOX_GRID = 96 raylib.ICON_GRID = 97 /** - * + * * * @type {number} * @constant @@ -18935,7 +18935,7 @@ raylib.ICON_GRID = 97 raylib.ICON_BOX_CORNERS_SMALL = 98 /** - * + * * * @type {number} * @constant @@ -18943,7 +18943,7 @@ raylib.ICON_BOX_CORNERS_SMALL = 98 raylib.ICON_BOX_CORNERS_BIG = 99 /** - * + * * * @type {number} * @constant @@ -18951,7 +18951,7 @@ raylib.ICON_BOX_CORNERS_BIG = 99 raylib.ICON_FOUR_BOXES = 100 /** - * + * * * @type {number} * @constant @@ -18959,7 +18959,7 @@ raylib.ICON_FOUR_BOXES = 100 raylib.ICON_GRID_FILL = 101 /** - * + * * * @type {number} * @constant @@ -18967,7 +18967,7 @@ raylib.ICON_GRID_FILL = 101 raylib.ICON_BOX_MULTISIZE = 102 /** - * + * * * @type {number} * @constant @@ -18975,7 +18975,7 @@ raylib.ICON_BOX_MULTISIZE = 102 raylib.ICON_ZOOM_SMALL = 103 /** - * + * * * @type {number} * @constant @@ -18983,7 +18983,7 @@ raylib.ICON_ZOOM_SMALL = 103 raylib.ICON_ZOOM_MEDIUM = 104 /** - * + * * * @type {number} * @constant @@ -18991,7 +18991,7 @@ raylib.ICON_ZOOM_MEDIUM = 104 raylib.ICON_ZOOM_BIG = 105 /** - * + * * * @type {number} * @constant @@ -18999,7 +18999,7 @@ raylib.ICON_ZOOM_BIG = 105 raylib.ICON_ZOOM_ALL = 106 /** - * + * * * @type {number} * @constant @@ -19007,7 +19007,7 @@ raylib.ICON_ZOOM_ALL = 106 raylib.ICON_ZOOM_CENTER = 107 /** - * + * * * @type {number} * @constant @@ -19015,7 +19015,7 @@ raylib.ICON_ZOOM_CENTER = 107 raylib.ICON_BOX_DOTS_SMALL = 108 /** - * + * * * @type {number} * @constant @@ -19023,7 +19023,7 @@ raylib.ICON_BOX_DOTS_SMALL = 108 raylib.ICON_BOX_DOTS_BIG = 109 /** - * + * * * @type {number} * @constant @@ -19031,7 +19031,7 @@ raylib.ICON_BOX_DOTS_BIG = 109 raylib.ICON_BOX_CONCENTRIC = 110 /** - * + * * * @type {number} * @constant @@ -19039,7 +19039,7 @@ raylib.ICON_BOX_CONCENTRIC = 110 raylib.ICON_BOX_GRID_BIG = 111 /** - * + * * * @type {number} * @constant @@ -19047,7 +19047,7 @@ raylib.ICON_BOX_GRID_BIG = 111 raylib.ICON_OK_TICK = 112 /** - * + * * * @type {number} * @constant @@ -19055,7 +19055,7 @@ raylib.ICON_OK_TICK = 112 raylib.ICON_CROSS = 113 /** - * + * * * @type {number} * @constant @@ -19063,7 +19063,7 @@ raylib.ICON_CROSS = 113 raylib.ICON_ARROW_LEFT = 114 /** - * + * * * @type {number} * @constant @@ -19071,7 +19071,7 @@ raylib.ICON_ARROW_LEFT = 114 raylib.ICON_ARROW_RIGHT = 115 /** - * + * * * @type {number} * @constant @@ -19079,7 +19079,7 @@ raylib.ICON_ARROW_RIGHT = 115 raylib.ICON_ARROW_DOWN = 116 /** - * + * * * @type {number} * @constant @@ -19087,7 +19087,7 @@ raylib.ICON_ARROW_DOWN = 116 raylib.ICON_ARROW_UP = 117 /** - * + * * * @type {number} * @constant @@ -19095,7 +19095,7 @@ raylib.ICON_ARROW_UP = 117 raylib.ICON_ARROW_LEFT_FILL = 118 /** - * + * * * @type {number} * @constant @@ -19103,7 +19103,7 @@ raylib.ICON_ARROW_LEFT_FILL = 118 raylib.ICON_ARROW_RIGHT_FILL = 119 /** - * + * * * @type {number} * @constant @@ -19111,7 +19111,7 @@ raylib.ICON_ARROW_RIGHT_FILL = 119 raylib.ICON_ARROW_DOWN_FILL = 120 /** - * + * * * @type {number} * @constant @@ -19119,7 +19119,7 @@ raylib.ICON_ARROW_DOWN_FILL = 120 raylib.ICON_ARROW_UP_FILL = 121 /** - * + * * * @type {number} * @constant @@ -19127,7 +19127,7 @@ raylib.ICON_ARROW_UP_FILL = 121 raylib.ICON_AUDIO = 122 /** - * + * * * @type {number} * @constant @@ -19135,7 +19135,7 @@ raylib.ICON_AUDIO = 122 raylib.ICON_FX = 123 /** - * + * * * @type {number} * @constant @@ -19143,7 +19143,7 @@ raylib.ICON_FX = 123 raylib.ICON_WAVE = 124 /** - * + * * * @type {number} * @constant @@ -19151,7 +19151,7 @@ raylib.ICON_WAVE = 124 raylib.ICON_WAVE_SINUS = 125 /** - * + * * * @type {number} * @constant @@ -19159,7 +19159,7 @@ raylib.ICON_WAVE_SINUS = 125 raylib.ICON_WAVE_SQUARE = 126 /** - * + * * * @type {number} * @constant @@ -19167,7 +19167,7 @@ raylib.ICON_WAVE_SQUARE = 126 raylib.ICON_WAVE_TRIANGULAR = 127 /** - * + * * * @type {number} * @constant @@ -19175,7 +19175,7 @@ raylib.ICON_WAVE_TRIANGULAR = 127 raylib.ICON_CROSS_SMALL = 128 /** - * + * * * @type {number} * @constant @@ -19183,7 +19183,7 @@ raylib.ICON_CROSS_SMALL = 128 raylib.ICON_PLAYER_PREVIOUS = 129 /** - * + * * * @type {number} * @constant @@ -19191,7 +19191,7 @@ raylib.ICON_PLAYER_PREVIOUS = 129 raylib.ICON_PLAYER_PLAY_BACK = 130 /** - * + * * * @type {number} * @constant @@ -19199,7 +19199,7 @@ raylib.ICON_PLAYER_PLAY_BACK = 130 raylib.ICON_PLAYER_PLAY = 131 /** - * + * * * @type {number} * @constant @@ -19207,7 +19207,7 @@ raylib.ICON_PLAYER_PLAY = 131 raylib.ICON_PLAYER_PAUSE = 132 /** - * + * * * @type {number} * @constant @@ -19215,7 +19215,7 @@ raylib.ICON_PLAYER_PAUSE = 132 raylib.ICON_PLAYER_STOP = 133 /** - * + * * * @type {number} * @constant @@ -19223,7 +19223,7 @@ raylib.ICON_PLAYER_STOP = 133 raylib.ICON_PLAYER_NEXT = 134 /** - * + * * * @type {number} * @constant @@ -19231,7 +19231,7 @@ raylib.ICON_PLAYER_NEXT = 134 raylib.ICON_PLAYER_RECORD = 135 /** - * + * * * @type {number} * @constant @@ -19239,7 +19239,7 @@ raylib.ICON_PLAYER_RECORD = 135 raylib.ICON_MAGNET = 136 /** - * + * * * @type {number} * @constant @@ -19247,7 +19247,7 @@ raylib.ICON_MAGNET = 136 raylib.ICON_LOCK_CLOSE = 137 /** - * + * * * @type {number} * @constant @@ -19255,7 +19255,7 @@ raylib.ICON_LOCK_CLOSE = 137 raylib.ICON_LOCK_OPEN = 138 /** - * + * * * @type {number} * @constant @@ -19263,7 +19263,7 @@ raylib.ICON_LOCK_OPEN = 138 raylib.ICON_CLOCK = 139 /** - * + * * * @type {number} * @constant @@ -19271,7 +19271,7 @@ raylib.ICON_CLOCK = 139 raylib.ICON_TOOLS = 140 /** - * + * * * @type {number} * @constant @@ -19279,7 +19279,7 @@ raylib.ICON_TOOLS = 140 raylib.ICON_GEAR = 141 /** - * + * * * @type {number} * @constant @@ -19287,7 +19287,7 @@ raylib.ICON_GEAR = 141 raylib.ICON_GEAR_BIG = 142 /** - * + * * * @type {number} * @constant @@ -19295,7 +19295,7 @@ raylib.ICON_GEAR_BIG = 142 raylib.ICON_BIN = 143 /** - * + * * * @type {number} * @constant @@ -19303,7 +19303,7 @@ raylib.ICON_BIN = 143 raylib.ICON_HAND_POINTER = 144 /** - * + * * * @type {number} * @constant @@ -19311,7 +19311,7 @@ raylib.ICON_HAND_POINTER = 144 raylib.ICON_LASER = 145 /** - * + * * * @type {number} * @constant @@ -19319,7 +19319,7 @@ raylib.ICON_LASER = 145 raylib.ICON_COIN = 146 /** - * + * * * @type {number} * @constant @@ -19327,7 +19327,7 @@ raylib.ICON_COIN = 146 raylib.ICON_EXPLOSION = 147 /** - * + * * * @type {number} * @constant @@ -19335,7 +19335,7 @@ raylib.ICON_EXPLOSION = 147 raylib.ICON_1UP = 148 /** - * + * * * @type {number} * @constant @@ -19343,7 +19343,7 @@ raylib.ICON_1UP = 148 raylib.ICON_PLAYER = 149 /** - * + * * * @type {number} * @constant @@ -19351,7 +19351,7 @@ raylib.ICON_PLAYER = 149 raylib.ICON_PLAYER_JUMP = 150 /** - * + * * * @type {number} * @constant @@ -19359,7 +19359,7 @@ raylib.ICON_PLAYER_JUMP = 150 raylib.ICON_KEY = 151 /** - * + * * * @type {number} * @constant @@ -19367,7 +19367,7 @@ raylib.ICON_KEY = 151 raylib.ICON_DEMON = 152 /** - * + * * * @type {number} * @constant @@ -19375,7 +19375,7 @@ raylib.ICON_DEMON = 152 raylib.ICON_TEXT_POPUP = 153 /** - * + * * * @type {number} * @constant @@ -19383,7 +19383,7 @@ raylib.ICON_TEXT_POPUP = 153 raylib.ICON_GEAR_EX = 154 /** - * + * * * @type {number} * @constant @@ -19391,7 +19391,7 @@ raylib.ICON_GEAR_EX = 154 raylib.ICON_CRACK = 155 /** - * + * * * @type {number} * @constant @@ -19399,7 +19399,7 @@ raylib.ICON_CRACK = 155 raylib.ICON_CRACK_POINTS = 156 /** - * + * * * @type {number} * @constant @@ -19407,7 +19407,7 @@ raylib.ICON_CRACK_POINTS = 156 raylib.ICON_STAR = 157 /** - * + * * * @type {number} * @constant @@ -19415,7 +19415,7 @@ raylib.ICON_STAR = 157 raylib.ICON_DOOR = 158 /** - * + * * * @type {number} * @constant @@ -19423,7 +19423,7 @@ raylib.ICON_DOOR = 158 raylib.ICON_EXIT = 159 /** - * + * * * @type {number} * @constant @@ -19431,7 +19431,7 @@ raylib.ICON_EXIT = 159 raylib.ICON_MODE_2D = 160 /** - * + * * * @type {number} * @constant @@ -19439,7 +19439,7 @@ raylib.ICON_MODE_2D = 160 raylib.ICON_MODE_3D = 161 /** - * + * * * @type {number} * @constant @@ -19447,7 +19447,7 @@ raylib.ICON_MODE_3D = 161 raylib.ICON_CUBE = 162 /** - * + * * * @type {number} * @constant @@ -19455,7 +19455,7 @@ raylib.ICON_CUBE = 162 raylib.ICON_CUBE_FACE_TOP = 163 /** - * + * * * @type {number} * @constant @@ -19463,7 +19463,7 @@ raylib.ICON_CUBE_FACE_TOP = 163 raylib.ICON_CUBE_FACE_LEFT = 164 /** - * + * * * @type {number} * @constant @@ -19471,7 +19471,7 @@ raylib.ICON_CUBE_FACE_LEFT = 164 raylib.ICON_CUBE_FACE_FRONT = 165 /** - * + * * * @type {number} * @constant @@ -19479,7 +19479,7 @@ raylib.ICON_CUBE_FACE_FRONT = 165 raylib.ICON_CUBE_FACE_BOTTOM = 166 /** - * + * * * @type {number} * @constant @@ -19487,7 +19487,7 @@ raylib.ICON_CUBE_FACE_BOTTOM = 166 raylib.ICON_CUBE_FACE_RIGHT = 167 /** - * + * * * @type {number} * @constant @@ -19495,7 +19495,7 @@ raylib.ICON_CUBE_FACE_RIGHT = 167 raylib.ICON_CUBE_FACE_BACK = 168 /** - * + * * * @type {number} * @constant @@ -19503,7 +19503,7 @@ raylib.ICON_CUBE_FACE_BACK = 168 raylib.ICON_CAMERA = 169 /** - * + * * * @type {number} * @constant @@ -19511,7 +19511,7 @@ raylib.ICON_CAMERA = 169 raylib.ICON_SPECIAL = 170 /** - * + * * * @type {number} * @constant @@ -19519,7 +19519,7 @@ raylib.ICON_SPECIAL = 170 raylib.ICON_LINK_NET = 171 /** - * + * * * @type {number} * @constant @@ -19527,7 +19527,7 @@ raylib.ICON_LINK_NET = 171 raylib.ICON_LINK_BOXES = 172 /** - * + * * * @type {number} * @constant @@ -19535,7 +19535,7 @@ raylib.ICON_LINK_BOXES = 172 raylib.ICON_LINK_MULTI = 173 /** - * + * * * @type {number} * @constant @@ -19543,7 +19543,7 @@ raylib.ICON_LINK_MULTI = 173 raylib.ICON_LINK = 174 /** - * + * * * @type {number} * @constant @@ -19551,7 +19551,7 @@ raylib.ICON_LINK = 174 raylib.ICON_LINK_BROKE = 175 /** - * + * * * @type {number} * @constant @@ -19559,7 +19559,7 @@ raylib.ICON_LINK_BROKE = 175 raylib.ICON_TEXT_NOTES = 176 /** - * + * * * @type {number} * @constant @@ -19567,7 +19567,7 @@ raylib.ICON_TEXT_NOTES = 176 raylib.ICON_NOTEBOOK = 177 /** - * + * * * @type {number} * @constant @@ -19575,7 +19575,7 @@ raylib.ICON_NOTEBOOK = 177 raylib.ICON_SUITCASE = 178 /** - * + * * * @type {number} * @constant @@ -19583,7 +19583,7 @@ raylib.ICON_SUITCASE = 178 raylib.ICON_SUITCASE_ZIP = 179 /** - * + * * * @type {number} * @constant @@ -19591,7 +19591,7 @@ raylib.ICON_SUITCASE_ZIP = 179 raylib.ICON_MAILBOX = 180 /** - * + * * * @type {number} * @constant @@ -19599,7 +19599,7 @@ raylib.ICON_MAILBOX = 180 raylib.ICON_MONITOR = 181 /** - * + * * * @type {number} * @constant @@ -19607,7 +19607,7 @@ raylib.ICON_MONITOR = 181 raylib.ICON_PRINTER = 182 /** - * + * * * @type {number} * @constant @@ -19615,7 +19615,7 @@ raylib.ICON_PRINTER = 182 raylib.ICON_PHOTO_CAMERA = 183 /** - * + * * * @type {number} * @constant @@ -19623,7 +19623,7 @@ raylib.ICON_PHOTO_CAMERA = 183 raylib.ICON_PHOTO_CAMERA_FLASH = 184 /** - * + * * * @type {number} * @constant @@ -19631,7 +19631,7 @@ raylib.ICON_PHOTO_CAMERA_FLASH = 184 raylib.ICON_HOUSE = 185 /** - * + * * * @type {number} * @constant @@ -19639,7 +19639,7 @@ raylib.ICON_HOUSE = 185 raylib.ICON_HEART = 186 /** - * + * * * @type {number} * @constant @@ -19647,7 +19647,7 @@ raylib.ICON_HEART = 186 raylib.ICON_CORNER = 187 /** - * + * * * @type {number} * @constant @@ -19655,7 +19655,7 @@ raylib.ICON_CORNER = 187 raylib.ICON_VERTICAL_BARS = 188 /** - * + * * * @type {number} * @constant @@ -19663,7 +19663,7 @@ raylib.ICON_VERTICAL_BARS = 188 raylib.ICON_VERTICAL_BARS_FILL = 189 /** - * + * * * @type {number} * @constant @@ -19671,7 +19671,7 @@ raylib.ICON_VERTICAL_BARS_FILL = 189 raylib.ICON_LIFE_BARS = 190 /** - * + * * * @type {number} * @constant @@ -19679,7 +19679,7 @@ raylib.ICON_LIFE_BARS = 190 raylib.ICON_INFO = 191 /** - * + * * * @type {number} * @constant @@ -19687,7 +19687,7 @@ raylib.ICON_INFO = 191 raylib.ICON_CROSSLINE = 192 /** - * + * * * @type {number} * @constant @@ -19695,7 +19695,7 @@ raylib.ICON_CROSSLINE = 192 raylib.ICON_HELP = 193 /** - * + * * * @type {number} * @constant @@ -19703,7 +19703,7 @@ raylib.ICON_HELP = 193 raylib.ICON_FILETYPE_ALPHA = 194 /** - * + * * * @type {number} * @constant @@ -19711,7 +19711,7 @@ raylib.ICON_FILETYPE_ALPHA = 194 raylib.ICON_FILETYPE_HOME = 195 /** - * + * * * @type {number} * @constant @@ -19719,7 +19719,7 @@ raylib.ICON_FILETYPE_HOME = 195 raylib.ICON_LAYERS_VISIBLE = 196 /** - * + * * * @type {number} * @constant @@ -19727,7 +19727,7 @@ raylib.ICON_LAYERS_VISIBLE = 196 raylib.ICON_LAYERS = 197 /** - * + * * * @type {number} * @constant @@ -19735,7 +19735,7 @@ raylib.ICON_LAYERS = 197 raylib.ICON_WINDOW = 198 /** - * + * * * @type {number} * @constant @@ -19743,7 +19743,7 @@ raylib.ICON_WINDOW = 198 raylib.ICON_HIDPI = 199 /** - * + * * * @type {number} * @constant @@ -19751,7 +19751,7 @@ raylib.ICON_HIDPI = 199 raylib.ICON_FILETYPE_BINARY = 200 /** - * + * * * @type {number} * @constant @@ -19759,7 +19759,7 @@ raylib.ICON_FILETYPE_BINARY = 200 raylib.ICON_HEX = 201 /** - * + * * * @type {number} * @constant @@ -19767,7 +19767,7 @@ raylib.ICON_HEX = 201 raylib.ICON_SHIELD = 202 /** - * + * * * @type {number} * @constant @@ -19775,7 +19775,7 @@ raylib.ICON_SHIELD = 202 raylib.ICON_FILE_NEW = 203 /** - * + * * * @type {number} * @constant @@ -19783,7 +19783,7 @@ raylib.ICON_FILE_NEW = 203 raylib.ICON_FOLDER_ADD = 204 /** - * + * * * @type {number} * @constant @@ -19791,7 +19791,7 @@ raylib.ICON_FOLDER_ADD = 204 raylib.ICON_ALARM = 205 /** - * + * * * @type {number} * @constant @@ -19799,7 +19799,7 @@ raylib.ICON_ALARM = 205 raylib.ICON_CPU = 206 /** - * + * * * @type {number} * @constant @@ -19807,7 +19807,7 @@ raylib.ICON_CPU = 206 raylib.ICON_ROM = 207 /** - * + * * * @type {number} * @constant @@ -19815,7 +19815,7 @@ raylib.ICON_ROM = 207 raylib.ICON_STEP_OVER = 208 /** - * + * * * @type {number} * @constant @@ -19823,7 +19823,7 @@ raylib.ICON_STEP_OVER = 208 raylib.ICON_STEP_INTO = 209 /** - * + * * * @type {number} * @constant @@ -19831,7 +19831,7 @@ raylib.ICON_STEP_INTO = 209 raylib.ICON_STEP_OUT = 210 /** - * + * * * @type {number} * @constant @@ -19839,7 +19839,7 @@ raylib.ICON_STEP_OUT = 210 raylib.ICON_RESTART = 211 /** - * + * * * @type {number} * @constant @@ -19847,7 +19847,7 @@ raylib.ICON_RESTART = 211 raylib.ICON_BREAKPOINT_ON = 212 /** - * + * * * @type {number} * @constant @@ -19855,7 +19855,7 @@ raylib.ICON_BREAKPOINT_ON = 212 raylib.ICON_BREAKPOINT_OFF = 213 /** - * + * * * @type {number} * @constant @@ -19863,7 +19863,7 @@ raylib.ICON_BREAKPOINT_OFF = 213 raylib.ICON_BURGER_MENU = 214 /** - * + * * * @type {number} * @constant @@ -19871,7 +19871,7 @@ raylib.ICON_BURGER_MENU = 214 raylib.ICON_CASE_SENSITIVE = 215 /** - * + * * * @type {number} * @constant @@ -19879,7 +19879,7 @@ raylib.ICON_CASE_SENSITIVE = 215 raylib.ICON_REG_EXP = 216 /** - * + * * * @type {number} * @constant @@ -19887,7 +19887,7 @@ raylib.ICON_REG_EXP = 216 raylib.ICON_FOLDER = 217 /** - * + * * * @type {number} * @constant @@ -19895,7 +19895,7 @@ raylib.ICON_FOLDER = 217 raylib.ICON_FILE = 218 /** - * + * * * @type {number} * @constant @@ -19903,7 +19903,7 @@ raylib.ICON_FILE = 218 raylib.ICON_219 = 219 /** - * + * * * @type {number} * @constant @@ -19911,7 +19911,7 @@ raylib.ICON_219 = 219 raylib.ICON_220 = 220 /** - * + * * * @type {number} * @constant @@ -19919,7 +19919,7 @@ raylib.ICON_220 = 220 raylib.ICON_221 = 221 /** - * + * * * @type {number} * @constant @@ -19927,7 +19927,7 @@ raylib.ICON_221 = 221 raylib.ICON_222 = 222 /** - * + * * * @type {number} * @constant @@ -19935,7 +19935,7 @@ raylib.ICON_222 = 222 raylib.ICON_223 = 223 /** - * + * * * @type {number} * @constant @@ -19943,7 +19943,7 @@ raylib.ICON_223 = 223 raylib.ICON_224 = 224 /** - * + * * * @type {number} * @constant @@ -19951,7 +19951,7 @@ raylib.ICON_224 = 224 raylib.ICON_225 = 225 /** - * + * * * @type {number} * @constant @@ -19959,7 +19959,7 @@ raylib.ICON_225 = 225 raylib.ICON_226 = 226 /** - * + * * * @type {number} * @constant @@ -19967,7 +19967,7 @@ raylib.ICON_226 = 226 raylib.ICON_227 = 227 /** - * + * * * @type {number} * @constant @@ -19975,7 +19975,7 @@ raylib.ICON_227 = 227 raylib.ICON_228 = 228 /** - * + * * * @type {number} * @constant @@ -19983,7 +19983,7 @@ raylib.ICON_228 = 228 raylib.ICON_229 = 229 /** - * + * * * @type {number} * @constant @@ -19991,7 +19991,7 @@ raylib.ICON_229 = 229 raylib.ICON_230 = 230 /** - * + * * * @type {number} * @constant @@ -19999,7 +19999,7 @@ raylib.ICON_230 = 230 raylib.ICON_231 = 231 /** - * + * * * @type {number} * @constant @@ -20007,7 +20007,7 @@ raylib.ICON_231 = 231 raylib.ICON_232 = 232 /** - * + * * * @type {number} * @constant @@ -20015,7 +20015,7 @@ raylib.ICON_232 = 232 raylib.ICON_233 = 233 /** - * + * * * @type {number} * @constant @@ -20023,7 +20023,7 @@ raylib.ICON_233 = 233 raylib.ICON_234 = 234 /** - * + * * * @type {number} * @constant @@ -20031,7 +20031,7 @@ raylib.ICON_234 = 234 raylib.ICON_235 = 235 /** - * + * * * @type {number} * @constant @@ -20039,7 +20039,7 @@ raylib.ICON_235 = 235 raylib.ICON_236 = 236 /** - * + * * * @type {number} * @constant @@ -20047,7 +20047,7 @@ raylib.ICON_236 = 236 raylib.ICON_237 = 237 /** - * + * * * @type {number} * @constant @@ -20055,7 +20055,7 @@ raylib.ICON_237 = 237 raylib.ICON_238 = 238 /** - * + * * * @type {number} * @constant @@ -20063,7 +20063,7 @@ raylib.ICON_238 = 238 raylib.ICON_239 = 239 /** - * + * * * @type {number} * @constant @@ -20071,7 +20071,7 @@ raylib.ICON_239 = 239 raylib.ICON_240 = 240 /** - * + * * * @type {number} * @constant @@ -20079,7 +20079,7 @@ raylib.ICON_240 = 240 raylib.ICON_241 = 241 /** - * + * * * @type {number} * @constant @@ -20087,7 +20087,7 @@ raylib.ICON_241 = 241 raylib.ICON_242 = 242 /** - * + * * * @type {number} * @constant @@ -20095,7 +20095,7 @@ raylib.ICON_242 = 242 raylib.ICON_243 = 243 /** - * + * * * @type {number} * @constant @@ -20103,7 +20103,7 @@ raylib.ICON_243 = 243 raylib.ICON_244 = 244 /** - * + * * * @type {number} * @constant @@ -20111,7 +20111,7 @@ raylib.ICON_244 = 244 raylib.ICON_245 = 245 /** - * + * * * @type {number} * @constant @@ -20119,7 +20119,7 @@ raylib.ICON_245 = 245 raylib.ICON_246 = 246 /** - * + * * * @type {number} * @constant @@ -20127,7 +20127,7 @@ raylib.ICON_246 = 246 raylib.ICON_247 = 247 /** - * + * * * @type {number} * @constant @@ -20135,7 +20135,7 @@ raylib.ICON_247 = 247 raylib.ICON_248 = 248 /** - * + * * * @type {number} * @constant @@ -20143,7 +20143,7 @@ raylib.ICON_248 = 248 raylib.ICON_249 = 249 /** - * + * * * @type {number} * @constant @@ -20151,7 +20151,7 @@ raylib.ICON_249 = 249 raylib.ICON_250 = 250 /** - * + * * * @type {number} * @constant @@ -20159,7 +20159,7 @@ raylib.ICON_250 = 250 raylib.ICON_251 = 251 /** - * + * * * @type {number} * @constant @@ -20167,7 +20167,7 @@ raylib.ICON_251 = 251 raylib.ICON_252 = 252 /** - * + * * * @type {number} * @constant @@ -20175,7 +20175,7 @@ raylib.ICON_252 = 252 raylib.ICON_253 = 253 /** - * + * * * @type {number} * @constant @@ -20183,7 +20183,7 @@ raylib.ICON_253 = 253 raylib.ICON_254 = 254 /** - * + * * * @type {number} * @constant @@ -21031,7 +21031,7 @@ raylib.RL_ATTACHMENT_TEXTURE2D = 100 raylib.RL_ATTACHMENT_RENDERBUFFER = 200 /** - * + * * * @type {number} * @constant @@ -21039,7 +21039,7 @@ raylib.RL_ATTACHMENT_RENDERBUFFER = 200 raylib.RL_CULL_FACE_FRONT = 0 /** - * + * * * @type {number} * @constant @@ -21047,7 +21047,7 @@ raylib.RL_CULL_FACE_FRONT = 0 raylib.RL_CULL_FACE_BACK = 1 /** - * + * * * @type {number} * @constant diff --git a/src/generated/node-raylib.js b/src/generated/node-raylib.js index 7b793ae..d0ebea9 100644 --- a/src/generated/node-raylib.js +++ b/src/generated/node-raylib.js @@ -20,7 +20,7 @@ const raylib = {} * * @return {undefined} */ -function InitWindow (width, height, title) { +function InitWindow(width, height, title) { return r.BindInitWindow( width, height, @@ -34,7 +34,7 @@ raylib.InitWindow = InitWindow * * @return {boolean} The resulting bool. */ -function WindowShouldClose () { +function WindowShouldClose() { return r.BindWindowShouldClose() } raylib.WindowShouldClose = WindowShouldClose @@ -44,7 +44,7 @@ raylib.WindowShouldClose = WindowShouldClose * * @return {undefined} */ -function CloseWindow () { +function CloseWindow() { return r.BindCloseWindow() } raylib.CloseWindow = CloseWindow @@ -54,7 +54,7 @@ raylib.CloseWindow = CloseWindow * * @return {boolean} The resulting bool. */ -function IsWindowReady () { +function IsWindowReady() { return r.BindIsWindowReady() } raylib.IsWindowReady = IsWindowReady @@ -64,7 +64,7 @@ raylib.IsWindowReady = IsWindowReady * * @return {boolean} The resulting bool. */ -function IsWindowFullscreen () { +function IsWindowFullscreen() { return r.BindIsWindowFullscreen() } raylib.IsWindowFullscreen = IsWindowFullscreen @@ -74,7 +74,7 @@ raylib.IsWindowFullscreen = IsWindowFullscreen * * @return {boolean} The resulting bool. */ -function IsWindowHidden () { +function IsWindowHidden() { return r.BindIsWindowHidden() } raylib.IsWindowHidden = IsWindowHidden @@ -84,7 +84,7 @@ raylib.IsWindowHidden = IsWindowHidden * * @return {boolean} The resulting bool. */ -function IsWindowMinimized () { +function IsWindowMinimized() { return r.BindIsWindowMinimized() } raylib.IsWindowMinimized = IsWindowMinimized @@ -94,7 +94,7 @@ raylib.IsWindowMinimized = IsWindowMinimized * * @return {boolean} The resulting bool. */ -function IsWindowMaximized () { +function IsWindowMaximized() { return r.BindIsWindowMaximized() } raylib.IsWindowMaximized = IsWindowMaximized @@ -104,7 +104,7 @@ raylib.IsWindowMaximized = IsWindowMaximized * * @return {boolean} The resulting bool. */ -function IsWindowFocused () { +function IsWindowFocused() { return r.BindIsWindowFocused() } raylib.IsWindowFocused = IsWindowFocused @@ -114,7 +114,7 @@ raylib.IsWindowFocused = IsWindowFocused * * @return {boolean} The resulting bool. */ -function IsWindowResized () { +function IsWindowResized() { return r.BindIsWindowResized() } raylib.IsWindowResized = IsWindowResized @@ -126,7 +126,7 @@ raylib.IsWindowResized = IsWindowResized * * @return {boolean} The resulting bool. */ -function IsWindowState (flag) { +function IsWindowState(flag) { return r.BindIsWindowState( flag ) @@ -140,7 +140,7 @@ raylib.IsWindowState = IsWindowState * * @return {undefined} */ -function SetWindowState (flags) { +function SetWindowState(flags) { return r.BindSetWindowState( flags ) @@ -154,7 +154,7 @@ raylib.SetWindowState = SetWindowState * * @return {undefined} */ -function ClearWindowState (flags) { +function ClearWindowState(flags) { return r.BindClearWindowState( flags ) @@ -166,7 +166,7 @@ raylib.ClearWindowState = ClearWindowState * * @return {undefined} */ -function ToggleFullscreen () { +function ToggleFullscreen() { return r.BindToggleFullscreen() } raylib.ToggleFullscreen = ToggleFullscreen @@ -176,7 +176,7 @@ raylib.ToggleFullscreen = ToggleFullscreen * * @return {undefined} */ -function MaximizeWindow () { +function MaximizeWindow() { return r.BindMaximizeWindow() } raylib.MaximizeWindow = MaximizeWindow @@ -186,7 +186,7 @@ raylib.MaximizeWindow = MaximizeWindow * * @return {undefined} */ -function MinimizeWindow () { +function MinimizeWindow() { return r.BindMinimizeWindow() } raylib.MinimizeWindow = MinimizeWindow @@ -196,7 +196,7 @@ raylib.MinimizeWindow = MinimizeWindow * * @return {undefined} */ -function RestoreWindow () { +function RestoreWindow() { return r.BindRestoreWindow() } raylib.RestoreWindow = RestoreWindow @@ -208,7 +208,7 @@ raylib.RestoreWindow = RestoreWindow * * @return {undefined} */ -function SetWindowIcon (image) { +function SetWindowIcon(image) { return r.BindSetWindowIcon( image.data, image.width, @@ -227,7 +227,7 @@ raylib.SetWindowIcon = SetWindowIcon * * @return {undefined} */ -function SetWindowIcons (images, count) { +function SetWindowIcons(images, count) { return r.BindSetWindowIcons( images, count @@ -242,7 +242,7 @@ raylib.SetWindowIcons = SetWindowIcons * * @return {undefined} */ -function SetWindowTitle (title) { +function SetWindowTitle(title) { return r.BindSetWindowTitle( title ) @@ -257,7 +257,7 @@ raylib.SetWindowTitle = SetWindowTitle * * @return {undefined} */ -function SetWindowPosition (x, y) { +function SetWindowPosition(x, y) { return r.BindSetWindowPosition( x, y @@ -272,7 +272,7 @@ raylib.SetWindowPosition = SetWindowPosition * * @return {undefined} */ -function SetWindowMonitor (monitor) { +function SetWindowMonitor(monitor) { return r.BindSetWindowMonitor( monitor ) @@ -287,7 +287,7 @@ raylib.SetWindowMonitor = SetWindowMonitor * * @return {undefined} */ -function SetWindowMinSize (width, height) { +function SetWindowMinSize(width, height) { return r.BindSetWindowMinSize( width, height @@ -303,7 +303,7 @@ raylib.SetWindowMinSize = SetWindowMinSize * * @return {undefined} */ -function SetWindowSize (width, height) { +function SetWindowSize(width, height) { return r.BindSetWindowSize( width, height @@ -318,7 +318,7 @@ raylib.SetWindowSize = SetWindowSize * * @return {undefined} */ -function SetWindowOpacity (opacity) { +function SetWindowOpacity(opacity) { return r.BindSetWindowOpacity( opacity ) @@ -330,7 +330,7 @@ raylib.SetWindowOpacity = SetWindowOpacity * * @return {number} The resulting void *. */ -function GetWindowHandle () { +function GetWindowHandle() { return r.BindGetWindowHandle() } raylib.GetWindowHandle = GetWindowHandle @@ -340,7 +340,7 @@ raylib.GetWindowHandle = GetWindowHandle * * @return {number} The resulting int. */ -function GetScreenWidth () { +function GetScreenWidth() { return r.BindGetScreenWidth() } raylib.GetScreenWidth = GetScreenWidth @@ -350,7 +350,7 @@ raylib.GetScreenWidth = GetScreenWidth * * @return {number} The resulting int. */ -function GetScreenHeight () { +function GetScreenHeight() { return r.BindGetScreenHeight() } raylib.GetScreenHeight = GetScreenHeight @@ -360,7 +360,7 @@ raylib.GetScreenHeight = GetScreenHeight * * @return {number} The resulting int. */ -function GetRenderWidth () { +function GetRenderWidth() { return r.BindGetRenderWidth() } raylib.GetRenderWidth = GetRenderWidth @@ -370,7 +370,7 @@ raylib.GetRenderWidth = GetRenderWidth * * @return {number} The resulting int. */ -function GetRenderHeight () { +function GetRenderHeight() { return r.BindGetRenderHeight() } raylib.GetRenderHeight = GetRenderHeight @@ -380,7 +380,7 @@ raylib.GetRenderHeight = GetRenderHeight * * @return {number} The resulting int. */ -function GetMonitorCount () { +function GetMonitorCount() { return r.BindGetMonitorCount() } raylib.GetMonitorCount = GetMonitorCount @@ -390,7 +390,7 @@ raylib.GetMonitorCount = GetMonitorCount * * @return {number} The resulting int. */ -function GetCurrentMonitor () { +function GetCurrentMonitor() { return r.BindGetCurrentMonitor() } raylib.GetCurrentMonitor = GetCurrentMonitor @@ -402,7 +402,7 @@ raylib.GetCurrentMonitor = GetCurrentMonitor * * @return {Vector2} The resulting Vector2. */ -function GetMonitorPosition (monitor) { +function GetMonitorPosition(monitor) { return r.BindGetMonitorPosition( monitor ) @@ -416,7 +416,7 @@ raylib.GetMonitorPosition = GetMonitorPosition * * @return {number} The resulting int. */ -function GetMonitorWidth (monitor) { +function GetMonitorWidth(monitor) { return r.BindGetMonitorWidth( monitor ) @@ -430,7 +430,7 @@ raylib.GetMonitorWidth = GetMonitorWidth * * @return {number} The resulting int. */ -function GetMonitorHeight (monitor) { +function GetMonitorHeight(monitor) { return r.BindGetMonitorHeight( monitor ) @@ -444,7 +444,7 @@ raylib.GetMonitorHeight = GetMonitorHeight * * @return {number} The resulting int. */ -function GetMonitorPhysicalWidth (monitor) { +function GetMonitorPhysicalWidth(monitor) { return r.BindGetMonitorPhysicalWidth( monitor ) @@ -458,7 +458,7 @@ raylib.GetMonitorPhysicalWidth = GetMonitorPhysicalWidth * * @return {number} The resulting int. */ -function GetMonitorPhysicalHeight (monitor) { +function GetMonitorPhysicalHeight(monitor) { return r.BindGetMonitorPhysicalHeight( monitor ) @@ -472,7 +472,7 @@ raylib.GetMonitorPhysicalHeight = GetMonitorPhysicalHeight * * @return {number} The resulting int. */ -function GetMonitorRefreshRate (monitor) { +function GetMonitorRefreshRate(monitor) { return r.BindGetMonitorRefreshRate( monitor ) @@ -484,7 +484,7 @@ raylib.GetMonitorRefreshRate = GetMonitorRefreshRate * * @return {Vector2} The resulting Vector2. */ -function GetWindowPosition () { +function GetWindowPosition() { return r.BindGetWindowPosition() } raylib.GetWindowPosition = GetWindowPosition @@ -494,7 +494,7 @@ raylib.GetWindowPosition = GetWindowPosition * * @return {Vector2} The resulting Vector2. */ -function GetWindowScaleDPI () { +function GetWindowScaleDPI() { return r.BindGetWindowScaleDPI() } raylib.GetWindowScaleDPI = GetWindowScaleDPI @@ -506,7 +506,7 @@ raylib.GetWindowScaleDPI = GetWindowScaleDPI * * @return {string} The resulting const char *. */ -function GetMonitorName (monitor) { +function GetMonitorName(monitor) { return r.BindGetMonitorName( monitor ) @@ -520,7 +520,7 @@ raylib.GetMonitorName = GetMonitorName * * @return {undefined} */ -function SetClipboardText (text) { +function SetClipboardText(text) { return r.BindSetClipboardText( text ) @@ -532,7 +532,7 @@ raylib.SetClipboardText = SetClipboardText * * @return {string} The resulting const char *. */ -function GetClipboardText () { +function GetClipboardText() { return r.BindGetClipboardText() } raylib.GetClipboardText = GetClipboardText @@ -542,7 +542,7 @@ raylib.GetClipboardText = GetClipboardText * * @return {undefined} */ -function EnableEventWaiting () { +function EnableEventWaiting() { return r.BindEnableEventWaiting() } raylib.EnableEventWaiting = EnableEventWaiting @@ -552,7 +552,7 @@ raylib.EnableEventWaiting = EnableEventWaiting * * @return {undefined} */ -function DisableEventWaiting () { +function DisableEventWaiting() { return r.BindDisableEventWaiting() } raylib.DisableEventWaiting = DisableEventWaiting @@ -562,7 +562,7 @@ raylib.DisableEventWaiting = DisableEventWaiting * * @return {undefined} */ -function SwapScreenBuffer () { +function SwapScreenBuffer() { return r.BindSwapScreenBuffer() } raylib.SwapScreenBuffer = SwapScreenBuffer @@ -572,7 +572,7 @@ raylib.SwapScreenBuffer = SwapScreenBuffer * * @return {undefined} */ -function PollInputEvents () { +function PollInputEvents() { return r.BindPollInputEvents() } raylib.PollInputEvents = PollInputEvents @@ -584,7 +584,7 @@ raylib.PollInputEvents = PollInputEvents * * @return {undefined} */ -function WaitTime (seconds) { +function WaitTime(seconds) { return r.BindWaitTime( seconds ) @@ -596,7 +596,7 @@ raylib.WaitTime = WaitTime * * @return {undefined} */ -function ShowCursor () { +function ShowCursor() { return r.BindShowCursor() } raylib.ShowCursor = ShowCursor @@ -606,7 +606,7 @@ raylib.ShowCursor = ShowCursor * * @return {undefined} */ -function HideCursor () { +function HideCursor() { return r.BindHideCursor() } raylib.HideCursor = HideCursor @@ -616,7 +616,7 @@ raylib.HideCursor = HideCursor * * @return {boolean} The resulting bool. */ -function IsCursorHidden () { +function IsCursorHidden() { return r.BindIsCursorHidden() } raylib.IsCursorHidden = IsCursorHidden @@ -626,7 +626,7 @@ raylib.IsCursorHidden = IsCursorHidden * * @return {undefined} */ -function EnableCursor () { +function EnableCursor() { return r.BindEnableCursor() } raylib.EnableCursor = EnableCursor @@ -636,7 +636,7 @@ raylib.EnableCursor = EnableCursor * * @return {undefined} */ -function DisableCursor () { +function DisableCursor() { return r.BindDisableCursor() } raylib.DisableCursor = DisableCursor @@ -646,7 +646,7 @@ raylib.DisableCursor = DisableCursor * * @return {boolean} The resulting bool. */ -function IsCursorOnScreen () { +function IsCursorOnScreen() { return r.BindIsCursorOnScreen() } raylib.IsCursorOnScreen = IsCursorOnScreen @@ -658,7 +658,7 @@ raylib.IsCursorOnScreen = IsCursorOnScreen * * @return {undefined} */ -function ClearBackground (color) { +function ClearBackground(color) { return r.BindClearBackground( color.r, color.g, @@ -673,7 +673,7 @@ raylib.ClearBackground = ClearBackground * * @return {undefined} */ -function BeginDrawing () { +function BeginDrawing() { return r.BindBeginDrawing() } raylib.BeginDrawing = BeginDrawing @@ -683,7 +683,7 @@ raylib.BeginDrawing = BeginDrawing * * @return {undefined} */ -function EndDrawing () { +function EndDrawing() { return r.BindEndDrawing() } raylib.EndDrawing = EndDrawing @@ -695,7 +695,7 @@ raylib.EndDrawing = EndDrawing * * @return {undefined} */ -function BeginMode2D (camera) { +function BeginMode2D(camera) { return r.BindBeginMode2D( camera.offset.x, camera.offset.y, @@ -712,7 +712,7 @@ raylib.BeginMode2D = BeginMode2D * * @return {undefined} */ -function EndMode2D () { +function EndMode2D() { return r.BindEndMode2D() } raylib.EndMode2D = EndMode2D @@ -724,7 +724,7 @@ raylib.EndMode2D = EndMode2D * * @return {undefined} */ -function BeginMode3D (camera) { +function BeginMode3D(camera) { return r.BindBeginMode3D( camera.position.x, camera.position.y, @@ -746,7 +746,7 @@ raylib.BeginMode3D = BeginMode3D * * @return {undefined} */ -function EndMode3D () { +function EndMode3D() { return r.BindEndMode3D() } raylib.EndMode3D = EndMode3D @@ -758,7 +758,7 @@ raylib.EndMode3D = EndMode3D * * @return {undefined} */ -function BeginTextureMode (target) { +function BeginTextureMode(target) { return r.BindBeginTextureMode( target.id, target.texture.id, @@ -780,7 +780,7 @@ raylib.BeginTextureMode = BeginTextureMode * * @return {undefined} */ -function EndTextureMode () { +function EndTextureMode() { return r.BindEndTextureMode() } raylib.EndTextureMode = EndTextureMode @@ -792,7 +792,7 @@ raylib.EndTextureMode = EndTextureMode * * @return {undefined} */ -function BeginShaderMode (shader) { +function BeginShaderMode(shader) { return r.BindBeginShaderMode( shader.id, shader.locs @@ -805,7 +805,7 @@ raylib.BeginShaderMode = BeginShaderMode * * @return {undefined} */ -function EndShaderMode () { +function EndShaderMode() { return r.BindEndShaderMode() } raylib.EndShaderMode = EndShaderMode @@ -817,7 +817,7 @@ raylib.EndShaderMode = EndShaderMode * * @return {undefined} */ -function BeginBlendMode (mode) { +function BeginBlendMode(mode) { return r.BindBeginBlendMode( mode ) @@ -829,7 +829,7 @@ raylib.BeginBlendMode = BeginBlendMode * * @return {undefined} */ -function EndBlendMode () { +function EndBlendMode() { return r.BindEndBlendMode() } raylib.EndBlendMode = EndBlendMode @@ -844,7 +844,7 @@ raylib.EndBlendMode = EndBlendMode * * @return {undefined} */ -function BeginScissorMode (x, y, width, height) { +function BeginScissorMode(x, y, width, height) { return r.BindBeginScissorMode( x, y, @@ -859,7 +859,7 @@ raylib.BeginScissorMode = BeginScissorMode * * @return {undefined} */ -function EndScissorMode () { +function EndScissorMode() { return r.BindEndScissorMode() } raylib.EndScissorMode = EndScissorMode @@ -869,7 +869,7 @@ raylib.EndScissorMode = EndScissorMode * * @return {undefined} */ -function EndVrStereoMode () { +function EndVrStereoMode() { return r.BindEndVrStereoMode() } raylib.EndVrStereoMode = EndVrStereoMode @@ -882,7 +882,7 @@ raylib.EndVrStereoMode = EndVrStereoMode * * @return {Shader} The resulting Shader. */ -function LoadShader (vsFileName, fsFileName) { +function LoadShader(vsFileName, fsFileName) { return r.BindLoadShader( vsFileName, fsFileName @@ -898,7 +898,7 @@ raylib.LoadShader = LoadShader * * @return {Shader} The resulting Shader. */ -function LoadShaderFromMemory (vsCode, fsCode) { +function LoadShaderFromMemory(vsCode, fsCode) { return r.BindLoadShaderFromMemory( vsCode, fsCode @@ -913,7 +913,7 @@ raylib.LoadShaderFromMemory = LoadShaderFromMemory * * @return {boolean} The resulting bool. */ -function IsShaderReady (shader) { +function IsShaderReady(shader) { return r.BindIsShaderReady( shader.id, shader.locs @@ -929,7 +929,7 @@ raylib.IsShaderReady = IsShaderReady * * @return {number} The resulting int. */ -function GetShaderLocation (shader, uniformName) { +function GetShaderLocation(shader, uniformName) { return r.BindGetShaderLocation( shader.id, shader.locs, @@ -946,7 +946,7 @@ raylib.GetShaderLocation = GetShaderLocation * * @return {number} The resulting int. */ -function GetShaderLocationAttrib (shader, attribName) { +function GetShaderLocationAttrib(shader, attribName) { return r.BindGetShaderLocationAttrib( shader.id, shader.locs, @@ -964,7 +964,7 @@ raylib.GetShaderLocationAttrib = GetShaderLocationAttrib * * @return {undefined} */ -function SetShaderValueMatrix (shader, locIndex, mat) { +function SetShaderValueMatrix(shader, locIndex, mat) { return r.BindSetShaderValueMatrix( shader.id, shader.locs, @@ -998,7 +998,7 @@ raylib.SetShaderValueMatrix = SetShaderValueMatrix * * @return {undefined} */ -function SetShaderValueTexture (shader, locIndex, texture) { +function SetShaderValueTexture(shader, locIndex, texture) { return r.BindSetShaderValueTexture( shader.id, shader.locs, @@ -1019,7 +1019,7 @@ raylib.SetShaderValueTexture = SetShaderValueTexture * * @return {undefined} */ -function UnloadShader (shader) { +function UnloadShader(shader) { return r.BindUnloadShader( shader.id, shader.locs @@ -1035,7 +1035,7 @@ raylib.UnloadShader = UnloadShader * * @return {Ray} The resulting Ray. */ -function GetMouseRay (mousePosition, camera) { +function GetMouseRay(mousePosition, camera) { return r.BindGetMouseRay( mousePosition.x, mousePosition.y, @@ -1061,7 +1061,7 @@ raylib.GetMouseRay = GetMouseRay * * @return {Matrix} The resulting Matrix. */ -function GetCameraMatrix (camera) { +function GetCameraMatrix(camera) { return r.BindGetCameraMatrix( camera.position.x, camera.position.y, @@ -1085,7 +1085,7 @@ raylib.GetCameraMatrix = GetCameraMatrix * * @return {Matrix} The resulting Matrix. */ -function GetCameraMatrix2D (camera) { +function GetCameraMatrix2D(camera) { return r.BindGetCameraMatrix2D( camera.offset.x, camera.offset.y, @@ -1105,7 +1105,7 @@ raylib.GetCameraMatrix2D = GetCameraMatrix2D * * @return {Vector2} The resulting Vector2. */ -function GetWorldToScreen (position, camera) { +function GetWorldToScreen(position, camera) { return r.BindGetWorldToScreen( position.x, position.y, @@ -1133,7 +1133,7 @@ raylib.GetWorldToScreen = GetWorldToScreen * * @return {Vector2} The resulting Vector2. */ -function GetScreenToWorld2D (position, camera) { +function GetScreenToWorld2D(position, camera) { return r.BindGetScreenToWorld2D( position.x, position.y, @@ -1157,7 +1157,7 @@ raylib.GetScreenToWorld2D = GetScreenToWorld2D * * @return {Vector2} The resulting Vector2. */ -function GetWorldToScreenEx (position, camera, width, height) { +function GetWorldToScreenEx(position, camera, width, height) { return r.BindGetWorldToScreenEx( position.x, position.y, @@ -1187,7 +1187,7 @@ raylib.GetWorldToScreenEx = GetWorldToScreenEx * * @return {Vector2} The resulting Vector2. */ -function GetWorldToScreen2D (position, camera) { +function GetWorldToScreen2D(position, camera) { return r.BindGetWorldToScreen2D( position.x, position.y, @@ -1208,7 +1208,7 @@ raylib.GetWorldToScreen2D = GetWorldToScreen2D * * @return {undefined} */ -function SetTargetFPS (fps) { +function SetTargetFPS(fps) { return r.BindSetTargetFPS( fps ) @@ -1220,7 +1220,7 @@ raylib.SetTargetFPS = SetTargetFPS * * @return {number} The resulting int. */ -function GetFPS () { +function GetFPS() { return r.BindGetFPS() } raylib.GetFPS = GetFPS @@ -1230,7 +1230,7 @@ raylib.GetFPS = GetFPS * * @return {number} The resulting float. */ -function GetFrameTime () { +function GetFrameTime() { return r.BindGetFrameTime() } raylib.GetFrameTime = GetFrameTime @@ -1240,7 +1240,7 @@ raylib.GetFrameTime = GetFrameTime * * @return {number} The resulting double. */ -function GetTime () { +function GetTime() { return r.BindGetTime() } raylib.GetTime = GetTime @@ -1253,7 +1253,7 @@ raylib.GetTime = GetTime * * @return {number} The resulting int. */ -function GetRandomValue (min, max) { +function GetRandomValue(min, max) { return r.BindGetRandomValue( min, max @@ -1268,7 +1268,7 @@ raylib.GetRandomValue = GetRandomValue * * @return {undefined} */ -function SetRandomSeed (seed) { +function SetRandomSeed(seed) { return r.BindSetRandomSeed( seed ) @@ -1282,7 +1282,7 @@ raylib.SetRandomSeed = SetRandomSeed * * @return {undefined} */ -function TakeScreenshot (fileName) { +function TakeScreenshot(fileName) { return r.BindTakeScreenshot( fileName ) @@ -1296,7 +1296,7 @@ raylib.TakeScreenshot = TakeScreenshot * * @return {undefined} */ -function SetConfigFlags (flags) { +function SetConfigFlags(flags) { return r.BindSetConfigFlags( flags ) @@ -1310,7 +1310,7 @@ raylib.SetConfigFlags = SetConfigFlags * * @return {undefined} */ -function SetTraceLogLevel (logLevel) { +function SetTraceLogLevel(logLevel) { return r.BindSetTraceLogLevel( logLevel ) @@ -1324,7 +1324,7 @@ raylib.SetTraceLogLevel = SetTraceLogLevel * * @return {number} The resulting void *. */ -function MemAlloc (size) { +function MemAlloc(size) { return r.BindMemAlloc( size ) @@ -1339,7 +1339,7 @@ raylib.MemAlloc = MemAlloc * * @return {number} The resulting void *. */ -function MemRealloc (ptr, size) { +function MemRealloc(ptr, size) { return r.BindMemRealloc( ptr, size @@ -1354,7 +1354,7 @@ raylib.MemRealloc = MemRealloc * * @return {undefined} */ -function MemFree (ptr) { +function MemFree(ptr) { return r.BindMemFree( ptr ) @@ -1368,7 +1368,7 @@ raylib.MemFree = MemFree * * @return {undefined} */ -function OpenURL (url) { +function OpenURL(url) { return r.BindOpenURL( url ) @@ -1383,7 +1383,7 @@ raylib.OpenURL = OpenURL * * @return {Buffer} The resulting unsigned char *. */ -function LoadFileData (fileName, bytesRead) { +function LoadFileData(fileName, bytesRead) { return r.BindLoadFileData( fileName, bytesRead @@ -1398,7 +1398,7 @@ raylib.LoadFileData = LoadFileData * * @return {undefined} */ -function UnloadFileData (data) { +function UnloadFileData(data) { return r.BindUnloadFileData( data ) @@ -1414,7 +1414,7 @@ raylib.UnloadFileData = UnloadFileData * * @return {boolean} The resulting bool. */ -function SaveFileData (fileName, data, bytesToWrite) { +function SaveFileData(fileName, data, bytesToWrite) { return r.BindSaveFileData( fileName, data, @@ -1432,7 +1432,7 @@ raylib.SaveFileData = SaveFileData * * @return {boolean} The resulting bool. */ -function ExportDataAsCode (data, size, fileName) { +function ExportDataAsCode(data, size, fileName) { return r.BindExportDataAsCode( data, size, @@ -1448,7 +1448,7 @@ raylib.ExportDataAsCode = ExportDataAsCode * * @return {string} The resulting char *. */ -function LoadFileText (fileName) { +function LoadFileText(fileName) { return r.BindLoadFileText( fileName ) @@ -1462,7 +1462,7 @@ raylib.LoadFileText = LoadFileText * * @return {undefined} */ -function UnloadFileText (text) { +function UnloadFileText(text) { return r.BindUnloadFileText( text ) @@ -1477,7 +1477,7 @@ raylib.UnloadFileText = UnloadFileText * * @return {boolean} The resulting bool. */ -function SaveFileText (fileName, text) { +function SaveFileText(fileName, text) { return r.BindSaveFileText( fileName, text @@ -1492,7 +1492,7 @@ raylib.SaveFileText = SaveFileText * * @return {boolean} The resulting bool. */ -function FileExists (fileName) { +function FileExists(fileName) { return r.BindFileExists( fileName ) @@ -1506,7 +1506,7 @@ raylib.FileExists = FileExists * * @return {boolean} The resulting bool. */ -function DirectoryExists (dirPath) { +function DirectoryExists(dirPath) { return r.BindDirectoryExists( dirPath ) @@ -1521,7 +1521,7 @@ raylib.DirectoryExists = DirectoryExists * * @return {boolean} The resulting bool. */ -function IsFileExtension (fileName, ext) { +function IsFileExtension(fileName, ext) { return r.BindIsFileExtension( fileName, ext @@ -1536,7 +1536,7 @@ raylib.IsFileExtension = IsFileExtension * * @return {number} The resulting int. */ -function GetFileLength (fileName) { +function GetFileLength(fileName) { return r.BindGetFileLength( fileName ) @@ -1550,7 +1550,7 @@ raylib.GetFileLength = GetFileLength * * @return {string} The resulting const char *. */ -function GetFileExtension (fileName) { +function GetFileExtension(fileName) { return r.BindGetFileExtension( fileName ) @@ -1564,7 +1564,7 @@ raylib.GetFileExtension = GetFileExtension * * @return {string} The resulting const char *. */ -function GetFileName (filePath) { +function GetFileName(filePath) { return r.BindGetFileName( filePath ) @@ -1578,7 +1578,7 @@ raylib.GetFileName = GetFileName * * @return {string} The resulting const char *. */ -function GetFileNameWithoutExt (filePath) { +function GetFileNameWithoutExt(filePath) { return r.BindGetFileNameWithoutExt( filePath ) @@ -1592,7 +1592,7 @@ raylib.GetFileNameWithoutExt = GetFileNameWithoutExt * * @return {string} The resulting const char *. */ -function GetDirectoryPath (filePath) { +function GetDirectoryPath(filePath) { return r.BindGetDirectoryPath( filePath ) @@ -1606,7 +1606,7 @@ raylib.GetDirectoryPath = GetDirectoryPath * * @return {string} The resulting const char *. */ -function GetPrevDirectoryPath (dirPath) { +function GetPrevDirectoryPath(dirPath) { return r.BindGetPrevDirectoryPath( dirPath ) @@ -1618,7 +1618,7 @@ raylib.GetPrevDirectoryPath = GetPrevDirectoryPath * * @return {string} The resulting const char *. */ -function GetWorkingDirectory () { +function GetWorkingDirectory() { return r.BindGetWorkingDirectory() } raylib.GetWorkingDirectory = GetWorkingDirectory @@ -1628,7 +1628,7 @@ raylib.GetWorkingDirectory = GetWorkingDirectory * * @return {string} The resulting const char *. */ -function GetApplicationDirectory () { +function GetApplicationDirectory() { return r.BindGetApplicationDirectory() } raylib.GetApplicationDirectory = GetApplicationDirectory @@ -1640,7 +1640,7 @@ raylib.GetApplicationDirectory = GetApplicationDirectory * * @return {boolean} The resulting bool. */ -function ChangeDirectory (dir) { +function ChangeDirectory(dir) { return r.BindChangeDirectory( dir ) @@ -1654,7 +1654,7 @@ raylib.ChangeDirectory = ChangeDirectory * * @return {boolean} The resulting bool. */ -function IsPathFile (path) { +function IsPathFile(path) { return r.BindIsPathFile( path ) @@ -1668,7 +1668,7 @@ raylib.IsPathFile = IsPathFile * * @return {FilePathList} The resulting FilePathList. */ -function LoadDirectoryFiles (dirPath) { +function LoadDirectoryFiles(dirPath) { return r.BindLoadDirectoryFiles( dirPath ) @@ -1684,7 +1684,7 @@ raylib.LoadDirectoryFiles = LoadDirectoryFiles * * @return {FilePathList} The resulting FilePathList. */ -function LoadDirectoryFilesEx (basePath, filter, scanSubdirs) { +function LoadDirectoryFilesEx(basePath, filter, scanSubdirs) { return r.BindLoadDirectoryFilesEx( basePath, filter, @@ -1700,7 +1700,7 @@ raylib.LoadDirectoryFilesEx = LoadDirectoryFilesEx * * @return {undefined} */ -function UnloadDirectoryFiles (files) { +function UnloadDirectoryFiles(files) { return r.BindUnloadDirectoryFiles( files.capacity, files.count, @@ -1714,7 +1714,7 @@ raylib.UnloadDirectoryFiles = UnloadDirectoryFiles * * @return {boolean} The resulting bool. */ -function IsFileDropped () { +function IsFileDropped() { return r.BindIsFileDropped() } raylib.IsFileDropped = IsFileDropped @@ -1724,7 +1724,7 @@ raylib.IsFileDropped = IsFileDropped * * @return {FilePathList} The resulting FilePathList. */ -function LoadDroppedFiles () { +function LoadDroppedFiles() { return r.BindLoadDroppedFiles() } raylib.LoadDroppedFiles = LoadDroppedFiles @@ -1736,7 +1736,7 @@ raylib.LoadDroppedFiles = LoadDroppedFiles * * @return {undefined} */ -function UnloadDroppedFiles (files) { +function UnloadDroppedFiles(files) { return r.BindUnloadDroppedFiles( files.capacity, files.count, @@ -1752,7 +1752,7 @@ raylib.UnloadDroppedFiles = UnloadDroppedFiles * * @return {number} The resulting long. */ -function GetFileModTime (fileName) { +function GetFileModTime(fileName) { return r.BindGetFileModTime( fileName ) @@ -1768,7 +1768,7 @@ raylib.GetFileModTime = GetFileModTime * * @return {Buffer} The resulting unsigned char *. */ -function CompressData (data, dataSize, compDataSize) { +function CompressData(data, dataSize, compDataSize) { return r.BindCompressData( data, dataSize, @@ -1786,7 +1786,7 @@ raylib.CompressData = CompressData * * @return {Buffer} The resulting unsigned char *. */ -function DecompressData (compData, compDataSize, dataSize) { +function DecompressData(compData, compDataSize, dataSize) { return r.BindDecompressData( compData, compDataSize, @@ -1804,7 +1804,7 @@ raylib.DecompressData = DecompressData * * @return {string} The resulting char *. */ -function EncodeDataBase64 (data, dataSize, outputSize) { +function EncodeDataBase64(data, dataSize, outputSize) { return r.BindEncodeDataBase64( data, dataSize, @@ -1821,7 +1821,7 @@ raylib.EncodeDataBase64 = EncodeDataBase64 * * @return {Buffer} The resulting unsigned char *. */ -function DecodeDataBase64 (data, outputSize) { +function DecodeDataBase64(data, outputSize) { return r.BindDecodeDataBase64( data, outputSize @@ -1836,7 +1836,7 @@ raylib.DecodeDataBase64 = DecodeDataBase64 * * @return {boolean} The resulting bool. */ -function IsKeyPressed (key) { +function IsKeyPressed(key) { return r.BindIsKeyPressed( key ) @@ -1850,7 +1850,7 @@ raylib.IsKeyPressed = IsKeyPressed * * @return {boolean} The resulting bool. */ -function IsKeyDown (key) { +function IsKeyDown(key) { return r.BindIsKeyDown( key ) @@ -1864,7 +1864,7 @@ raylib.IsKeyDown = IsKeyDown * * @return {boolean} The resulting bool. */ -function IsKeyReleased (key) { +function IsKeyReleased(key) { return r.BindIsKeyReleased( key ) @@ -1878,7 +1878,7 @@ raylib.IsKeyReleased = IsKeyReleased * * @return {boolean} The resulting bool. */ -function IsKeyUp (key) { +function IsKeyUp(key) { return r.BindIsKeyUp( key ) @@ -1892,7 +1892,7 @@ raylib.IsKeyUp = IsKeyUp * * @return {undefined} */ -function SetExitKey (key) { +function SetExitKey(key) { return r.BindSetExitKey( key ) @@ -1904,7 +1904,7 @@ raylib.SetExitKey = SetExitKey * * @return {number} The resulting int. */ -function GetKeyPressed () { +function GetKeyPressed() { return r.BindGetKeyPressed() } raylib.GetKeyPressed = GetKeyPressed @@ -1914,7 +1914,7 @@ raylib.GetKeyPressed = GetKeyPressed * * @return {number} The resulting int. */ -function GetCharPressed () { +function GetCharPressed() { return r.BindGetCharPressed() } raylib.GetCharPressed = GetCharPressed @@ -1926,7 +1926,7 @@ raylib.GetCharPressed = GetCharPressed * * @return {boolean} The resulting bool. */ -function IsGamepadAvailable (gamepad) { +function IsGamepadAvailable(gamepad) { return r.BindIsGamepadAvailable( gamepad ) @@ -1940,7 +1940,7 @@ raylib.IsGamepadAvailable = IsGamepadAvailable * * @return {string} The resulting const char *. */ -function GetGamepadName (gamepad) { +function GetGamepadName(gamepad) { return r.BindGetGamepadName( gamepad ) @@ -1955,7 +1955,7 @@ raylib.GetGamepadName = GetGamepadName * * @return {boolean} The resulting bool. */ -function IsGamepadButtonPressed (gamepad, button) { +function IsGamepadButtonPressed(gamepad, button) { return r.BindIsGamepadButtonPressed( gamepad, button @@ -1971,7 +1971,7 @@ raylib.IsGamepadButtonPressed = IsGamepadButtonPressed * * @return {boolean} The resulting bool. */ -function IsGamepadButtonDown (gamepad, button) { +function IsGamepadButtonDown(gamepad, button) { return r.BindIsGamepadButtonDown( gamepad, button @@ -1987,7 +1987,7 @@ raylib.IsGamepadButtonDown = IsGamepadButtonDown * * @return {boolean} The resulting bool. */ -function IsGamepadButtonReleased (gamepad, button) { +function IsGamepadButtonReleased(gamepad, button) { return r.BindIsGamepadButtonReleased( gamepad, button @@ -2003,7 +2003,7 @@ raylib.IsGamepadButtonReleased = IsGamepadButtonReleased * * @return {boolean} The resulting bool. */ -function IsGamepadButtonUp (gamepad, button) { +function IsGamepadButtonUp(gamepad, button) { return r.BindIsGamepadButtonUp( gamepad, button @@ -2016,7 +2016,7 @@ raylib.IsGamepadButtonUp = IsGamepadButtonUp * * @return {number} The resulting int. */ -function GetGamepadButtonPressed () { +function GetGamepadButtonPressed() { return r.BindGetGamepadButtonPressed() } raylib.GetGamepadButtonPressed = GetGamepadButtonPressed @@ -2028,7 +2028,7 @@ raylib.GetGamepadButtonPressed = GetGamepadButtonPressed * * @return {number} The resulting int. */ -function GetGamepadAxisCount (gamepad) { +function GetGamepadAxisCount(gamepad) { return r.BindGetGamepadAxisCount( gamepad ) @@ -2043,7 +2043,7 @@ raylib.GetGamepadAxisCount = GetGamepadAxisCount * * @return {number} The resulting float. */ -function GetGamepadAxisMovement (gamepad, axis) { +function GetGamepadAxisMovement(gamepad, axis) { return r.BindGetGamepadAxisMovement( gamepad, axis @@ -2058,7 +2058,7 @@ raylib.GetGamepadAxisMovement = GetGamepadAxisMovement * * @return {number} The resulting int. */ -function SetGamepadMappings (mappings) { +function SetGamepadMappings(mappings) { return r.BindSetGamepadMappings( mappings ) @@ -2072,7 +2072,7 @@ raylib.SetGamepadMappings = SetGamepadMappings * * @return {boolean} The resulting bool. */ -function IsMouseButtonPressed (button) { +function IsMouseButtonPressed(button) { return r.BindIsMouseButtonPressed( button ) @@ -2086,7 +2086,7 @@ raylib.IsMouseButtonPressed = IsMouseButtonPressed * * @return {boolean} The resulting bool. */ -function IsMouseButtonDown (button) { +function IsMouseButtonDown(button) { return r.BindIsMouseButtonDown( button ) @@ -2100,7 +2100,7 @@ raylib.IsMouseButtonDown = IsMouseButtonDown * * @return {boolean} The resulting bool. */ -function IsMouseButtonReleased (button) { +function IsMouseButtonReleased(button) { return r.BindIsMouseButtonReleased( button ) @@ -2114,7 +2114,7 @@ raylib.IsMouseButtonReleased = IsMouseButtonReleased * * @return {boolean} The resulting bool. */ -function IsMouseButtonUp (button) { +function IsMouseButtonUp(button) { return r.BindIsMouseButtonUp( button ) @@ -2126,7 +2126,7 @@ raylib.IsMouseButtonUp = IsMouseButtonUp * * @return {number} The resulting int. */ -function GetMouseX () { +function GetMouseX() { return r.BindGetMouseX() } raylib.GetMouseX = GetMouseX @@ -2136,7 +2136,7 @@ raylib.GetMouseX = GetMouseX * * @return {number} The resulting int. */ -function GetMouseY () { +function GetMouseY() { return r.BindGetMouseY() } raylib.GetMouseY = GetMouseY @@ -2146,7 +2146,7 @@ raylib.GetMouseY = GetMouseY * * @return {Vector2} The resulting Vector2. */ -function GetMousePosition () { +function GetMousePosition() { return r.BindGetMousePosition() } raylib.GetMousePosition = GetMousePosition @@ -2156,7 +2156,7 @@ raylib.GetMousePosition = GetMousePosition * * @return {Vector2} The resulting Vector2. */ -function GetMouseDelta () { +function GetMouseDelta() { return r.BindGetMouseDelta() } raylib.GetMouseDelta = GetMouseDelta @@ -2169,7 +2169,7 @@ raylib.GetMouseDelta = GetMouseDelta * * @return {undefined} */ -function SetMousePosition (x, y) { +function SetMousePosition(x, y) { return r.BindSetMousePosition( x, y @@ -2185,7 +2185,7 @@ raylib.SetMousePosition = SetMousePosition * * @return {undefined} */ -function SetMouseOffset (offsetX, offsetY) { +function SetMouseOffset(offsetX, offsetY) { return r.BindSetMouseOffset( offsetX, offsetY @@ -2201,7 +2201,7 @@ raylib.SetMouseOffset = SetMouseOffset * * @return {undefined} */ -function SetMouseScale (scaleX, scaleY) { +function SetMouseScale(scaleX, scaleY) { return r.BindSetMouseScale( scaleX, scaleY @@ -2214,7 +2214,7 @@ raylib.SetMouseScale = SetMouseScale * * @return {number} The resulting float. */ -function GetMouseWheelMove () { +function GetMouseWheelMove() { return r.BindGetMouseWheelMove() } raylib.GetMouseWheelMove = GetMouseWheelMove @@ -2224,7 +2224,7 @@ raylib.GetMouseWheelMove = GetMouseWheelMove * * @return {Vector2} The resulting Vector2. */ -function GetMouseWheelMoveV () { +function GetMouseWheelMoveV() { return r.BindGetMouseWheelMoveV() } raylib.GetMouseWheelMoveV = GetMouseWheelMoveV @@ -2236,7 +2236,7 @@ raylib.GetMouseWheelMoveV = GetMouseWheelMoveV * * @return {undefined} */ -function SetMouseCursor (cursor) { +function SetMouseCursor(cursor) { return r.BindSetMouseCursor( cursor ) @@ -2248,7 +2248,7 @@ raylib.SetMouseCursor = SetMouseCursor * * @return {number} The resulting int. */ -function GetTouchX () { +function GetTouchX() { return r.BindGetTouchX() } raylib.GetTouchX = GetTouchX @@ -2258,7 +2258,7 @@ raylib.GetTouchX = GetTouchX * * @return {number} The resulting int. */ -function GetTouchY () { +function GetTouchY() { return r.BindGetTouchY() } raylib.GetTouchY = GetTouchY @@ -2270,7 +2270,7 @@ raylib.GetTouchY = GetTouchY * * @return {Vector2} The resulting Vector2. */ -function GetTouchPosition (index) { +function GetTouchPosition(index) { return r.BindGetTouchPosition( index ) @@ -2284,7 +2284,7 @@ raylib.GetTouchPosition = GetTouchPosition * * @return {number} The resulting int. */ -function GetTouchPointId (index) { +function GetTouchPointId(index) { return r.BindGetTouchPointId( index ) @@ -2296,7 +2296,7 @@ raylib.GetTouchPointId = GetTouchPointId * * @return {number} The resulting int. */ -function GetTouchPointCount () { +function GetTouchPointCount() { return r.BindGetTouchPointCount() } raylib.GetTouchPointCount = GetTouchPointCount @@ -2308,7 +2308,7 @@ raylib.GetTouchPointCount = GetTouchPointCount * * @return {undefined} */ -function SetGesturesEnabled (flags) { +function SetGesturesEnabled(flags) { return r.BindSetGesturesEnabled( flags ) @@ -2322,7 +2322,7 @@ raylib.SetGesturesEnabled = SetGesturesEnabled * * @return {boolean} The resulting bool. */ -function IsGestureDetected (gesture) { +function IsGestureDetected(gesture) { return r.BindIsGestureDetected( gesture ) @@ -2334,7 +2334,7 @@ raylib.IsGestureDetected = IsGestureDetected * * @return {number} The resulting int. */ -function GetGestureDetected () { +function GetGestureDetected() { return r.BindGetGestureDetected() } raylib.GetGestureDetected = GetGestureDetected @@ -2344,7 +2344,7 @@ raylib.GetGestureDetected = GetGestureDetected * * @return {number} The resulting float. */ -function GetGestureHoldDuration () { +function GetGestureHoldDuration() { return r.BindGetGestureHoldDuration() } raylib.GetGestureHoldDuration = GetGestureHoldDuration @@ -2354,7 +2354,7 @@ raylib.GetGestureHoldDuration = GetGestureHoldDuration * * @return {Vector2} The resulting Vector2. */ -function GetGestureDragVector () { +function GetGestureDragVector() { return r.BindGetGestureDragVector() } raylib.GetGestureDragVector = GetGestureDragVector @@ -2364,7 +2364,7 @@ raylib.GetGestureDragVector = GetGestureDragVector * * @return {number} The resulting float. */ -function GetGestureDragAngle () { +function GetGestureDragAngle() { return r.BindGetGestureDragAngle() } raylib.GetGestureDragAngle = GetGestureDragAngle @@ -2374,7 +2374,7 @@ raylib.GetGestureDragAngle = GetGestureDragAngle * * @return {Vector2} The resulting Vector2. */ -function GetGesturePinchVector () { +function GetGesturePinchVector() { return r.BindGetGesturePinchVector() } raylib.GetGesturePinchVector = GetGesturePinchVector @@ -2384,7 +2384,7 @@ raylib.GetGesturePinchVector = GetGesturePinchVector * * @return {number} The resulting float. */ -function GetGesturePinchAngle () { +function GetGesturePinchAngle() { return r.BindGetGesturePinchAngle() } raylib.GetGesturePinchAngle = GetGesturePinchAngle @@ -2399,7 +2399,7 @@ raylib.GetGesturePinchAngle = GetGesturePinchAngle * * @return {undefined} */ -function UpdateCameraPro (camera, movement, rotation, zoom) { +function UpdateCameraPro(camera, movement, rotation, zoom) { return r.BindUpdateCameraPro( camera, movement.x, @@ -2421,7 +2421,7 @@ raylib.UpdateCameraPro = UpdateCameraPro * * @return {undefined} */ -function SetShapesTexture (texture, source) { +function SetShapesTexture(texture, source) { return r.BindSetShapesTexture( texture.id, texture.width, @@ -2445,7 +2445,7 @@ raylib.SetShapesTexture = SetShapesTexture * * @return {undefined} */ -function DrawPixel (posX, posY, color) { +function DrawPixel(posX, posY, color) { return r.BindDrawPixel( posX, posY, @@ -2465,7 +2465,7 @@ raylib.DrawPixel = DrawPixel * * @return {undefined} */ -function DrawPixelV (position, color) { +function DrawPixelV(position, color) { return r.BindDrawPixelV( position.x, position.y, @@ -2488,7 +2488,7 @@ raylib.DrawPixelV = DrawPixelV * * @return {undefined} */ -function DrawLine (startPosX, startPosY, endPosX, endPosY, color) { +function DrawLine(startPosX, startPosY, endPosX, endPosY, color) { return r.BindDrawLine( startPosX, startPosY, @@ -2511,7 +2511,7 @@ raylib.DrawLine = DrawLine * * @return {undefined} */ -function DrawLineV (startPos, endPos, color) { +function DrawLineV(startPos, endPos, color) { return r.BindDrawLineV( startPos.x, startPos.y, @@ -2535,7 +2535,7 @@ raylib.DrawLineV = DrawLineV * * @return {undefined} */ -function DrawLineEx (startPos, endPos, thick, color) { +function DrawLineEx(startPos, endPos, thick, color) { return r.BindDrawLineEx( startPos.x, startPos.y, @@ -2560,7 +2560,7 @@ raylib.DrawLineEx = DrawLineEx * * @return {undefined} */ -function DrawLineBezier (startPos, endPos, thick, color) { +function DrawLineBezier(startPos, endPos, thick, color) { return r.BindDrawLineBezier( startPos.x, startPos.y, @@ -2586,7 +2586,7 @@ raylib.DrawLineBezier = DrawLineBezier * * @return {undefined} */ -function DrawLineBezierQuad (startPos, endPos, controlPos, thick, color) { +function DrawLineBezierQuad(startPos, endPos, controlPos, thick, color) { return r.BindDrawLineBezierQuad( startPos.x, startPos.y, @@ -2615,7 +2615,7 @@ raylib.DrawLineBezierQuad = DrawLineBezierQuad * * @return {undefined} */ -function DrawLineBezierCubic (startPos, endPos, startControlPos, endControlPos, thick, color) { +function DrawLineBezierCubic(startPos, endPos, startControlPos, endControlPos, thick, color) { return r.BindDrawLineBezierCubic( startPos.x, startPos.y, @@ -2643,7 +2643,7 @@ raylib.DrawLineBezierCubic = DrawLineBezierCubic * * @return {undefined} */ -function DrawLineStrip (points, pointCount, color) { +function DrawLineStrip(points, pointCount, color) { return r.BindDrawLineStrip( points, pointCount, @@ -2665,7 +2665,7 @@ raylib.DrawLineStrip = DrawLineStrip * * @return {undefined} */ -function DrawCircle (centerX, centerY, radius, color) { +function DrawCircle(centerX, centerY, radius, color) { return r.BindDrawCircle( centerX, centerY, @@ -2690,7 +2690,7 @@ raylib.DrawCircle = DrawCircle * * @return {undefined} */ -function DrawCircleSector (center, radius, startAngle, endAngle, segments, color) { +function DrawCircleSector(center, radius, startAngle, endAngle, segments, color) { return r.BindDrawCircleSector( center.x, center.y, @@ -2718,7 +2718,7 @@ raylib.DrawCircleSector = DrawCircleSector * * @return {undefined} */ -function DrawCircleSectorLines (center, radius, startAngle, endAngle, segments, color) { +function DrawCircleSectorLines(center, radius, startAngle, endAngle, segments, color) { return r.BindDrawCircleSectorLines( center.x, center.y, @@ -2745,7 +2745,7 @@ raylib.DrawCircleSectorLines = DrawCircleSectorLines * * @return {undefined} */ -function DrawCircleGradient (centerX, centerY, radius, color1, color2) { +function DrawCircleGradient(centerX, centerY, radius, color1, color2) { return r.BindDrawCircleGradient( centerX, centerY, @@ -2771,7 +2771,7 @@ raylib.DrawCircleGradient = DrawCircleGradient * * @return {undefined} */ -function DrawCircleV (center, radius, color) { +function DrawCircleV(center, radius, color) { return r.BindDrawCircleV( center.x, center.y, @@ -2794,7 +2794,7 @@ raylib.DrawCircleV = DrawCircleV * * @return {undefined} */ -function DrawCircleLines (centerX, centerY, radius, color) { +function DrawCircleLines(centerX, centerY, radius, color) { return r.BindDrawCircleLines( centerX, centerY, @@ -2818,7 +2818,7 @@ raylib.DrawCircleLines = DrawCircleLines * * @return {undefined} */ -function DrawEllipse (centerX, centerY, radiusH, radiusV, color) { +function DrawEllipse(centerX, centerY, radiusH, radiusV, color) { return r.BindDrawEllipse( centerX, centerY, @@ -2843,7 +2843,7 @@ raylib.DrawEllipse = DrawEllipse * * @return {undefined} */ -function DrawEllipseLines (centerX, centerY, radiusH, radiusV, color) { +function DrawEllipseLines(centerX, centerY, radiusH, radiusV, color) { return r.BindDrawEllipseLines( centerX, centerY, @@ -2870,7 +2870,7 @@ raylib.DrawEllipseLines = DrawEllipseLines * * @return {undefined} */ -function DrawRing (center, innerRadius, outerRadius, startAngle, endAngle, segments, color) { +function DrawRing(center, innerRadius, outerRadius, startAngle, endAngle, segments, color) { return r.BindDrawRing( center.x, center.y, @@ -2900,7 +2900,7 @@ raylib.DrawRing = DrawRing * * @return {undefined} */ -function DrawRingLines (center, innerRadius, outerRadius, startAngle, endAngle, segments, color) { +function DrawRingLines(center, innerRadius, outerRadius, startAngle, endAngle, segments, color) { return r.BindDrawRingLines( center.x, center.y, @@ -2928,7 +2928,7 @@ raylib.DrawRingLines = DrawRingLines * * @return {undefined} */ -function DrawRectangle (posX, posY, width, height, color) { +function DrawRectangle(posX, posY, width, height, color) { return r.BindDrawRectangle( posX, posY, @@ -2951,7 +2951,7 @@ raylib.DrawRectangle = DrawRectangle * * @return {undefined} */ -function DrawRectangleV (position, size, color) { +function DrawRectangleV(position, size, color) { return r.BindDrawRectangleV( position.x, position.y, @@ -2973,7 +2973,7 @@ raylib.DrawRectangleV = DrawRectangleV * * @return {undefined} */ -function DrawRectangleRec (rec, color) { +function DrawRectangleRec(rec, color) { return r.BindDrawRectangleRec( rec.x, rec.y, @@ -2997,7 +2997,7 @@ raylib.DrawRectangleRec = DrawRectangleRec * * @return {undefined} */ -function DrawRectanglePro (rec, origin, rotation, color) { +function DrawRectanglePro(rec, origin, rotation, color) { return r.BindDrawRectanglePro( rec.x, rec.y, @@ -3026,7 +3026,7 @@ raylib.DrawRectanglePro = DrawRectanglePro * * @return {undefined} */ -function DrawRectangleGradientV (posX, posY, width, height, color1, color2) { +function DrawRectangleGradientV(posX, posY, width, height, color1, color2) { return r.BindDrawRectangleGradientV( posX, posY, @@ -3056,7 +3056,7 @@ raylib.DrawRectangleGradientV = DrawRectangleGradientV * * @return {undefined} */ -function DrawRectangleGradientH (posX, posY, width, height, color1, color2) { +function DrawRectangleGradientH(posX, posY, width, height, color1, color2) { return r.BindDrawRectangleGradientH( posX, posY, @@ -3085,7 +3085,7 @@ raylib.DrawRectangleGradientH = DrawRectangleGradientH * * @return {undefined} */ -function DrawRectangleGradientEx (rec, col1, col2, col3, col4) { +function DrawRectangleGradientEx(rec, col1, col2, col3, col4) { return r.BindDrawRectangleGradientEx( rec.x, rec.y, @@ -3122,7 +3122,7 @@ raylib.DrawRectangleGradientEx = DrawRectangleGradientEx * * @return {undefined} */ -function DrawRectangleLines (posX, posY, width, height, color) { +function DrawRectangleLines(posX, posY, width, height, color) { return r.BindDrawRectangleLines( posX, posY, @@ -3145,7 +3145,7 @@ raylib.DrawRectangleLines = DrawRectangleLines * * @return {undefined} */ -function DrawRectangleLinesEx (rec, lineThick, color) { +function DrawRectangleLinesEx(rec, lineThick, color) { return r.BindDrawRectangleLinesEx( rec.x, rec.y, @@ -3170,7 +3170,7 @@ raylib.DrawRectangleLinesEx = DrawRectangleLinesEx * * @return {undefined} */ -function DrawRectangleRounded (rec, roundness, segments, color) { +function DrawRectangleRounded(rec, roundness, segments, color) { return r.BindDrawRectangleRounded( rec.x, rec.y, @@ -3197,7 +3197,7 @@ raylib.DrawRectangleRounded = DrawRectangleRounded * * @return {undefined} */ -function DrawRectangleRoundedLines (rec, roundness, segments, lineThick, color) { +function DrawRectangleRoundedLines(rec, roundness, segments, lineThick, color) { return r.BindDrawRectangleRoundedLines( rec.x, rec.y, @@ -3224,7 +3224,7 @@ raylib.DrawRectangleRoundedLines = DrawRectangleRoundedLines * * @return {undefined} */ -function DrawTriangle (v1, v2, v3, color) { +function DrawTriangle(v1, v2, v3, color) { return r.BindDrawTriangle( v1.x, v1.y, @@ -3250,7 +3250,7 @@ raylib.DrawTriangle = DrawTriangle * * @return {undefined} */ -function DrawTriangleLines (v1, v2, v3, color) { +function DrawTriangleLines(v1, v2, v3, color) { return r.BindDrawTriangleLines( v1.x, v1.y, @@ -3275,7 +3275,7 @@ raylib.DrawTriangleLines = DrawTriangleLines * * @return {undefined} */ -function DrawTriangleFan (points, pointCount, color) { +function DrawTriangleFan(points, pointCount, color) { return r.BindDrawTriangleFan( points, pointCount, @@ -3296,7 +3296,7 @@ raylib.DrawTriangleFan = DrawTriangleFan * * @return {undefined} */ -function DrawTriangleStrip (points, pointCount, color) { +function DrawTriangleStrip(points, pointCount, color) { return r.BindDrawTriangleStrip( points, pointCount, @@ -3319,7 +3319,7 @@ raylib.DrawTriangleStrip = DrawTriangleStrip * * @return {undefined} */ -function DrawPoly (center, sides, radius, rotation, color) { +function DrawPoly(center, sides, radius, rotation, color) { return r.BindDrawPoly( center.x, center.y, @@ -3345,7 +3345,7 @@ raylib.DrawPoly = DrawPoly * * @return {undefined} */ -function DrawPolyLines (center, sides, radius, rotation, color) { +function DrawPolyLines(center, sides, radius, rotation, color) { return r.BindDrawPolyLines( center.x, center.y, @@ -3372,7 +3372,7 @@ raylib.DrawPolyLines = DrawPolyLines * * @return {undefined} */ -function DrawPolyLinesEx (center, sides, radius, rotation, lineThick, color) { +function DrawPolyLinesEx(center, sides, radius, rotation, lineThick, color) { return r.BindDrawPolyLinesEx( center.x, center.y, @@ -3396,7 +3396,7 @@ raylib.DrawPolyLinesEx = DrawPolyLinesEx * * @return {boolean} The resulting bool. */ -function CheckCollisionRecs (rec1, rec2) { +function CheckCollisionRecs(rec1, rec2) { return r.BindCheckCollisionRecs( rec1.x, rec1.y, @@ -3420,7 +3420,7 @@ raylib.CheckCollisionRecs = CheckCollisionRecs * * @return {boolean} The resulting bool. */ -function CheckCollisionCircles (center1, radius1, center2, radius2) { +function CheckCollisionCircles(center1, radius1, center2, radius2) { return r.BindCheckCollisionCircles( center1.x, center1.y, @@ -3441,7 +3441,7 @@ raylib.CheckCollisionCircles = CheckCollisionCircles * * @return {boolean} The resulting bool. */ -function CheckCollisionCircleRec (center, radius, rec) { +function CheckCollisionCircleRec(center, radius, rec) { return r.BindCheckCollisionCircleRec( center.x, center.y, @@ -3462,7 +3462,7 @@ raylib.CheckCollisionCircleRec = CheckCollisionCircleRec * * @return {boolean} The resulting bool. */ -function CheckCollisionPointRec (point, rec) { +function CheckCollisionPointRec(point, rec) { return r.BindCheckCollisionPointRec( point.x, point.y, @@ -3483,7 +3483,7 @@ raylib.CheckCollisionPointRec = CheckCollisionPointRec * * @return {boolean} The resulting bool. */ -function CheckCollisionPointCircle (point, center, radius) { +function CheckCollisionPointCircle(point, center, radius) { return r.BindCheckCollisionPointCircle( point.x, point.y, @@ -3504,7 +3504,7 @@ raylib.CheckCollisionPointCircle = CheckCollisionPointCircle * * @return {boolean} The resulting bool. */ -function CheckCollisionPointTriangle (point, p1, p2, p3) { +function CheckCollisionPointTriangle(point, p1, p2, p3) { return r.BindCheckCollisionPointTriangle( point.x, point.y, @@ -3527,7 +3527,7 @@ raylib.CheckCollisionPointTriangle = CheckCollisionPointTriangle * * @return {boolean} The resulting bool. */ -function CheckCollisionPointPoly (point, points, pointCount) { +function CheckCollisionPointPoly(point, points, pointCount) { return r.BindCheckCollisionPointPoly( point.x, point.y, @@ -3548,7 +3548,7 @@ raylib.CheckCollisionPointPoly = CheckCollisionPointPoly * * @return {boolean} The resulting bool. */ -function CheckCollisionLines (startPos1, endPos1, startPos2, endPos2, collisionPoint) { +function CheckCollisionLines(startPos1, endPos1, startPos2, endPos2, collisionPoint) { return r.BindCheckCollisionLines( startPos1.x, startPos1.y, @@ -3573,7 +3573,7 @@ raylib.CheckCollisionLines = CheckCollisionLines * * @return {boolean} The resulting bool. */ -function CheckCollisionPointLine (point, p1, p2, threshold) { +function CheckCollisionPointLine(point, p1, p2, threshold) { return r.BindCheckCollisionPointLine( point.x, point.y, @@ -3594,7 +3594,7 @@ raylib.CheckCollisionPointLine = CheckCollisionPointLine * * @return {Rectangle} The resulting Rectangle. */ -function GetCollisionRec (rec1, rec2) { +function GetCollisionRec(rec1, rec2) { return r.BindGetCollisionRec( rec1.x, rec1.y, @@ -3615,7 +3615,7 @@ raylib.GetCollisionRec = GetCollisionRec * * @return {Image} The resulting Image. */ -function LoadImage (fileName) { +function LoadImage(fileName) { return r.BindLoadImage( fileName ) @@ -3633,7 +3633,7 @@ raylib.LoadImage = LoadImage * * @return {Image} The resulting Image. */ -function LoadImageRaw (fileName, width, height, format, headerSize) { +function LoadImageRaw(fileName, width, height, format, headerSize) { return r.BindLoadImageRaw( fileName, width, @@ -3652,7 +3652,7 @@ raylib.LoadImageRaw = LoadImageRaw * * @return {Image} The resulting Image. */ -function LoadImageAnim (fileName, frames) { +function LoadImageAnim(fileName, frames) { return r.BindLoadImageAnim( fileName, frames @@ -3669,7 +3669,7 @@ raylib.LoadImageAnim = LoadImageAnim * * @return {Image} The resulting Image. */ -function LoadImageFromMemory (fileType, fileData, dataSize) { +function LoadImageFromMemory(fileType, fileData, dataSize) { return r.BindLoadImageFromMemory( fileType, fileData, @@ -3685,7 +3685,7 @@ raylib.LoadImageFromMemory = LoadImageFromMemory * * @return {Image} The resulting Image. */ -function LoadImageFromTexture (texture) { +function LoadImageFromTexture(texture) { return r.BindLoadImageFromTexture( texture.id, texture.width, @@ -3701,7 +3701,7 @@ raylib.LoadImageFromTexture = LoadImageFromTexture * * @return {Image} The resulting Image. */ -function LoadImageFromScreen () { +function LoadImageFromScreen() { return r.BindLoadImageFromScreen() } raylib.LoadImageFromScreen = LoadImageFromScreen @@ -3713,7 +3713,7 @@ raylib.LoadImageFromScreen = LoadImageFromScreen * * @return {boolean} The resulting bool. */ -function IsImageReady (image) { +function IsImageReady(image) { return r.BindIsImageReady( image.data, image.width, @@ -3731,7 +3731,7 @@ raylib.IsImageReady = IsImageReady * * @return {undefined} */ -function UnloadImage (image) { +function UnloadImage(image) { return r.BindUnloadImage( image.data, image.width, @@ -3750,7 +3750,7 @@ raylib.UnloadImage = UnloadImage * * @return {boolean} The resulting bool. */ -function ExportImage (image, fileName) { +function ExportImage(image, fileName) { return r.BindExportImage( image.data, image.width, @@ -3770,7 +3770,7 @@ raylib.ExportImage = ExportImage * * @return {boolean} The resulting bool. */ -function ExportImageAsCode (image, fileName) { +function ExportImageAsCode(image, fileName) { return r.BindExportImageAsCode( image.data, image.width, @@ -3791,7 +3791,7 @@ raylib.ExportImageAsCode = ExportImageAsCode * * @return {Image} The resulting Image. */ -function GenImageColor (width, height, color) { +function GenImageColor(width, height, color) { return r.BindGenImageColor( width, height, @@ -3813,7 +3813,7 @@ raylib.GenImageColor = GenImageColor * * @return {Image} The resulting Image. */ -function GenImageGradientV (width, height, top, bottom) { +function GenImageGradientV(width, height, top, bottom) { return r.BindGenImageGradientV( width, height, @@ -3839,7 +3839,7 @@ raylib.GenImageGradientV = GenImageGradientV * * @return {Image} The resulting Image. */ -function GenImageGradientH (width, height, left, right) { +function GenImageGradientH(width, height, left, right) { return r.BindGenImageGradientH( width, height, @@ -3866,7 +3866,7 @@ raylib.GenImageGradientH = GenImageGradientH * * @return {Image} The resulting Image. */ -function GenImageGradientRadial (width, height, density, inner, outer) { +function GenImageGradientRadial(width, height, density, inner, outer) { return r.BindGenImageGradientRadial( width, height, @@ -3895,7 +3895,7 @@ raylib.GenImageGradientRadial = GenImageGradientRadial * * @return {Image} The resulting Image. */ -function GenImageChecked (width, height, checksX, checksY, col1, col2) { +function GenImageChecked(width, height, checksX, checksY, col1, col2) { return r.BindGenImageChecked( width, height, @@ -3922,7 +3922,7 @@ raylib.GenImageChecked = GenImageChecked * * @return {Image} The resulting Image. */ -function GenImageWhiteNoise (width, height, factor) { +function GenImageWhiteNoise(width, height, factor) { return r.BindGenImageWhiteNoise( width, height, @@ -3942,7 +3942,7 @@ raylib.GenImageWhiteNoise = GenImageWhiteNoise * * @return {Image} The resulting Image. */ -function GenImagePerlinNoise (width, height, offsetX, offsetY, scale) { +function GenImagePerlinNoise(width, height, offsetX, offsetY, scale) { return r.BindGenImagePerlinNoise( width, height, @@ -3962,7 +3962,7 @@ raylib.GenImagePerlinNoise = GenImagePerlinNoise * * @return {Image} The resulting Image. */ -function GenImageCellular (width, height, tileSize) { +function GenImageCellular(width, height, tileSize) { return r.BindGenImageCellular( width, height, @@ -3980,7 +3980,7 @@ raylib.GenImageCellular = GenImageCellular * * @return {Image} The resulting Image. */ -function GenImageText (width, height, text) { +function GenImageText(width, height, text) { return r.BindGenImageText( width, height, @@ -3996,7 +3996,7 @@ raylib.GenImageText = GenImageText * * @return {Image} The resulting Image. */ -function ImageCopy (image) { +function ImageCopy(image) { return r.BindImageCopy( image.data, image.width, @@ -4015,7 +4015,7 @@ raylib.ImageCopy = ImageCopy * * @return {Image} The resulting Image. */ -function ImageFromImage (image, rec) { +function ImageFromImage(image, rec) { return r.BindImageFromImage( image.data, image.width, @@ -4039,7 +4039,7 @@ raylib.ImageFromImage = ImageFromImage * * @return {Image} The resulting Image. */ -function ImageText (text, fontSize, color) { +function ImageText(text, fontSize, color) { return r.BindImageText( text, fontSize, @@ -4062,7 +4062,7 @@ raylib.ImageText = ImageText * * @return {Image} The resulting Image. */ -function ImageTextEx (font, text, fontSize, spacing, tint) { +function ImageTextEx(font, text, fontSize, spacing, tint) { return r.BindImageTextEx( font.baseSize, font.glyphCount, @@ -4093,7 +4093,7 @@ raylib.ImageTextEx = ImageTextEx * * @return {undefined} */ -function ImageBlurGaussian (image, blurSize) { +function ImageBlurGaussian(image, blurSize) { return r.BindImageBlurGaussian( image, blurSize @@ -4108,7 +4108,7 @@ raylib.ImageBlurGaussian = ImageBlurGaussian * * @return {number} The resulting Color *. */ -function LoadImageColors (image) { +function LoadImageColors(image) { return r.BindLoadImageColors( image.data, image.width, @@ -4128,7 +4128,7 @@ raylib.LoadImageColors = LoadImageColors * * @return {number} The resulting Color *. */ -function LoadImagePalette (image, maxPaletteSize, colorCount) { +function LoadImagePalette(image, maxPaletteSize, colorCount) { return r.BindLoadImagePalette( image.data, image.width, @@ -4148,7 +4148,7 @@ raylib.LoadImagePalette = LoadImagePalette * * @return {undefined} */ -function UnloadImageColors (colors) { +function UnloadImageColors(colors) { return r.BindUnloadImageColors( colors ) @@ -4162,7 +4162,7 @@ raylib.UnloadImageColors = UnloadImageColors * * @return {undefined} */ -function UnloadImagePalette (colors) { +function UnloadImagePalette(colors) { return r.BindUnloadImagePalette( colors ) @@ -4177,7 +4177,7 @@ raylib.UnloadImagePalette = UnloadImagePalette * * @return {Rectangle} The resulting Rectangle. */ -function GetImageAlphaBorder (image, threshold) { +function GetImageAlphaBorder(image, threshold) { return r.BindGetImageAlphaBorder( image.data, image.width, @@ -4198,7 +4198,7 @@ raylib.GetImageAlphaBorder = GetImageAlphaBorder * * @return {Color} The resulting Color. */ -function GetImageColor (image, x, y) { +function GetImageColor(image, x, y) { return r.BindGetImageColor( image.data, image.width, @@ -4222,7 +4222,7 @@ raylib.GetImageColor = GetImageColor * * @return {undefined} */ -function ImageDrawCircleLines (dst, centerX, centerY, radius, color) { +function ImageDrawCircleLines(dst, centerX, centerY, radius, color) { return r.BindImageDrawCircleLines( dst, centerX, @@ -4246,7 +4246,7 @@ raylib.ImageDrawCircleLines = ImageDrawCircleLines * * @return {undefined} */ -function ImageDrawCircleLinesV (dst, center, radius, color) { +function ImageDrawCircleLinesV(dst, center, radius, color) { return r.BindImageDrawCircleLinesV( dst, center.x, @@ -4267,7 +4267,7 @@ raylib.ImageDrawCircleLinesV = ImageDrawCircleLinesV * * @return {Texture2D} The resulting Texture2D. */ -function LoadTexture (fileName) { +function LoadTexture(fileName) { return r.BindLoadTexture( fileName ) @@ -4281,7 +4281,7 @@ raylib.LoadTexture = LoadTexture * * @return {Texture2D} The resulting Texture2D. */ -function LoadTextureFromImage (image) { +function LoadTextureFromImage(image) { return r.BindLoadTextureFromImage( image.data, image.width, @@ -4300,7 +4300,7 @@ raylib.LoadTextureFromImage = LoadTextureFromImage * * @return {TextureCubemap} The resulting TextureCubemap. */ -function LoadTextureCubemap (image, layout) { +function LoadTextureCubemap(image, layout) { return r.BindLoadTextureCubemap( image.data, image.width, @@ -4320,7 +4320,7 @@ raylib.LoadTextureCubemap = LoadTextureCubemap * * @return {RenderTexture2D} The resulting RenderTexture2D. */ -function LoadRenderTexture (width, height) { +function LoadRenderTexture(width, height) { return r.BindLoadRenderTexture( width, height @@ -4335,7 +4335,7 @@ raylib.LoadRenderTexture = LoadRenderTexture * * @return {boolean} The resulting bool. */ -function IsTextureReady (texture) { +function IsTextureReady(texture) { return r.BindIsTextureReady( texture.id, texture.width, @@ -4353,7 +4353,7 @@ raylib.IsTextureReady = IsTextureReady * * @return {undefined} */ -function UnloadTexture (texture) { +function UnloadTexture(texture) { return r.BindUnloadTexture( texture.id, texture.width, @@ -4371,7 +4371,7 @@ raylib.UnloadTexture = UnloadTexture * * @return {boolean} The resulting bool. */ -function IsRenderTextureReady (target) { +function IsRenderTextureReady(target) { return r.BindIsRenderTextureReady( target.id, target.texture.id, @@ -4395,7 +4395,7 @@ raylib.IsRenderTextureReady = IsRenderTextureReady * * @return {undefined} */ -function UnloadRenderTexture (target) { +function UnloadRenderTexture(target) { return r.BindUnloadRenderTexture( target.id, target.texture.id, @@ -4420,7 +4420,7 @@ raylib.UnloadRenderTexture = UnloadRenderTexture * * @return {undefined} */ -function UpdateTexture (texture, pixels) { +function UpdateTexture(texture, pixels) { return r.BindUpdateTexture( texture.id, texture.width, @@ -4441,7 +4441,7 @@ raylib.UpdateTexture = UpdateTexture * * @return {undefined} */ -function UpdateTextureRec (texture, rec, pixels) { +function UpdateTextureRec(texture, rec, pixels) { return r.BindUpdateTextureRec( texture.id, texture.width, @@ -4465,7 +4465,7 @@ raylib.UpdateTextureRec = UpdateTextureRec * * @return {undefined} */ -function SetTextureFilter (texture, filter) { +function SetTextureFilter(texture, filter) { return r.BindSetTextureFilter( texture.id, texture.width, @@ -4485,7 +4485,7 @@ raylib.SetTextureFilter = SetTextureFilter * * @return {undefined} */ -function SetTextureWrap (texture, wrap) { +function SetTextureWrap(texture, wrap) { return r.BindSetTextureWrap( texture.id, texture.width, @@ -4507,7 +4507,7 @@ raylib.SetTextureWrap = SetTextureWrap * * @return {undefined} */ -function DrawTexture (texture, posX, posY, tint) { +function DrawTexture(texture, posX, posY, tint) { return r.BindDrawTexture( texture.id, texture.width, @@ -4533,7 +4533,7 @@ raylib.DrawTexture = DrawTexture * * @return {undefined} */ -function DrawTextureV (texture, position, tint) { +function DrawTextureV(texture, position, tint) { return r.BindDrawTextureV( texture.id, texture.width, @@ -4561,7 +4561,7 @@ raylib.DrawTextureV = DrawTextureV * * @return {undefined} */ -function DrawTextureEx (texture, position, rotation, scale, tint) { +function DrawTextureEx(texture, position, rotation, scale, tint) { return r.BindDrawTextureEx( texture.id, texture.width, @@ -4590,7 +4590,7 @@ raylib.DrawTextureEx = DrawTextureEx * * @return {undefined} */ -function DrawTextureRec (texture, source, position, tint) { +function DrawTextureRec(texture, source, position, tint) { return r.BindDrawTextureRec( texture.id, texture.width, @@ -4623,7 +4623,7 @@ raylib.DrawTextureRec = DrawTextureRec * * @return {undefined} */ -function DrawTexturePro (texture, source, dest, origin, rotation, tint) { +function DrawTexturePro(texture, source, dest, origin, rotation, tint) { return r.BindDrawTexturePro( texture.id, texture.width, @@ -4661,7 +4661,7 @@ raylib.DrawTexturePro = DrawTexturePro * * @return {undefined} */ -function DrawTextureNPatch (texture, nPatchInfo, dest, origin, rotation, tint) { +function DrawTextureNPatch(texture, nPatchInfo, dest, origin, rotation, tint) { return r.BindDrawTextureNPatch( texture.id, texture.width, @@ -4700,7 +4700,7 @@ raylib.DrawTextureNPatch = DrawTextureNPatch * * @return {Color} The resulting Color. */ -function Fade (color, alpha) { +function Fade(color, alpha) { return r.BindFade( color.r, color.g, @@ -4718,7 +4718,7 @@ raylib.Fade = Fade * * @return {number} The resulting int. */ -function ColorToInt (color) { +function ColorToInt(color) { return r.BindColorToInt( color.r, color.g, @@ -4735,7 +4735,7 @@ raylib.ColorToInt = ColorToInt * * @return {Vector4} The resulting Vector4. */ -function ColorNormalize (color) { +function ColorNormalize(color) { return r.BindColorNormalize( color.r, color.g, @@ -4752,7 +4752,7 @@ raylib.ColorNormalize = ColorNormalize * * @return {Color} The resulting Color. */ -function ColorFromNormalized (normalized) { +function ColorFromNormalized(normalized) { return r.BindColorFromNormalized( normalized.x, normalized.y, @@ -4769,7 +4769,7 @@ raylib.ColorFromNormalized = ColorFromNormalized * * @return {Vector3} The resulting Vector3. */ -function ColorToHSV (color) { +function ColorToHSV(color) { return r.BindColorToHSV( color.r, color.g, @@ -4788,7 +4788,7 @@ raylib.ColorToHSV = ColorToHSV * * @return {Color} The resulting Color. */ -function ColorFromHSV (hue, saturation, value) { +function ColorFromHSV(hue, saturation, value) { return r.BindColorFromHSV( hue, saturation, @@ -4805,7 +4805,7 @@ raylib.ColorFromHSV = ColorFromHSV * * @return {Color} The resulting Color. */ -function ColorTint (color, tint) { +function ColorTint(color, tint) { return r.BindColorTint( color.r, color.g, @@ -4827,7 +4827,7 @@ raylib.ColorTint = ColorTint * * @return {Color} The resulting Color. */ -function ColorBrightness (color, factor) { +function ColorBrightness(color, factor) { return r.BindColorBrightness( color.r, color.g, @@ -4846,7 +4846,7 @@ raylib.ColorBrightness = ColorBrightness * * @return {Color} The resulting Color. */ -function ColorContrast (color, contrast) { +function ColorContrast(color, contrast) { return r.BindColorContrast( color.r, color.g, @@ -4865,7 +4865,7 @@ raylib.ColorContrast = ColorContrast * * @return {Color} The resulting Color. */ -function ColorAlpha (color, alpha) { +function ColorAlpha(color, alpha) { return r.BindColorAlpha( color.r, color.g, @@ -4885,7 +4885,7 @@ raylib.ColorAlpha = ColorAlpha * * @return {Color} The resulting Color. */ -function ColorAlphaBlend (dst, src, tint) { +function ColorAlphaBlend(dst, src, tint) { return r.BindColorAlphaBlend( dst.r, dst.g, @@ -4910,7 +4910,7 @@ raylib.ColorAlphaBlend = ColorAlphaBlend * * @return {Color} The resulting Color. */ -function GetColor (hexValue) { +function GetColor(hexValue) { return r.BindGetColor( hexValue ) @@ -4925,7 +4925,7 @@ raylib.GetColor = GetColor * * @return {Color} The resulting Color. */ -function GetPixelColor (srcPtr, format) { +function GetPixelColor(srcPtr, format) { return r.BindGetPixelColor( srcPtr, format @@ -4942,7 +4942,7 @@ raylib.GetPixelColor = GetPixelColor * * @return {undefined} */ -function SetPixelColor (dstPtr, color, format) { +function SetPixelColor(dstPtr, color, format) { return r.BindSetPixelColor( dstPtr, color.r, @@ -4963,7 +4963,7 @@ raylib.SetPixelColor = SetPixelColor * * @return {number} The resulting int. */ -function GetPixelDataSize (width, height, format) { +function GetPixelDataSize(width, height, format) { return r.BindGetPixelDataSize( width, height, @@ -4977,7 +4977,7 @@ raylib.GetPixelDataSize = GetPixelDataSize * * @return {Font} The resulting Font. */ -function GetFontDefault () { +function GetFontDefault() { return r.BindGetFontDefault() } raylib.GetFontDefault = GetFontDefault @@ -4989,7 +4989,7 @@ raylib.GetFontDefault = GetFontDefault * * @return {Font} The resulting Font. */ -function LoadFont (fileName) { +function LoadFont(fileName) { return r.BindLoadFont( fileName ) @@ -5006,7 +5006,7 @@ raylib.LoadFont = LoadFont * * @return {Font} The resulting Font. */ -function LoadFontEx (fileName, fontSize, fontChars, glyphCount) { +function LoadFontEx(fileName, fontSize, fontChars, glyphCount) { return r.BindLoadFontEx( fileName, fontSize, @@ -5025,7 +5025,7 @@ raylib.LoadFontEx = LoadFontEx * * @return {Font} The resulting Font. */ -function LoadFontFromImage (image, key, firstChar) { +function LoadFontFromImage(image, key, firstChar) { return r.BindLoadFontFromImage( image.data, image.width, @@ -5053,7 +5053,7 @@ raylib.LoadFontFromImage = LoadFontFromImage * * @return {Font} The resulting Font. */ -function LoadFontFromMemory (fileType, fileData, dataSize, fontSize, fontChars, glyphCount) { +function LoadFontFromMemory(fileType, fileData, dataSize, fontSize, fontChars, glyphCount) { return r.BindLoadFontFromMemory( fileType, fileData, @@ -5072,7 +5072,7 @@ raylib.LoadFontFromMemory = LoadFontFromMemory * * @return {boolean} The resulting bool. */ -function IsFontReady (font) { +function IsFontReady(font) { return r.BindIsFontReady( font.baseSize, font.glyphCount, @@ -5100,7 +5100,7 @@ raylib.IsFontReady = IsFontReady * * @return {number} The resulting GlyphInfo *. */ -function LoadFontData (fileData, dataSize, fontSize, fontChars, glyphCount, type) { +function LoadFontData(fileData, dataSize, fontSize, fontChars, glyphCount, type) { return r.BindLoadFontData( fileData, dataSize, @@ -5124,7 +5124,7 @@ raylib.LoadFontData = LoadFontData * * @return {Image} The resulting Image. */ -function GenImageFontAtlas (chars, recs, glyphCount, fontSize, padding, packMethod) { +function GenImageFontAtlas(chars, recs, glyphCount, fontSize, padding, packMethod) { return r.BindGenImageFontAtlas( chars, recs, @@ -5144,7 +5144,7 @@ raylib.GenImageFontAtlas = GenImageFontAtlas * * @return {undefined} */ -function UnloadFontData (chars, glyphCount) { +function UnloadFontData(chars, glyphCount) { return r.BindUnloadFontData( chars, glyphCount @@ -5159,7 +5159,7 @@ raylib.UnloadFontData = UnloadFontData * * @return {undefined} */ -function UnloadFont (font) { +function UnloadFont(font) { return r.BindUnloadFont( font.baseSize, font.glyphCount, @@ -5183,7 +5183,7 @@ raylib.UnloadFont = UnloadFont * * @return {boolean} The resulting bool. */ -function ExportFontAsCode (font, fileName) { +function ExportFontAsCode(font, fileName) { return r.BindExportFontAsCode( font.baseSize, font.glyphCount, @@ -5208,7 +5208,7 @@ raylib.ExportFontAsCode = ExportFontAsCode * * @return {undefined} */ -function DrawFPS (posX, posY) { +function DrawFPS(posX, posY) { return r.BindDrawFPS( posX, posY @@ -5227,7 +5227,7 @@ raylib.DrawFPS = DrawFPS * * @return {undefined} */ -function DrawText (text, posX, posY, fontSize, color) { +function DrawText(text, posX, posY, fontSize, color) { return r.BindDrawText( text, posX, @@ -5253,7 +5253,7 @@ raylib.DrawText = DrawText * * @return {undefined} */ -function DrawTextEx (font, text, position, fontSize, spacing, tint) { +function DrawTextEx(font, text, position, fontSize, spacing, tint) { return r.BindDrawTextEx( font.baseSize, font.glyphCount, @@ -5292,7 +5292,7 @@ raylib.DrawTextEx = DrawTextEx * * @return {undefined} */ -function DrawTextPro (font, text, position, origin, rotation, fontSize, spacing, tint) { +function DrawTextPro(font, text, position, origin, rotation, fontSize, spacing, tint) { return r.BindDrawTextPro( font.baseSize, font.glyphCount, @@ -5331,7 +5331,7 @@ raylib.DrawTextPro = DrawTextPro * * @return {undefined} */ -function DrawTextCodepoint (font, codepoint, position, fontSize, tint) { +function DrawTextCodepoint(font, codepoint, position, fontSize, tint) { return r.BindDrawTextCodepoint( font.baseSize, font.glyphCount, @@ -5368,7 +5368,7 @@ raylib.DrawTextCodepoint = DrawTextCodepoint * * @return {undefined} */ -function DrawTextCodepoints (font, codepoints, count, position, fontSize, spacing, tint) { +function DrawTextCodepoints(font, codepoints, count, position, fontSize, spacing, tint) { return r.BindDrawTextCodepoints( font.baseSize, font.glyphCount, @@ -5402,7 +5402,7 @@ raylib.DrawTextCodepoints = DrawTextCodepoints * * @return {number} The resulting int. */ -function MeasureText (text, fontSize) { +function MeasureText(text, fontSize) { return r.BindMeasureText( text, fontSize @@ -5420,7 +5420,7 @@ raylib.MeasureText = MeasureText * * @return {Vector2} The resulting Vector2. */ -function MeasureTextEx (font, text, fontSize, spacing) { +function MeasureTextEx(font, text, fontSize, spacing) { return r.BindMeasureTextEx( font.baseSize, font.glyphCount, @@ -5447,7 +5447,7 @@ raylib.MeasureTextEx = MeasureTextEx * * @return {number} The resulting int. */ -function GetGlyphIndex (font, codepoint) { +function GetGlyphIndex(font, codepoint) { return r.BindGetGlyphIndex( font.baseSize, font.glyphCount, @@ -5472,7 +5472,7 @@ raylib.GetGlyphIndex = GetGlyphIndex * * @return {GlyphInfo} The resulting GlyphInfo. */ -function GetGlyphInfo (font, codepoint) { +function GetGlyphInfo(font, codepoint) { return r.BindGetGlyphInfo( font.baseSize, font.glyphCount, @@ -5497,7 +5497,7 @@ raylib.GetGlyphInfo = GetGlyphInfo * * @return {Rectangle} The resulting Rectangle. */ -function GetGlyphAtlasRec (font, codepoint) { +function GetGlyphAtlasRec(font, codepoint) { return r.BindGetGlyphAtlasRec( font.baseSize, font.glyphCount, @@ -5522,7 +5522,7 @@ raylib.GetGlyphAtlasRec = GetGlyphAtlasRec * * @return {string} The resulting char *. */ -function LoadUTF8 (codepoints, length) { +function LoadUTF8(codepoints, length) { return r.BindLoadUTF8( codepoints, length @@ -5537,7 +5537,7 @@ raylib.LoadUTF8 = LoadUTF8 * * @return {undefined} */ -function UnloadUTF8 (text) { +function UnloadUTF8(text) { return r.BindUnloadUTF8( text ) @@ -5552,7 +5552,7 @@ raylib.UnloadUTF8 = UnloadUTF8 * * @return {number} The resulting int *. */ -function LoadCodepoints (text, count) { +function LoadCodepoints(text, count) { return r.BindLoadCodepoints( text, count @@ -5567,7 +5567,7 @@ raylib.LoadCodepoints = LoadCodepoints * * @return {undefined} */ -function UnloadCodepoints (codepoints) { +function UnloadCodepoints(codepoints) { return r.BindUnloadCodepoints( codepoints ) @@ -5581,7 +5581,7 @@ raylib.UnloadCodepoints = UnloadCodepoints * * @return {number} The resulting int. */ -function GetCodepointCount (text) { +function GetCodepointCount(text) { return r.BindGetCodepointCount( text ) @@ -5596,7 +5596,7 @@ raylib.GetCodepointCount = GetCodepointCount * * @return {number} The resulting int. */ -function GetCodepoint (text, codepointSize) { +function GetCodepoint(text, codepointSize) { return r.BindGetCodepoint( text, codepointSize @@ -5612,7 +5612,7 @@ raylib.GetCodepoint = GetCodepoint * * @return {number} The resulting int. */ -function GetCodepointNext (text, codepointSize) { +function GetCodepointNext(text, codepointSize) { return r.BindGetCodepointNext( text, codepointSize @@ -5628,7 +5628,7 @@ raylib.GetCodepointNext = GetCodepointNext * * @return {number} The resulting int. */ -function GetCodepointPrevious (text, codepointSize) { +function GetCodepointPrevious(text, codepointSize) { return r.BindGetCodepointPrevious( text, codepointSize @@ -5644,7 +5644,7 @@ raylib.GetCodepointPrevious = GetCodepointPrevious * * @return {string} The resulting const char *. */ -function CodepointToUTF8 (codepoint, utf8Size) { +function CodepointToUTF8(codepoint, utf8Size) { return r.BindCodepointToUTF8( codepoint, utf8Size @@ -5660,7 +5660,7 @@ raylib.CodepointToUTF8 = CodepointToUTF8 * * @return {number} The resulting int. */ -function TextCopy (dst, src) { +function TextCopy(dst, src) { return r.BindTextCopy( dst, src @@ -5676,7 +5676,7 @@ raylib.TextCopy = TextCopy * * @return {boolean} The resulting bool. */ -function TextIsEqual (text1, text2) { +function TextIsEqual(text1, text2) { return r.BindTextIsEqual( text1, text2 @@ -5691,7 +5691,7 @@ raylib.TextIsEqual = TextIsEqual * * @return {number} The resulting unsigned int. */ -function TextLength (text) { +function TextLength(text) { return r.BindTextLength( text ) @@ -5707,7 +5707,7 @@ raylib.TextLength = TextLength * * @return {string} The resulting const char *. */ -function TextSubtext (text, position, length) { +function TextSubtext(text, position, length) { return r.BindTextSubtext( text, position, @@ -5725,7 +5725,7 @@ raylib.TextSubtext = TextSubtext * * @return {string} The resulting char *. */ -function TextReplace (text, replace, by) { +function TextReplace(text, replace, by) { return r.BindTextReplace( text, replace, @@ -5743,7 +5743,7 @@ raylib.TextReplace = TextReplace * * @return {string} The resulting char *. */ -function TextInsert (text, insert, position) { +function TextInsert(text, insert, position) { return r.BindTextInsert( text, insert, @@ -5761,7 +5761,7 @@ raylib.TextInsert = TextInsert * * @return {string} The resulting const char *. */ -function TextJoin (textList, count, delimiter) { +function TextJoin(textList, count, delimiter) { return r.BindTextJoin( textList, count, @@ -5779,7 +5779,7 @@ raylib.TextJoin = TextJoin * * @return {number} The resulting const char **. */ -function TextSplit (text, delimiter, count) { +function TextSplit(text, delimiter, count) { return r.BindTextSplit( text, delimiter, @@ -5797,7 +5797,7 @@ raylib.TextSplit = TextSplit * * @return {undefined} */ -function TextAppend (text, append, position) { +function TextAppend(text, append, position) { return r.BindTextAppend( text, append, @@ -5814,7 +5814,7 @@ raylib.TextAppend = TextAppend * * @return {number} The resulting int. */ -function TextFindIndex (text, find) { +function TextFindIndex(text, find) { return r.BindTextFindIndex( text, find @@ -5829,7 +5829,7 @@ raylib.TextFindIndex = TextFindIndex * * @return {string} The resulting const char *. */ -function TextToUpper (text) { +function TextToUpper(text) { return r.BindTextToUpper( text ) @@ -5843,7 +5843,7 @@ raylib.TextToUpper = TextToUpper * * @return {string} The resulting const char *. */ -function TextToLower (text) { +function TextToLower(text) { return r.BindTextToLower( text ) @@ -5857,7 +5857,7 @@ raylib.TextToLower = TextToLower * * @return {string} The resulting const char *. */ -function TextToPascal (text) { +function TextToPascal(text) { return r.BindTextToPascal( text ) @@ -5871,7 +5871,7 @@ raylib.TextToPascal = TextToPascal * * @return {number} The resulting int. */ -function TextToInteger (text) { +function TextToInteger(text) { return r.BindTextToInteger( text ) @@ -5887,7 +5887,7 @@ raylib.TextToInteger = TextToInteger * * @return {undefined} */ -function DrawLine3D (startPos, endPos, color) { +function DrawLine3D(startPos, endPos, color) { return r.BindDrawLine3D( startPos.x, startPos.y, @@ -5911,7 +5911,7 @@ raylib.DrawLine3D = DrawLine3D * * @return {undefined} */ -function DrawPoint3D (position, color) { +function DrawPoint3D(position, color) { return r.BindDrawPoint3D( position.x, position.y, @@ -5935,7 +5935,7 @@ raylib.DrawPoint3D = DrawPoint3D * * @return {undefined} */ -function DrawCircle3D (center, radius, rotationAxis, rotationAngle, color) { +function DrawCircle3D(center, radius, rotationAxis, rotationAngle, color) { return r.BindDrawCircle3D( center.x, center.y, @@ -5963,7 +5963,7 @@ raylib.DrawCircle3D = DrawCircle3D * * @return {undefined} */ -function DrawTriangle3D (v1, v2, v3, color) { +function DrawTriangle3D(v1, v2, v3, color) { return r.BindDrawTriangle3D( v1.x, v1.y, @@ -5991,7 +5991,7 @@ raylib.DrawTriangle3D = DrawTriangle3D * * @return {undefined} */ -function DrawTriangleStrip3D (points, pointCount, color) { +function DrawTriangleStrip3D(points, pointCount, color) { return r.BindDrawTriangleStrip3D( points, pointCount, @@ -6014,7 +6014,7 @@ raylib.DrawTriangleStrip3D = DrawTriangleStrip3D * * @return {undefined} */ -function DrawCube (position, width, height, length, color) { +function DrawCube(position, width, height, length, color) { return r.BindDrawCube( position.x, position.y, @@ -6039,7 +6039,7 @@ raylib.DrawCube = DrawCube * * @return {undefined} */ -function DrawCubeV (position, size, color) { +function DrawCubeV(position, size, color) { return r.BindDrawCubeV( position.x, position.y, @@ -6066,7 +6066,7 @@ raylib.DrawCubeV = DrawCubeV * * @return {undefined} */ -function DrawCubeWires (position, width, height, length, color) { +function DrawCubeWires(position, width, height, length, color) { return r.BindDrawCubeWires( position.x, position.y, @@ -6091,7 +6091,7 @@ raylib.DrawCubeWires = DrawCubeWires * * @return {undefined} */ -function DrawCubeWiresV (position, size, color) { +function DrawCubeWiresV(position, size, color) { return r.BindDrawCubeWiresV( position.x, position.y, @@ -6116,7 +6116,7 @@ raylib.DrawCubeWiresV = DrawCubeWiresV * * @return {undefined} */ -function DrawSphere (centerPos, radius, color) { +function DrawSphere(centerPos, radius, color) { return r.BindDrawSphere( centerPos.x, centerPos.y, @@ -6141,7 +6141,7 @@ raylib.DrawSphere = DrawSphere * * @return {undefined} */ -function DrawSphereEx (centerPos, radius, rings, slices, color) { +function DrawSphereEx(centerPos, radius, rings, slices, color) { return r.BindDrawSphereEx( centerPos.x, centerPos.y, @@ -6168,7 +6168,7 @@ raylib.DrawSphereEx = DrawSphereEx * * @return {undefined} */ -function DrawSphereWires (centerPos, radius, rings, slices, color) { +function DrawSphereWires(centerPos, radius, rings, slices, color) { return r.BindDrawSphereWires( centerPos.x, centerPos.y, @@ -6196,7 +6196,7 @@ raylib.DrawSphereWires = DrawSphereWires * * @return {undefined} */ -function DrawCylinder (position, radiusTop, radiusBottom, height, slices, color) { +function DrawCylinder(position, radiusTop, radiusBottom, height, slices, color) { return r.BindDrawCylinder( position.x, position.y, @@ -6225,7 +6225,7 @@ raylib.DrawCylinder = DrawCylinder * * @return {undefined} */ -function DrawCylinderEx (startPos, endPos, startRadius, endRadius, sides, color) { +function DrawCylinderEx(startPos, endPos, startRadius, endRadius, sides, color) { return r.BindDrawCylinderEx( startPos.x, startPos.y, @@ -6256,7 +6256,7 @@ raylib.DrawCylinderEx = DrawCylinderEx * * @return {undefined} */ -function DrawCylinderWires (position, radiusTop, radiusBottom, height, slices, color) { +function DrawCylinderWires(position, radiusTop, radiusBottom, height, slices, color) { return r.BindDrawCylinderWires( position.x, position.y, @@ -6285,7 +6285,7 @@ raylib.DrawCylinderWires = DrawCylinderWires * * @return {undefined} */ -function DrawCylinderWiresEx (startPos, endPos, startRadius, endRadius, sides, color) { +function DrawCylinderWiresEx(startPos, endPos, startRadius, endRadius, sides, color) { return r.BindDrawCylinderWiresEx( startPos.x, startPos.y, @@ -6316,7 +6316,7 @@ raylib.DrawCylinderWiresEx = DrawCylinderWiresEx * * @return {undefined} */ -function DrawCapsule (startPos, endPos, radius, slices, rings, color) { +function DrawCapsule(startPos, endPos, radius, slices, rings, color) { return r.BindDrawCapsule( startPos.x, startPos.y, @@ -6347,7 +6347,7 @@ raylib.DrawCapsule = DrawCapsule * * @return {undefined} */ -function DrawCapsuleWires (startPos, endPos, radius, slices, rings, color) { +function DrawCapsuleWires(startPos, endPos, radius, slices, rings, color) { return r.BindDrawCapsuleWires( startPos.x, startPos.y, @@ -6375,7 +6375,7 @@ raylib.DrawCapsuleWires = DrawCapsuleWires * * @return {undefined} */ -function DrawPlane (centerPos, size, color) { +function DrawPlane(centerPos, size, color) { return r.BindDrawPlane( centerPos.x, centerPos.y, @@ -6398,7 +6398,7 @@ raylib.DrawPlane = DrawPlane * * @return {undefined} */ -function DrawRay (ray, color) { +function DrawRay(ray, color) { return r.BindDrawRay( ray.position.x, ray.position.y, @@ -6422,7 +6422,7 @@ raylib.DrawRay = DrawRay * * @return {undefined} */ -function DrawGrid (slices, spacing) { +function DrawGrid(slices, spacing) { return r.BindDrawGrid( slices, spacing @@ -6437,7 +6437,7 @@ raylib.DrawGrid = DrawGrid * * @return {Model} The resulting Model. */ -function LoadModel (fileName) { +function LoadModel(fileName) { return r.BindLoadModel( fileName ) @@ -6451,7 +6451,7 @@ raylib.LoadModel = LoadModel * * @return {Model} The resulting Model. */ -function LoadModelFromMesh (mesh) { +function LoadModelFromMesh(mesh) { return r.BindLoadModelFromMesh( mesh.vertexCount, mesh.triangleCount, @@ -6479,7 +6479,7 @@ raylib.LoadModelFromMesh = LoadModelFromMesh * * @return {boolean} The resulting bool. */ -function IsModelReady (model) { +function IsModelReady(model) { return r.BindIsModelReady( model.transform.m0, model.transform.m4, @@ -6516,7 +6516,7 @@ raylib.IsModelReady = IsModelReady * * @return {undefined} */ -function UnloadModel (model) { +function UnloadModel(model) { return r.BindUnloadModel( model.transform.m0, model.transform.m4, @@ -6553,7 +6553,7 @@ raylib.UnloadModel = UnloadModel * * @return {BoundingBox} The resulting BoundingBox. */ -function GetModelBoundingBox (model) { +function GetModelBoundingBox(model) { return r.BindGetModelBoundingBox( model.transform.m0, model.transform.m4, @@ -6593,7 +6593,7 @@ raylib.GetModelBoundingBox = GetModelBoundingBox * * @return {undefined} */ -function DrawModel (model, position, scale, tint) { +function DrawModel(model, position, scale, tint) { return r.BindDrawModel( model.transform.m0, model.transform.m4, @@ -6643,7 +6643,7 @@ raylib.DrawModel = DrawModel * * @return {undefined} */ -function DrawModelEx (model, position, rotationAxis, rotationAngle, scale, tint) { +function DrawModelEx(model, position, rotationAxis, rotationAngle, scale, tint) { return r.BindDrawModelEx( model.transform.m0, model.transform.m4, @@ -6697,7 +6697,7 @@ raylib.DrawModelEx = DrawModelEx * * @return {undefined} */ -function DrawModelWires (model, position, scale, tint) { +function DrawModelWires(model, position, scale, tint) { return r.BindDrawModelWires( model.transform.m0, model.transform.m4, @@ -6747,7 +6747,7 @@ raylib.DrawModelWires = DrawModelWires * * @return {undefined} */ -function DrawModelWiresEx (model, position, rotationAxis, rotationAngle, scale, tint) { +function DrawModelWiresEx(model, position, rotationAxis, rotationAngle, scale, tint) { return r.BindDrawModelWiresEx( model.transform.m0, model.transform.m4, @@ -6799,7 +6799,7 @@ raylib.DrawModelWiresEx = DrawModelWiresEx * * @return {undefined} */ -function DrawBoundingBox (box, color) { +function DrawBoundingBox(box, color) { return r.BindDrawBoundingBox( box.min.x, box.min.y, @@ -6826,7 +6826,7 @@ raylib.DrawBoundingBox = DrawBoundingBox * * @return {undefined} */ -function DrawBillboard (camera, texture, position, size, tint) { +function DrawBillboard(camera, texture, position, size, tint) { return r.BindDrawBillboard( camera.position.x, camera.position.y, @@ -6868,7 +6868,7 @@ raylib.DrawBillboard = DrawBillboard * * @return {undefined} */ -function DrawBillboardRec (camera, texture, source, position, size, tint) { +function DrawBillboardRec(camera, texture, source, position, size, tint) { return r.BindDrawBillboardRec( camera.position.x, camera.position.y, @@ -6918,7 +6918,7 @@ raylib.DrawBillboardRec = DrawBillboardRec * * @return {undefined} */ -function DrawBillboardPro (camera, texture, source, position, up, size, origin, rotation, tint) { +function DrawBillboardPro(camera, texture, source, position, up, size, origin, rotation, tint) { return r.BindDrawBillboardPro( camera.position.x, camera.position.y, @@ -6970,7 +6970,7 @@ raylib.DrawBillboardPro = DrawBillboardPro * * @return {undefined} */ -function UpdateMeshBuffer (mesh, index, data, dataSize, offset) { +function UpdateMeshBuffer(mesh, index, data, dataSize, offset) { return r.BindUpdateMeshBuffer( mesh.vertexCount, mesh.triangleCount, @@ -7002,7 +7002,7 @@ raylib.UpdateMeshBuffer = UpdateMeshBuffer * * @return {undefined} */ -function UnloadMesh (mesh) { +function UnloadMesh(mesh) { return r.BindUnloadMesh( mesh.vertexCount, mesh.triangleCount, @@ -7031,7 +7031,7 @@ raylib.UnloadMesh = UnloadMesh * * @return {boolean} The resulting bool. */ -function ExportMesh (mesh, fileName) { +function ExportMesh(mesh, fileName) { return r.BindExportMesh( mesh.vertexCount, mesh.triangleCount, @@ -7060,7 +7060,7 @@ raylib.ExportMesh = ExportMesh * * @return {BoundingBox} The resulting BoundingBox. */ -function GetMeshBoundingBox (mesh) { +function GetMeshBoundingBox(mesh) { return r.BindGetMeshBoundingBox( mesh.vertexCount, mesh.triangleCount, @@ -7089,7 +7089,7 @@ raylib.GetMeshBoundingBox = GetMeshBoundingBox * * @return {Mesh} The resulting Mesh. */ -function GenMeshPoly (sides, radius) { +function GenMeshPoly(sides, radius) { return r.BindGenMeshPoly( sides, radius @@ -7107,7 +7107,7 @@ raylib.GenMeshPoly = GenMeshPoly * * @return {Mesh} The resulting Mesh. */ -function GenMeshPlane (width, length, resX, resZ) { +function GenMeshPlane(width, length, resX, resZ) { return r.BindGenMeshPlane( width, length, @@ -7126,7 +7126,7 @@ raylib.GenMeshPlane = GenMeshPlane * * @return {Mesh} The resulting Mesh. */ -function GenMeshCube (width, height, length) { +function GenMeshCube(width, height, length) { return r.BindGenMeshCube( width, height, @@ -7144,7 +7144,7 @@ raylib.GenMeshCube = GenMeshCube * * @return {Mesh} The resulting Mesh. */ -function GenMeshSphere (radius, rings, slices) { +function GenMeshSphere(radius, rings, slices) { return r.BindGenMeshSphere( radius, rings, @@ -7162,7 +7162,7 @@ raylib.GenMeshSphere = GenMeshSphere * * @return {Mesh} The resulting Mesh. */ -function GenMeshHemiSphere (radius, rings, slices) { +function GenMeshHemiSphere(radius, rings, slices) { return r.BindGenMeshHemiSphere( radius, rings, @@ -7180,7 +7180,7 @@ raylib.GenMeshHemiSphere = GenMeshHemiSphere * * @return {Mesh} The resulting Mesh. */ -function GenMeshCylinder (radius, height, slices) { +function GenMeshCylinder(radius, height, slices) { return r.BindGenMeshCylinder( radius, height, @@ -7198,7 +7198,7 @@ raylib.GenMeshCylinder = GenMeshCylinder * * @return {Mesh} The resulting Mesh. */ -function GenMeshCone (radius, height, slices) { +function GenMeshCone(radius, height, slices) { return r.BindGenMeshCone( radius, height, @@ -7217,7 +7217,7 @@ raylib.GenMeshCone = GenMeshCone * * @return {Mesh} The resulting Mesh. */ -function GenMeshTorus (radius, size, radSeg, sides) { +function GenMeshTorus(radius, size, radSeg, sides) { return r.BindGenMeshTorus( radius, size, @@ -7237,7 +7237,7 @@ raylib.GenMeshTorus = GenMeshTorus * * @return {Mesh} The resulting Mesh. */ -function GenMeshKnot (radius, size, radSeg, sides) { +function GenMeshKnot(radius, size, radSeg, sides) { return r.BindGenMeshKnot( radius, size, @@ -7255,7 +7255,7 @@ raylib.GenMeshKnot = GenMeshKnot * * @return {Mesh} The resulting Mesh. */ -function GenMeshHeightmap (heightmap, size) { +function GenMeshHeightmap(heightmap, size) { return r.BindGenMeshHeightmap( heightmap.data, heightmap.width, @@ -7277,7 +7277,7 @@ raylib.GenMeshHeightmap = GenMeshHeightmap * * @return {Mesh} The resulting Mesh. */ -function GenMeshCubicmap (cubicmap, cubeSize) { +function GenMeshCubicmap(cubicmap, cubeSize) { return r.BindGenMeshCubicmap( cubicmap.data, cubicmap.width, @@ -7299,7 +7299,7 @@ raylib.GenMeshCubicmap = GenMeshCubicmap * * @return {number} The resulting ModelAnimation *. */ -function LoadModelAnimations (fileName, animCount) { +function LoadModelAnimations(fileName, animCount) { return r.BindLoadModelAnimations( fileName, animCount @@ -7316,7 +7316,7 @@ raylib.LoadModelAnimations = LoadModelAnimations * * @return {undefined} */ -function UpdateModelAnimation (model, anim, frame) { +function UpdateModelAnimation(model, anim, frame) { return r.BindUpdateModelAnimation( model.transform.m0, model.transform.m4, @@ -7358,7 +7358,7 @@ raylib.UpdateModelAnimation = UpdateModelAnimation * * @return {undefined} */ -function UnloadModelAnimation (anim) { +function UnloadModelAnimation(anim) { return r.BindUnloadModelAnimation( anim.boneCount, anim.frameCount, @@ -7376,7 +7376,7 @@ raylib.UnloadModelAnimation = UnloadModelAnimation * * @return {undefined} */ -function UnloadModelAnimations (animations, count) { +function UnloadModelAnimations(animations, count) { return r.BindUnloadModelAnimations( animations, count @@ -7392,7 +7392,7 @@ raylib.UnloadModelAnimations = UnloadModelAnimations * * @return {boolean} The resulting bool. */ -function IsModelAnimationValid (model, anim) { +function IsModelAnimationValid(model, anim) { return r.BindIsModelAnimationValid( model.transform.m0, model.transform.m4, @@ -7436,7 +7436,7 @@ raylib.IsModelAnimationValid = IsModelAnimationValid * * @return {boolean} The resulting bool. */ -function CheckCollisionSpheres (center1, radius1, center2, radius2) { +function CheckCollisionSpheres(center1, radius1, center2, radius2) { return r.BindCheckCollisionSpheres( center1.x, center1.y, @@ -7458,7 +7458,7 @@ raylib.CheckCollisionSpheres = CheckCollisionSpheres * * @return {boolean} The resulting bool. */ -function CheckCollisionBoxes (box1, box2) { +function CheckCollisionBoxes(box1, box2) { return r.BindCheckCollisionBoxes( box1.min.x, box1.min.y, @@ -7485,7 +7485,7 @@ raylib.CheckCollisionBoxes = CheckCollisionBoxes * * @return {boolean} The resulting bool. */ -function CheckCollisionBoxSphere (box, center, radius) { +function CheckCollisionBoxSphere(box, center, radius) { return r.BindCheckCollisionBoxSphere( box.min.x, box.min.y, @@ -7510,7 +7510,7 @@ raylib.CheckCollisionBoxSphere = CheckCollisionBoxSphere * * @return {RayCollision} The resulting RayCollision. */ -function GetRayCollisionSphere (ray, center, radius) { +function GetRayCollisionSphere(ray, center, radius) { return r.BindGetRayCollisionSphere( ray.position.x, ray.position.y, @@ -7534,7 +7534,7 @@ raylib.GetRayCollisionSphere = GetRayCollisionSphere * * @return {RayCollision} The resulting RayCollision. */ -function GetRayCollisionBox (ray, box) { +function GetRayCollisionBox(ray, box) { return r.BindGetRayCollisionBox( ray.position.x, ray.position.y, @@ -7561,7 +7561,7 @@ raylib.GetRayCollisionBox = GetRayCollisionBox * * @return {RayCollision} The resulting RayCollision. */ -function GetRayCollisionMesh (ray, mesh, transform) { +function GetRayCollisionMesh(ray, mesh, transform) { return r.BindGetRayCollisionMesh( ray.position.x, ray.position.y, @@ -7614,7 +7614,7 @@ raylib.GetRayCollisionMesh = GetRayCollisionMesh * * @return {RayCollision} The resulting RayCollision. */ -function GetRayCollisionTriangle (ray, p1, p2, p3) { +function GetRayCollisionTriangle(ray, p1, p2, p3) { return r.BindGetRayCollisionTriangle( ray.position.x, ray.position.y, @@ -7646,7 +7646,7 @@ raylib.GetRayCollisionTriangle = GetRayCollisionTriangle * * @return {RayCollision} The resulting RayCollision. */ -function GetRayCollisionQuad (ray, p1, p2, p3, p4) { +function GetRayCollisionQuad(ray, p1, p2, p3, p4) { return r.BindGetRayCollisionQuad( ray.position.x, ray.position.y, @@ -7675,7 +7675,7 @@ raylib.GetRayCollisionQuad = GetRayCollisionQuad * * @return {undefined} */ -function InitAudioDevice () { +function InitAudioDevice() { return r.BindInitAudioDevice() } raylib.InitAudioDevice = InitAudioDevice @@ -7685,7 +7685,7 @@ raylib.InitAudioDevice = InitAudioDevice * * @return {undefined} */ -function CloseAudioDevice () { +function CloseAudioDevice() { return r.BindCloseAudioDevice() } raylib.CloseAudioDevice = CloseAudioDevice @@ -7695,7 +7695,7 @@ raylib.CloseAudioDevice = CloseAudioDevice * * @return {boolean} The resulting bool. */ -function IsAudioDeviceReady () { +function IsAudioDeviceReady() { return r.BindIsAudioDeviceReady() } raylib.IsAudioDeviceReady = IsAudioDeviceReady @@ -7707,7 +7707,7 @@ raylib.IsAudioDeviceReady = IsAudioDeviceReady * * @return {undefined} */ -function SetMasterVolume (volume) { +function SetMasterVolume(volume) { return r.BindSetMasterVolume( volume ) @@ -7721,7 +7721,7 @@ raylib.SetMasterVolume = SetMasterVolume * * @return {Wave} The resulting Wave. */ -function LoadWave (fileName) { +function LoadWave(fileName) { return r.BindLoadWave( fileName ) @@ -7737,7 +7737,7 @@ raylib.LoadWave = LoadWave * * @return {Wave} The resulting Wave. */ -function LoadWaveFromMemory (fileType, fileData, dataSize) { +function LoadWaveFromMemory(fileType, fileData, dataSize) { return r.BindLoadWaveFromMemory( fileType, fileData, @@ -7753,7 +7753,7 @@ raylib.LoadWaveFromMemory = LoadWaveFromMemory * * @return {boolean} The resulting bool. */ -function IsWaveReady (wave) { +function IsWaveReady(wave) { return r.BindIsWaveReady( wave.frameCount, wave.sampleRate, @@ -7771,7 +7771,7 @@ raylib.IsWaveReady = IsWaveReady * * @return {Sound} The resulting Sound. */ -function LoadSound (fileName) { +function LoadSound(fileName) { return r.BindLoadSound( fileName ) @@ -7785,7 +7785,7 @@ raylib.LoadSound = LoadSound * * @return {Sound} The resulting Sound. */ -function LoadSoundFromWave (wave) { +function LoadSoundFromWave(wave) { return r.BindLoadSoundFromWave( wave.frameCount, wave.sampleRate, @@ -7803,7 +7803,7 @@ raylib.LoadSoundFromWave = LoadSoundFromWave * * @return {boolean} The resulting bool. */ -function IsSoundReady (sound) { +function IsSoundReady(sound) { return r.BindIsSoundReady( sound.stream.buffer, sound.stream.processor, @@ -7824,7 +7824,7 @@ raylib.IsSoundReady = IsSoundReady * * @return {undefined} */ -function UpdateSound (sound, data, sampleCount) { +function UpdateSound(sound, data, sampleCount) { return r.BindUpdateSound( sound.stream.buffer, sound.stream.processor, @@ -7845,7 +7845,7 @@ raylib.UpdateSound = UpdateSound * * @return {undefined} */ -function UnloadWave (wave) { +function UnloadWave(wave) { return r.BindUnloadWave( wave.frameCount, wave.sampleRate, @@ -7863,7 +7863,7 @@ raylib.UnloadWave = UnloadWave * * @return {undefined} */ -function UnloadSound (sound) { +function UnloadSound(sound) { return r.BindUnloadSound( sound.stream.buffer, sound.stream.processor, @@ -7883,7 +7883,7 @@ raylib.UnloadSound = UnloadSound * * @return {boolean} The resulting bool. */ -function ExportWave (wave, fileName) { +function ExportWave(wave, fileName) { return r.BindExportWave( wave.frameCount, wave.sampleRate, @@ -7903,7 +7903,7 @@ raylib.ExportWave = ExportWave * * @return {boolean} The resulting bool. */ -function ExportWaveAsCode (wave, fileName) { +function ExportWaveAsCode(wave, fileName) { return r.BindExportWaveAsCode( wave.frameCount, wave.sampleRate, @@ -7922,7 +7922,7 @@ raylib.ExportWaveAsCode = ExportWaveAsCode * * @return {undefined} */ -function PlaySound (sound) { +function PlaySound(sound) { return r.BindPlaySound( sound.stream.buffer, sound.stream.processor, @@ -7941,7 +7941,7 @@ raylib.PlaySound = PlaySound * * @return {undefined} */ -function StopSound (sound) { +function StopSound(sound) { return r.BindStopSound( sound.stream.buffer, sound.stream.processor, @@ -7960,7 +7960,7 @@ raylib.StopSound = StopSound * * @return {undefined} */ -function PauseSound (sound) { +function PauseSound(sound) { return r.BindPauseSound( sound.stream.buffer, sound.stream.processor, @@ -7979,7 +7979,7 @@ raylib.PauseSound = PauseSound * * @return {undefined} */ -function ResumeSound (sound) { +function ResumeSound(sound) { return r.BindResumeSound( sound.stream.buffer, sound.stream.processor, @@ -7998,7 +7998,7 @@ raylib.ResumeSound = ResumeSound * * @return {boolean} The resulting bool. */ -function IsSoundPlaying (sound) { +function IsSoundPlaying(sound) { return r.BindIsSoundPlaying( sound.stream.buffer, sound.stream.processor, @@ -8018,7 +8018,7 @@ raylib.IsSoundPlaying = IsSoundPlaying * * @return {undefined} */ -function SetSoundVolume (sound, volume) { +function SetSoundVolume(sound, volume) { return r.BindSetSoundVolume( sound.stream.buffer, sound.stream.processor, @@ -8039,7 +8039,7 @@ raylib.SetSoundVolume = SetSoundVolume * * @return {undefined} */ -function SetSoundPitch (sound, pitch) { +function SetSoundPitch(sound, pitch) { return r.BindSetSoundPitch( sound.stream.buffer, sound.stream.processor, @@ -8060,7 +8060,7 @@ raylib.SetSoundPitch = SetSoundPitch * * @return {undefined} */ -function SetSoundPan (sound, pan) { +function SetSoundPan(sound, pan) { return r.BindSetSoundPan( sound.stream.buffer, sound.stream.processor, @@ -8080,7 +8080,7 @@ raylib.SetSoundPan = SetSoundPan * * @return {Wave} The resulting Wave. */ -function WaveCopy (wave) { +function WaveCopy(wave) { return r.BindWaveCopy( wave.frameCount, wave.sampleRate, @@ -8098,7 +8098,7 @@ raylib.WaveCopy = WaveCopy * * @return {number} The resulting float *. */ -function LoadWaveSamples (wave) { +function LoadWaveSamples(wave) { return r.BindLoadWaveSamples( wave.frameCount, wave.sampleRate, @@ -8116,7 +8116,7 @@ raylib.LoadWaveSamples = LoadWaveSamples * * @return {undefined} */ -function UnloadWaveSamples (samples) { +function UnloadWaveSamples(samples) { return r.BindUnloadWaveSamples( samples ) @@ -8130,7 +8130,7 @@ raylib.UnloadWaveSamples = UnloadWaveSamples * * @return {Music} The resulting Music. */ -function LoadMusicStream (fileName) { +function LoadMusicStream(fileName) { return r.BindLoadMusicStream( fileName ) @@ -8146,7 +8146,7 @@ raylib.LoadMusicStream = LoadMusicStream * * @return {Music} The resulting Music. */ -function LoadMusicStreamFromMemory (fileType, data, dataSize) { +function LoadMusicStreamFromMemory(fileType, data, dataSize) { return r.BindLoadMusicStreamFromMemory( fileType, data, @@ -8162,7 +8162,7 @@ raylib.LoadMusicStreamFromMemory = LoadMusicStreamFromMemory * * @return {boolean} The resulting bool. */ -function IsMusicReady (music) { +function IsMusicReady(music) { return r.BindIsMusicReady( music.stream.buffer, music.stream.processor, @@ -8184,7 +8184,7 @@ raylib.IsMusicReady = IsMusicReady * * @return {undefined} */ -function UnloadMusicStream (music) { +function UnloadMusicStream(music) { return r.BindUnloadMusicStream( music.stream.buffer, music.stream.processor, @@ -8206,7 +8206,7 @@ raylib.UnloadMusicStream = UnloadMusicStream * * @return {undefined} */ -function PlayMusicStream (music) { +function PlayMusicStream(music) { return r.BindPlayMusicStream( music.stream.buffer, music.stream.processor, @@ -8228,7 +8228,7 @@ raylib.PlayMusicStream = PlayMusicStream * * @return {boolean} The resulting bool. */ -function IsMusicStreamPlaying (music) { +function IsMusicStreamPlaying(music) { return r.BindIsMusicStreamPlaying( music.stream.buffer, music.stream.processor, @@ -8250,7 +8250,7 @@ raylib.IsMusicStreamPlaying = IsMusicStreamPlaying * * @return {undefined} */ -function UpdateMusicStream (music) { +function UpdateMusicStream(music) { return r.BindUpdateMusicStream( music.stream.buffer, music.stream.processor, @@ -8272,7 +8272,7 @@ raylib.UpdateMusicStream = UpdateMusicStream * * @return {undefined} */ -function StopMusicStream (music) { +function StopMusicStream(music) { return r.BindStopMusicStream( music.stream.buffer, music.stream.processor, @@ -8294,7 +8294,7 @@ raylib.StopMusicStream = StopMusicStream * * @return {undefined} */ -function PauseMusicStream (music) { +function PauseMusicStream(music) { return r.BindPauseMusicStream( music.stream.buffer, music.stream.processor, @@ -8316,7 +8316,7 @@ raylib.PauseMusicStream = PauseMusicStream * * @return {undefined} */ -function ResumeMusicStream (music) { +function ResumeMusicStream(music) { return r.BindResumeMusicStream( music.stream.buffer, music.stream.processor, @@ -8339,7 +8339,7 @@ raylib.ResumeMusicStream = ResumeMusicStream * * @return {undefined} */ -function SeekMusicStream (music, position) { +function SeekMusicStream(music, position) { return r.BindSeekMusicStream( music.stream.buffer, music.stream.processor, @@ -8363,7 +8363,7 @@ raylib.SeekMusicStream = SeekMusicStream * * @return {undefined} */ -function SetMusicVolume (music, volume) { +function SetMusicVolume(music, volume) { return r.BindSetMusicVolume( music.stream.buffer, music.stream.processor, @@ -8387,7 +8387,7 @@ raylib.SetMusicVolume = SetMusicVolume * * @return {undefined} */ -function SetMusicPitch (music, pitch) { +function SetMusicPitch(music, pitch) { return r.BindSetMusicPitch( music.stream.buffer, music.stream.processor, @@ -8411,7 +8411,7 @@ raylib.SetMusicPitch = SetMusicPitch * * @return {undefined} */ -function SetMusicPan (music, pan) { +function SetMusicPan(music, pan) { return r.BindSetMusicPan( music.stream.buffer, music.stream.processor, @@ -8434,7 +8434,7 @@ raylib.SetMusicPan = SetMusicPan * * @return {number} The resulting float. */ -function GetMusicTimeLength (music) { +function GetMusicTimeLength(music) { return r.BindGetMusicTimeLength( music.stream.buffer, music.stream.processor, @@ -8456,7 +8456,7 @@ raylib.GetMusicTimeLength = GetMusicTimeLength * * @return {number} The resulting float. */ -function GetMusicTimePlayed (music) { +function GetMusicTimePlayed(music) { return r.BindGetMusicTimePlayed( music.stream.buffer, music.stream.processor, @@ -8480,7 +8480,7 @@ raylib.GetMusicTimePlayed = GetMusicTimePlayed * * @return {AudioStream} The resulting AudioStream. */ -function LoadAudioStream (sampleRate, sampleSize, channels) { +function LoadAudioStream(sampleRate, sampleSize, channels) { return r.BindLoadAudioStream( sampleRate, sampleSize, @@ -8496,7 +8496,7 @@ raylib.LoadAudioStream = LoadAudioStream * * @return {boolean} The resulting bool. */ -function IsAudioStreamReady (stream) { +function IsAudioStreamReady(stream) { return r.BindIsAudioStreamReady( stream.buffer, stream.processor, @@ -8514,7 +8514,7 @@ raylib.IsAudioStreamReady = IsAudioStreamReady * * @return {undefined} */ -function UnloadAudioStream (stream) { +function UnloadAudioStream(stream) { return r.BindUnloadAudioStream( stream.buffer, stream.processor, @@ -8534,7 +8534,7 @@ raylib.UnloadAudioStream = UnloadAudioStream * * @return {undefined} */ -function UpdateAudioStream (stream, data, frameCount) { +function UpdateAudioStream(stream, data, frameCount) { return r.BindUpdateAudioStream( stream.buffer, stream.processor, @@ -8554,7 +8554,7 @@ raylib.UpdateAudioStream = UpdateAudioStream * * @return {boolean} The resulting bool. */ -function IsAudioStreamProcessed (stream) { +function IsAudioStreamProcessed(stream) { return r.BindIsAudioStreamProcessed( stream.buffer, stream.processor, @@ -8572,7 +8572,7 @@ raylib.IsAudioStreamProcessed = IsAudioStreamProcessed * * @return {undefined} */ -function PlayAudioStream (stream) { +function PlayAudioStream(stream) { return r.BindPlayAudioStream( stream.buffer, stream.processor, @@ -8590,7 +8590,7 @@ raylib.PlayAudioStream = PlayAudioStream * * @return {undefined} */ -function PauseAudioStream (stream) { +function PauseAudioStream(stream) { return r.BindPauseAudioStream( stream.buffer, stream.processor, @@ -8608,7 +8608,7 @@ raylib.PauseAudioStream = PauseAudioStream * * @return {undefined} */ -function ResumeAudioStream (stream) { +function ResumeAudioStream(stream) { return r.BindResumeAudioStream( stream.buffer, stream.processor, @@ -8626,7 +8626,7 @@ raylib.ResumeAudioStream = ResumeAudioStream * * @return {boolean} The resulting bool. */ -function IsAudioStreamPlaying (stream) { +function IsAudioStreamPlaying(stream) { return r.BindIsAudioStreamPlaying( stream.buffer, stream.processor, @@ -8644,7 +8644,7 @@ raylib.IsAudioStreamPlaying = IsAudioStreamPlaying * * @return {undefined} */ -function StopAudioStream (stream) { +function StopAudioStream(stream) { return r.BindStopAudioStream( stream.buffer, stream.processor, @@ -8663,7 +8663,7 @@ raylib.StopAudioStream = StopAudioStream * * @return {undefined} */ -function SetAudioStreamVolume (stream, volume) { +function SetAudioStreamVolume(stream, volume) { return r.BindSetAudioStreamVolume( stream.buffer, stream.processor, @@ -8683,7 +8683,7 @@ raylib.SetAudioStreamVolume = SetAudioStreamVolume * * @return {undefined} */ -function SetAudioStreamPitch (stream, pitch) { +function SetAudioStreamPitch(stream, pitch) { return r.BindSetAudioStreamPitch( stream.buffer, stream.processor, @@ -8703,7 +8703,7 @@ raylib.SetAudioStreamPitch = SetAudioStreamPitch * * @return {undefined} */ -function SetAudioStreamPan (stream, pan) { +function SetAudioStreamPan(stream, pan) { return r.BindSetAudioStreamPan( stream.buffer, stream.processor, @@ -8722,7 +8722,7 @@ raylib.SetAudioStreamPan = SetAudioStreamPan * * @return {undefined} */ -function SetAudioStreamBufferSizeDefault (size) { +function SetAudioStreamBufferSizeDefault(size) { return r.BindSetAudioStreamBufferSizeDefault( size ) @@ -8739,7 +8739,7 @@ raylib.SetAudioStreamBufferSizeDefault = SetAudioStreamBufferSizeDefault * * @return {number} The resulting float. */ -function EaseLinearNone (t, b, c, d) { +function EaseLinearNone(t, b, c, d) { return r.BindEaseLinearNone( t, b, @@ -8759,7 +8759,7 @@ raylib.EaseLinearNone = EaseLinearNone * * @return {number} The resulting float. */ -function EaseLinearIn (t, b, c, d) { +function EaseLinearIn(t, b, c, d) { return r.BindEaseLinearIn( t, b, @@ -8779,7 +8779,7 @@ raylib.EaseLinearIn = EaseLinearIn * * @return {number} The resulting float. */ -function EaseLinearOut (t, b, c, d) { +function EaseLinearOut(t, b, c, d) { return r.BindEaseLinearOut( t, b, @@ -8799,7 +8799,7 @@ raylib.EaseLinearOut = EaseLinearOut * * @return {number} The resulting float. */ -function EaseLinearInOut (t, b, c, d) { +function EaseLinearInOut(t, b, c, d) { return r.BindEaseLinearInOut( t, b, @@ -8819,7 +8819,7 @@ raylib.EaseLinearInOut = EaseLinearInOut * * @return {number} The resulting float. */ -function EaseSineIn (t, b, c, d) { +function EaseSineIn(t, b, c, d) { return r.BindEaseSineIn( t, b, @@ -8839,7 +8839,7 @@ raylib.EaseSineIn = EaseSineIn * * @return {number} The resulting float. */ -function EaseSineOut (t, b, c, d) { +function EaseSineOut(t, b, c, d) { return r.BindEaseSineOut( t, b, @@ -8859,7 +8859,7 @@ raylib.EaseSineOut = EaseSineOut * * @return {number} The resulting float. */ -function EaseSineInOut (t, b, c, d) { +function EaseSineInOut(t, b, c, d) { return r.BindEaseSineInOut( t, b, @@ -8879,7 +8879,7 @@ raylib.EaseSineInOut = EaseSineInOut * * @return {number} The resulting float. */ -function EaseCircIn (t, b, c, d) { +function EaseCircIn(t, b, c, d) { return r.BindEaseCircIn( t, b, @@ -8899,7 +8899,7 @@ raylib.EaseCircIn = EaseCircIn * * @return {number} The resulting float. */ -function EaseCircOut (t, b, c, d) { +function EaseCircOut(t, b, c, d) { return r.BindEaseCircOut( t, b, @@ -8919,7 +8919,7 @@ raylib.EaseCircOut = EaseCircOut * * @return {number} The resulting float. */ -function EaseCircInOut (t, b, c, d) { +function EaseCircInOut(t, b, c, d) { return r.BindEaseCircInOut( t, b, @@ -8939,7 +8939,7 @@ raylib.EaseCircInOut = EaseCircInOut * * @return {number} The resulting float. */ -function EaseCubicIn (t, b, c, d) { +function EaseCubicIn(t, b, c, d) { return r.BindEaseCubicIn( t, b, @@ -8959,7 +8959,7 @@ raylib.EaseCubicIn = EaseCubicIn * * @return {number} The resulting float. */ -function EaseCubicOut (t, b, c, d) { +function EaseCubicOut(t, b, c, d) { return r.BindEaseCubicOut( t, b, @@ -8979,7 +8979,7 @@ raylib.EaseCubicOut = EaseCubicOut * * @return {number} The resulting float. */ -function EaseCubicInOut (t, b, c, d) { +function EaseCubicInOut(t, b, c, d) { return r.BindEaseCubicInOut( t, b, @@ -8999,7 +8999,7 @@ raylib.EaseCubicInOut = EaseCubicInOut * * @return {number} The resulting float. */ -function EaseQuadIn (t, b, c, d) { +function EaseQuadIn(t, b, c, d) { return r.BindEaseQuadIn( t, b, @@ -9019,7 +9019,7 @@ raylib.EaseQuadIn = EaseQuadIn * * @return {number} The resulting float. */ -function EaseQuadOut (t, b, c, d) { +function EaseQuadOut(t, b, c, d) { return r.BindEaseQuadOut( t, b, @@ -9039,7 +9039,7 @@ raylib.EaseQuadOut = EaseQuadOut * * @return {number} The resulting float. */ -function EaseQuadInOut (t, b, c, d) { +function EaseQuadInOut(t, b, c, d) { return r.BindEaseQuadInOut( t, b, @@ -9059,7 +9059,7 @@ raylib.EaseQuadInOut = EaseQuadInOut * * @return {number} The resulting float. */ -function EaseExpoIn (t, b, c, d) { +function EaseExpoIn(t, b, c, d) { return r.BindEaseExpoIn( t, b, @@ -9079,7 +9079,7 @@ raylib.EaseExpoIn = EaseExpoIn * * @return {number} The resulting float. */ -function EaseExpoOut (t, b, c, d) { +function EaseExpoOut(t, b, c, d) { return r.BindEaseExpoOut( t, b, @@ -9099,7 +9099,7 @@ raylib.EaseExpoOut = EaseExpoOut * * @return {number} The resulting float. */ -function EaseExpoInOut (t, b, c, d) { +function EaseExpoInOut(t, b, c, d) { return r.BindEaseExpoInOut( t, b, @@ -9119,7 +9119,7 @@ raylib.EaseExpoInOut = EaseExpoInOut * * @return {number} The resulting float. */ -function EaseBackIn (t, b, c, d) { +function EaseBackIn(t, b, c, d) { return r.BindEaseBackIn( t, b, @@ -9139,7 +9139,7 @@ raylib.EaseBackIn = EaseBackIn * * @return {number} The resulting float. */ -function EaseBackOut (t, b, c, d) { +function EaseBackOut(t, b, c, d) { return r.BindEaseBackOut( t, b, @@ -9159,7 +9159,7 @@ raylib.EaseBackOut = EaseBackOut * * @return {number} The resulting float. */ -function EaseBackInOut (t, b, c, d) { +function EaseBackInOut(t, b, c, d) { return r.BindEaseBackInOut( t, b, @@ -9179,7 +9179,7 @@ raylib.EaseBackInOut = EaseBackInOut * * @return {number} The resulting float. */ -function EaseBounceOut (t, b, c, d) { +function EaseBounceOut(t, b, c, d) { return r.BindEaseBounceOut( t, b, @@ -9199,7 +9199,7 @@ raylib.EaseBounceOut = EaseBounceOut * * @return {number} The resulting float. */ -function EaseBounceIn (t, b, c, d) { +function EaseBounceIn(t, b, c, d) { return r.BindEaseBounceIn( t, b, @@ -9219,7 +9219,7 @@ raylib.EaseBounceIn = EaseBounceIn * * @return {number} The resulting float. */ -function EaseBounceInOut (t, b, c, d) { +function EaseBounceInOut(t, b, c, d) { return r.BindEaseBounceInOut( t, b, @@ -9239,7 +9239,7 @@ raylib.EaseBounceInOut = EaseBounceInOut * * @return {number} The resulting float. */ -function EaseElasticIn (t, b, c, d) { +function EaseElasticIn(t, b, c, d) { return r.BindEaseElasticIn( t, b, @@ -9259,7 +9259,7 @@ raylib.EaseElasticIn = EaseElasticIn * * @return {number} The resulting float. */ -function EaseElasticOut (t, b, c, d) { +function EaseElasticOut(t, b, c, d) { return r.BindEaseElasticOut( t, b, @@ -9279,7 +9279,7 @@ raylib.EaseElasticOut = EaseElasticOut * * @return {number} The resulting float. */ -function EaseElasticInOut (t, b, c, d) { +function EaseElasticInOut(t, b, c, d) { return r.BindEaseElasticInOut( t, b, @@ -9289,7 +9289,7 @@ function EaseElasticInOut (t, b, c, d) { } raylib.EaseElasticInOut = EaseElasticInOut -function Clamp (value, min, max) { +function Clamp(value, min, max) { return r.BindClamp( value, min, @@ -9298,7 +9298,7 @@ function Clamp (value, min, max) { } raylib.Clamp = Clamp -function Lerp (start, end, amount) { +function Lerp(start, end, amount) { return r.BindLerp( start, end, @@ -9307,7 +9307,7 @@ function Lerp (start, end, amount) { } raylib.Lerp = Lerp -function Normalize (value, start, end) { +function Normalize(value, start, end) { return r.BindNormalize( value, start, @@ -9316,7 +9316,7 @@ function Normalize (value, start, end) { } raylib.Normalize = Normalize -function Remap (value, inputStart, inputEnd, outputStart, outputEnd) { +function Remap(value, inputStart, inputEnd, outputStart, outputEnd) { return r.BindRemap( value, inputStart, @@ -9327,7 +9327,7 @@ function Remap (value, inputStart, inputEnd, outputStart, outputEnd) { } raylib.Remap = Remap -function Wrap (value, min, max) { +function Wrap(value, min, max) { return r.BindWrap( value, min, @@ -9336,7 +9336,7 @@ function Wrap (value, min, max) { } raylib.Wrap = Wrap -function FloatEquals (x, y) { +function FloatEquals(x, y) { return r.BindFloatEquals( x, y @@ -9344,17 +9344,17 @@ function FloatEquals (x, y) { } raylib.FloatEquals = FloatEquals -function Vector2Zero () { +function Vector2Zero() { return r.BindVector2Zero() } raylib.Vector2Zero = Vector2Zero -function Vector2One () { +function Vector2One() { return r.BindVector2One() } raylib.Vector2One = Vector2One -function Vector2Add (v1, v2) { +function Vector2Add(v1, v2) { return r.BindVector2Add( v1.x, v1.y, @@ -9364,7 +9364,7 @@ function Vector2Add (v1, v2) { } raylib.Vector2Add = Vector2Add -function Vector2AddValue (v, add) { +function Vector2AddValue(v, add) { return r.BindVector2AddValue( v.x, v.y, @@ -9373,7 +9373,7 @@ function Vector2AddValue (v, add) { } raylib.Vector2AddValue = Vector2AddValue -function Vector2Subtract (v1, v2) { +function Vector2Subtract(v1, v2) { return r.BindVector2Subtract( v1.x, v1.y, @@ -9383,7 +9383,7 @@ function Vector2Subtract (v1, v2) { } raylib.Vector2Subtract = Vector2Subtract -function Vector2SubtractValue (v, sub) { +function Vector2SubtractValue(v, sub) { return r.BindVector2SubtractValue( v.x, v.y, @@ -9392,7 +9392,7 @@ function Vector2SubtractValue (v, sub) { } raylib.Vector2SubtractValue = Vector2SubtractValue -function Vector2Length (v) { +function Vector2Length(v) { return r.BindVector2Length( v.x, v.y @@ -9400,7 +9400,7 @@ function Vector2Length (v) { } raylib.Vector2Length = Vector2Length -function Vector2LengthSqr (v) { +function Vector2LengthSqr(v) { return r.BindVector2LengthSqr( v.x, v.y @@ -9408,7 +9408,7 @@ function Vector2LengthSqr (v) { } raylib.Vector2LengthSqr = Vector2LengthSqr -function Vector2DotProduct (v1, v2) { +function Vector2DotProduct(v1, v2) { return r.BindVector2DotProduct( v1.x, v1.y, @@ -9418,7 +9418,7 @@ function Vector2DotProduct (v1, v2) { } raylib.Vector2DotProduct = Vector2DotProduct -function Vector2Distance (v1, v2) { +function Vector2Distance(v1, v2) { return r.BindVector2Distance( v1.x, v1.y, @@ -9428,7 +9428,7 @@ function Vector2Distance (v1, v2) { } raylib.Vector2Distance = Vector2Distance -function Vector2DistanceSqr (v1, v2) { +function Vector2DistanceSqr(v1, v2) { return r.BindVector2DistanceSqr( v1.x, v1.y, @@ -9438,7 +9438,7 @@ function Vector2DistanceSqr (v1, v2) { } raylib.Vector2DistanceSqr = Vector2DistanceSqr -function Vector2Angle (v1, v2) { +function Vector2Angle(v1, v2) { return r.BindVector2Angle( v1.x, v1.y, @@ -9448,7 +9448,7 @@ function Vector2Angle (v1, v2) { } raylib.Vector2Angle = Vector2Angle -function Vector2LineAngle (start, end) { +function Vector2LineAngle(start, end) { return r.BindVector2LineAngle( start.x, start.y, @@ -9458,7 +9458,7 @@ function Vector2LineAngle (start, end) { } raylib.Vector2LineAngle = Vector2LineAngle -function Vector2Scale (v, scale) { +function Vector2Scale(v, scale) { return r.BindVector2Scale( v.x, v.y, @@ -9467,7 +9467,7 @@ function Vector2Scale (v, scale) { } raylib.Vector2Scale = Vector2Scale -function Vector2Multiply (v1, v2) { +function Vector2Multiply(v1, v2) { return r.BindVector2Multiply( v1.x, v1.y, @@ -9477,7 +9477,7 @@ function Vector2Multiply (v1, v2) { } raylib.Vector2Multiply = Vector2Multiply -function Vector2Negate (v) { +function Vector2Negate(v) { return r.BindVector2Negate( v.x, v.y @@ -9485,7 +9485,7 @@ function Vector2Negate (v) { } raylib.Vector2Negate = Vector2Negate -function Vector2Divide (v1, v2) { +function Vector2Divide(v1, v2) { return r.BindVector2Divide( v1.x, v1.y, @@ -9495,7 +9495,7 @@ function Vector2Divide (v1, v2) { } raylib.Vector2Divide = Vector2Divide -function Vector2Normalize (v) { +function Vector2Normalize(v) { return r.BindVector2Normalize( v.x, v.y @@ -9503,7 +9503,7 @@ function Vector2Normalize (v) { } raylib.Vector2Normalize = Vector2Normalize -function Vector2Transform (v, mat) { +function Vector2Transform(v, mat) { return r.BindVector2Transform( v.x, v.y, @@ -9527,7 +9527,7 @@ function Vector2Transform (v, mat) { } raylib.Vector2Transform = Vector2Transform -function Vector2Lerp (v1, v2, amount) { +function Vector2Lerp(v1, v2, amount) { return r.BindVector2Lerp( v1.x, v1.y, @@ -9538,7 +9538,7 @@ function Vector2Lerp (v1, v2, amount) { } raylib.Vector2Lerp = Vector2Lerp -function Vector2Reflect (v, normal) { +function Vector2Reflect(v, normal) { return r.BindVector2Reflect( v.x, v.y, @@ -9548,7 +9548,7 @@ function Vector2Reflect (v, normal) { } raylib.Vector2Reflect = Vector2Reflect -function Vector2Rotate (v, angle) { +function Vector2Rotate(v, angle) { return r.BindVector2Rotate( v.x, v.y, @@ -9557,7 +9557,7 @@ function Vector2Rotate (v, angle) { } raylib.Vector2Rotate = Vector2Rotate -function Vector2MoveTowards (v, target, maxDistance) { +function Vector2MoveTowards(v, target, maxDistance) { return r.BindVector2MoveTowards( v.x, v.y, @@ -9568,7 +9568,7 @@ function Vector2MoveTowards (v, target, maxDistance) { } raylib.Vector2MoveTowards = Vector2MoveTowards -function Vector2Invert (v) { +function Vector2Invert(v) { return r.BindVector2Invert( v.x, v.y @@ -9576,7 +9576,7 @@ function Vector2Invert (v) { } raylib.Vector2Invert = Vector2Invert -function Vector2Clamp (v, min, max) { +function Vector2Clamp(v, min, max) { return r.BindVector2Clamp( v.x, v.y, @@ -9588,7 +9588,7 @@ function Vector2Clamp (v, min, max) { } raylib.Vector2Clamp = Vector2Clamp -function Vector2ClampValue (v, min, max) { +function Vector2ClampValue(v, min, max) { return r.BindVector2ClampValue( v.x, v.y, @@ -9598,7 +9598,7 @@ function Vector2ClampValue (v, min, max) { } raylib.Vector2ClampValue = Vector2ClampValue -function Vector2Equals (p, q) { +function Vector2Equals(p, q) { return r.BindVector2Equals( p.x, p.y, @@ -9608,17 +9608,17 @@ function Vector2Equals (p, q) { } raylib.Vector2Equals = Vector2Equals -function Vector3Zero () { +function Vector3Zero() { return r.BindVector3Zero() } raylib.Vector3Zero = Vector3Zero -function Vector3One () { +function Vector3One() { return r.BindVector3One() } raylib.Vector3One = Vector3One -function Vector3Add (v1, v2) { +function Vector3Add(v1, v2) { return r.BindVector3Add( v1.x, v1.y, @@ -9630,7 +9630,7 @@ function Vector3Add (v1, v2) { } raylib.Vector3Add = Vector3Add -function Vector3AddValue (v, add) { +function Vector3AddValue(v, add) { return r.BindVector3AddValue( v.x, v.y, @@ -9640,7 +9640,7 @@ function Vector3AddValue (v, add) { } raylib.Vector3AddValue = Vector3AddValue -function Vector3Subtract (v1, v2) { +function Vector3Subtract(v1, v2) { return r.BindVector3Subtract( v1.x, v1.y, @@ -9652,7 +9652,7 @@ function Vector3Subtract (v1, v2) { } raylib.Vector3Subtract = Vector3Subtract -function Vector3SubtractValue (v, sub) { +function Vector3SubtractValue(v, sub) { return r.BindVector3SubtractValue( v.x, v.y, @@ -9662,7 +9662,7 @@ function Vector3SubtractValue (v, sub) { } raylib.Vector3SubtractValue = Vector3SubtractValue -function Vector3Scale (v, scalar) { +function Vector3Scale(v, scalar) { return r.BindVector3Scale( v.x, v.y, @@ -9672,7 +9672,7 @@ function Vector3Scale (v, scalar) { } raylib.Vector3Scale = Vector3Scale -function Vector3Multiply (v1, v2) { +function Vector3Multiply(v1, v2) { return r.BindVector3Multiply( v1.x, v1.y, @@ -9684,7 +9684,7 @@ function Vector3Multiply (v1, v2) { } raylib.Vector3Multiply = Vector3Multiply -function Vector3CrossProduct (v1, v2) { +function Vector3CrossProduct(v1, v2) { return r.BindVector3CrossProduct( v1.x, v1.y, @@ -9696,7 +9696,7 @@ function Vector3CrossProduct (v1, v2) { } raylib.Vector3CrossProduct = Vector3CrossProduct -function Vector3Perpendicular (v) { +function Vector3Perpendicular(v) { return r.BindVector3Perpendicular( v.x, v.y, @@ -9705,21 +9705,21 @@ function Vector3Perpendicular (v) { } raylib.Vector3Perpendicular = Vector3Perpendicular -function Vector3Length (v) { +function Vector3Length(v) { return r.BindVector3Length( v ) } raylib.Vector3Length = Vector3Length -function Vector3LengthSqr (v) { +function Vector3LengthSqr(v) { return r.BindVector3LengthSqr( v ) } raylib.Vector3LengthSqr = Vector3LengthSqr -function Vector3DotProduct (v1, v2) { +function Vector3DotProduct(v1, v2) { return r.BindVector3DotProduct( v1.x, v1.y, @@ -9731,7 +9731,7 @@ function Vector3DotProduct (v1, v2) { } raylib.Vector3DotProduct = Vector3DotProduct -function Vector3Distance (v1, v2) { +function Vector3Distance(v1, v2) { return r.BindVector3Distance( v1.x, v1.y, @@ -9743,7 +9743,7 @@ function Vector3Distance (v1, v2) { } raylib.Vector3Distance = Vector3Distance -function Vector3DistanceSqr (v1, v2) { +function Vector3DistanceSqr(v1, v2) { return r.BindVector3DistanceSqr( v1.x, v1.y, @@ -9755,7 +9755,7 @@ function Vector3DistanceSqr (v1, v2) { } raylib.Vector3DistanceSqr = Vector3DistanceSqr -function Vector3Angle (v1, v2) { +function Vector3Angle(v1, v2) { return r.BindVector3Angle( v1.x, v1.y, @@ -9767,7 +9767,7 @@ function Vector3Angle (v1, v2) { } raylib.Vector3Angle = Vector3Angle -function Vector3Negate (v) { +function Vector3Negate(v) { return r.BindVector3Negate( v.x, v.y, @@ -9776,7 +9776,7 @@ function Vector3Negate (v) { } raylib.Vector3Negate = Vector3Negate -function Vector3Divide (v1, v2) { +function Vector3Divide(v1, v2) { return r.BindVector3Divide( v1.x, v1.y, @@ -9788,7 +9788,7 @@ function Vector3Divide (v1, v2) { } raylib.Vector3Divide = Vector3Divide -function Vector3Normalize (v) { +function Vector3Normalize(v) { return r.BindVector3Normalize( v.x, v.y, @@ -9797,7 +9797,7 @@ function Vector3Normalize (v) { } raylib.Vector3Normalize = Vector3Normalize -function Vector3OrthoNormalize (v1, v2) { +function Vector3OrthoNormalize(v1, v2) { return r.BindVector3OrthoNormalize( v1, v2 @@ -9805,7 +9805,7 @@ function Vector3OrthoNormalize (v1, v2) { } raylib.Vector3OrthoNormalize = Vector3OrthoNormalize -function Vector3Transform (v, mat) { +function Vector3Transform(v, mat) { return r.BindVector3Transform( v.x, v.y, @@ -9830,7 +9830,7 @@ function Vector3Transform (v, mat) { } raylib.Vector3Transform = Vector3Transform -function Vector3RotateByQuaternion (v, q) { +function Vector3RotateByQuaternion(v, q) { return r.BindVector3RotateByQuaternion( v.x, v.y, @@ -9840,7 +9840,7 @@ function Vector3RotateByQuaternion (v, q) { } raylib.Vector3RotateByQuaternion = Vector3RotateByQuaternion -function Vector3RotateByAxisAngle (v, axis, angle) { +function Vector3RotateByAxisAngle(v, axis, angle) { return r.BindVector3RotateByAxisAngle( v.x, v.y, @@ -9853,7 +9853,7 @@ function Vector3RotateByAxisAngle (v, axis, angle) { } raylib.Vector3RotateByAxisAngle = Vector3RotateByAxisAngle -function Vector3Lerp (v1, v2, amount) { +function Vector3Lerp(v1, v2, amount) { return r.BindVector3Lerp( v1.x, v1.y, @@ -9866,7 +9866,7 @@ function Vector3Lerp (v1, v2, amount) { } raylib.Vector3Lerp = Vector3Lerp -function Vector3Reflect (v, normal) { +function Vector3Reflect(v, normal) { return r.BindVector3Reflect( v.x, v.y, @@ -9878,7 +9878,7 @@ function Vector3Reflect (v, normal) { } raylib.Vector3Reflect = Vector3Reflect -function Vector3Min (v1, v2) { +function Vector3Min(v1, v2) { return r.BindVector3Min( v1.x, v1.y, @@ -9890,7 +9890,7 @@ function Vector3Min (v1, v2) { } raylib.Vector3Min = Vector3Min -function Vector3Max (v1, v2) { +function Vector3Max(v1, v2) { return r.BindVector3Max( v1.x, v1.y, @@ -9902,7 +9902,7 @@ function Vector3Max (v1, v2) { } raylib.Vector3Max = Vector3Max -function Vector3Barycenter (p, a, b, c) { +function Vector3Barycenter(p, a, b, c) { return r.BindVector3Barycenter( p.x, p.y, @@ -9920,7 +9920,7 @@ function Vector3Barycenter (p, a, b, c) { } raylib.Vector3Barycenter = Vector3Barycenter -function Vector3Unproject (source, projection, view) { +function Vector3Unproject(source, projection, view) { return r.BindVector3Unproject( source.x, source.y, @@ -9961,7 +9961,7 @@ function Vector3Unproject (source, projection, view) { } raylib.Vector3Unproject = Vector3Unproject -function Vector3Invert (v) { +function Vector3Invert(v) { return r.BindVector3Invert( v.x, v.y, @@ -9970,7 +9970,7 @@ function Vector3Invert (v) { } raylib.Vector3Invert = Vector3Invert -function Vector3Clamp (v, min, max) { +function Vector3Clamp(v, min, max) { return r.BindVector3Clamp( v.x, v.y, @@ -9985,7 +9985,7 @@ function Vector3Clamp (v, min, max) { } raylib.Vector3Clamp = Vector3Clamp -function Vector3ClampValue (v, min, max) { +function Vector3ClampValue(v, min, max) { return r.BindVector3ClampValue( v.x, v.y, @@ -9996,7 +9996,7 @@ function Vector3ClampValue (v, min, max) { } raylib.Vector3ClampValue = Vector3ClampValue -function Vector3Equals (p, q) { +function Vector3Equals(p, q) { return r.BindVector3Equals( p.x, p.y, @@ -10008,7 +10008,7 @@ function Vector3Equals (p, q) { } raylib.Vector3Equals = Vector3Equals -function Vector3Refract (v, n, r) { +function Vector3Refract(v, n, r) { return r.BindVector3Refract( v.x, v.y, @@ -10021,7 +10021,7 @@ function Vector3Refract (v, n, r) { } raylib.Vector3Refract = Vector3Refract -function MatrixDeterminant (mat) { +function MatrixDeterminant(mat) { return r.BindMatrixDeterminant( mat.m0, mat.m4, @@ -10043,7 +10043,7 @@ function MatrixDeterminant (mat) { } raylib.MatrixDeterminant = MatrixDeterminant -function MatrixTrace (mat) { +function MatrixTrace(mat) { return r.BindMatrixTrace( mat.m0, mat.m4, @@ -10065,7 +10065,7 @@ function MatrixTrace (mat) { } raylib.MatrixTrace = MatrixTrace -function MatrixTranspose (mat) { +function MatrixTranspose(mat) { return r.BindMatrixTranspose( mat.m0, mat.m4, @@ -10087,7 +10087,7 @@ function MatrixTranspose (mat) { } raylib.MatrixTranspose = MatrixTranspose -function MatrixInvert (mat) { +function MatrixInvert(mat) { return r.BindMatrixInvert( mat.m0, mat.m4, @@ -10109,12 +10109,12 @@ function MatrixInvert (mat) { } raylib.MatrixInvert = MatrixInvert -function MatrixIdentity () { +function MatrixIdentity() { return r.BindMatrixIdentity() } raylib.MatrixIdentity = MatrixIdentity -function MatrixAdd (left, right) { +function MatrixAdd(left, right) { return r.BindMatrixAdd( left.m0, left.m4, @@ -10152,7 +10152,7 @@ function MatrixAdd (left, right) { } raylib.MatrixAdd = MatrixAdd -function MatrixSubtract (left, right) { +function MatrixSubtract(left, right) { return r.BindMatrixSubtract( left.m0, left.m4, @@ -10190,7 +10190,7 @@ function MatrixSubtract (left, right) { } raylib.MatrixSubtract = MatrixSubtract -function MatrixMultiply (left, right) { +function MatrixMultiply(left, right) { return r.BindMatrixMultiply( left.m0, left.m4, @@ -10228,7 +10228,7 @@ function MatrixMultiply (left, right) { } raylib.MatrixMultiply = MatrixMultiply -function MatrixTranslate (x, y, z) { +function MatrixTranslate(x, y, z) { return r.BindMatrixTranslate( x, y, @@ -10237,7 +10237,7 @@ function MatrixTranslate (x, y, z) { } raylib.MatrixTranslate = MatrixTranslate -function MatrixRotate (axis, angle) { +function MatrixRotate(axis, angle) { return r.BindMatrixRotate( axis.x, axis.y, @@ -10247,28 +10247,28 @@ function MatrixRotate (axis, angle) { } raylib.MatrixRotate = MatrixRotate -function MatrixRotateX (angle) { +function MatrixRotateX(angle) { return r.BindMatrixRotateX( angle ) } raylib.MatrixRotateX = MatrixRotateX -function MatrixRotateY (angle) { +function MatrixRotateY(angle) { return r.BindMatrixRotateY( angle ) } raylib.MatrixRotateY = MatrixRotateY -function MatrixRotateZ (angle) { +function MatrixRotateZ(angle) { return r.BindMatrixRotateZ( angle ) } raylib.MatrixRotateZ = MatrixRotateZ -function MatrixRotateXYZ (angle) { +function MatrixRotateXYZ(angle) { return r.BindMatrixRotateXYZ( angle.x, angle.y, @@ -10277,7 +10277,7 @@ function MatrixRotateXYZ (angle) { } raylib.MatrixRotateXYZ = MatrixRotateXYZ -function MatrixRotateZYX (angle) { +function MatrixRotateZYX(angle) { return r.BindMatrixRotateZYX( angle.x, angle.y, @@ -10286,7 +10286,7 @@ function MatrixRotateZYX (angle) { } raylib.MatrixRotateZYX = MatrixRotateZYX -function MatrixScale (x, y, z) { +function MatrixScale(x, y, z) { return r.BindMatrixScale( x, y, @@ -10295,7 +10295,7 @@ function MatrixScale (x, y, z) { } raylib.MatrixScale = MatrixScale -function MatrixFrustum (left, right, bottom, top, near, far) { +function MatrixFrustum(left, right, bottom, top, near, far) { return r.BindMatrixFrustum( left, right, @@ -10307,7 +10307,7 @@ function MatrixFrustum (left, right, bottom, top, near, far) { } raylib.MatrixFrustum = MatrixFrustum -function MatrixPerspective (fovy, aspect, near, far) { +function MatrixPerspective(fovy, aspect, near, far) { return r.BindMatrixPerspective( fovy, aspect, @@ -10317,7 +10317,7 @@ function MatrixPerspective (fovy, aspect, near, far) { } raylib.MatrixPerspective = MatrixPerspective -function MatrixOrtho (left, right, bottom, top, near, far) { +function MatrixOrtho(left, right, bottom, top, near, far) { return r.BindMatrixOrtho( left, right, @@ -10329,7 +10329,7 @@ function MatrixOrtho (left, right, bottom, top, near, far) { } raylib.MatrixOrtho = MatrixOrtho -function MatrixLookAt (eye, target, up) { +function MatrixLookAt(eye, target, up) { return r.BindMatrixLookAt( eye.x, eye.y, @@ -10344,7 +10344,7 @@ function MatrixLookAt (eye, target, up) { } raylib.MatrixLookAt = MatrixLookAt -function QuaternionAdd (q1, q2) { +function QuaternionAdd(q1, q2) { return r.BindQuaternionAdd( q1, q2 @@ -10352,7 +10352,7 @@ function QuaternionAdd (q1, q2) { } raylib.QuaternionAdd = QuaternionAdd -function QuaternionAddValue (q, add) { +function QuaternionAddValue(q, add) { return r.BindQuaternionAddValue( q, add @@ -10360,7 +10360,7 @@ function QuaternionAddValue (q, add) { } raylib.QuaternionAddValue = QuaternionAddValue -function QuaternionSubtract (q1, q2) { +function QuaternionSubtract(q1, q2) { return r.BindQuaternionSubtract( q1, q2 @@ -10368,7 +10368,7 @@ function QuaternionSubtract (q1, q2) { } raylib.QuaternionSubtract = QuaternionSubtract -function QuaternionSubtractValue (q, sub) { +function QuaternionSubtractValue(q, sub) { return r.BindQuaternionSubtractValue( q, sub @@ -10376,33 +10376,33 @@ function QuaternionSubtractValue (q, sub) { } raylib.QuaternionSubtractValue = QuaternionSubtractValue -function QuaternionIdentity () { +function QuaternionIdentity() { return r.BindQuaternionIdentity() } raylib.QuaternionIdentity = QuaternionIdentity -function QuaternionLength (q) { +function QuaternionLength(q) { return r.BindQuaternionLength( q ) } raylib.QuaternionLength = QuaternionLength -function QuaternionNormalize (q) { +function QuaternionNormalize(q) { return r.BindQuaternionNormalize( q ) } raylib.QuaternionNormalize = QuaternionNormalize -function QuaternionInvert (q) { +function QuaternionInvert(q) { return r.BindQuaternionInvert( q ) } raylib.QuaternionInvert = QuaternionInvert -function QuaternionMultiply (q1, q2) { +function QuaternionMultiply(q1, q2) { return r.BindQuaternionMultiply( q1, q2 @@ -10410,7 +10410,7 @@ function QuaternionMultiply (q1, q2) { } raylib.QuaternionMultiply = QuaternionMultiply -function QuaternionScale (q, mul) { +function QuaternionScale(q, mul) { return r.BindQuaternionScale( q, mul @@ -10418,7 +10418,7 @@ function QuaternionScale (q, mul) { } raylib.QuaternionScale = QuaternionScale -function QuaternionDivide (q1, q2) { +function QuaternionDivide(q1, q2) { return r.BindQuaternionDivide( q1, q2 @@ -10426,7 +10426,7 @@ function QuaternionDivide (q1, q2) { } raylib.QuaternionDivide = QuaternionDivide -function QuaternionLerp (q1, q2, amount) { +function QuaternionLerp(q1, q2, amount) { return r.BindQuaternionLerp( q1, q2, @@ -10435,7 +10435,7 @@ function QuaternionLerp (q1, q2, amount) { } raylib.QuaternionLerp = QuaternionLerp -function QuaternionNlerp (q1, q2, amount) { +function QuaternionNlerp(q1, q2, amount) { return r.BindQuaternionNlerp( q1, q2, @@ -10444,7 +10444,7 @@ function QuaternionNlerp (q1, q2, amount) { } raylib.QuaternionNlerp = QuaternionNlerp -function QuaternionSlerp (q1, q2, amount) { +function QuaternionSlerp(q1, q2, amount) { return r.BindQuaternionSlerp( q1, q2, @@ -10453,7 +10453,7 @@ function QuaternionSlerp (q1, q2, amount) { } raylib.QuaternionSlerp = QuaternionSlerp -function QuaternionFromVector3ToVector3 (from, to) { +function QuaternionFromVector3ToVector3(from, to) { return r.BindQuaternionFromVector3ToVector3( from.x, from.y, @@ -10465,7 +10465,7 @@ function QuaternionFromVector3ToVector3 (from, to) { } raylib.QuaternionFromVector3ToVector3 = QuaternionFromVector3ToVector3 -function QuaternionFromMatrix (mat) { +function QuaternionFromMatrix(mat) { return r.BindQuaternionFromMatrix( mat.m0, mat.m4, @@ -10487,14 +10487,14 @@ function QuaternionFromMatrix (mat) { } raylib.QuaternionFromMatrix = QuaternionFromMatrix -function QuaternionToMatrix (q) { +function QuaternionToMatrix(q) { return r.BindQuaternionToMatrix( q ) } raylib.QuaternionToMatrix = QuaternionToMatrix -function QuaternionFromAxisAngle (axis, angle) { +function QuaternionFromAxisAngle(axis, angle) { return r.BindQuaternionFromAxisAngle( axis.x, axis.y, @@ -10504,7 +10504,7 @@ function QuaternionFromAxisAngle (axis, angle) { } raylib.QuaternionFromAxisAngle = QuaternionFromAxisAngle -function QuaternionToAxisAngle (q, outAxis, outAngle) { +function QuaternionToAxisAngle(q, outAxis, outAngle) { return r.BindQuaternionToAxisAngle( q, outAxis, @@ -10513,7 +10513,7 @@ function QuaternionToAxisAngle (q, outAxis, outAngle) { } raylib.QuaternionToAxisAngle = QuaternionToAxisAngle -function QuaternionFromEuler (pitch, yaw, roll) { +function QuaternionFromEuler(pitch, yaw, roll) { return r.BindQuaternionFromEuler( pitch, yaw, @@ -10522,14 +10522,14 @@ function QuaternionFromEuler (pitch, yaw, roll) { } raylib.QuaternionFromEuler = QuaternionFromEuler -function QuaternionToEuler (q) { +function QuaternionToEuler(q) { return r.BindQuaternionToEuler( q ) } raylib.QuaternionToEuler = QuaternionToEuler -function QuaternionTransform (q, mat) { +function QuaternionTransform(q, mat) { return r.BindQuaternionTransform( q, mat.m0, @@ -10552,7 +10552,7 @@ function QuaternionTransform (q, mat) { } raylib.QuaternionTransform = QuaternionTransform -function QuaternionEquals (p, q) { +function QuaternionEquals(p, q) { return r.BindQuaternionEquals( p, q @@ -10565,7 +10565,7 @@ raylib.QuaternionEquals = QuaternionEquals * * @return {undefined} */ -function GuiEnable () { +function GuiEnable() { return r.BindGuiEnable() } raylib.GuiEnable = GuiEnable @@ -10575,7 +10575,7 @@ raylib.GuiEnable = GuiEnable * * @return {undefined} */ -function GuiDisable () { +function GuiDisable() { return r.BindGuiDisable() } raylib.GuiDisable = GuiDisable @@ -10585,7 +10585,7 @@ raylib.GuiDisable = GuiDisable * * @return {undefined} */ -function GuiLock () { +function GuiLock() { return r.BindGuiLock() } raylib.GuiLock = GuiLock @@ -10595,7 +10595,7 @@ raylib.GuiLock = GuiLock * * @return {undefined} */ -function GuiUnlock () { +function GuiUnlock() { return r.BindGuiUnlock() } raylib.GuiUnlock = GuiUnlock @@ -10605,7 +10605,7 @@ raylib.GuiUnlock = GuiUnlock * * @return {boolean} The resulting bool. */ -function GuiIsLocked () { +function GuiIsLocked() { return r.BindGuiIsLocked() } raylib.GuiIsLocked = GuiIsLocked @@ -10617,7 +10617,7 @@ raylib.GuiIsLocked = GuiIsLocked * * @return {undefined} */ -function GuiFade (alpha) { +function GuiFade(alpha) { return r.BindGuiFade( alpha ) @@ -10631,7 +10631,7 @@ raylib.GuiFade = GuiFade * * @return {undefined} */ -function GuiSetState (state) { +function GuiSetState(state) { return r.BindGuiSetState( state ) @@ -10643,7 +10643,7 @@ raylib.GuiSetState = GuiSetState * * @return {number} The resulting int. */ -function GuiGetState () { +function GuiGetState() { return r.BindGuiGetState() } raylib.GuiGetState = GuiGetState @@ -10655,7 +10655,7 @@ raylib.GuiGetState = GuiGetState * * @return {undefined} */ -function GuiSetFont (font) { +function GuiSetFont(font) { return r.BindGuiSetFont( font.baseSize, font.glyphCount, @@ -10676,7 +10676,7 @@ raylib.GuiSetFont = GuiSetFont * * @return {Font} The resulting Font. */ -function GuiGetFont () { +function GuiGetFont() { return r.BindGuiGetFont() } raylib.GuiGetFont = GuiGetFont @@ -10690,7 +10690,7 @@ raylib.GuiGetFont = GuiGetFont * * @return {undefined} */ -function GuiSetStyle (control, property, value) { +function GuiSetStyle(control, property, value) { return r.BindGuiSetStyle( control, property, @@ -10707,7 +10707,7 @@ raylib.GuiSetStyle = GuiSetStyle * * @return {number} The resulting int. */ -function GuiGetStyle (control, property) { +function GuiGetStyle(control, property) { return r.BindGuiGetStyle( control, property @@ -10723,7 +10723,7 @@ raylib.GuiGetStyle = GuiGetStyle * * @return {boolean} The resulting bool. */ -function GuiWindowBox (bounds, title) { +function GuiWindowBox(bounds, title) { return r.BindGuiWindowBox( bounds.x, bounds.y, @@ -10742,7 +10742,7 @@ raylib.GuiWindowBox = GuiWindowBox * * @return {undefined} */ -function GuiGroupBox (bounds, text) { +function GuiGroupBox(bounds, text) { return r.BindGuiGroupBox( bounds.x, bounds.y, @@ -10761,7 +10761,7 @@ raylib.GuiGroupBox = GuiGroupBox * * @return {undefined} */ -function GuiLine (bounds, text) { +function GuiLine(bounds, text) { return r.BindGuiLine( bounds.x, bounds.y, @@ -10780,7 +10780,7 @@ raylib.GuiLine = GuiLine * * @return {undefined} */ -function GuiPanel (bounds, text) { +function GuiPanel(bounds, text) { return r.BindGuiPanel( bounds.x, bounds.y, @@ -10801,7 +10801,7 @@ raylib.GuiPanel = GuiPanel * * @return {number} The resulting int. */ -function GuiTabBar (bounds, text, count, active) { +function GuiTabBar(bounds, text, count, active) { return r.BindGuiTabBar( bounds.x, bounds.y, @@ -10824,7 +10824,7 @@ raylib.GuiTabBar = GuiTabBar * * @return {Rectangle} The resulting Rectangle. */ -function GuiScrollPanel (bounds, text, content, scroll) { +function GuiScrollPanel(bounds, text, content, scroll) { return r.BindGuiScrollPanel( bounds.x, bounds.y, @@ -10848,7 +10848,7 @@ raylib.GuiScrollPanel = GuiScrollPanel * * @return {undefined} */ -function GuiLabel (bounds, text) { +function GuiLabel(bounds, text) { return r.BindGuiLabel( bounds.x, bounds.y, @@ -10867,7 +10867,7 @@ raylib.GuiLabel = GuiLabel * * @return {boolean} The resulting bool. */ -function GuiButton (bounds, text) { +function GuiButton(bounds, text) { return r.BindGuiButton( bounds.x, bounds.y, @@ -10886,7 +10886,7 @@ raylib.GuiButton = GuiButton * * @return {boolean} The resulting bool. */ -function GuiLabelButton (bounds, text) { +function GuiLabelButton(bounds, text) { return r.BindGuiLabelButton( bounds.x, bounds.y, @@ -10906,7 +10906,7 @@ raylib.GuiLabelButton = GuiLabelButton * * @return {boolean} The resulting bool. */ -function GuiToggle (bounds, text, active) { +function GuiToggle(bounds, text, active) { return r.BindGuiToggle( bounds.x, bounds.y, @@ -10927,7 +10927,7 @@ raylib.GuiToggle = GuiToggle * * @return {number} The resulting int. */ -function GuiToggleGroup (bounds, text, active) { +function GuiToggleGroup(bounds, text, active) { return r.BindGuiToggleGroup( bounds.x, bounds.y, @@ -10948,7 +10948,7 @@ raylib.GuiToggleGroup = GuiToggleGroup * * @return {boolean} The resulting bool. */ -function GuiCheckBox (bounds, text, checked) { +function GuiCheckBox(bounds, text, checked) { return r.BindGuiCheckBox( bounds.x, bounds.y, @@ -10969,7 +10969,7 @@ raylib.GuiCheckBox = GuiCheckBox * * @return {number} The resulting int. */ -function GuiComboBox (bounds, text, active) { +function GuiComboBox(bounds, text, active) { return r.BindGuiComboBox( bounds.x, bounds.y, @@ -10991,7 +10991,7 @@ raylib.GuiComboBox = GuiComboBox * * @return {boolean} The resulting bool. */ -function GuiDropdownBox (bounds, text, active, editMode) { +function GuiDropdownBox(bounds, text, active, editMode) { return r.BindGuiDropdownBox( bounds.x, bounds.y, @@ -11016,7 +11016,7 @@ raylib.GuiDropdownBox = GuiDropdownBox * * @return {boolean} The resulting bool. */ -function GuiSpinner (bounds, text, value, minValue, maxValue, editMode) { +function GuiSpinner(bounds, text, value, minValue, maxValue, editMode) { return r.BindGuiSpinner( bounds.x, bounds.y, @@ -11043,7 +11043,7 @@ raylib.GuiSpinner = GuiSpinner * * @return {boolean} The resulting bool. */ -function GuiValueBox (bounds, text, value, minValue, maxValue, editMode) { +function GuiValueBox(bounds, text, value, minValue, maxValue, editMode) { return r.BindGuiValueBox( bounds.x, bounds.y, @@ -11068,7 +11068,7 @@ raylib.GuiValueBox = GuiValueBox * * @return {boolean} The resulting bool. */ -function GuiTextBox (bounds, text, textSize, editMode) { +function GuiTextBox(bounds, text, textSize, editMode) { return r.BindGuiTextBox( bounds.x, bounds.y, @@ -11091,7 +11091,7 @@ raylib.GuiTextBox = GuiTextBox * * @return {boolean} The resulting bool. */ -function GuiTextBoxMulti (bounds, text, textSize, editMode) { +function GuiTextBoxMulti(bounds, text, textSize, editMode) { return r.BindGuiTextBoxMulti( bounds.x, bounds.y, @@ -11116,7 +11116,7 @@ raylib.GuiTextBoxMulti = GuiTextBoxMulti * * @return {number} The resulting float. */ -function GuiSlider (bounds, textLeft, textRight, value, minValue, maxValue) { +function GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue) { return r.BindGuiSlider( bounds.x, bounds.y, @@ -11143,7 +11143,7 @@ raylib.GuiSlider = GuiSlider * * @return {number} The resulting float. */ -function GuiSliderBar (bounds, textLeft, textRight, value, minValue, maxValue) { +function GuiSliderBar(bounds, textLeft, textRight, value, minValue, maxValue) { return r.BindGuiSliderBar( bounds.x, bounds.y, @@ -11170,7 +11170,7 @@ raylib.GuiSliderBar = GuiSliderBar * * @return {number} The resulting float. */ -function GuiProgressBar (bounds, textLeft, textRight, value, minValue, maxValue) { +function GuiProgressBar(bounds, textLeft, textRight, value, minValue, maxValue) { return r.BindGuiProgressBar( bounds.x, bounds.y, @@ -11193,7 +11193,7 @@ raylib.GuiProgressBar = GuiProgressBar * * @return {undefined} */ -function GuiStatusBar (bounds, text) { +function GuiStatusBar(bounds, text) { return r.BindGuiStatusBar( bounds.x, bounds.y, @@ -11212,7 +11212,7 @@ raylib.GuiStatusBar = GuiStatusBar * * @return {undefined} */ -function GuiDummyRec (bounds, text) { +function GuiDummyRec(bounds, text) { return r.BindGuiDummyRec( bounds.x, bounds.y, @@ -11233,7 +11233,7 @@ raylib.GuiDummyRec = GuiDummyRec * * @return {Vector2} The resulting Vector2. */ -function GuiGrid (bounds, text, spacing, subdivs) { +function GuiGrid(bounds, text, spacing, subdivs) { return r.BindGuiGrid( bounds.x, bounds.y, @@ -11256,7 +11256,7 @@ raylib.GuiGrid = GuiGrid * * @return {number} The resulting int. */ -function GuiListView (bounds, text, scrollIndex, active) { +function GuiListView(bounds, text, scrollIndex, active) { return r.BindGuiListView( bounds.x, bounds.y, @@ -11281,7 +11281,7 @@ raylib.GuiListView = GuiListView * * @return {number} The resulting int. */ -function GuiListViewEx (bounds, text, count, focus, scrollIndex, active) { +function GuiListViewEx(bounds, text, count, focus, scrollIndex, active) { return r.BindGuiListViewEx( bounds.x, bounds.y, @@ -11306,7 +11306,7 @@ raylib.GuiListViewEx = GuiListViewEx * * @return {number} The resulting int. */ -function GuiMessageBox (bounds, title, message, buttons) { +function GuiMessageBox(bounds, title, message, buttons) { return r.BindGuiMessageBox( bounds.x, bounds.y, @@ -11332,7 +11332,7 @@ raylib.GuiMessageBox = GuiMessageBox * * @return {number} The resulting int. */ -function GuiTextInputBox (bounds, title, message, buttons, text, textMaxSize, secretViewActive) { +function GuiTextInputBox(bounds, title, message, buttons, text, textMaxSize, secretViewActive) { return r.BindGuiTextInputBox( bounds.x, bounds.y, @@ -11357,7 +11357,7 @@ raylib.GuiTextInputBox = GuiTextInputBox * * @return {Color} The resulting Color. */ -function GuiColorPicker (bounds, text, color) { +function GuiColorPicker(bounds, text, color) { return r.BindGuiColorPicker( bounds.x, bounds.y, @@ -11381,7 +11381,7 @@ raylib.GuiColorPicker = GuiColorPicker * * @return {Color} The resulting Color. */ -function GuiColorPanel (bounds, text, color) { +function GuiColorPanel(bounds, text, color) { return r.BindGuiColorPanel( bounds.x, bounds.y, @@ -11405,7 +11405,7 @@ raylib.GuiColorPanel = GuiColorPanel * * @return {number} The resulting float. */ -function GuiColorBarAlpha (bounds, text, alpha) { +function GuiColorBarAlpha(bounds, text, alpha) { return r.BindGuiColorBarAlpha( bounds.x, bounds.y, @@ -11426,7 +11426,7 @@ raylib.GuiColorBarAlpha = GuiColorBarAlpha * * @return {number} The resulting float. */ -function GuiColorBarHue (bounds, text, value) { +function GuiColorBarHue(bounds, text, value) { return r.BindGuiColorBarHue( bounds.x, bounds.y, @@ -11445,7 +11445,7 @@ raylib.GuiColorBarHue = GuiColorBarHue * * @return {undefined} */ -function GuiLoadStyle (fileName) { +function GuiLoadStyle(fileName) { return r.BindGuiLoadStyle( fileName ) @@ -11457,7 +11457,7 @@ raylib.GuiLoadStyle = GuiLoadStyle * * @return {undefined} */ -function GuiLoadStyleDefault () { +function GuiLoadStyleDefault() { return r.BindGuiLoadStyleDefault() } raylib.GuiLoadStyleDefault = GuiLoadStyleDefault @@ -11467,7 +11467,7 @@ raylib.GuiLoadStyleDefault = GuiLoadStyleDefault * * @return {undefined} */ -function GuiEnableTooltip () { +function GuiEnableTooltip() { return r.BindGuiEnableTooltip() } raylib.GuiEnableTooltip = GuiEnableTooltip @@ -11477,7 +11477,7 @@ raylib.GuiEnableTooltip = GuiEnableTooltip * * @return {undefined} */ -function GuiDisableTooltip () { +function GuiDisableTooltip() { return r.BindGuiDisableTooltip() } raylib.GuiDisableTooltip = GuiDisableTooltip @@ -11489,7 +11489,7 @@ raylib.GuiDisableTooltip = GuiDisableTooltip * * @return {undefined} */ -function GuiSetTooltip (tooltip) { +function GuiSetTooltip(tooltip) { return r.BindGuiSetTooltip( tooltip ) @@ -11504,7 +11504,7 @@ raylib.GuiSetTooltip = GuiSetTooltip * * @return {string} The resulting const char *. */ -function GuiIconText (iconId, text) { +function GuiIconText(iconId, text) { return r.BindGuiIconText( iconId, text @@ -11517,7 +11517,7 @@ raylib.GuiIconText = GuiIconText * * @return {number} The resulting unsigned int *. */ -function GuiGetIcons () { +function GuiGetIcons() { return r.BindGuiGetIcons() } raylib.GuiGetIcons = GuiGetIcons @@ -11530,7 +11530,7 @@ raylib.GuiGetIcons = GuiGetIcons * * @return {number} The resulting char **. */ -function GuiLoadIcons (fileName, loadIconsName) { +function GuiLoadIcons(fileName, loadIconsName) { return r.BindGuiLoadIcons( fileName, loadIconsName @@ -11538,7 +11538,7 @@ function GuiLoadIcons (fileName, loadIconsName) { } raylib.GuiLoadIcons = GuiLoadIcons -function GuiDrawIcon (iconId, posX, posY, pixelSize, color) { +function GuiDrawIcon(iconId, posX, posY, pixelSize, color) { return r.BindGuiDrawIcon( iconId, posX, @@ -11559,7 +11559,7 @@ raylib.GuiDrawIcon = GuiDrawIcon * * @return {undefined} */ -function GuiSetIconScale (scale) { +function GuiSetIconScale(scale) { return r.BindGuiSetIconScale( scale ) @@ -11573,7 +11573,7 @@ raylib.GuiSetIconScale = GuiSetIconScale * * @return {undefined} */ -function rlMatrixMode (mode) { +function rlMatrixMode(mode) { return r.BindrlMatrixMode( mode ) @@ -11585,7 +11585,7 @@ raylib.rlMatrixMode = rlMatrixMode * * @return {undefined} */ -function rlPushMatrix () { +function rlPushMatrix() { return r.BindrlPushMatrix() } raylib.rlPushMatrix = rlPushMatrix @@ -11595,7 +11595,7 @@ raylib.rlPushMatrix = rlPushMatrix * * @return {undefined} */ -function rlPopMatrix () { +function rlPopMatrix() { return r.BindrlPopMatrix() } raylib.rlPopMatrix = rlPopMatrix @@ -11605,7 +11605,7 @@ raylib.rlPopMatrix = rlPopMatrix * * @return {undefined} */ -function rlLoadIdentity () { +function rlLoadIdentity() { return r.BindrlLoadIdentity() } raylib.rlLoadIdentity = rlLoadIdentity @@ -11619,7 +11619,7 @@ raylib.rlLoadIdentity = rlLoadIdentity * * @return {undefined} */ -function rlTranslatef (x, y, z) { +function rlTranslatef(x, y, z) { return r.BindrlTranslatef( x, y, @@ -11638,7 +11638,7 @@ raylib.rlTranslatef = rlTranslatef * * @return {undefined} */ -function rlRotatef (angle, x, y, z) { +function rlRotatef(angle, x, y, z) { return r.BindrlRotatef( angle, x, @@ -11657,7 +11657,7 @@ raylib.rlRotatef = rlRotatef * * @return {undefined} */ -function rlScalef (x, y, z) { +function rlScalef(x, y, z) { return r.BindrlScalef( x, y, @@ -11673,14 +11673,14 @@ raylib.rlScalef = rlScalef * * @return {undefined} */ -function rlMultMatrixf (matf) { +function rlMultMatrixf(matf) { return r.BindrlMultMatrixf( matf ) } raylib.rlMultMatrixf = rlMultMatrixf -function rlFrustum (left, right, bottom, top, znear, zfar) { +function rlFrustum(left, right, bottom, top, znear, zfar) { return r.BindrlFrustum( left, right, @@ -11692,7 +11692,7 @@ function rlFrustum (left, right, bottom, top, znear, zfar) { } raylib.rlFrustum = rlFrustum -function rlOrtho (left, right, bottom, top, znear, zfar) { +function rlOrtho(left, right, bottom, top, znear, zfar) { return r.BindrlOrtho( left, right, @@ -11714,7 +11714,7 @@ raylib.rlOrtho = rlOrtho * * @return {undefined} */ -function rlViewport (x, y, width, height) { +function rlViewport(x, y, width, height) { return r.BindrlViewport( x, y, @@ -11731,7 +11731,7 @@ raylib.rlViewport = rlViewport * * @return {undefined} */ -function rlBegin (mode) { +function rlBegin(mode) { return r.BindrlBegin( mode ) @@ -11743,7 +11743,7 @@ raylib.rlBegin = rlBegin * * @return {undefined} */ -function rlEnd () { +function rlEnd() { return r.BindrlEnd() } raylib.rlEnd = rlEnd @@ -11756,7 +11756,7 @@ raylib.rlEnd = rlEnd * * @return {undefined} */ -function rlVertex2i (x, y) { +function rlVertex2i(x, y) { return r.BindrlVertex2i( x, y @@ -11772,7 +11772,7 @@ raylib.rlVertex2i = rlVertex2i * * @return {undefined} */ -function rlVertex2f (x, y) { +function rlVertex2f(x, y) { return r.BindrlVertex2f( x, y @@ -11789,7 +11789,7 @@ raylib.rlVertex2f = rlVertex2f * * @return {undefined} */ -function rlVertex3f (x, y, z) { +function rlVertex3f(x, y, z) { return r.BindrlVertex3f( x, y, @@ -11806,7 +11806,7 @@ raylib.rlVertex3f = rlVertex3f * * @return {undefined} */ -function rlTexCoord2f (x, y) { +function rlTexCoord2f(x, y) { return r.BindrlTexCoord2f( x, y @@ -11823,7 +11823,7 @@ raylib.rlTexCoord2f = rlTexCoord2f * * @return {undefined} */ -function rlNormal3f (x, y, z) { +function rlNormal3f(x, y, z) { return r.BindrlNormal3f( x, y, @@ -11842,7 +11842,7 @@ raylib.rlNormal3f = rlNormal3f * * @return {undefined} */ -function rlColor4ub (r, g, b, a) { +function rlColor4ub(r, g, b, a) { return r.BindrlColor4ub( r, g, @@ -11861,7 +11861,7 @@ raylib.rlColor4ub = rlColor4ub * * @return {undefined} */ -function rlColor3f (x, y, z) { +function rlColor3f(x, y, z) { return r.BindrlColor3f( x, y, @@ -11880,7 +11880,7 @@ raylib.rlColor3f = rlColor3f * * @return {undefined} */ -function rlColor4f (x, y, z, w) { +function rlColor4f(x, y, z, w) { return r.BindrlColor4f( x, y, @@ -11897,7 +11897,7 @@ raylib.rlColor4f = rlColor4f * * @return {boolean} The resulting bool. */ -function rlEnableVertexArray (vaoId) { +function rlEnableVertexArray(vaoId) { return r.BindrlEnableVertexArray( vaoId ) @@ -11909,7 +11909,7 @@ raylib.rlEnableVertexArray = rlEnableVertexArray * * @return {undefined} */ -function rlDisableVertexArray () { +function rlDisableVertexArray() { return r.BindrlDisableVertexArray() } raylib.rlDisableVertexArray = rlDisableVertexArray @@ -11921,7 +11921,7 @@ raylib.rlDisableVertexArray = rlDisableVertexArray * * @return {undefined} */ -function rlEnableVertexBuffer (id) { +function rlEnableVertexBuffer(id) { return r.BindrlEnableVertexBuffer( id ) @@ -11933,7 +11933,7 @@ raylib.rlEnableVertexBuffer = rlEnableVertexBuffer * * @return {undefined} */ -function rlDisableVertexBuffer () { +function rlDisableVertexBuffer() { return r.BindrlDisableVertexBuffer() } raylib.rlDisableVertexBuffer = rlDisableVertexBuffer @@ -11945,7 +11945,7 @@ raylib.rlDisableVertexBuffer = rlDisableVertexBuffer * * @return {undefined} */ -function rlEnableVertexBufferElement (id) { +function rlEnableVertexBufferElement(id) { return r.BindrlEnableVertexBufferElement( id ) @@ -11957,7 +11957,7 @@ raylib.rlEnableVertexBufferElement = rlEnableVertexBufferElement * * @return {undefined} */ -function rlDisableVertexBufferElement () { +function rlDisableVertexBufferElement() { return r.BindrlDisableVertexBufferElement() } raylib.rlDisableVertexBufferElement = rlDisableVertexBufferElement @@ -11969,7 +11969,7 @@ raylib.rlDisableVertexBufferElement = rlDisableVertexBufferElement * * @return {undefined} */ -function rlEnableVertexAttribute (index) { +function rlEnableVertexAttribute(index) { return r.BindrlEnableVertexAttribute( index ) @@ -11983,7 +11983,7 @@ raylib.rlEnableVertexAttribute = rlEnableVertexAttribute * * @return {undefined} */ -function rlDisableVertexAttribute (index) { +function rlDisableVertexAttribute(index) { return r.BindrlDisableVertexAttribute( index ) @@ -11997,7 +11997,7 @@ raylib.rlDisableVertexAttribute = rlDisableVertexAttribute * * @return {undefined} */ -function rlActiveTextureSlot (slot) { +function rlActiveTextureSlot(slot) { return r.BindrlActiveTextureSlot( slot ) @@ -12011,7 +12011,7 @@ raylib.rlActiveTextureSlot = rlActiveTextureSlot * * @return {undefined} */ -function rlEnableTexture (id) { +function rlEnableTexture(id) { return r.BindrlEnableTexture( id ) @@ -12023,7 +12023,7 @@ raylib.rlEnableTexture = rlEnableTexture * * @return {undefined} */ -function rlDisableTexture () { +function rlDisableTexture() { return r.BindrlDisableTexture() } raylib.rlDisableTexture = rlDisableTexture @@ -12035,7 +12035,7 @@ raylib.rlDisableTexture = rlDisableTexture * * @return {undefined} */ -function rlEnableTextureCubemap (id) { +function rlEnableTextureCubemap(id) { return r.BindrlEnableTextureCubemap( id ) @@ -12047,7 +12047,7 @@ raylib.rlEnableTextureCubemap = rlEnableTextureCubemap * * @return {undefined} */ -function rlDisableTextureCubemap () { +function rlDisableTextureCubemap() { return r.BindrlDisableTextureCubemap() } raylib.rlDisableTextureCubemap = rlDisableTextureCubemap @@ -12061,7 +12061,7 @@ raylib.rlDisableTextureCubemap = rlDisableTextureCubemap * * @return {undefined} */ -function rlTextureParameters (id, param, value) { +function rlTextureParameters(id, param, value) { return r.BindrlTextureParameters( id, param, @@ -12079,7 +12079,7 @@ raylib.rlTextureParameters = rlTextureParameters * * @return {undefined} */ -function rlCubemapParameters (id, param, value) { +function rlCubemapParameters(id, param, value) { return r.BindrlCubemapParameters( id, param, @@ -12095,7 +12095,7 @@ raylib.rlCubemapParameters = rlCubemapParameters * * @return {undefined} */ -function rlEnableShader (id) { +function rlEnableShader(id) { return r.BindrlEnableShader( id ) @@ -12107,7 +12107,7 @@ raylib.rlEnableShader = rlEnableShader * * @return {undefined} */ -function rlDisableShader () { +function rlDisableShader() { return r.BindrlDisableShader() } raylib.rlDisableShader = rlDisableShader @@ -12119,7 +12119,7 @@ raylib.rlDisableShader = rlDisableShader * * @return {undefined} */ -function rlEnableFramebuffer (id) { +function rlEnableFramebuffer(id) { return r.BindrlEnableFramebuffer( id ) @@ -12131,7 +12131,7 @@ raylib.rlEnableFramebuffer = rlEnableFramebuffer * * @return {undefined} */ -function rlDisableFramebuffer () { +function rlDisableFramebuffer() { return r.BindrlDisableFramebuffer() } raylib.rlDisableFramebuffer = rlDisableFramebuffer @@ -12143,7 +12143,7 @@ raylib.rlDisableFramebuffer = rlDisableFramebuffer * * @return {undefined} */ -function rlActiveDrawBuffers (count) { +function rlActiveDrawBuffers(count) { return r.BindrlActiveDrawBuffers( count ) @@ -12155,7 +12155,7 @@ raylib.rlActiveDrawBuffers = rlActiveDrawBuffers * * @return {undefined} */ -function rlEnableColorBlend () { +function rlEnableColorBlend() { return r.BindrlEnableColorBlend() } raylib.rlEnableColorBlend = rlEnableColorBlend @@ -12165,7 +12165,7 @@ raylib.rlEnableColorBlend = rlEnableColorBlend * * @return {undefined} */ -function rlDisableColorBlend () { +function rlDisableColorBlend() { return r.BindrlDisableColorBlend() } raylib.rlDisableColorBlend = rlDisableColorBlend @@ -12175,7 +12175,7 @@ raylib.rlDisableColorBlend = rlDisableColorBlend * * @return {undefined} */ -function rlEnableDepthTest () { +function rlEnableDepthTest() { return r.BindrlEnableDepthTest() } raylib.rlEnableDepthTest = rlEnableDepthTest @@ -12185,7 +12185,7 @@ raylib.rlEnableDepthTest = rlEnableDepthTest * * @return {undefined} */ -function rlDisableDepthTest () { +function rlDisableDepthTest() { return r.BindrlDisableDepthTest() } raylib.rlDisableDepthTest = rlDisableDepthTest @@ -12195,7 +12195,7 @@ raylib.rlDisableDepthTest = rlDisableDepthTest * * @return {undefined} */ -function rlEnableDepthMask () { +function rlEnableDepthMask() { return r.BindrlEnableDepthMask() } raylib.rlEnableDepthMask = rlEnableDepthMask @@ -12205,7 +12205,7 @@ raylib.rlEnableDepthMask = rlEnableDepthMask * * @return {undefined} */ -function rlDisableDepthMask () { +function rlDisableDepthMask() { return r.BindrlDisableDepthMask() } raylib.rlDisableDepthMask = rlDisableDepthMask @@ -12215,7 +12215,7 @@ raylib.rlDisableDepthMask = rlDisableDepthMask * * @return {undefined} */ -function rlEnableBackfaceCulling () { +function rlEnableBackfaceCulling() { return r.BindrlEnableBackfaceCulling() } raylib.rlEnableBackfaceCulling = rlEnableBackfaceCulling @@ -12225,7 +12225,7 @@ raylib.rlEnableBackfaceCulling = rlEnableBackfaceCulling * * @return {undefined} */ -function rlDisableBackfaceCulling () { +function rlDisableBackfaceCulling() { return r.BindrlDisableBackfaceCulling() } raylib.rlDisableBackfaceCulling = rlDisableBackfaceCulling @@ -12237,7 +12237,7 @@ raylib.rlDisableBackfaceCulling = rlDisableBackfaceCulling * * @return {undefined} */ -function rlSetCullFace (mode) { +function rlSetCullFace(mode) { return r.BindrlSetCullFace( mode ) @@ -12249,7 +12249,7 @@ raylib.rlSetCullFace = rlSetCullFace * * @return {undefined} */ -function rlEnableScissorTest () { +function rlEnableScissorTest() { return r.BindrlEnableScissorTest() } raylib.rlEnableScissorTest = rlEnableScissorTest @@ -12259,7 +12259,7 @@ raylib.rlEnableScissorTest = rlEnableScissorTest * * @return {undefined} */ -function rlDisableScissorTest () { +function rlDisableScissorTest() { return r.BindrlDisableScissorTest() } raylib.rlDisableScissorTest = rlDisableScissorTest @@ -12274,7 +12274,7 @@ raylib.rlDisableScissorTest = rlDisableScissorTest * * @return {undefined} */ -function rlScissor (x, y, width, height) { +function rlScissor(x, y, width, height) { return r.BindrlScissor( x, y, @@ -12289,7 +12289,7 @@ raylib.rlScissor = rlScissor * * @return {undefined} */ -function rlEnableWireMode () { +function rlEnableWireMode() { return r.BindrlEnableWireMode() } raylib.rlEnableWireMode = rlEnableWireMode @@ -12299,7 +12299,7 @@ raylib.rlEnableWireMode = rlEnableWireMode * * @return {undefined} */ -function rlDisableWireMode () { +function rlDisableWireMode() { return r.BindrlDisableWireMode() } raylib.rlDisableWireMode = rlDisableWireMode @@ -12311,7 +12311,7 @@ raylib.rlDisableWireMode = rlDisableWireMode * * @return {undefined} */ -function rlSetLineWidth (width) { +function rlSetLineWidth(width) { return r.BindrlSetLineWidth( width ) @@ -12323,7 +12323,7 @@ raylib.rlSetLineWidth = rlSetLineWidth * * @return {number} The resulting float. */ -function rlGetLineWidth () { +function rlGetLineWidth() { return r.BindrlGetLineWidth() } raylib.rlGetLineWidth = rlGetLineWidth @@ -12333,7 +12333,7 @@ raylib.rlGetLineWidth = rlGetLineWidth * * @return {undefined} */ -function rlEnableSmoothLines () { +function rlEnableSmoothLines() { return r.BindrlEnableSmoothLines() } raylib.rlEnableSmoothLines = rlEnableSmoothLines @@ -12343,7 +12343,7 @@ raylib.rlEnableSmoothLines = rlEnableSmoothLines * * @return {undefined} */ -function rlDisableSmoothLines () { +function rlDisableSmoothLines() { return r.BindrlDisableSmoothLines() } raylib.rlDisableSmoothLines = rlDisableSmoothLines @@ -12353,7 +12353,7 @@ raylib.rlDisableSmoothLines = rlDisableSmoothLines * * @return {undefined} */ -function rlEnableStereoRender () { +function rlEnableStereoRender() { return r.BindrlEnableStereoRender() } raylib.rlEnableStereoRender = rlEnableStereoRender @@ -12363,7 +12363,7 @@ raylib.rlEnableStereoRender = rlEnableStereoRender * * @return {undefined} */ -function rlDisableStereoRender () { +function rlDisableStereoRender() { return r.BindrlDisableStereoRender() } raylib.rlDisableStereoRender = rlDisableStereoRender @@ -12373,7 +12373,7 @@ raylib.rlDisableStereoRender = rlDisableStereoRender * * @return {boolean} The resulting bool. */ -function rlIsStereoRenderEnabled () { +function rlIsStereoRenderEnabled() { return r.BindrlIsStereoRenderEnabled() } raylib.rlIsStereoRenderEnabled = rlIsStereoRenderEnabled @@ -12388,7 +12388,7 @@ raylib.rlIsStereoRenderEnabled = rlIsStereoRenderEnabled * * @return {undefined} */ -function rlClearColor (r, g, b, a) { +function rlClearColor(r, g, b, a) { return r.BindrlClearColor( r, g, @@ -12403,7 +12403,7 @@ raylib.rlClearColor = rlClearColor * * @return {undefined} */ -function rlClearScreenBuffers () { +function rlClearScreenBuffers() { return r.BindrlClearScreenBuffers() } raylib.rlClearScreenBuffers = rlClearScreenBuffers @@ -12413,7 +12413,7 @@ raylib.rlClearScreenBuffers = rlClearScreenBuffers * * @return {undefined} */ -function rlCheckErrors () { +function rlCheckErrors() { return r.BindrlCheckErrors() } raylib.rlCheckErrors = rlCheckErrors @@ -12425,7 +12425,7 @@ raylib.rlCheckErrors = rlCheckErrors * * @return {undefined} */ -function rlSetBlendMode (mode) { +function rlSetBlendMode(mode) { return r.BindrlSetBlendMode( mode ) @@ -12441,7 +12441,7 @@ raylib.rlSetBlendMode = rlSetBlendMode * * @return {undefined} */ -function rlSetBlendFactors (glSrcFactor, glDstFactor, glEquation) { +function rlSetBlendFactors(glSrcFactor, glDstFactor, glEquation) { return r.BindrlSetBlendFactors( glSrcFactor, glDstFactor, @@ -12462,7 +12462,7 @@ raylib.rlSetBlendFactors = rlSetBlendFactors * * @return {undefined} */ -function rlSetBlendFactorsSeparate (glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha) { +function rlSetBlendFactorsSeparate(glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha) { return r.BindrlSetBlendFactorsSeparate( glSrcRGB, glDstRGB, @@ -12482,7 +12482,7 @@ raylib.rlSetBlendFactorsSeparate = rlSetBlendFactorsSeparate * * @return {undefined} */ -function rlglInit (width, height) { +function rlglInit(width, height) { return r.BindrlglInit( width, height @@ -12495,7 +12495,7 @@ raylib.rlglInit = rlglInit * * @return {undefined} */ -function rlglClose () { +function rlglClose() { return r.BindrlglClose() } raylib.rlglClose = rlglClose @@ -12507,7 +12507,7 @@ raylib.rlglClose = rlglClose * * @return {undefined} */ -function rlLoadExtensions (loader) { +function rlLoadExtensions(loader) { return r.BindrlLoadExtensions( loader ) @@ -12519,7 +12519,7 @@ raylib.rlLoadExtensions = rlLoadExtensions * * @return {number} The resulting int. */ -function rlGetVersion () { +function rlGetVersion() { return r.BindrlGetVersion() } raylib.rlGetVersion = rlGetVersion @@ -12531,7 +12531,7 @@ raylib.rlGetVersion = rlGetVersion * * @return {undefined} */ -function rlSetFramebufferWidth (width) { +function rlSetFramebufferWidth(width) { return r.BindrlSetFramebufferWidth( width ) @@ -12543,7 +12543,7 @@ raylib.rlSetFramebufferWidth = rlSetFramebufferWidth * * @return {number} The resulting int. */ -function rlGetFramebufferWidth () { +function rlGetFramebufferWidth() { return r.BindrlGetFramebufferWidth() } raylib.rlGetFramebufferWidth = rlGetFramebufferWidth @@ -12555,7 +12555,7 @@ raylib.rlGetFramebufferWidth = rlGetFramebufferWidth * * @return {undefined} */ -function rlSetFramebufferHeight (height) { +function rlSetFramebufferHeight(height) { return r.BindrlSetFramebufferHeight( height ) @@ -12567,7 +12567,7 @@ raylib.rlSetFramebufferHeight = rlSetFramebufferHeight * * @return {number} The resulting int. */ -function rlGetFramebufferHeight () { +function rlGetFramebufferHeight() { return r.BindrlGetFramebufferHeight() } raylib.rlGetFramebufferHeight = rlGetFramebufferHeight @@ -12577,7 +12577,7 @@ raylib.rlGetFramebufferHeight = rlGetFramebufferHeight * * @return {number} The resulting unsigned int. */ -function rlGetTextureIdDefault () { +function rlGetTextureIdDefault() { return r.BindrlGetTextureIdDefault() } raylib.rlGetTextureIdDefault = rlGetTextureIdDefault @@ -12587,7 +12587,7 @@ raylib.rlGetTextureIdDefault = rlGetTextureIdDefault * * @return {number} The resulting unsigned int. */ -function rlGetShaderIdDefault () { +function rlGetShaderIdDefault() { return r.BindrlGetShaderIdDefault() } raylib.rlGetShaderIdDefault = rlGetShaderIdDefault @@ -12597,7 +12597,7 @@ raylib.rlGetShaderIdDefault = rlGetShaderIdDefault * * @return {number} The resulting int *. */ -function rlGetShaderLocsDefault () { +function rlGetShaderLocsDefault() { return r.BindrlGetShaderLocsDefault() } raylib.rlGetShaderLocsDefault = rlGetShaderLocsDefault @@ -12610,7 +12610,7 @@ raylib.rlGetShaderLocsDefault = rlGetShaderLocsDefault * * @return {rlRenderBatch} The resulting rlRenderBatch. */ -function rlLoadRenderBatch (numBuffers, bufferElements) { +function rlLoadRenderBatch(numBuffers, bufferElements) { return r.BindrlLoadRenderBatch( numBuffers, bufferElements @@ -12625,7 +12625,7 @@ raylib.rlLoadRenderBatch = rlLoadRenderBatch * * @return {undefined} */ -function rlUnloadRenderBatch (batch) { +function rlUnloadRenderBatch(batch) { return r.BindrlUnloadRenderBatch( batch.bufferCount, batch.currentBuffer, @@ -12644,7 +12644,7 @@ raylib.rlUnloadRenderBatch = rlUnloadRenderBatch * * @return {undefined} */ -function rlDrawRenderBatch (batch) { +function rlDrawRenderBatch(batch) { return r.BindrlDrawRenderBatch( batch ) @@ -12658,7 +12658,7 @@ raylib.rlDrawRenderBatch = rlDrawRenderBatch * * @return {undefined} */ -function rlSetRenderBatchActive (batch) { +function rlSetRenderBatchActive(batch) { return r.BindrlSetRenderBatchActive( batch ) @@ -12670,7 +12670,7 @@ raylib.rlSetRenderBatchActive = rlSetRenderBatchActive * * @return {undefined} */ -function rlDrawRenderBatchActive () { +function rlDrawRenderBatchActive() { return r.BindrlDrawRenderBatchActive() } raylib.rlDrawRenderBatchActive = rlDrawRenderBatchActive @@ -12682,7 +12682,7 @@ raylib.rlDrawRenderBatchActive = rlDrawRenderBatchActive * * @return {boolean} The resulting bool. */ -function rlCheckRenderBatchLimit (vCount) { +function rlCheckRenderBatchLimit(vCount) { return r.BindrlCheckRenderBatchLimit( vCount ) @@ -12696,7 +12696,7 @@ raylib.rlCheckRenderBatchLimit = rlCheckRenderBatchLimit * * @return {undefined} */ -function rlSetTexture (id) { +function rlSetTexture(id) { return r.BindrlSetTexture( id ) @@ -12708,7 +12708,7 @@ raylib.rlSetTexture = rlSetTexture * * @return {number} The resulting unsigned int. */ -function rlLoadVertexArray () { +function rlLoadVertexArray() { return r.BindrlLoadVertexArray() } raylib.rlLoadVertexArray = rlLoadVertexArray @@ -12722,7 +12722,7 @@ raylib.rlLoadVertexArray = rlLoadVertexArray * * @return {number} The resulting unsigned int. */ -function rlLoadVertexBuffer (buffer, size, dynamic) { +function rlLoadVertexBuffer(buffer, size, dynamic) { return r.BindrlLoadVertexBuffer( buffer, size, @@ -12740,7 +12740,7 @@ raylib.rlLoadVertexBuffer = rlLoadVertexBuffer * * @return {number} The resulting unsigned int. */ -function rlLoadVertexBufferElement (buffer, size, dynamic) { +function rlLoadVertexBufferElement(buffer, size, dynamic) { return r.BindrlLoadVertexBufferElement( buffer, size, @@ -12759,7 +12759,7 @@ raylib.rlLoadVertexBufferElement = rlLoadVertexBufferElement * * @return {undefined} */ -function rlUpdateVertexBuffer (bufferId, data, dataSize, offset) { +function rlUpdateVertexBuffer(bufferId, data, dataSize, offset) { return r.BindrlUpdateVertexBuffer( bufferId, data, @@ -12779,7 +12779,7 @@ raylib.rlUpdateVertexBuffer = rlUpdateVertexBuffer * * @return {undefined} */ -function rlUpdateVertexBufferElements (id, data, dataSize, offset) { +function rlUpdateVertexBufferElements(id, data, dataSize, offset) { return r.BindrlUpdateVertexBufferElements( id, data, @@ -12789,21 +12789,21 @@ function rlUpdateVertexBufferElements (id, data, dataSize, offset) { } raylib.rlUpdateVertexBufferElements = rlUpdateVertexBufferElements -function rlUnloadVertexArray (vaoId) { +function rlUnloadVertexArray(vaoId) { return r.BindrlUnloadVertexArray( vaoId ) } raylib.rlUnloadVertexArray = rlUnloadVertexArray -function rlUnloadVertexBuffer (vboId) { +function rlUnloadVertexBuffer(vboId) { return r.BindrlUnloadVertexBuffer( vboId ) } raylib.rlUnloadVertexBuffer = rlUnloadVertexBuffer -function rlSetVertexAttribute (index, compSize, type, normalized, stride, pointer) { +function rlSetVertexAttribute(index, compSize, type, normalized, stride, pointer) { return r.BindrlSetVertexAttribute( index, compSize, @@ -12815,7 +12815,7 @@ function rlSetVertexAttribute (index, compSize, type, normalized, stride, pointe } raylib.rlSetVertexAttribute = rlSetVertexAttribute -function rlSetVertexAttributeDivisor (index, divisor) { +function rlSetVertexAttributeDivisor(index, divisor) { return r.BindrlSetVertexAttributeDivisor( index, divisor @@ -12833,7 +12833,7 @@ raylib.rlSetVertexAttributeDivisor = rlSetVertexAttributeDivisor * * @return {undefined} */ -function rlSetVertexAttributeDefault (locIndex, value, attribType, count) { +function rlSetVertexAttributeDefault(locIndex, value, attribType, count) { return r.BindrlSetVertexAttributeDefault( locIndex, value, @@ -12843,7 +12843,7 @@ function rlSetVertexAttributeDefault (locIndex, value, attribType, count) { } raylib.rlSetVertexAttributeDefault = rlSetVertexAttributeDefault -function rlDrawVertexArray (offset, count) { +function rlDrawVertexArray(offset, count) { return r.BindrlDrawVertexArray( offset, count @@ -12851,7 +12851,7 @@ function rlDrawVertexArray (offset, count) { } raylib.rlDrawVertexArray = rlDrawVertexArray -function rlDrawVertexArrayElements (offset, count, buffer) { +function rlDrawVertexArrayElements(offset, count, buffer) { return r.BindrlDrawVertexArrayElements( offset, count, @@ -12860,7 +12860,7 @@ function rlDrawVertexArrayElements (offset, count, buffer) { } raylib.rlDrawVertexArrayElements = rlDrawVertexArrayElements -function rlDrawVertexArrayInstanced (offset, count, instances) { +function rlDrawVertexArrayInstanced(offset, count, instances) { return r.BindrlDrawVertexArrayInstanced( offset, count, @@ -12869,7 +12869,7 @@ function rlDrawVertexArrayInstanced (offset, count, instances) { } raylib.rlDrawVertexArrayInstanced = rlDrawVertexArrayInstanced -function rlDrawVertexArrayElementsInstanced (offset, count, buffer, instances) { +function rlDrawVertexArrayElementsInstanced(offset, count, buffer, instances) { return r.BindrlDrawVertexArrayElementsInstanced( offset, count, @@ -12890,7 +12890,7 @@ raylib.rlDrawVertexArrayElementsInstanced = rlDrawVertexArrayElementsInstanced * * @return {number} The resulting unsigned int. */ -function rlLoadTexture (data, width, height, format, mipmapCount) { +function rlLoadTexture(data, width, height, format, mipmapCount) { return r.BindrlLoadTexture( data, width, @@ -12910,7 +12910,7 @@ raylib.rlLoadTexture = rlLoadTexture * * @return {number} The resulting unsigned int. */ -function rlLoadTextureDepth (width, height, useRenderBuffer) { +function rlLoadTextureDepth(width, height, useRenderBuffer) { return r.BindrlLoadTextureDepth( width, height, @@ -12928,7 +12928,7 @@ raylib.rlLoadTextureDepth = rlLoadTextureDepth * * @return {number} The resulting unsigned int. */ -function rlLoadTextureCubemap (data, size, format) { +function rlLoadTextureCubemap(data, size, format) { return r.BindrlLoadTextureCubemap( data, size, @@ -12950,7 +12950,7 @@ raylib.rlLoadTextureCubemap = rlLoadTextureCubemap * * @return {undefined} */ -function rlUpdateTexture (id, offsetX, offsetY, width, height, format, data) { +function rlUpdateTexture(id, offsetX, offsetY, width, height, format, data) { return r.BindrlUpdateTexture( id, offsetX, @@ -12973,7 +12973,7 @@ raylib.rlUpdateTexture = rlUpdateTexture * * @return {undefined} */ -function rlGetGlTextureFormats (format, glInternalFormat, glFormat, glType) { +function rlGetGlTextureFormats(format, glInternalFormat, glFormat, glType) { return r.BindrlGetGlTextureFormats( format, glInternalFormat, @@ -12990,7 +12990,7 @@ raylib.rlGetGlTextureFormats = rlGetGlTextureFormats * * @return {string} The resulting const char *. */ -function rlGetPixelFormatName (format) { +function rlGetPixelFormatName(format) { return r.BindrlGetPixelFormatName( format ) @@ -13004,7 +13004,7 @@ raylib.rlGetPixelFormatName = rlGetPixelFormatName * * @return {undefined} */ -function rlUnloadTexture (id) { +function rlUnloadTexture(id) { return r.BindrlUnloadTexture( id ) @@ -13022,7 +13022,7 @@ raylib.rlUnloadTexture = rlUnloadTexture * * @return {undefined} */ -function rlGenTextureMipmaps (id, width, height, format, mipmaps) { +function rlGenTextureMipmaps(id, width, height, format, mipmaps) { return r.BindrlGenTextureMipmaps( id, width, @@ -13043,7 +13043,7 @@ raylib.rlGenTextureMipmaps = rlGenTextureMipmaps * * @return {number} The resulting void *. */ -function rlReadTexturePixels (id, width, height, format) { +function rlReadTexturePixels(id, width, height, format) { return r.BindrlReadTexturePixels( id, width, @@ -13061,7 +13061,7 @@ raylib.rlReadTexturePixels = rlReadTexturePixels * * @return {Buffer} The resulting unsigned char *. */ -function rlReadScreenPixels (width, height) { +function rlReadScreenPixels(width, height) { return r.BindrlReadScreenPixels( width, height @@ -13077,7 +13077,7 @@ raylib.rlReadScreenPixels = rlReadScreenPixels * * @return {number} The resulting unsigned int. */ -function rlLoadFramebuffer (width, height) { +function rlLoadFramebuffer(width, height) { return r.BindrlLoadFramebuffer( width, height @@ -13096,7 +13096,7 @@ raylib.rlLoadFramebuffer = rlLoadFramebuffer * * @return {undefined} */ -function rlFramebufferAttach (fboId, texId, attachType, texType, mipLevel) { +function rlFramebufferAttach(fboId, texId, attachType, texType, mipLevel) { return r.BindrlFramebufferAttach( fboId, texId, @@ -13114,7 +13114,7 @@ raylib.rlFramebufferAttach = rlFramebufferAttach * * @return {boolean} The resulting bool. */ -function rlFramebufferComplete (id) { +function rlFramebufferComplete(id) { return r.BindrlFramebufferComplete( id ) @@ -13128,7 +13128,7 @@ raylib.rlFramebufferComplete = rlFramebufferComplete * * @return {undefined} */ -function rlUnloadFramebuffer (id) { +function rlUnloadFramebuffer(id) { return r.BindrlUnloadFramebuffer( id ) @@ -13143,7 +13143,7 @@ raylib.rlUnloadFramebuffer = rlUnloadFramebuffer * * @return {number} The resulting unsigned int. */ -function rlLoadShaderCode (vsCode, fsCode) { +function rlLoadShaderCode(vsCode, fsCode) { return r.BindrlLoadShaderCode( vsCode, fsCode @@ -13159,7 +13159,7 @@ raylib.rlLoadShaderCode = rlLoadShaderCode * * @return {number} The resulting unsigned int. */ -function rlCompileShader (shaderCode, type) { +function rlCompileShader(shaderCode, type) { return r.BindrlCompileShader( shaderCode, type @@ -13175,7 +13175,7 @@ raylib.rlCompileShader = rlCompileShader * * @return {number} The resulting unsigned int. */ -function rlLoadShaderProgram (vShaderId, fShaderId) { +function rlLoadShaderProgram(vShaderId, fShaderId) { return r.BindrlLoadShaderProgram( vShaderId, fShaderId @@ -13190,7 +13190,7 @@ raylib.rlLoadShaderProgram = rlLoadShaderProgram * * @return {undefined} */ -function rlUnloadShaderProgram (id) { +function rlUnloadShaderProgram(id) { return r.BindrlUnloadShaderProgram( id ) @@ -13205,7 +13205,7 @@ raylib.rlUnloadShaderProgram = rlUnloadShaderProgram * * @return {number} The resulting int. */ -function rlGetLocationUniform (shaderId, uniformName) { +function rlGetLocationUniform(shaderId, uniformName) { return r.BindrlGetLocationUniform( shaderId, uniformName @@ -13221,7 +13221,7 @@ raylib.rlGetLocationUniform = rlGetLocationUniform * * @return {number} The resulting int. */ -function rlGetLocationAttrib (shaderId, attribName) { +function rlGetLocationAttrib(shaderId, attribName) { return r.BindrlGetLocationAttrib( shaderId, attribName @@ -13239,7 +13239,7 @@ raylib.rlGetLocationAttrib = rlGetLocationAttrib * * @return {undefined} */ -function rlSetUniform (locIndex, value, uniformType, count) { +function rlSetUniform(locIndex, value, uniformType, count) { return r.BindrlSetUniform( locIndex, value, @@ -13257,7 +13257,7 @@ raylib.rlSetUniform = rlSetUniform * * @return {undefined} */ -function rlSetUniformMatrix (locIndex, mat) { +function rlSetUniformMatrix(locIndex, mat) { return r.BindrlSetUniformMatrix( locIndex, mat.m0, @@ -13288,7 +13288,7 @@ raylib.rlSetUniformMatrix = rlSetUniformMatrix * * @return {undefined} */ -function rlSetUniformSampler (locIndex, textureId) { +function rlSetUniformSampler(locIndex, textureId) { return r.BindrlSetUniformSampler( locIndex, textureId @@ -13304,7 +13304,7 @@ raylib.rlSetUniformSampler = rlSetUniformSampler * * @return {undefined} */ -function rlSetShader (id, locs) { +function rlSetShader(id, locs) { return r.BindrlSetShader( id, locs @@ -13319,7 +13319,7 @@ raylib.rlSetShader = rlSetShader * * @return {number} The resulting unsigned int. */ -function rlLoadComputeShaderProgram (shaderId) { +function rlLoadComputeShaderProgram(shaderId) { return r.BindrlLoadComputeShaderProgram( shaderId ) @@ -13335,7 +13335,7 @@ raylib.rlLoadComputeShaderProgram = rlLoadComputeShaderProgram * * @return {undefined} */ -function rlComputeShaderDispatch (groupX, groupY, groupZ) { +function rlComputeShaderDispatch(groupX, groupY, groupZ) { return r.BindrlComputeShaderDispatch( groupX, groupY, @@ -13353,7 +13353,7 @@ raylib.rlComputeShaderDispatch = rlComputeShaderDispatch * * @return {number} The resulting unsigned int. */ -function rlLoadShaderBuffer (size, data, usageHint) { +function rlLoadShaderBuffer(size, data, usageHint) { return r.BindrlLoadShaderBuffer( size, data, @@ -13369,7 +13369,7 @@ raylib.rlLoadShaderBuffer = rlLoadShaderBuffer * * @return {undefined} */ -function rlUnloadShaderBuffer (ssboId) { +function rlUnloadShaderBuffer(ssboId) { return r.BindrlUnloadShaderBuffer( ssboId ) @@ -13386,7 +13386,7 @@ raylib.rlUnloadShaderBuffer = rlUnloadShaderBuffer * * @return {undefined} */ -function rlUpdateShaderBuffer (id, data, dataSize, offset) { +function rlUpdateShaderBuffer(id, data, dataSize, offset) { return r.BindrlUpdateShaderBuffer( id, data, @@ -13404,7 +13404,7 @@ raylib.rlUpdateShaderBuffer = rlUpdateShaderBuffer * * @return {undefined} */ -function rlBindShaderBuffer (id, index) { +function rlBindShaderBuffer(id, index) { return r.BindrlBindShaderBuffer( id, index @@ -13422,7 +13422,7 @@ raylib.rlBindShaderBuffer = rlBindShaderBuffer * * @return {undefined} */ -function rlReadShaderBuffer (id, dest, count, offset) { +function rlReadShaderBuffer(id, dest, count, offset) { return r.BindrlReadShaderBuffer( id, dest, @@ -13443,7 +13443,7 @@ raylib.rlReadShaderBuffer = rlReadShaderBuffer * * @return {undefined} */ -function rlCopyShaderBuffer (destId, srcId, destOffset, srcOffset, count) { +function rlCopyShaderBuffer(destId, srcId, destOffset, srcOffset, count) { return r.BindrlCopyShaderBuffer( destId, srcId, @@ -13461,7 +13461,7 @@ raylib.rlCopyShaderBuffer = rlCopyShaderBuffer * * @return {number} The resulting unsigned int. */ -function rlGetShaderBufferSize (id) { +function rlGetShaderBufferSize(id) { return r.BindrlGetShaderBufferSize( id ) @@ -13478,7 +13478,7 @@ raylib.rlGetShaderBufferSize = rlGetShaderBufferSize * * @return {undefined} */ -function rlBindImageTexture (id, index, format, readonly) { +function rlBindImageTexture(id, index, format, readonly) { return r.BindrlBindImageTexture( id, index, @@ -13493,7 +13493,7 @@ raylib.rlBindImageTexture = rlBindImageTexture * * @return {Matrix} The resulting Matrix. */ -function rlGetMatrixModelview () { +function rlGetMatrixModelview() { return r.BindrlGetMatrixModelview() } raylib.rlGetMatrixModelview = rlGetMatrixModelview @@ -13503,7 +13503,7 @@ raylib.rlGetMatrixModelview = rlGetMatrixModelview * * @return {Matrix} The resulting Matrix. */ -function rlGetMatrixProjection () { +function rlGetMatrixProjection() { return r.BindrlGetMatrixProjection() } raylib.rlGetMatrixProjection = rlGetMatrixProjection @@ -13513,7 +13513,7 @@ raylib.rlGetMatrixProjection = rlGetMatrixProjection * * @return {Matrix} The resulting Matrix. */ -function rlGetMatrixTransform () { +function rlGetMatrixTransform() { return r.BindrlGetMatrixTransform() } raylib.rlGetMatrixTransform = rlGetMatrixTransform @@ -13525,7 +13525,7 @@ raylib.rlGetMatrixTransform = rlGetMatrixTransform * * @return {Matrix} The resulting Matrix. */ -function rlGetMatrixProjectionStereo (eye) { +function rlGetMatrixProjectionStereo(eye) { return r.BindrlGetMatrixProjectionStereo( eye ) @@ -13539,7 +13539,7 @@ raylib.rlGetMatrixProjectionStereo = rlGetMatrixProjectionStereo * * @return {Matrix} The resulting Matrix. */ -function rlGetMatrixViewOffsetStereo (eye) { +function rlGetMatrixViewOffsetStereo(eye) { return r.BindrlGetMatrixViewOffsetStereo( eye ) @@ -13553,7 +13553,7 @@ raylib.rlGetMatrixViewOffsetStereo = rlGetMatrixViewOffsetStereo * * @return {undefined} */ -function rlSetMatrixProjection (proj) { +function rlSetMatrixProjection(proj) { return r.BindrlSetMatrixProjection( proj.m0, proj.m4, @@ -13582,7 +13582,7 @@ raylib.rlSetMatrixProjection = rlSetMatrixProjection * * @return {undefined} */ -function rlSetMatrixModelview (view) { +function rlSetMatrixModelview(view) { return r.BindrlSetMatrixModelview( view.m0, view.m4, @@ -13612,7 +13612,7 @@ raylib.rlSetMatrixModelview = rlSetMatrixModelview * * @return {undefined} */ -function rlSetMatrixProjectionStereo (right, left) { +function rlSetMatrixProjectionStereo(right, left) { return r.BindrlSetMatrixProjectionStereo( right.m0, right.m4, @@ -13658,7 +13658,7 @@ raylib.rlSetMatrixProjectionStereo = rlSetMatrixProjectionStereo * * @return {undefined} */ -function rlSetMatrixViewOffsetStereo (right, left) { +function rlSetMatrixViewOffsetStereo(right, left) { return r.BindrlSetMatrixViewOffsetStereo( right.m0, right.m4, @@ -13701,7 +13701,7 @@ raylib.rlSetMatrixViewOffsetStereo = rlSetMatrixViewOffsetStereo * * @return {undefined} */ -function rlLoadDrawCube () { +function rlLoadDrawCube() { return r.BindrlLoadDrawCube() } raylib.rlLoadDrawCube = rlLoadDrawCube @@ -13711,7 +13711,7 @@ raylib.rlLoadDrawCube = rlLoadDrawCube * * @return {undefined} */ -function rlLoadDrawQuad () { +function rlLoadDrawQuad() { return r.BindrlLoadDrawQuad() } raylib.rlLoadDrawQuad = rlLoadDrawQuad @@ -13724,7 +13724,7 @@ raylib.rlLoadDrawQuad = rlLoadDrawQuad * * @return {undefined} */ -function UpdateCamera (camera, mode) { +function UpdateCamera(camera, mode) { const obj = r.BindUpdateCamera( camera.position.x, camera.position.y, @@ -13755,7 +13755,7 @@ raylib.UpdateCamera = UpdateCamera * * @return {undefined} */ -function ImageFormat (image, newFormat) { +function ImageFormat(image, newFormat) { const obj = r.BindImageFormat( image.data, image.width, @@ -13780,7 +13780,7 @@ raylib.ImageFormat = ImageFormat * * @return {undefined} */ -function ImageToPOT (image, fill) { +function ImageToPOT(image, fill) { const obj = r.BindImageToPOT( image.data, image.width, @@ -13808,7 +13808,7 @@ raylib.ImageToPOT = ImageToPOT * * @return {undefined} */ -function ImageCrop (image, crop) { +function ImageCrop(image, crop) { const obj = r.BindImageCrop( image.data, image.width, @@ -13836,7 +13836,7 @@ raylib.ImageCrop = ImageCrop * * @return {undefined} */ -function ImageAlphaCrop (image, threshold) { +function ImageAlphaCrop(image, threshold) { const obj = r.BindImageAlphaCrop( image.data, image.width, @@ -13862,7 +13862,7 @@ raylib.ImageAlphaCrop = ImageAlphaCrop * * @return {undefined} */ -function ImageAlphaClear (image, color, threshold) { +function ImageAlphaClear(image, color, threshold) { const obj = r.BindImageAlphaClear( image.data, image.width, @@ -13891,7 +13891,7 @@ raylib.ImageAlphaClear = ImageAlphaClear * * @return {undefined} */ -function ImageAlphaMask (image, alphaMask) { +function ImageAlphaMask(image, alphaMask) { const obj = r.BindImageAlphaMask( image.data, image.width, @@ -13919,7 +13919,7 @@ raylib.ImageAlphaMask = ImageAlphaMask * * @return {undefined} */ -function ImageAlphaPremultiply (image) { +function ImageAlphaPremultiply(image) { const obj = r.BindImageAlphaPremultiply( image.data, image.width, @@ -13944,7 +13944,7 @@ raylib.ImageAlphaPremultiply = ImageAlphaPremultiply * * @return {undefined} */ -function ImageResize (image, newWidth, newHeight) { +function ImageResize(image, newWidth, newHeight) { const obj = r.BindImageResize( image.data, image.width, @@ -13971,7 +13971,7 @@ raylib.ImageResize = ImageResize * * @return {undefined} */ -function ImageResizeNN (image, newWidth, newHeight) { +function ImageResizeNN(image, newWidth, newHeight) { const obj = r.BindImageResizeNN( image.data, image.width, @@ -14001,7 +14001,7 @@ raylib.ImageResizeNN = ImageResizeNN * * @return {undefined} */ -function ImageResizeCanvas (image, newWidth, newHeight, offsetX, offsetY, fill) { +function ImageResizeCanvas(image, newWidth, newHeight, offsetX, offsetY, fill) { const obj = r.BindImageResizeCanvas( image.data, image.width, @@ -14032,7 +14032,7 @@ raylib.ImageResizeCanvas = ImageResizeCanvas * * @return {undefined} */ -function ImageMipmaps (image) { +function ImageMipmaps(image) { const obj = r.BindImageMipmaps( image.data, image.width, @@ -14059,7 +14059,7 @@ raylib.ImageMipmaps = ImageMipmaps * * @return {undefined} */ -function ImageDither (image, rBpp, gBpp, bBpp, aBpp) { +function ImageDither(image, rBpp, gBpp, bBpp, aBpp) { const obj = r.BindImageDither( image.data, image.width, @@ -14086,7 +14086,7 @@ raylib.ImageDither = ImageDither * * @return {undefined} */ -function ImageFlipVertical (image) { +function ImageFlipVertical(image) { const obj = r.BindImageFlipVertical( image.data, image.width, @@ -14109,7 +14109,7 @@ raylib.ImageFlipVertical = ImageFlipVertical * * @return {undefined} */ -function ImageFlipHorizontal (image) { +function ImageFlipHorizontal(image) { const obj = r.BindImageFlipHorizontal( image.data, image.width, @@ -14132,7 +14132,7 @@ raylib.ImageFlipHorizontal = ImageFlipHorizontal * * @return {undefined} */ -function ImageRotateCW (image) { +function ImageRotateCW(image) { const obj = r.BindImageRotateCW( image.data, image.width, @@ -14155,7 +14155,7 @@ raylib.ImageRotateCW = ImageRotateCW * * @return {undefined} */ -function ImageRotateCCW (image) { +function ImageRotateCCW(image) { const obj = r.BindImageRotateCCW( image.data, image.width, @@ -14179,7 +14179,7 @@ raylib.ImageRotateCCW = ImageRotateCCW * * @return {undefined} */ -function ImageColorTint (image, color) { +function ImageColorTint(image, color) { const obj = r.BindImageColorTint( image.data, image.width, @@ -14206,7 +14206,7 @@ raylib.ImageColorTint = ImageColorTint * * @return {undefined} */ -function ImageColorInvert (image) { +function ImageColorInvert(image) { const obj = r.BindImageColorInvert( image.data, image.width, @@ -14229,7 +14229,7 @@ raylib.ImageColorInvert = ImageColorInvert * * @return {undefined} */ -function ImageColorGrayscale (image) { +function ImageColorGrayscale(image) { const obj = r.BindImageColorGrayscale( image.data, image.width, @@ -14253,7 +14253,7 @@ raylib.ImageColorGrayscale = ImageColorGrayscale * * @return {undefined} */ -function ImageColorContrast (image, contrast) { +function ImageColorContrast(image, contrast) { const obj = r.BindImageColorContrast( image.data, image.width, @@ -14278,7 +14278,7 @@ raylib.ImageColorContrast = ImageColorContrast * * @return {undefined} */ -function ImageColorBrightness (image, brightness) { +function ImageColorBrightness(image, brightness) { const obj = r.BindImageColorBrightness( image.data, image.width, @@ -14304,7 +14304,7 @@ raylib.ImageColorBrightness = ImageColorBrightness * * @return {undefined} */ -function ImageColorReplace (image, color, replace) { +function ImageColorReplace(image, color, replace) { const obj = r.BindImageColorReplace( image.data, image.width, @@ -14336,7 +14336,7 @@ raylib.ImageColorReplace = ImageColorReplace * * @return {undefined} */ -function ImageClearBackground (dst, color) { +function ImageClearBackground(dst, color) { const obj = r.BindImageClearBackground( dst.data, dst.width, @@ -14366,7 +14366,7 @@ raylib.ImageClearBackground = ImageClearBackground * * @return {undefined} */ -function ImageDrawPixel (dst, posX, posY, color) { +function ImageDrawPixel(dst, posX, posY, color) { const obj = r.BindImageDrawPixel( dst.data, dst.width, @@ -14397,7 +14397,7 @@ raylib.ImageDrawPixel = ImageDrawPixel * * @return {undefined} */ -function ImageDrawPixelV (dst, position, color) { +function ImageDrawPixelV(dst, position, color) { const obj = r.BindImageDrawPixelV( dst.data, dst.width, @@ -14431,7 +14431,7 @@ raylib.ImageDrawPixelV = ImageDrawPixelV * * @return {undefined} */ -function ImageDrawLine (dst, startPosX, startPosY, endPosX, endPosY, color) { +function ImageDrawLine(dst, startPosX, startPosY, endPosX, endPosY, color) { const obj = r.BindImageDrawLine( dst.data, dst.width, @@ -14465,7 +14465,7 @@ raylib.ImageDrawLine = ImageDrawLine * * @return {undefined} */ -function ImageDrawLineV (dst, start, end, color) { +function ImageDrawLineV(dst, start, end, color) { const obj = r.BindImageDrawLineV( dst.data, dst.width, @@ -14500,7 +14500,7 @@ raylib.ImageDrawLineV = ImageDrawLineV * * @return {undefined} */ -function ImageDrawCircle (dst, centerX, centerY, radius, color) { +function ImageDrawCircle(dst, centerX, centerY, radius, color) { const obj = r.BindImageDrawCircle( dst.data, dst.width, @@ -14533,7 +14533,7 @@ raylib.ImageDrawCircle = ImageDrawCircle * * @return {undefined} */ -function ImageDrawCircleV (dst, center, radius, color) { +function ImageDrawCircleV(dst, center, radius, color) { const obj = r.BindImageDrawCircleV( dst.data, dst.width, @@ -14568,7 +14568,7 @@ raylib.ImageDrawCircleV = ImageDrawCircleV * * @return {undefined} */ -function ImageDrawRectangle (dst, posX, posY, width, height, color) { +function ImageDrawRectangle(dst, posX, posY, width, height, color) { const obj = r.BindImageDrawRectangle( dst.data, dst.width, @@ -14602,7 +14602,7 @@ raylib.ImageDrawRectangle = ImageDrawRectangle * * @return {undefined} */ -function ImageDrawRectangleV (dst, position, size, color) { +function ImageDrawRectangleV(dst, position, size, color) { const obj = r.BindImageDrawRectangleV( dst.data, dst.width, @@ -14635,7 +14635,7 @@ raylib.ImageDrawRectangleV = ImageDrawRectangleV * * @return {undefined} */ -function ImageDrawRectangleRec (dst, rec, color) { +function ImageDrawRectangleRec(dst, rec, color) { const obj = r.BindImageDrawRectangleRec( dst.data, dst.width, @@ -14669,7 +14669,7 @@ raylib.ImageDrawRectangleRec = ImageDrawRectangleRec * * @return {undefined} */ -function ImageDrawRectangleLines (dst, rec, thick, color) { +function ImageDrawRectangleLines(dst, rec, thick, color) { const obj = r.BindImageDrawRectangleLines( dst.data, dst.width, @@ -14705,7 +14705,7 @@ raylib.ImageDrawRectangleLines = ImageDrawRectangleLines * * @return {undefined} */ -function ImageDraw (dst, src, srcRec, dstRec, tint) { +function ImageDraw(dst, src, srcRec, dstRec, tint) { const obj = r.BindImageDraw( dst.data, dst.width, @@ -14750,7 +14750,7 @@ raylib.ImageDraw = ImageDraw * * @return {undefined} */ -function ImageDrawText (dst, text, posX, posY, fontSize, color) { +function ImageDrawText(dst, text, posX, posY, fontSize, color) { const obj = r.BindImageDrawText( dst.data, dst.width, @@ -14787,7 +14787,7 @@ raylib.ImageDrawText = ImageDrawText * * @return {undefined} */ -function ImageDrawTextEx (dst, font, text, position, fontSize, spacing, tint) { +function ImageDrawTextEx(dst, font, text, position, fontSize, spacing, tint) { const obj = r.BindImageDrawTextEx( dst.data, dst.width, @@ -14829,7 +14829,7 @@ raylib.ImageDrawTextEx = ImageDrawTextEx * * @return {undefined} */ -function GenTextureMipmaps (texture) { +function GenTextureMipmaps(texture) { const obj = r.BindGenTextureMipmaps( texture.id, texture.width, @@ -14853,7 +14853,7 @@ raylib.GenTextureMipmaps = GenTextureMipmaps * * @return {undefined} */ -function UploadMesh (mesh, dynamic) { +function UploadMesh(mesh, dynamic) { const obj = r.BindUploadMesh( mesh.vertexCount, mesh.triangleCount, @@ -14887,7 +14887,7 @@ raylib.UploadMesh = UploadMesh * * @return {undefined} */ -function GenMeshTangents (mesh) { +function GenMeshTangents(mesh) { const obj = r.BindGenMeshTangents( mesh.vertexCount, mesh.triangleCount, @@ -14922,7 +14922,7 @@ raylib.GenMeshTangents = GenMeshTangents * * @return {undefined} */ -function SetModelMeshMaterial (model, meshId, materialId) { +function SetModelMeshMaterial(model, meshId, materialId) { const obj = r.BindSetModelMeshMaterial( model.transform.m0, model.transform.m4, @@ -14968,7 +14968,7 @@ raylib.SetModelMeshMaterial = SetModelMeshMaterial * * @return {undefined} */ -function WaveCrop (wave, initSample, finalSample) { +function WaveCrop(wave, initSample, finalSample) { const obj = r.BindWaveCrop( wave.frameCount, wave.sampleRate, @@ -14996,7 +14996,7 @@ raylib.WaveCrop = WaveCrop * * @return {undefined} */ -function WaveFormat (wave, sampleRate, sampleSize, channels) { +function WaveFormat(wave, sampleRate, sampleSize, channels) { const obj = r.BindWaveFormat( wave.frameCount, wave.sampleRate, @@ -15025,8 +15025,8 @@ raylib.WaveFormat = WaveFormat * * @return {Color} The new Color. */ -function Color (r, g, b, a) { - return { r, g, b, a } +function Color(r,g,b,a) { + return {r,g,b,a} } raylib.Color = Color @@ -15038,8 +15038,8 @@ raylib.Color = Color * * @return {Vector2} The new Vector2. */ -function Vector2 (x, y) { - return { x, y } +function Vector2(x,y) { + return {x,y} } raylib.Vector2 = Vector2 @@ -15052,8 +15052,8 @@ raylib.Vector2 = Vector2 * * @return {Vector3} The new Vector3. */ -function Vector3 (x, y, z) { - return { x, y, z } +function Vector3(x,y,z) { + return {x,y,z} } raylib.Vector3 = Vector3 @@ -15067,8 +15067,8 @@ raylib.Vector3 = Vector3 * * @return {Vector4} The new Vector4. */ -function Vector4 (x, y, z, w) { - return { x, y, z, w } +function Vector4(x,y,z,w) { + return {x,y,z,w} } raylib.Vector4 = Vector4 @@ -15082,8 +15082,8 @@ raylib.Vector4 = Vector4 * * @return {Rectangle} The new Rectangle. */ -function Rectangle (x, y, width, height) { - return { x, y, width, height } +function Rectangle(x,y,width,height) { + return {x,y,width,height} } raylib.Rectangle = Rectangle @@ -15097,8 +15097,8 @@ raylib.Rectangle = Rectangle * * @return {Camera2D} The new Camera2D. */ -function Camera2D (offset, target, rotation, zoom) { - return { offset, target, rotation, zoom } +function Camera2D(offset,target,rotation,zoom) { + return {offset,target,rotation,zoom} } raylib.Camera2D = Camera2D @@ -15113,8 +15113,8 @@ raylib.Camera2D = Camera2D * * @return {Camera3D} The new Camera3D. */ -function Camera3D (position, target, up, fovy, projection) { - return { position, target, up, fovy, projection } +function Camera3D(position,target,up,fovy,projection) { + return {position,target,up,fovy,projection} } raylib.Camera3D = Camera3D raylib.Camera = raylib.Camera3D @@ -15123,14 +15123,14 @@ raylib.Camera = raylib.Camera3D /** * Set shader uniform value float - * + * * @param {Shader} shader * @param {number} locIndex * @param {number} value - * + * * @returns {undefined} */ -function SetShaderFloat (shader, locIndex, value) { +function SetShaderFloat(shader, locIndex, value) { return r.BindSetShaderFloat( shader.id, shader.locs, @@ -15142,14 +15142,14 @@ raylib.SetShaderFloat = SetShaderFloat /** * Set shader uniform value float - * + * * @param {Shader} shader * @param {number} locIndex * @param {number} value - * + * * @returns {undefined} */ -function SetShaderInt (shader, locIndex, value) { +function SetShaderInt(shader, locIndex, value) { return r.BindSetShaderInt( shader.id, shader.locs, @@ -15161,14 +15161,14 @@ raylib.SetShaderInt = SetShaderInt /** * Set shader uniform value vector2 - * + * * @param {Shader} shader * @param {number} locIndex * @param {Vector2} value - * + * * @returns {undefined} */ -function SetShaderVec2 (shader, locIndex, value) { +function SetShaderVec2(shader, locIndex, value) { return r.BindSetShaderVec2( shader.id, shader.locs, @@ -15181,14 +15181,14 @@ raylib.SetShaderVec2 = SetShaderVec2 /** * Set shader uniform value vector3 - * + * * @param {Shader} shader * @param {number} locIndex * @param {Vector3} value - * + * * @returns {undefined} */ -function SetShaderVec3 (shader, locIndex, value) { +function SetShaderVec3(shader, locIndex, value) { return r.BindSetShaderVec3( shader.id, shader.locs, @@ -15202,14 +15202,14 @@ raylib.SetShaderVec3 = SetShaderVec3 /** * Set shader uniform value vector4 - * + * * @param {Shader} shader * @param {number} locIndex * @param {Vector4} value - * + * * @returns {undefined} */ -function SetShaderVec4 (shader, locIndex, value) { +function SetShaderVec4(shader, locIndex, value) { return r.BindSetShaderVec4( shader.id, shader.locs, @@ -17575,7 +17575,7 @@ raylib.NPATCH_THREE_PATCH_VERTICAL = 1 raylib.NPATCH_THREE_PATCH_HORIZONTAL = 2 /** - * + * * * @type {number} * @constant @@ -17583,7 +17583,7 @@ raylib.NPATCH_THREE_PATCH_HORIZONTAL = 2 raylib.STATE_NORMAL = 0 /** - * + * * * @type {number} * @constant @@ -17591,7 +17591,7 @@ raylib.STATE_NORMAL = 0 raylib.STATE_FOCUSED = 1 /** - * + * * * @type {number} * @constant @@ -17599,7 +17599,7 @@ raylib.STATE_FOCUSED = 1 raylib.STATE_PRESSED = 2 /** - * + * * * @type {number} * @constant @@ -17607,7 +17607,7 @@ raylib.STATE_PRESSED = 2 raylib.STATE_DISABLED = 3 /** - * + * * * @type {number} * @constant @@ -17615,7 +17615,7 @@ raylib.STATE_DISABLED = 3 raylib.TEXT_ALIGN_LEFT = 0 /** - * + * * * @type {number} * @constant @@ -17623,7 +17623,7 @@ raylib.TEXT_ALIGN_LEFT = 0 raylib.TEXT_ALIGN_CENTER = 1 /** - * + * * * @type {number} * @constant @@ -17631,7 +17631,7 @@ raylib.TEXT_ALIGN_CENTER = 1 raylib.TEXT_ALIGN_RIGHT = 2 /** - * + * * * @type {number} * @constant @@ -17647,7 +17647,7 @@ raylib.DEFAULT = 0 raylib.LABEL = 1 /** - * + * * * @type {number} * @constant @@ -17671,7 +17671,7 @@ raylib.TOGGLE = 3 raylib.SLIDER = 4 /** - * + * * * @type {number} * @constant @@ -17679,7 +17679,7 @@ raylib.SLIDER = 4 raylib.PROGRESSBAR = 5 /** - * + * * * @type {number} * @constant @@ -17687,7 +17687,7 @@ raylib.PROGRESSBAR = 5 raylib.CHECKBOX = 6 /** - * + * * * @type {number} * @constant @@ -17695,7 +17695,7 @@ raylib.CHECKBOX = 6 raylib.COMBOBOX = 7 /** - * + * * * @type {number} * @constant @@ -17711,7 +17711,7 @@ raylib.DROPDOWNBOX = 8 raylib.TEXTBOX = 9 /** - * + * * * @type {number} * @constant @@ -17727,7 +17727,7 @@ raylib.VALUEBOX = 10 raylib.SPINNER = 11 /** - * + * * * @type {number} * @constant @@ -17735,7 +17735,7 @@ raylib.SPINNER = 11 raylib.LISTVIEW = 12 /** - * + * * * @type {number} * @constant @@ -17743,7 +17743,7 @@ raylib.LISTVIEW = 12 raylib.COLORPICKER = 13 /** - * + * * * @type {number} * @constant @@ -17751,7 +17751,7 @@ raylib.COLORPICKER = 13 raylib.SCROLLBAR = 14 /** - * + * * * @type {number} * @constant @@ -17759,7 +17759,7 @@ raylib.SCROLLBAR = 14 raylib.STATUSBAR = 15 /** - * + * * * @type {number} * @constant @@ -17767,7 +17767,7 @@ raylib.STATUSBAR = 15 raylib.BORDER_COLOR_NORMAL = 0 /** - * + * * * @type {number} * @constant @@ -17775,7 +17775,7 @@ raylib.BORDER_COLOR_NORMAL = 0 raylib.BASE_COLOR_NORMAL = 1 /** - * + * * * @type {number} * @constant @@ -17783,7 +17783,7 @@ raylib.BASE_COLOR_NORMAL = 1 raylib.TEXT_COLOR_NORMAL = 2 /** - * + * * * @type {number} * @constant @@ -17791,7 +17791,7 @@ raylib.TEXT_COLOR_NORMAL = 2 raylib.BORDER_COLOR_FOCUSED = 3 /** - * + * * * @type {number} * @constant @@ -17799,7 +17799,7 @@ raylib.BORDER_COLOR_FOCUSED = 3 raylib.BASE_COLOR_FOCUSED = 4 /** - * + * * * @type {number} * @constant @@ -17807,7 +17807,7 @@ raylib.BASE_COLOR_FOCUSED = 4 raylib.TEXT_COLOR_FOCUSED = 5 /** - * + * * * @type {number} * @constant @@ -17815,7 +17815,7 @@ raylib.TEXT_COLOR_FOCUSED = 5 raylib.BORDER_COLOR_PRESSED = 6 /** - * + * * * @type {number} * @constant @@ -17823,7 +17823,7 @@ raylib.BORDER_COLOR_PRESSED = 6 raylib.BASE_COLOR_PRESSED = 7 /** - * + * * * @type {number} * @constant @@ -17831,7 +17831,7 @@ raylib.BASE_COLOR_PRESSED = 7 raylib.TEXT_COLOR_PRESSED = 8 /** - * + * * * @type {number} * @constant @@ -17839,7 +17839,7 @@ raylib.TEXT_COLOR_PRESSED = 8 raylib.BORDER_COLOR_DISABLED = 9 /** - * + * * * @type {number} * @constant @@ -17847,7 +17847,7 @@ raylib.BORDER_COLOR_DISABLED = 9 raylib.BASE_COLOR_DISABLED = 10 /** - * + * * * @type {number} * @constant @@ -17855,7 +17855,7 @@ raylib.BASE_COLOR_DISABLED = 10 raylib.TEXT_COLOR_DISABLED = 11 /** - * + * * * @type {number} * @constant @@ -17863,7 +17863,7 @@ raylib.TEXT_COLOR_DISABLED = 11 raylib.BORDER_WIDTH = 12 /** - * + * * * @type {number} * @constant @@ -17871,7 +17871,7 @@ raylib.BORDER_WIDTH = 12 raylib.TEXT_PADDING = 13 /** - * + * * * @type {number} * @constant @@ -17879,7 +17879,7 @@ raylib.TEXT_PADDING = 13 raylib.TEXT_ALIGNMENT = 14 /** - * + * * * @type {number} * @constant @@ -17951,7 +17951,7 @@ raylib.SLIDER_PADDING = 17 raylib.PROGRESS_PADDING = 16 /** - * + * * * @type {number} * @constant @@ -17959,7 +17959,7 @@ raylib.PROGRESS_PADDING = 16 raylib.ARROWS_SIZE = 16 /** - * + * * * @type {number} * @constant @@ -17975,7 +17975,7 @@ raylib.ARROWS_VISIBLE = 17 raylib.SCROLL_SLIDER_PADDING = 18 /** - * + * * * @type {number} * @constant @@ -17983,7 +17983,7 @@ raylib.SCROLL_SLIDER_PADDING = 18 raylib.SCROLL_SLIDER_SIZE = 19 /** - * + * * * @type {number} * @constant @@ -17991,7 +17991,7 @@ raylib.SCROLL_SLIDER_SIZE = 19 raylib.SCROLL_PADDING = 20 /** - * + * * * @type {number} * @constant @@ -18103,7 +18103,7 @@ raylib.SCROLLBAR_WIDTH = 18 raylib.SCROLLBAR_SIDE = 19 /** - * + * * * @type {number} * @constant @@ -18143,7 +18143,7 @@ raylib.HUEBAR_SELECTOR_HEIGHT = 19 raylib.HUEBAR_SELECTOR_OVERFLOW = 20 /** - * + * * * @type {number} * @constant @@ -18151,7 +18151,7 @@ raylib.HUEBAR_SELECTOR_OVERFLOW = 20 raylib.ICON_NONE = 0 /** - * + * * * @type {number} * @constant @@ -18159,7 +18159,7 @@ raylib.ICON_NONE = 0 raylib.ICON_FOLDER_FILE_OPEN = 1 /** - * + * * * @type {number} * @constant @@ -18167,7 +18167,7 @@ raylib.ICON_FOLDER_FILE_OPEN = 1 raylib.ICON_FILE_SAVE_CLASSIC = 2 /** - * + * * * @type {number} * @constant @@ -18175,7 +18175,7 @@ raylib.ICON_FILE_SAVE_CLASSIC = 2 raylib.ICON_FOLDER_OPEN = 3 /** - * + * * * @type {number} * @constant @@ -18183,7 +18183,7 @@ raylib.ICON_FOLDER_OPEN = 3 raylib.ICON_FOLDER_SAVE = 4 /** - * + * * * @type {number} * @constant @@ -18191,7 +18191,7 @@ raylib.ICON_FOLDER_SAVE = 4 raylib.ICON_FILE_OPEN = 5 /** - * + * * * @type {number} * @constant @@ -18199,7 +18199,7 @@ raylib.ICON_FILE_OPEN = 5 raylib.ICON_FILE_SAVE = 6 /** - * + * * * @type {number} * @constant @@ -18207,7 +18207,7 @@ raylib.ICON_FILE_SAVE = 6 raylib.ICON_FILE_EXPORT = 7 /** - * + * * * @type {number} * @constant @@ -18215,7 +18215,7 @@ raylib.ICON_FILE_EXPORT = 7 raylib.ICON_FILE_ADD = 8 /** - * + * * * @type {number} * @constant @@ -18223,7 +18223,7 @@ raylib.ICON_FILE_ADD = 8 raylib.ICON_FILE_DELETE = 9 /** - * + * * * @type {number} * @constant @@ -18231,7 +18231,7 @@ raylib.ICON_FILE_DELETE = 9 raylib.ICON_FILETYPE_TEXT = 10 /** - * + * * * @type {number} * @constant @@ -18239,7 +18239,7 @@ raylib.ICON_FILETYPE_TEXT = 10 raylib.ICON_FILETYPE_AUDIO = 11 /** - * + * * * @type {number} * @constant @@ -18247,7 +18247,7 @@ raylib.ICON_FILETYPE_AUDIO = 11 raylib.ICON_FILETYPE_IMAGE = 12 /** - * + * * * @type {number} * @constant @@ -18255,7 +18255,7 @@ raylib.ICON_FILETYPE_IMAGE = 12 raylib.ICON_FILETYPE_PLAY = 13 /** - * + * * * @type {number} * @constant @@ -18263,7 +18263,7 @@ raylib.ICON_FILETYPE_PLAY = 13 raylib.ICON_FILETYPE_VIDEO = 14 /** - * + * * * @type {number} * @constant @@ -18271,7 +18271,7 @@ raylib.ICON_FILETYPE_VIDEO = 14 raylib.ICON_FILETYPE_INFO = 15 /** - * + * * * @type {number} * @constant @@ -18279,7 +18279,7 @@ raylib.ICON_FILETYPE_INFO = 15 raylib.ICON_FILE_COPY = 16 /** - * + * * * @type {number} * @constant @@ -18287,7 +18287,7 @@ raylib.ICON_FILE_COPY = 16 raylib.ICON_FILE_CUT = 17 /** - * + * * * @type {number} * @constant @@ -18295,7 +18295,7 @@ raylib.ICON_FILE_CUT = 17 raylib.ICON_FILE_PASTE = 18 /** - * + * * * @type {number} * @constant @@ -18303,7 +18303,7 @@ raylib.ICON_FILE_PASTE = 18 raylib.ICON_CURSOR_HAND = 19 /** - * + * * * @type {number} * @constant @@ -18311,7 +18311,7 @@ raylib.ICON_CURSOR_HAND = 19 raylib.ICON_CURSOR_POINTER = 20 /** - * + * * * @type {number} * @constant @@ -18319,7 +18319,7 @@ raylib.ICON_CURSOR_POINTER = 20 raylib.ICON_CURSOR_CLASSIC = 21 /** - * + * * * @type {number} * @constant @@ -18327,7 +18327,7 @@ raylib.ICON_CURSOR_CLASSIC = 21 raylib.ICON_PENCIL = 22 /** - * + * * * @type {number} * @constant @@ -18335,7 +18335,7 @@ raylib.ICON_PENCIL = 22 raylib.ICON_PENCIL_BIG = 23 /** - * + * * * @type {number} * @constant @@ -18343,7 +18343,7 @@ raylib.ICON_PENCIL_BIG = 23 raylib.ICON_BRUSH_CLASSIC = 24 /** - * + * * * @type {number} * @constant @@ -18351,7 +18351,7 @@ raylib.ICON_BRUSH_CLASSIC = 24 raylib.ICON_BRUSH_PAINTER = 25 /** - * + * * * @type {number} * @constant @@ -18359,7 +18359,7 @@ raylib.ICON_BRUSH_PAINTER = 25 raylib.ICON_WATER_DROP = 26 /** - * + * * * @type {number} * @constant @@ -18367,7 +18367,7 @@ raylib.ICON_WATER_DROP = 26 raylib.ICON_COLOR_PICKER = 27 /** - * + * * * @type {number} * @constant @@ -18375,7 +18375,7 @@ raylib.ICON_COLOR_PICKER = 27 raylib.ICON_RUBBER = 28 /** - * + * * * @type {number} * @constant @@ -18383,7 +18383,7 @@ raylib.ICON_RUBBER = 28 raylib.ICON_COLOR_BUCKET = 29 /** - * + * * * @type {number} * @constant @@ -18391,7 +18391,7 @@ raylib.ICON_COLOR_BUCKET = 29 raylib.ICON_TEXT_T = 30 /** - * + * * * @type {number} * @constant @@ -18399,7 +18399,7 @@ raylib.ICON_TEXT_T = 30 raylib.ICON_TEXT_A = 31 /** - * + * * * @type {number} * @constant @@ -18407,7 +18407,7 @@ raylib.ICON_TEXT_A = 31 raylib.ICON_SCALE = 32 /** - * + * * * @type {number} * @constant @@ -18415,7 +18415,7 @@ raylib.ICON_SCALE = 32 raylib.ICON_RESIZE = 33 /** - * + * * * @type {number} * @constant @@ -18423,7 +18423,7 @@ raylib.ICON_RESIZE = 33 raylib.ICON_FILTER_POINT = 34 /** - * + * * * @type {number} * @constant @@ -18431,7 +18431,7 @@ raylib.ICON_FILTER_POINT = 34 raylib.ICON_FILTER_BILINEAR = 35 /** - * + * * * @type {number} * @constant @@ -18439,7 +18439,7 @@ raylib.ICON_FILTER_BILINEAR = 35 raylib.ICON_CROP = 36 /** - * + * * * @type {number} * @constant @@ -18447,7 +18447,7 @@ raylib.ICON_CROP = 36 raylib.ICON_CROP_ALPHA = 37 /** - * + * * * @type {number} * @constant @@ -18455,7 +18455,7 @@ raylib.ICON_CROP_ALPHA = 37 raylib.ICON_SQUARE_TOGGLE = 38 /** - * + * * * @type {number} * @constant @@ -18463,7 +18463,7 @@ raylib.ICON_SQUARE_TOGGLE = 38 raylib.ICON_SYMMETRY = 39 /** - * + * * * @type {number} * @constant @@ -18471,7 +18471,7 @@ raylib.ICON_SYMMETRY = 39 raylib.ICON_SYMMETRY_HORIZONTAL = 40 /** - * + * * * @type {number} * @constant @@ -18479,7 +18479,7 @@ raylib.ICON_SYMMETRY_HORIZONTAL = 40 raylib.ICON_SYMMETRY_VERTICAL = 41 /** - * + * * * @type {number} * @constant @@ -18487,7 +18487,7 @@ raylib.ICON_SYMMETRY_VERTICAL = 41 raylib.ICON_LENS = 42 /** - * + * * * @type {number} * @constant @@ -18495,7 +18495,7 @@ raylib.ICON_LENS = 42 raylib.ICON_LENS_BIG = 43 /** - * + * * * @type {number} * @constant @@ -18503,7 +18503,7 @@ raylib.ICON_LENS_BIG = 43 raylib.ICON_EYE_ON = 44 /** - * + * * * @type {number} * @constant @@ -18511,7 +18511,7 @@ raylib.ICON_EYE_ON = 44 raylib.ICON_EYE_OFF = 45 /** - * + * * * @type {number} * @constant @@ -18519,7 +18519,7 @@ raylib.ICON_EYE_OFF = 45 raylib.ICON_FILTER_TOP = 46 /** - * + * * * @type {number} * @constant @@ -18527,7 +18527,7 @@ raylib.ICON_FILTER_TOP = 46 raylib.ICON_FILTER = 47 /** - * + * * * @type {number} * @constant @@ -18535,7 +18535,7 @@ raylib.ICON_FILTER = 47 raylib.ICON_TARGET_POINT = 48 /** - * + * * * @type {number} * @constant @@ -18543,7 +18543,7 @@ raylib.ICON_TARGET_POINT = 48 raylib.ICON_TARGET_SMALL = 49 /** - * + * * * @type {number} * @constant @@ -18551,7 +18551,7 @@ raylib.ICON_TARGET_SMALL = 49 raylib.ICON_TARGET_BIG = 50 /** - * + * * * @type {number} * @constant @@ -18559,7 +18559,7 @@ raylib.ICON_TARGET_BIG = 50 raylib.ICON_TARGET_MOVE = 51 /** - * + * * * @type {number} * @constant @@ -18567,7 +18567,7 @@ raylib.ICON_TARGET_MOVE = 51 raylib.ICON_CURSOR_MOVE = 52 /** - * + * * * @type {number} * @constant @@ -18575,7 +18575,7 @@ raylib.ICON_CURSOR_MOVE = 52 raylib.ICON_CURSOR_SCALE = 53 /** - * + * * * @type {number} * @constant @@ -18583,7 +18583,7 @@ raylib.ICON_CURSOR_SCALE = 53 raylib.ICON_CURSOR_SCALE_RIGHT = 54 /** - * + * * * @type {number} * @constant @@ -18591,7 +18591,7 @@ raylib.ICON_CURSOR_SCALE_RIGHT = 54 raylib.ICON_CURSOR_SCALE_LEFT = 55 /** - * + * * * @type {number} * @constant @@ -18599,7 +18599,7 @@ raylib.ICON_CURSOR_SCALE_LEFT = 55 raylib.ICON_UNDO = 56 /** - * + * * * @type {number} * @constant @@ -18607,7 +18607,7 @@ raylib.ICON_UNDO = 56 raylib.ICON_REDO = 57 /** - * + * * * @type {number} * @constant @@ -18615,7 +18615,7 @@ raylib.ICON_REDO = 57 raylib.ICON_REREDO = 58 /** - * + * * * @type {number} * @constant @@ -18623,7 +18623,7 @@ raylib.ICON_REREDO = 58 raylib.ICON_MUTATE = 59 /** - * + * * * @type {number} * @constant @@ -18631,7 +18631,7 @@ raylib.ICON_MUTATE = 59 raylib.ICON_ROTATE = 60 /** - * + * * * @type {number} * @constant @@ -18639,7 +18639,7 @@ raylib.ICON_ROTATE = 60 raylib.ICON_REPEAT = 61 /** - * + * * * @type {number} * @constant @@ -18647,7 +18647,7 @@ raylib.ICON_REPEAT = 61 raylib.ICON_SHUFFLE = 62 /** - * + * * * @type {number} * @constant @@ -18655,7 +18655,7 @@ raylib.ICON_SHUFFLE = 62 raylib.ICON_EMPTYBOX = 63 /** - * + * * * @type {number} * @constant @@ -18663,7 +18663,7 @@ raylib.ICON_EMPTYBOX = 63 raylib.ICON_TARGET = 64 /** - * + * * * @type {number} * @constant @@ -18671,7 +18671,7 @@ raylib.ICON_TARGET = 64 raylib.ICON_TARGET_SMALL_FILL = 65 /** - * + * * * @type {number} * @constant @@ -18679,7 +18679,7 @@ raylib.ICON_TARGET_SMALL_FILL = 65 raylib.ICON_TARGET_BIG_FILL = 66 /** - * + * * * @type {number} * @constant @@ -18687,7 +18687,7 @@ raylib.ICON_TARGET_BIG_FILL = 66 raylib.ICON_TARGET_MOVE_FILL = 67 /** - * + * * * @type {number} * @constant @@ -18695,7 +18695,7 @@ raylib.ICON_TARGET_MOVE_FILL = 67 raylib.ICON_CURSOR_MOVE_FILL = 68 /** - * + * * * @type {number} * @constant @@ -18703,7 +18703,7 @@ raylib.ICON_CURSOR_MOVE_FILL = 68 raylib.ICON_CURSOR_SCALE_FILL = 69 /** - * + * * * @type {number} * @constant @@ -18711,7 +18711,7 @@ raylib.ICON_CURSOR_SCALE_FILL = 69 raylib.ICON_CURSOR_SCALE_RIGHT_FILL = 70 /** - * + * * * @type {number} * @constant @@ -18719,7 +18719,7 @@ raylib.ICON_CURSOR_SCALE_RIGHT_FILL = 70 raylib.ICON_CURSOR_SCALE_LEFT_FILL = 71 /** - * + * * * @type {number} * @constant @@ -18727,7 +18727,7 @@ raylib.ICON_CURSOR_SCALE_LEFT_FILL = 71 raylib.ICON_UNDO_FILL = 72 /** - * + * * * @type {number} * @constant @@ -18735,7 +18735,7 @@ raylib.ICON_UNDO_FILL = 72 raylib.ICON_REDO_FILL = 73 /** - * + * * * @type {number} * @constant @@ -18743,7 +18743,7 @@ raylib.ICON_REDO_FILL = 73 raylib.ICON_REREDO_FILL = 74 /** - * + * * * @type {number} * @constant @@ -18751,7 +18751,7 @@ raylib.ICON_REREDO_FILL = 74 raylib.ICON_MUTATE_FILL = 75 /** - * + * * * @type {number} * @constant @@ -18759,7 +18759,7 @@ raylib.ICON_MUTATE_FILL = 75 raylib.ICON_ROTATE_FILL = 76 /** - * + * * * @type {number} * @constant @@ -18767,7 +18767,7 @@ raylib.ICON_ROTATE_FILL = 76 raylib.ICON_REPEAT_FILL = 77 /** - * + * * * @type {number} * @constant @@ -18775,7 +18775,7 @@ raylib.ICON_REPEAT_FILL = 77 raylib.ICON_SHUFFLE_FILL = 78 /** - * + * * * @type {number} * @constant @@ -18783,7 +18783,7 @@ raylib.ICON_SHUFFLE_FILL = 78 raylib.ICON_EMPTYBOX_SMALL = 79 /** - * + * * * @type {number} * @constant @@ -18791,7 +18791,7 @@ raylib.ICON_EMPTYBOX_SMALL = 79 raylib.ICON_BOX = 80 /** - * + * * * @type {number} * @constant @@ -18799,7 +18799,7 @@ raylib.ICON_BOX = 80 raylib.ICON_BOX_TOP = 81 /** - * + * * * @type {number} * @constant @@ -18807,7 +18807,7 @@ raylib.ICON_BOX_TOP = 81 raylib.ICON_BOX_TOP_RIGHT = 82 /** - * + * * * @type {number} * @constant @@ -18815,7 +18815,7 @@ raylib.ICON_BOX_TOP_RIGHT = 82 raylib.ICON_BOX_RIGHT = 83 /** - * + * * * @type {number} * @constant @@ -18823,7 +18823,7 @@ raylib.ICON_BOX_RIGHT = 83 raylib.ICON_BOX_BOTTOM_RIGHT = 84 /** - * + * * * @type {number} * @constant @@ -18831,7 +18831,7 @@ raylib.ICON_BOX_BOTTOM_RIGHT = 84 raylib.ICON_BOX_BOTTOM = 85 /** - * + * * * @type {number} * @constant @@ -18839,7 +18839,7 @@ raylib.ICON_BOX_BOTTOM = 85 raylib.ICON_BOX_BOTTOM_LEFT = 86 /** - * + * * * @type {number} * @constant @@ -18847,7 +18847,7 @@ raylib.ICON_BOX_BOTTOM_LEFT = 86 raylib.ICON_BOX_LEFT = 87 /** - * + * * * @type {number} * @constant @@ -18855,7 +18855,7 @@ raylib.ICON_BOX_LEFT = 87 raylib.ICON_BOX_TOP_LEFT = 88 /** - * + * * * @type {number} * @constant @@ -18863,7 +18863,7 @@ raylib.ICON_BOX_TOP_LEFT = 88 raylib.ICON_BOX_CENTER = 89 /** - * + * * * @type {number} * @constant @@ -18871,7 +18871,7 @@ raylib.ICON_BOX_CENTER = 89 raylib.ICON_BOX_CIRCLE_MASK = 90 /** - * + * * * @type {number} * @constant @@ -18879,7 +18879,7 @@ raylib.ICON_BOX_CIRCLE_MASK = 90 raylib.ICON_POT = 91 /** - * + * * * @type {number} * @constant @@ -18887,7 +18887,7 @@ raylib.ICON_POT = 91 raylib.ICON_ALPHA_MULTIPLY = 92 /** - * + * * * @type {number} * @constant @@ -18895,7 +18895,7 @@ raylib.ICON_ALPHA_MULTIPLY = 92 raylib.ICON_ALPHA_CLEAR = 93 /** - * + * * * @type {number} * @constant @@ -18903,7 +18903,7 @@ raylib.ICON_ALPHA_CLEAR = 93 raylib.ICON_DITHERING = 94 /** - * + * * * @type {number} * @constant @@ -18911,7 +18911,7 @@ raylib.ICON_DITHERING = 94 raylib.ICON_MIPMAPS = 95 /** - * + * * * @type {number} * @constant @@ -18919,7 +18919,7 @@ raylib.ICON_MIPMAPS = 95 raylib.ICON_BOX_GRID = 96 /** - * + * * * @type {number} * @constant @@ -18927,7 +18927,7 @@ raylib.ICON_BOX_GRID = 96 raylib.ICON_GRID = 97 /** - * + * * * @type {number} * @constant @@ -18935,7 +18935,7 @@ raylib.ICON_GRID = 97 raylib.ICON_BOX_CORNERS_SMALL = 98 /** - * + * * * @type {number} * @constant @@ -18943,7 +18943,7 @@ raylib.ICON_BOX_CORNERS_SMALL = 98 raylib.ICON_BOX_CORNERS_BIG = 99 /** - * + * * * @type {number} * @constant @@ -18951,7 +18951,7 @@ raylib.ICON_BOX_CORNERS_BIG = 99 raylib.ICON_FOUR_BOXES = 100 /** - * + * * * @type {number} * @constant @@ -18959,7 +18959,7 @@ raylib.ICON_FOUR_BOXES = 100 raylib.ICON_GRID_FILL = 101 /** - * + * * * @type {number} * @constant @@ -18967,7 +18967,7 @@ raylib.ICON_GRID_FILL = 101 raylib.ICON_BOX_MULTISIZE = 102 /** - * + * * * @type {number} * @constant @@ -18975,7 +18975,7 @@ raylib.ICON_BOX_MULTISIZE = 102 raylib.ICON_ZOOM_SMALL = 103 /** - * + * * * @type {number} * @constant @@ -18983,7 +18983,7 @@ raylib.ICON_ZOOM_SMALL = 103 raylib.ICON_ZOOM_MEDIUM = 104 /** - * + * * * @type {number} * @constant @@ -18991,7 +18991,7 @@ raylib.ICON_ZOOM_MEDIUM = 104 raylib.ICON_ZOOM_BIG = 105 /** - * + * * * @type {number} * @constant @@ -18999,7 +18999,7 @@ raylib.ICON_ZOOM_BIG = 105 raylib.ICON_ZOOM_ALL = 106 /** - * + * * * @type {number} * @constant @@ -19007,7 +19007,7 @@ raylib.ICON_ZOOM_ALL = 106 raylib.ICON_ZOOM_CENTER = 107 /** - * + * * * @type {number} * @constant @@ -19015,7 +19015,7 @@ raylib.ICON_ZOOM_CENTER = 107 raylib.ICON_BOX_DOTS_SMALL = 108 /** - * + * * * @type {number} * @constant @@ -19023,7 +19023,7 @@ raylib.ICON_BOX_DOTS_SMALL = 108 raylib.ICON_BOX_DOTS_BIG = 109 /** - * + * * * @type {number} * @constant @@ -19031,7 +19031,7 @@ raylib.ICON_BOX_DOTS_BIG = 109 raylib.ICON_BOX_CONCENTRIC = 110 /** - * + * * * @type {number} * @constant @@ -19039,7 +19039,7 @@ raylib.ICON_BOX_CONCENTRIC = 110 raylib.ICON_BOX_GRID_BIG = 111 /** - * + * * * @type {number} * @constant @@ -19047,7 +19047,7 @@ raylib.ICON_BOX_GRID_BIG = 111 raylib.ICON_OK_TICK = 112 /** - * + * * * @type {number} * @constant @@ -19055,7 +19055,7 @@ raylib.ICON_OK_TICK = 112 raylib.ICON_CROSS = 113 /** - * + * * * @type {number} * @constant @@ -19063,7 +19063,7 @@ raylib.ICON_CROSS = 113 raylib.ICON_ARROW_LEFT = 114 /** - * + * * * @type {number} * @constant @@ -19071,7 +19071,7 @@ raylib.ICON_ARROW_LEFT = 114 raylib.ICON_ARROW_RIGHT = 115 /** - * + * * * @type {number} * @constant @@ -19079,7 +19079,7 @@ raylib.ICON_ARROW_RIGHT = 115 raylib.ICON_ARROW_DOWN = 116 /** - * + * * * @type {number} * @constant @@ -19087,7 +19087,7 @@ raylib.ICON_ARROW_DOWN = 116 raylib.ICON_ARROW_UP = 117 /** - * + * * * @type {number} * @constant @@ -19095,7 +19095,7 @@ raylib.ICON_ARROW_UP = 117 raylib.ICON_ARROW_LEFT_FILL = 118 /** - * + * * * @type {number} * @constant @@ -19103,7 +19103,7 @@ raylib.ICON_ARROW_LEFT_FILL = 118 raylib.ICON_ARROW_RIGHT_FILL = 119 /** - * + * * * @type {number} * @constant @@ -19111,7 +19111,7 @@ raylib.ICON_ARROW_RIGHT_FILL = 119 raylib.ICON_ARROW_DOWN_FILL = 120 /** - * + * * * @type {number} * @constant @@ -19119,7 +19119,7 @@ raylib.ICON_ARROW_DOWN_FILL = 120 raylib.ICON_ARROW_UP_FILL = 121 /** - * + * * * @type {number} * @constant @@ -19127,7 +19127,7 @@ raylib.ICON_ARROW_UP_FILL = 121 raylib.ICON_AUDIO = 122 /** - * + * * * @type {number} * @constant @@ -19135,7 +19135,7 @@ raylib.ICON_AUDIO = 122 raylib.ICON_FX = 123 /** - * + * * * @type {number} * @constant @@ -19143,7 +19143,7 @@ raylib.ICON_FX = 123 raylib.ICON_WAVE = 124 /** - * + * * * @type {number} * @constant @@ -19151,7 +19151,7 @@ raylib.ICON_WAVE = 124 raylib.ICON_WAVE_SINUS = 125 /** - * + * * * @type {number} * @constant @@ -19159,7 +19159,7 @@ raylib.ICON_WAVE_SINUS = 125 raylib.ICON_WAVE_SQUARE = 126 /** - * + * * * @type {number} * @constant @@ -19167,7 +19167,7 @@ raylib.ICON_WAVE_SQUARE = 126 raylib.ICON_WAVE_TRIANGULAR = 127 /** - * + * * * @type {number} * @constant @@ -19175,7 +19175,7 @@ raylib.ICON_WAVE_TRIANGULAR = 127 raylib.ICON_CROSS_SMALL = 128 /** - * + * * * @type {number} * @constant @@ -19183,7 +19183,7 @@ raylib.ICON_CROSS_SMALL = 128 raylib.ICON_PLAYER_PREVIOUS = 129 /** - * + * * * @type {number} * @constant @@ -19191,7 +19191,7 @@ raylib.ICON_PLAYER_PREVIOUS = 129 raylib.ICON_PLAYER_PLAY_BACK = 130 /** - * + * * * @type {number} * @constant @@ -19199,7 +19199,7 @@ raylib.ICON_PLAYER_PLAY_BACK = 130 raylib.ICON_PLAYER_PLAY = 131 /** - * + * * * @type {number} * @constant @@ -19207,7 +19207,7 @@ raylib.ICON_PLAYER_PLAY = 131 raylib.ICON_PLAYER_PAUSE = 132 /** - * + * * * @type {number} * @constant @@ -19215,7 +19215,7 @@ raylib.ICON_PLAYER_PAUSE = 132 raylib.ICON_PLAYER_STOP = 133 /** - * + * * * @type {number} * @constant @@ -19223,7 +19223,7 @@ raylib.ICON_PLAYER_STOP = 133 raylib.ICON_PLAYER_NEXT = 134 /** - * + * * * @type {number} * @constant @@ -19231,7 +19231,7 @@ raylib.ICON_PLAYER_NEXT = 134 raylib.ICON_PLAYER_RECORD = 135 /** - * + * * * @type {number} * @constant @@ -19239,7 +19239,7 @@ raylib.ICON_PLAYER_RECORD = 135 raylib.ICON_MAGNET = 136 /** - * + * * * @type {number} * @constant @@ -19247,7 +19247,7 @@ raylib.ICON_MAGNET = 136 raylib.ICON_LOCK_CLOSE = 137 /** - * + * * * @type {number} * @constant @@ -19255,7 +19255,7 @@ raylib.ICON_LOCK_CLOSE = 137 raylib.ICON_LOCK_OPEN = 138 /** - * + * * * @type {number} * @constant @@ -19263,7 +19263,7 @@ raylib.ICON_LOCK_OPEN = 138 raylib.ICON_CLOCK = 139 /** - * + * * * @type {number} * @constant @@ -19271,7 +19271,7 @@ raylib.ICON_CLOCK = 139 raylib.ICON_TOOLS = 140 /** - * + * * * @type {number} * @constant @@ -19279,7 +19279,7 @@ raylib.ICON_TOOLS = 140 raylib.ICON_GEAR = 141 /** - * + * * * @type {number} * @constant @@ -19287,7 +19287,7 @@ raylib.ICON_GEAR = 141 raylib.ICON_GEAR_BIG = 142 /** - * + * * * @type {number} * @constant @@ -19295,7 +19295,7 @@ raylib.ICON_GEAR_BIG = 142 raylib.ICON_BIN = 143 /** - * + * * * @type {number} * @constant @@ -19303,7 +19303,7 @@ raylib.ICON_BIN = 143 raylib.ICON_HAND_POINTER = 144 /** - * + * * * @type {number} * @constant @@ -19311,7 +19311,7 @@ raylib.ICON_HAND_POINTER = 144 raylib.ICON_LASER = 145 /** - * + * * * @type {number} * @constant @@ -19319,7 +19319,7 @@ raylib.ICON_LASER = 145 raylib.ICON_COIN = 146 /** - * + * * * @type {number} * @constant @@ -19327,7 +19327,7 @@ raylib.ICON_COIN = 146 raylib.ICON_EXPLOSION = 147 /** - * + * * * @type {number} * @constant @@ -19335,7 +19335,7 @@ raylib.ICON_EXPLOSION = 147 raylib.ICON_1UP = 148 /** - * + * * * @type {number} * @constant @@ -19343,7 +19343,7 @@ raylib.ICON_1UP = 148 raylib.ICON_PLAYER = 149 /** - * + * * * @type {number} * @constant @@ -19351,7 +19351,7 @@ raylib.ICON_PLAYER = 149 raylib.ICON_PLAYER_JUMP = 150 /** - * + * * * @type {number} * @constant @@ -19359,7 +19359,7 @@ raylib.ICON_PLAYER_JUMP = 150 raylib.ICON_KEY = 151 /** - * + * * * @type {number} * @constant @@ -19367,7 +19367,7 @@ raylib.ICON_KEY = 151 raylib.ICON_DEMON = 152 /** - * + * * * @type {number} * @constant @@ -19375,7 +19375,7 @@ raylib.ICON_DEMON = 152 raylib.ICON_TEXT_POPUP = 153 /** - * + * * * @type {number} * @constant @@ -19383,7 +19383,7 @@ raylib.ICON_TEXT_POPUP = 153 raylib.ICON_GEAR_EX = 154 /** - * + * * * @type {number} * @constant @@ -19391,7 +19391,7 @@ raylib.ICON_GEAR_EX = 154 raylib.ICON_CRACK = 155 /** - * + * * * @type {number} * @constant @@ -19399,7 +19399,7 @@ raylib.ICON_CRACK = 155 raylib.ICON_CRACK_POINTS = 156 /** - * + * * * @type {number} * @constant @@ -19407,7 +19407,7 @@ raylib.ICON_CRACK_POINTS = 156 raylib.ICON_STAR = 157 /** - * + * * * @type {number} * @constant @@ -19415,7 +19415,7 @@ raylib.ICON_STAR = 157 raylib.ICON_DOOR = 158 /** - * + * * * @type {number} * @constant @@ -19423,7 +19423,7 @@ raylib.ICON_DOOR = 158 raylib.ICON_EXIT = 159 /** - * + * * * @type {number} * @constant @@ -19431,7 +19431,7 @@ raylib.ICON_EXIT = 159 raylib.ICON_MODE_2D = 160 /** - * + * * * @type {number} * @constant @@ -19439,7 +19439,7 @@ raylib.ICON_MODE_2D = 160 raylib.ICON_MODE_3D = 161 /** - * + * * * @type {number} * @constant @@ -19447,7 +19447,7 @@ raylib.ICON_MODE_3D = 161 raylib.ICON_CUBE = 162 /** - * + * * * @type {number} * @constant @@ -19455,7 +19455,7 @@ raylib.ICON_CUBE = 162 raylib.ICON_CUBE_FACE_TOP = 163 /** - * + * * * @type {number} * @constant @@ -19463,7 +19463,7 @@ raylib.ICON_CUBE_FACE_TOP = 163 raylib.ICON_CUBE_FACE_LEFT = 164 /** - * + * * * @type {number} * @constant @@ -19471,7 +19471,7 @@ raylib.ICON_CUBE_FACE_LEFT = 164 raylib.ICON_CUBE_FACE_FRONT = 165 /** - * + * * * @type {number} * @constant @@ -19479,7 +19479,7 @@ raylib.ICON_CUBE_FACE_FRONT = 165 raylib.ICON_CUBE_FACE_BOTTOM = 166 /** - * + * * * @type {number} * @constant @@ -19487,7 +19487,7 @@ raylib.ICON_CUBE_FACE_BOTTOM = 166 raylib.ICON_CUBE_FACE_RIGHT = 167 /** - * + * * * @type {number} * @constant @@ -19495,7 +19495,7 @@ raylib.ICON_CUBE_FACE_RIGHT = 167 raylib.ICON_CUBE_FACE_BACK = 168 /** - * + * * * @type {number} * @constant @@ -19503,7 +19503,7 @@ raylib.ICON_CUBE_FACE_BACK = 168 raylib.ICON_CAMERA = 169 /** - * + * * * @type {number} * @constant @@ -19511,7 +19511,7 @@ raylib.ICON_CAMERA = 169 raylib.ICON_SPECIAL = 170 /** - * + * * * @type {number} * @constant @@ -19519,7 +19519,7 @@ raylib.ICON_SPECIAL = 170 raylib.ICON_LINK_NET = 171 /** - * + * * * @type {number} * @constant @@ -19527,7 +19527,7 @@ raylib.ICON_LINK_NET = 171 raylib.ICON_LINK_BOXES = 172 /** - * + * * * @type {number} * @constant @@ -19535,7 +19535,7 @@ raylib.ICON_LINK_BOXES = 172 raylib.ICON_LINK_MULTI = 173 /** - * + * * * @type {number} * @constant @@ -19543,7 +19543,7 @@ raylib.ICON_LINK_MULTI = 173 raylib.ICON_LINK = 174 /** - * + * * * @type {number} * @constant @@ -19551,7 +19551,7 @@ raylib.ICON_LINK = 174 raylib.ICON_LINK_BROKE = 175 /** - * + * * * @type {number} * @constant @@ -19559,7 +19559,7 @@ raylib.ICON_LINK_BROKE = 175 raylib.ICON_TEXT_NOTES = 176 /** - * + * * * @type {number} * @constant @@ -19567,7 +19567,7 @@ raylib.ICON_TEXT_NOTES = 176 raylib.ICON_NOTEBOOK = 177 /** - * + * * * @type {number} * @constant @@ -19575,7 +19575,7 @@ raylib.ICON_NOTEBOOK = 177 raylib.ICON_SUITCASE = 178 /** - * + * * * @type {number} * @constant @@ -19583,7 +19583,7 @@ raylib.ICON_SUITCASE = 178 raylib.ICON_SUITCASE_ZIP = 179 /** - * + * * * @type {number} * @constant @@ -19591,7 +19591,7 @@ raylib.ICON_SUITCASE_ZIP = 179 raylib.ICON_MAILBOX = 180 /** - * + * * * @type {number} * @constant @@ -19599,7 +19599,7 @@ raylib.ICON_MAILBOX = 180 raylib.ICON_MONITOR = 181 /** - * + * * * @type {number} * @constant @@ -19607,7 +19607,7 @@ raylib.ICON_MONITOR = 181 raylib.ICON_PRINTER = 182 /** - * + * * * @type {number} * @constant @@ -19615,7 +19615,7 @@ raylib.ICON_PRINTER = 182 raylib.ICON_PHOTO_CAMERA = 183 /** - * + * * * @type {number} * @constant @@ -19623,7 +19623,7 @@ raylib.ICON_PHOTO_CAMERA = 183 raylib.ICON_PHOTO_CAMERA_FLASH = 184 /** - * + * * * @type {number} * @constant @@ -19631,7 +19631,7 @@ raylib.ICON_PHOTO_CAMERA_FLASH = 184 raylib.ICON_HOUSE = 185 /** - * + * * * @type {number} * @constant @@ -19639,7 +19639,7 @@ raylib.ICON_HOUSE = 185 raylib.ICON_HEART = 186 /** - * + * * * @type {number} * @constant @@ -19647,7 +19647,7 @@ raylib.ICON_HEART = 186 raylib.ICON_CORNER = 187 /** - * + * * * @type {number} * @constant @@ -19655,7 +19655,7 @@ raylib.ICON_CORNER = 187 raylib.ICON_VERTICAL_BARS = 188 /** - * + * * * @type {number} * @constant @@ -19663,7 +19663,7 @@ raylib.ICON_VERTICAL_BARS = 188 raylib.ICON_VERTICAL_BARS_FILL = 189 /** - * + * * * @type {number} * @constant @@ -19671,7 +19671,7 @@ raylib.ICON_VERTICAL_BARS_FILL = 189 raylib.ICON_LIFE_BARS = 190 /** - * + * * * @type {number} * @constant @@ -19679,7 +19679,7 @@ raylib.ICON_LIFE_BARS = 190 raylib.ICON_INFO = 191 /** - * + * * * @type {number} * @constant @@ -19687,7 +19687,7 @@ raylib.ICON_INFO = 191 raylib.ICON_CROSSLINE = 192 /** - * + * * * @type {number} * @constant @@ -19695,7 +19695,7 @@ raylib.ICON_CROSSLINE = 192 raylib.ICON_HELP = 193 /** - * + * * * @type {number} * @constant @@ -19703,7 +19703,7 @@ raylib.ICON_HELP = 193 raylib.ICON_FILETYPE_ALPHA = 194 /** - * + * * * @type {number} * @constant @@ -19711,7 +19711,7 @@ raylib.ICON_FILETYPE_ALPHA = 194 raylib.ICON_FILETYPE_HOME = 195 /** - * + * * * @type {number} * @constant @@ -19719,7 +19719,7 @@ raylib.ICON_FILETYPE_HOME = 195 raylib.ICON_LAYERS_VISIBLE = 196 /** - * + * * * @type {number} * @constant @@ -19727,7 +19727,7 @@ raylib.ICON_LAYERS_VISIBLE = 196 raylib.ICON_LAYERS = 197 /** - * + * * * @type {number} * @constant @@ -19735,7 +19735,7 @@ raylib.ICON_LAYERS = 197 raylib.ICON_WINDOW = 198 /** - * + * * * @type {number} * @constant @@ -19743,7 +19743,7 @@ raylib.ICON_WINDOW = 198 raylib.ICON_HIDPI = 199 /** - * + * * * @type {number} * @constant @@ -19751,7 +19751,7 @@ raylib.ICON_HIDPI = 199 raylib.ICON_FILETYPE_BINARY = 200 /** - * + * * * @type {number} * @constant @@ -19759,7 +19759,7 @@ raylib.ICON_FILETYPE_BINARY = 200 raylib.ICON_HEX = 201 /** - * + * * * @type {number} * @constant @@ -19767,7 +19767,7 @@ raylib.ICON_HEX = 201 raylib.ICON_SHIELD = 202 /** - * + * * * @type {number} * @constant @@ -19775,7 +19775,7 @@ raylib.ICON_SHIELD = 202 raylib.ICON_FILE_NEW = 203 /** - * + * * * @type {number} * @constant @@ -19783,7 +19783,7 @@ raylib.ICON_FILE_NEW = 203 raylib.ICON_FOLDER_ADD = 204 /** - * + * * * @type {number} * @constant @@ -19791,7 +19791,7 @@ raylib.ICON_FOLDER_ADD = 204 raylib.ICON_ALARM = 205 /** - * + * * * @type {number} * @constant @@ -19799,7 +19799,7 @@ raylib.ICON_ALARM = 205 raylib.ICON_CPU = 206 /** - * + * * * @type {number} * @constant @@ -19807,7 +19807,7 @@ raylib.ICON_CPU = 206 raylib.ICON_ROM = 207 /** - * + * * * @type {number} * @constant @@ -19815,7 +19815,7 @@ raylib.ICON_ROM = 207 raylib.ICON_STEP_OVER = 208 /** - * + * * * @type {number} * @constant @@ -19823,7 +19823,7 @@ raylib.ICON_STEP_OVER = 208 raylib.ICON_STEP_INTO = 209 /** - * + * * * @type {number} * @constant @@ -19831,7 +19831,7 @@ raylib.ICON_STEP_INTO = 209 raylib.ICON_STEP_OUT = 210 /** - * + * * * @type {number} * @constant @@ -19839,7 +19839,7 @@ raylib.ICON_STEP_OUT = 210 raylib.ICON_RESTART = 211 /** - * + * * * @type {number} * @constant @@ -19847,7 +19847,7 @@ raylib.ICON_RESTART = 211 raylib.ICON_BREAKPOINT_ON = 212 /** - * + * * * @type {number} * @constant @@ -19855,7 +19855,7 @@ raylib.ICON_BREAKPOINT_ON = 212 raylib.ICON_BREAKPOINT_OFF = 213 /** - * + * * * @type {number} * @constant @@ -19863,7 +19863,7 @@ raylib.ICON_BREAKPOINT_OFF = 213 raylib.ICON_BURGER_MENU = 214 /** - * + * * * @type {number} * @constant @@ -19871,7 +19871,7 @@ raylib.ICON_BURGER_MENU = 214 raylib.ICON_CASE_SENSITIVE = 215 /** - * + * * * @type {number} * @constant @@ -19879,7 +19879,7 @@ raylib.ICON_CASE_SENSITIVE = 215 raylib.ICON_REG_EXP = 216 /** - * + * * * @type {number} * @constant @@ -19887,7 +19887,7 @@ raylib.ICON_REG_EXP = 216 raylib.ICON_FOLDER = 217 /** - * + * * * @type {number} * @constant @@ -19895,7 +19895,7 @@ raylib.ICON_FOLDER = 217 raylib.ICON_FILE = 218 /** - * + * * * @type {number} * @constant @@ -19903,7 +19903,7 @@ raylib.ICON_FILE = 218 raylib.ICON_219 = 219 /** - * + * * * @type {number} * @constant @@ -19911,7 +19911,7 @@ raylib.ICON_219 = 219 raylib.ICON_220 = 220 /** - * + * * * @type {number} * @constant @@ -19919,7 +19919,7 @@ raylib.ICON_220 = 220 raylib.ICON_221 = 221 /** - * + * * * @type {number} * @constant @@ -19927,7 +19927,7 @@ raylib.ICON_221 = 221 raylib.ICON_222 = 222 /** - * + * * * @type {number} * @constant @@ -19935,7 +19935,7 @@ raylib.ICON_222 = 222 raylib.ICON_223 = 223 /** - * + * * * @type {number} * @constant @@ -19943,7 +19943,7 @@ raylib.ICON_223 = 223 raylib.ICON_224 = 224 /** - * + * * * @type {number} * @constant @@ -19951,7 +19951,7 @@ raylib.ICON_224 = 224 raylib.ICON_225 = 225 /** - * + * * * @type {number} * @constant @@ -19959,7 +19959,7 @@ raylib.ICON_225 = 225 raylib.ICON_226 = 226 /** - * + * * * @type {number} * @constant @@ -19967,7 +19967,7 @@ raylib.ICON_226 = 226 raylib.ICON_227 = 227 /** - * + * * * @type {number} * @constant @@ -19975,7 +19975,7 @@ raylib.ICON_227 = 227 raylib.ICON_228 = 228 /** - * + * * * @type {number} * @constant @@ -19983,7 +19983,7 @@ raylib.ICON_228 = 228 raylib.ICON_229 = 229 /** - * + * * * @type {number} * @constant @@ -19991,7 +19991,7 @@ raylib.ICON_229 = 229 raylib.ICON_230 = 230 /** - * + * * * @type {number} * @constant @@ -19999,7 +19999,7 @@ raylib.ICON_230 = 230 raylib.ICON_231 = 231 /** - * + * * * @type {number} * @constant @@ -20007,7 +20007,7 @@ raylib.ICON_231 = 231 raylib.ICON_232 = 232 /** - * + * * * @type {number} * @constant @@ -20015,7 +20015,7 @@ raylib.ICON_232 = 232 raylib.ICON_233 = 233 /** - * + * * * @type {number} * @constant @@ -20023,7 +20023,7 @@ raylib.ICON_233 = 233 raylib.ICON_234 = 234 /** - * + * * * @type {number} * @constant @@ -20031,7 +20031,7 @@ raylib.ICON_234 = 234 raylib.ICON_235 = 235 /** - * + * * * @type {number} * @constant @@ -20039,7 +20039,7 @@ raylib.ICON_235 = 235 raylib.ICON_236 = 236 /** - * + * * * @type {number} * @constant @@ -20047,7 +20047,7 @@ raylib.ICON_236 = 236 raylib.ICON_237 = 237 /** - * + * * * @type {number} * @constant @@ -20055,7 +20055,7 @@ raylib.ICON_237 = 237 raylib.ICON_238 = 238 /** - * + * * * @type {number} * @constant @@ -20063,7 +20063,7 @@ raylib.ICON_238 = 238 raylib.ICON_239 = 239 /** - * + * * * @type {number} * @constant @@ -20071,7 +20071,7 @@ raylib.ICON_239 = 239 raylib.ICON_240 = 240 /** - * + * * * @type {number} * @constant @@ -20079,7 +20079,7 @@ raylib.ICON_240 = 240 raylib.ICON_241 = 241 /** - * + * * * @type {number} * @constant @@ -20087,7 +20087,7 @@ raylib.ICON_241 = 241 raylib.ICON_242 = 242 /** - * + * * * @type {number} * @constant @@ -20095,7 +20095,7 @@ raylib.ICON_242 = 242 raylib.ICON_243 = 243 /** - * + * * * @type {number} * @constant @@ -20103,7 +20103,7 @@ raylib.ICON_243 = 243 raylib.ICON_244 = 244 /** - * + * * * @type {number} * @constant @@ -20111,7 +20111,7 @@ raylib.ICON_244 = 244 raylib.ICON_245 = 245 /** - * + * * * @type {number} * @constant @@ -20119,7 +20119,7 @@ raylib.ICON_245 = 245 raylib.ICON_246 = 246 /** - * + * * * @type {number} * @constant @@ -20127,7 +20127,7 @@ raylib.ICON_246 = 246 raylib.ICON_247 = 247 /** - * + * * * @type {number} * @constant @@ -20135,7 +20135,7 @@ raylib.ICON_247 = 247 raylib.ICON_248 = 248 /** - * + * * * @type {number} * @constant @@ -20143,7 +20143,7 @@ raylib.ICON_248 = 248 raylib.ICON_249 = 249 /** - * + * * * @type {number} * @constant @@ -20151,7 +20151,7 @@ raylib.ICON_249 = 249 raylib.ICON_250 = 250 /** - * + * * * @type {number} * @constant @@ -20159,7 +20159,7 @@ raylib.ICON_250 = 250 raylib.ICON_251 = 251 /** - * + * * * @type {number} * @constant @@ -20167,7 +20167,7 @@ raylib.ICON_251 = 251 raylib.ICON_252 = 252 /** - * + * * * @type {number} * @constant @@ -20175,7 +20175,7 @@ raylib.ICON_252 = 252 raylib.ICON_253 = 253 /** - * + * * * @type {number} * @constant @@ -20183,7 +20183,7 @@ raylib.ICON_253 = 253 raylib.ICON_254 = 254 /** - * + * * * @type {number} * @constant @@ -21031,7 +21031,7 @@ raylib.RL_ATTACHMENT_TEXTURE2D = 100 raylib.RL_ATTACHMENT_RENDERBUFFER = 200 /** - * + * * * @type {number} * @constant @@ -21039,7 +21039,7 @@ raylib.RL_ATTACHMENT_RENDERBUFFER = 200 raylib.RL_CULL_FACE_FRONT = 0 /** - * + * * * @type {number} * @constant @@ -21047,7 +21047,7 @@ raylib.RL_CULL_FACE_FRONT = 0 raylib.RL_CULL_FACE_BACK = 1 /** - * + * * * @type {number} * @constant From cbdc5bb0f0ec69b671c7bff92c9c3015f6fb58df Mon Sep 17 00:00:00 2001 From: David Konsumer Date: Sat, 18 Nov 2023 15:39:11 -0800 Subject: [PATCH 2/7] use updated raylib api --- package-lock.json | 6338 ++++++------------------------ package.json | 2 +- src/generated/node-raylib-drm.js | 2149 +++++++--- src/generated/node-raylib.cc | 846 +++- src/generated/node-raylib.d.ts | 497 ++- src/generated/node-raylib.js | 2149 +++++++--- 6 files changed, 5249 insertions(+), 6732 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6ed9173..1023595 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "raylib", "version": "0.14.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -17,7 +17,7 @@ "raylib": "bin/node-raylib" }, "devDependencies": { - "@raylib/api": "~4.5.0", + "@raylib/api": "RobLoach/raylib-api#raylib5", "@vitest/ui": "^0.29.7", "archiver": "^5.3.1", "jsdoc-to-markdown": "^8.0.0", @@ -29,6 +29,15 @@ "node": ">=10" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@babel/generator": { "version": "7.18.2", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", @@ -44,27 +53,27 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -88,9 +97,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.13.tgz", - "integrity": "sha512-5tZZ/hLIfBmt7E8JsE5KbsknoAFmoElkg+A/gjyPtmSQvJjPf+9GsSJihid8VMa08lrsYyaEXOT9RLh3xXQONw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", "cpu": [ "arm" ], @@ -104,9 +113,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.13.tgz", - "integrity": "sha512-F5DgvJMV2ZEpLNpPCO7FEk1wy8O5tg6cikWSB6uvvncsgE1xgbPlm+Boio/4820C2/mj713X83X1h01v0qoeHg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", "cpu": [ "arm64" ], @@ -120,9 +129,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.13.tgz", - "integrity": "sha512-5m1UUslzpfVrumG3m3Zv2x9VNAcvMOQWJy009y6jt10tcHpzIq2/b0I0k4fz0QYqGSNS1GteRIhVPN4H7OyCXg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", "cpu": [ "x64" ], @@ -136,9 +145,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.13.tgz", - "integrity": "sha512-TXbXp/05r7heRsG8yWwbHw9diay+wXIyRNcIHFoNARRIGahYbTW/qwJzE37zkfxLIUPHgR/SyLTUlnTICg14ag==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", "cpu": [ "arm64" ], @@ -152,9 +161,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.13.tgz", - "integrity": "sha512-Ku9Db2sblCxFvQdEO7X9nBaLR/S81uch81e2Q2+Os5z1NcnsFjuqhIYH0Gm6KNNpIKaEbC7gCLbiIPbLLMX4Pg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", "cpu": [ "x64" ], @@ -168,9 +177,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.13.tgz", - "integrity": "sha512-t1T5/nIf2j+FdSf1Fa3dcU0cXycr0nK4xJe52qjWa+1I249mM5NBY1ODjiabZxZ0x3CG05y4fd9bxfDLy9kQtA==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", "cpu": [ "arm64" ], @@ -184,9 +193,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.13.tgz", - "integrity": "sha512-/zbkgEO4gY2qGZr9UNAGI38w/FwUY4bx4EC88k9VeiCKNr3ukNgwH/oIgB5Z9/OqpkNLlcS4w9e2d/MIiy5fbw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", "cpu": [ "x64" ], @@ -200,9 +209,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.13.tgz", - "integrity": "sha512-RrhjzrCF6aCDH248nUAQoldnRmN7nHMxv85GOj5AH+qkxxYvcig7fnUmgANngntRu4btXhN9WKHMgQ5seERDMw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", "cpu": [ "arm" ], @@ -216,9 +225,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.13.tgz", - "integrity": "sha512-siu3QZrQ7eGrSttvFaRKyjT7kNRbUuHEKzCCyqRh19MbpGokGY13jbIsBEjx6JmH3T50hds325oweS9Ey2ihAQ==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", "cpu": [ "arm64" ], @@ -232,9 +241,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.13.tgz", - "integrity": "sha512-ADHA1PqP5gIegehVP0RvxMmNPxpLgetI8QCwYOjUheGXKIKWSdUN8ZS3rusQv3NGZmFCpYdMZzFoI0QtzzGAdw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", "cpu": [ "ia32" ], @@ -248,9 +257,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.13.tgz", - "integrity": "sha512-n1JQPxETmR0brkpWlJHeohReEPLH+m00bnJdNnFyHN3zLBt1QypevuZSmnmFWsC+7r7HTwWILj3lBDjtPH3ydg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", "cpu": [ "loong64" ], @@ -264,9 +273,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.13.tgz", - "integrity": "sha512-d0pnD/j5KKQ43xtSIvOD+wNIy6D/Vh9GbXVRa3u4zCyiJMYWjxkPkbBzlEgNjdDmUM+5gBFen9k7B8Xscy+Myg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", "cpu": [ "mips64el" ], @@ -280,9 +289,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.13.tgz", - "integrity": "sha512-C9sMpa/VcGLjVtsT01sXtzZNS7bAZ+icUclkKkiUwBQ9hzT+J+/Xpj+EykI5hB3KgtxQVo4XUahanFoZNxbQ1g==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", "cpu": [ "ppc64" ], @@ -296,9 +305,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.13.tgz", - "integrity": "sha512-jYkc5EpNpvjccAHNYekiAtklusVGWftR0VVLtng7dJzDyy+5adAsf1fOG3LllP0WALxS55/w6boLE/728J/bXw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", "cpu": [ "riscv64" ], @@ -312,9 +321,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.13.tgz", - "integrity": "sha512-4jAJI5O6E/hATL4lsrG2A+noDjZ377KlATVFKwV3SWaNHj+OvoXe/T84ScQIXEtPI7ndJyLkMYruXj8RR5Ilyw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", "cpu": [ "s390x" ], @@ -328,9 +337,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.13.tgz", - "integrity": "sha512-eFLQhJq98qijGRcv9je/9M4Mz1suZ+pOtj62ArsLd0gubNGhhQDz6T30X2X3f1KZ8lkKkr+zN5vtZzx1GAMoFw==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", "cpu": [ "x64" ], @@ -344,9 +353,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.13.tgz", - "integrity": "sha512-F8PXDeT+3eQpPjf4bmNJapPLu0SKKlWRGPQvBQqVS+YDGoMKnyyYp2UENLFMV8zT7kS39zKxZRZvUL3fMz/7Ww==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", "cpu": [ "x64" ], @@ -360,9 +369,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.13.tgz", - "integrity": "sha512-9jWfzbFCnIZdHjNs+00KQHArUbp7kjQDNmiuqkwGOQFs67m4/dKNupBv2DP5hTqVlQY4tW4RG3qpb6Y3zOHJeA==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", "cpu": [ "x64" ], @@ -376,9 +385,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.13.tgz", - "integrity": "sha512-ALbOMlTIBkAVi6KqYjONa7u2oH95RN7OpetFqMtjufFLBiSaayRuwUzhs2yuR9CfGT4qi0jv6HQDav+EG314TQ==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", "cpu": [ "x64" ], @@ -392,9 +401,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.13.tgz", - "integrity": "sha512-FJBLYL4PkrZGeuHzEqme+0DjNetxkJ+XbB+Aoeow7aQ53JCwsA0/mo8sS5aPkDHgCnMkN4A5GLoFTlDj3BKDrQ==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", "cpu": [ "arm64" ], @@ -408,9 +417,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.13.tgz", - "integrity": "sha512-Qrvst9RkLz4qgi3hqswNliYuKW92/HGJnd7xLWkGaGPa8S4qsONf81FW0ebDc5iUHb0I7QJwQATutvghTabnFA==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", "cpu": [ "ia32" ], @@ -424,9 +433,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.13.tgz", - "integrity": "sha512-pZ/NIgz861XaUPlIkPFjP55nJ4PJa0o/CD4zgeRb1Q9FVE+8GvdB6ifJcK05jRhny5hKExhnRFIdgHmmCYH8vg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", "cpu": [ "x64" ], @@ -455,23 +464,23 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.1.tgz", - "integrity": "sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", - "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.0", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -487,21 +496,21 @@ } }, "node_modules/@eslint/js": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", - "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -523,15 +532,15 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", @@ -543,9 +552,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, "engines": { "node": ">=6.0.0" @@ -561,25 +570,25 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@jsdoc/salty": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.5.tgz", - "integrity": "sha512-TfRP53RqunNe2HBobVBJ0VLhK1HbfvBYeTC1ahnN64PWvyYyGebmMiPkuwvD9fpw2ZbkoPb8Q7mwy0aR8Z9rvw==", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.6.tgz", + "integrity": "sha512-aA+awb5yoml8TQ3CzI5Ue7sM3VMRC4l1zJJW4fgZ8OCL1wshJZhNzaf0PL85DSnOUw6QuFgeHGD/eq/xwwAF2g==", "dev": true, "dependencies": { "lodash": "^4.17.21" @@ -624,27 +633,27 @@ } }, "node_modules/@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "version": "1.0.0-next.23", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", + "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", "dev": true }, "node_modules/@raylib/api": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@raylib/api/-/api-4.5.0.tgz", - "integrity": "sha512-T2jRHIHV2QNERbqgZFPkRGtyAnLDXSd3jOEV7SKIORcHp40k4W/pbqbscIsdF+LfC3e9dmilgNTRRGkJafo3Tg==", - "dev": true + "version": "4.5.1", + "resolved": "git+ssh://git@github.com/RobLoach/raylib-api.git#a6bff23b6f9e6ea4f26ba1a47ba7010d7038fcd7", + "dev": true, + "license": "Zlib" }, "node_modules/@types/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==", "dev": true }, "node_modules/@types/chai-subset": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", - "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", + "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", "dev": true, "dependencies": { "@types/chai": "*" @@ -657,9 +666,9 @@ "dev": true }, "node_modules/@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz", + "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==", "dev": true }, "node_modules/@types/markdown-it": { @@ -673,35 +682,44 @@ } }, "node_modules/@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz", + "integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==", "dev": true }, "node_modules/@types/node": { - "version": "18.15.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.10.tgz", - "integrity": "sha512-9avDaQJczATcXgfmMAW3MIWArOO7A+m90vuCFLr8AotWf8igO/mRoYukrk2cqZVtv38tHs33retzHEilM7FpeQ==", + "version": "20.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.2.tgz", + "integrity": "sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, "node_modules/@vitest/expect": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.29.7.tgz", - "integrity": "sha512-UtG0tW0DP6b3N8aw7PHmweKDsvPv4wjGvrVZW7OSxaFg76ShtVdMiMcUkZJgCE8QWUmhwaM0aQhbbVLo4F4pkA==", + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.29.8.tgz", + "integrity": "sha512-xlcVXn5I5oTq6NiZSY3ykyWixBxr5mG8HYtjvpgg6KaqHm0mvhX18xuwl5YGxIRNt/A5jidd7CWcNHrSvgaQqQ==", "dev": true, "dependencies": { - "@vitest/spy": "0.29.7", - "@vitest/utils": "0.29.7", + "@vitest/spy": "0.29.8", + "@vitest/utils": "0.29.8", "chai": "^4.3.7" } }, "node_modules/@vitest/runner": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.29.7.tgz", - "integrity": "sha512-Yt0+csM945+odOx4rjZSjibQfl2ymxqVsmYz6sO2fiO5RGPYDFCo60JF6tLL9pz4G/kjY4irUxadeB1XT+H1jg==", + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.29.8.tgz", + "integrity": "sha512-FzdhnRDwEr/A3Oo1jtIk/B952BBvP32n1ObMEb23oEJNO+qO5cBet6M2XWIDQmA7BDKGKvmhUf2naXyp/2JEwQ==", "dev": true, "dependencies": { - "@vitest/utils": "0.29.7", + "@vitest/utils": "0.29.8", "p-limit": "^4.0.0", "pathe": "^1.1.0" } @@ -734,18 +752,18 @@ } }, "node_modules/@vitest/spy": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.29.7.tgz", - "integrity": "sha512-IalL0iO6A6Xz8hthR8sctk6ZS//zVBX48EiNwQguYACdgdei9ZhwMaBFV70mpmeYAFCRAm+DpoFHM5470Im78A==", + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.29.8.tgz", + "integrity": "sha512-VdjBe9w34vOMl5I5mYEzNX8inTxrZ+tYUVk9jxaZJmHFwmDFC/GV3KBFTA/JKswr3XHvZL+FE/yq5EVhb6pSAw==", "dev": true, "dependencies": { "tinyspy": "^1.0.2" } }, "node_modules/@vitest/ui": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.29.7.tgz", - "integrity": "sha512-KeOztcAldlFU5i8DKCQcmGrih1dVowurZy/9iPz5JyQdPJzej+nW1nI4nYvc4ZmUtA8+IAe9uViqnU7IXc1RNw==", + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.29.8.tgz", + "integrity": "sha512-+vbLd+c1R/XUWfzJsWeyjeiw13fwJ95I5tguxaqXRg61y9iYUKesVljg7Pttp2uo7VK+kAjvY91J41NZ1Vx3vg==", "dev": true, "dependencies": { "fast-glob": "^3.2.12", @@ -756,9 +774,9 @@ } }, "node_modules/@vitest/utils": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.29.7.tgz", - "integrity": "sha512-vNgGadp2eE5XKCXtZXL5UyNEDn68npSct75OC9AlELenSK0DiV1Mb9tfkwJHKjRb69iek+e79iipoJx8+s3SdA==", + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.29.8.tgz", + "integrity": "sha512-qGzuf3vrTbnoY+RjjVVIBYfuWMjn3UMUqyQtdGNZ6ZIIyte7B37exj6LaVkrZiUTvzSadVvO/tJm8AEgbGCBPg==", "dev": true, "dependencies": { "cli-truncate": "^3.1.0", @@ -768,9 +786,9 @@ } }, "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -789,9 +807,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", + "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", "dev": true, "engines": { "node": ">=0.4.0" @@ -871,16 +889,16 @@ } }, "node_modules/archiver": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", - "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", + "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", "dev": true, "dependencies": { "archiver-utils": "^2.1.0", - "async": "^3.2.3", + "async": "^3.2.4", "buffer-crc32": "^0.2.1", "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", + "readdir-glob": "^1.1.2", "tar-stream": "^2.2.0", "zip-stream": "^4.1.0" }, @@ -909,6 +927,12 @@ "node": ">= 6" } }, + "node_modules/archiver-utils/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, "node_modules/archiver-utils/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -968,15 +992,15 @@ } }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" }, "engines": { @@ -995,15 +1019,34 @@ "node": ">=8" } }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -1014,14 +1057,14 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -1032,16 +1075,37 @@ } }, "node_modules/array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/assertion-error": { @@ -1054,11 +1118,20 @@ } }, "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + } + }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -1220,13 +1293,14 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1254,18 +1328,18 @@ } }, "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "type-detect": "^4.0.8" }, "engines": { "node": ">=4" @@ -1288,10 +1362,13 @@ } }, "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, "engines": { "node": "*" } @@ -1318,65 +1395,44 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "ansi-regex": "^6.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "node": ">=8" } }, "node_modules/collect-all": { @@ -1508,9 +1564,9 @@ } }, "node_modules/compress-commons": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", + "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", "dev": true, "dependencies": { "buffer-crc32": "^0.2.13", @@ -1565,9 +1621,9 @@ } }, "node_modules/crc32-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", + "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", "dev": true, "dependencies": { "crc-32": "^1.2.0", @@ -1578,11 +1634,11 @@ } }, "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", "dependencies": { - "node-fetch": "2.6.7" + "node-fetch": "^2.6.12" } }, "node_modules/cross-spawn": { @@ -1658,12 +1714,27 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -1675,9 +1746,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "dev": true, "engines": { "node": ">=8" @@ -1746,9 +1817,9 @@ "dev": true }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, "node_modules/end-of-stream": { @@ -1779,25 +1850,26 @@ } }, "node_modules/es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.5", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", + "hasown": "^2.0.0", "internal-slot": "^1.0.5", "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", @@ -1805,19 +1877,23 @@ "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -1826,27 +1902,49 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dev": true, + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -1867,9 +1965,9 @@ } }, "node_modules/esbuild": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.13.tgz", - "integrity": "sha512-4ixMwdErBcQHgTBeoxnowENCPKWFAGxgTyKHMK8gqn9sZaC7ZNWFKtim16g2rzQ2b/FYyy3lIUUJboFtjolhqg==", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, "hasInstallScript": true, "bin": { @@ -1879,28 +1977,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.13", - "@esbuild/android-arm64": "0.17.13", - "@esbuild/android-x64": "0.17.13", - "@esbuild/darwin-arm64": "0.17.13", - "@esbuild/darwin-x64": "0.17.13", - "@esbuild/freebsd-arm64": "0.17.13", - "@esbuild/freebsd-x64": "0.17.13", - "@esbuild/linux-arm": "0.17.13", - "@esbuild/linux-arm64": "0.17.13", - "@esbuild/linux-ia32": "0.17.13", - "@esbuild/linux-loong64": "0.17.13", - "@esbuild/linux-mips64el": "0.17.13", - "@esbuild/linux-ppc64": "0.17.13", - "@esbuild/linux-riscv64": "0.17.13", - "@esbuild/linux-s390x": "0.17.13", - "@esbuild/linux-x64": "0.17.13", - "@esbuild/netbsd-x64": "0.17.13", - "@esbuild/openbsd-x64": "0.17.13", - "@esbuild/sunos-x64": "0.17.13", - "@esbuild/win32-arm64": "0.17.13", - "@esbuild/win32-ia32": "0.17.13", - "@esbuild/win32-x64": "0.17.13" + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" } }, "node_modules/escalade": { @@ -1922,27 +2020,28 @@ } }, "node_modules/eslint": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", - "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.1", - "@eslint/js": "8.36.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.54.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.5.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1950,22 +2049,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -1979,9 +2075,9 @@ } }, "node_modules/eslint-config-standard": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", - "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", "dev": true, "funding": [ { @@ -1997,10 +2093,13 @@ "url": "https://feross.org/support" } ], + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "eslint": "^8.0.1", "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", "eslint-plugin-promise": "^6.0.0" } }, @@ -2029,14 +2128,14 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -2049,21 +2148,21 @@ } }, "node_modules/eslint-import-resolver-node/node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -2130,26 +2229,28 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "engines": { "node": ">=4" @@ -2180,30 +2281,30 @@ } }, "node_modules/eslint-plugin-import/node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-n": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.6.1.tgz", - "integrity": "sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==", + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", "dev": true, "dependencies": { "builtins": "^5.0.1", @@ -2226,12 +2327,12 @@ } }, "node_modules/eslint-plugin-n/node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2250,15 +2351,16 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.32.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", - "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", "dev": true, "dependencies": { "array-includes": "^3.1.6", "array.prototype.flatmap": "^1.3.1", "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", @@ -2268,7 +2370,7 @@ "object.values": "^1.1.6", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.4", - "semver": "^6.3.0", + "semver": "^6.3.1", "string.prototype.matchall": "^4.0.8" }, "engines": { @@ -2290,13 +2392,25 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-react/node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -2308,18 +2422,18 @@ } }, "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -2327,6 +2441,9 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-utils": { @@ -2357,12 +2474,15 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/escape-string-regexp": { @@ -2390,14 +2510,14 @@ } }, "node_modules/espree": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", - "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2464,9 +2584,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -2584,12 +2704,13 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -2597,9 +2718,9 @@ } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, "node_modules/for-each": { @@ -2621,6 +2742,12 @@ "readable-stream": "^2.0.0" } }, + "node_modules/from2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, "node_modules/from2/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -2688,9 +2815,9 @@ "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -2702,21 +2829,24 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -2744,23 +2874,24 @@ } }, "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, "engines": { "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2833,9 +2964,9 @@ } }, "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2900,20 +3031,20 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, "dependencies": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, @@ -2928,13 +3059,10 @@ } }, "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, "engines": { "node": ">= 0.4.0" } @@ -2958,12 +3086,12 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.1" + "get-intrinsic": "^1.2.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3008,7 +3136,19 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/https-proxy-agent": { + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", @@ -3042,9 +3182,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, "engines": { "node": ">= 4" @@ -3098,13 +3238,13 @@ "dev": true }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -3147,6 +3287,21 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -3223,13 +3378,43 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-glob": { @@ -3244,6 +3429,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -3305,6 +3499,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", @@ -3348,16 +3551,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -3366,6 +3565,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -3378,10 +3586,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, "node_modules/isexe": { @@ -3390,14 +3611,17 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" } }, "node_modules/js-tokens": { @@ -3526,6 +3750,12 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -3575,18 +3805,29 @@ } }, "node_modules/jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, "dependencies": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" }, "engines": { "node": ">=4.0" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/klaw": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", @@ -3608,6 +3849,12 @@ "node": ">= 0.6.3" } }, + "node_modules/lazystream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, "node_modules/lazystream/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -3791,12 +4038,12 @@ } }, "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, "dependencies": { - "get-func-name": "^2.0.0" + "get-func-name": "^2.0.1" } }, "node_modules/lru-cache": { @@ -3935,21 +4182,21 @@ "dev": true }, "node_modules/mlly": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.0.tgz", - "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", + "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", "dev": true, "dependencies": { - "acorn": "^8.8.2", - "pathe": "^1.1.0", - "pkg-types": "^1.0.2", - "ufo": "^1.1.1" + "acorn": "^8.10.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "ufo": "^1.3.0" } }, "node_modules/module-alias": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.2.tgz", - "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==" + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.3.tgz", + "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==" }, "node_modules/mrmime": { "version": "1.0.1", @@ -3991,9 +4238,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -4027,9 +4274,9 @@ "dev": true }, "node_modules/node-abi": { - "version": "3.33.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.33.0.tgz", - "integrity": "sha512-7GGVawqyHF4pfd0YFybhv/eM9JwTtPqx0mAanQ146O3FlSh3pA24zf9IRQTOsfTSqXTNzPSP5iagAJ94jjuVog==", + "version": "3.51.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.51.0.tgz", + "integrity": "sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==", "dev": true, "dependencies": { "semver": "^7.3.5" @@ -4039,9 +4286,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -4082,9 +4329,9 @@ "dev": true }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4127,28 +4374,28 @@ } }, "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -4157,28 +4404,40 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, "node_modules/object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", "dev": true, "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -4197,17 +4456,17 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -4329,9 +4588,9 @@ } }, "node_modules/pathe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz", - "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", "dev": true }, "node_modules/pathval": { @@ -4497,13 +4756,13 @@ } }, "node_modules/pkg-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz", - "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", "dev": true, "dependencies": { "jsonc-parser": "^3.2.0", - "mlly": "^1.1.1", + "mlly": "^1.2.0", "pathe": "^1.1.0" } }, @@ -4520,9 +4779,9 @@ } }, "node_modules/postcss": { - "version": "8.4.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", - "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "funding": [ { @@ -4651,9 +4910,9 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" @@ -4724,9 +4983,9 @@ } }, "node_modules/readdir-glob": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.2.tgz", - "integrity": "sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", "dev": true, "dependencies": { "minimatch": "^5.1.0" @@ -4845,15 +5104,35 @@ "node": ">=0.10.0" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -4893,12 +5172,12 @@ } }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -4918,6 +5197,18 @@ "node": ">=4" } }, + "node_modules/resolve/node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -4944,9 +5235,9 @@ } }, "node_modules/rollup": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.23.1.tgz", - "integrity": "sha512-ybRdFVHOoljGEFILHLd2g/qateqUdjE6YS41WXq4p3C/WwD3xtWxV4FYWETA1u9TeXQc5K8L8zHE5d/scOvrOQ==", + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -4982,6 +5273,24 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -5017,9 +5326,9 @@ } }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5031,6 +5340,35 @@ "node": ">=10" } }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5118,9 +5456,9 @@ } }, "node_modules/sirv": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", - "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", + "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", "dev": true, "dependencies": { "@polka/url": "^1.0.0-next.20", @@ -5168,18 +5506,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/sort-array": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz", @@ -5236,9 +5562,9 @@ "dev": true }, "node_modules/standard": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/standard/-/standard-17.0.0.tgz", - "integrity": "sha512-GlCM9nzbLUkr+TYR5I2WQoIah4wHA2lMauqbyPLV/oI5gJxqhHzhjl9EG2N0lr/nRqI3KCbCvm/W3smxvLaChA==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/standard/-/standard-17.1.0.tgz", + "integrity": "sha512-jaDqlNSzLtWYW4lvQmU0EnxWMUGQiwHasZl5ZEIwx3S/ijZDjZOzs1y1QqKwKs5vqnFpGtizo4NOYX2s0Voq/g==", "dev": true, "funding": [ { @@ -5255,26 +5581,27 @@ } ], "dependencies": { - "eslint": "^8.13.0", - "eslint-config-standard": "17.0.0", + "eslint": "^8.41.0", + "eslint-config-standard": "17.1.0", "eslint-config-standard-jsx": "^11.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.1.0", - "eslint-plugin-promise": "^6.0.0", - "eslint-plugin-react": "^7.28.0", - "standard-engine": "^15.0.0" + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-react": "^7.32.2", + "standard-engine": "^15.0.0", + "version-guard": "^1.1.1" }, "bin": { - "standard": "bin/cmd.js" + "standard": "bin/cmd.cjs" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/standard-engine": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.0.0.tgz", - "integrity": "sha512-4xwUhJNo1g/L2cleysUqUv7/btn7GEbYJvmgKrQ2vd/8pkTmN8cpqAZg+BT8Z1hNeEH787iWUdOpL8fmApLtxA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.1.0.tgz", + "integrity": "sha512-VHysfoyxFu/ukT+9v49d4BRXIokFRZuH3z1VRxzFArZdjSCFpro6rEIU3ji7e4AoAtuSfKBkiOmsrDqKW5ZSRw==", "dev": true, "funding": [ { @@ -5301,9 +5628,9 @@ } }, "node_modules/std-env": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz", - "integrity": "sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.5.0.tgz", + "integrity": "sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==", "dev": true }, "node_modules/stream-connect": { @@ -5339,6 +5666,12 @@ "readable-stream": "^2.1.4" } }, + "node_modules/stream-meter/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, "node_modules/stream-meter/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -5388,32 +5721,63 @@ } }, "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", "side-channel": "^1.0.4" }, "funding": { @@ -5421,14 +5785,14 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -5438,28 +5802,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5499,12 +5863,12 @@ } }, "node_modules/strip-literal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", - "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", + "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", "dev": true, "dependencies": { - "acorn": "^8.8.2" + "acorn": "^8.10.0" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -5628,9 +5992,9 @@ "dev": true }, "node_modules/tinybench": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz", - "integrity": "sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz", + "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==", "dev": true }, "node_modules/tinypool": { @@ -5673,9 +6037,9 @@ } }, "node_modules/totalist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", - "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, "engines": { "node": ">=6" @@ -5743,6 +6107,57 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-array-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", @@ -5770,9 +6185,9 @@ "dev": true }, "node_modules/ufo": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz", - "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", "dev": true }, "node_modules/uglify-js": { @@ -5809,10 +6224,16 @@ "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", "dev": true }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "engines": { "node": ">= 10.0.0" @@ -5833,15 +6254,24 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, + "node_modules/version-guard": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/version-guard/-/version-guard-1.1.1.tgz", + "integrity": "sha512-MGQLX89UxmYHgDvcXyjBI0cbmoW+t/dANDppNPrno64rYr8nH4SHSuElQuSYdXGEs0mUzdQe1BY+FhVPNsAmJQ==", + "dev": true, + "engines": { + "node": ">=0.10.48" + } + }, "node_modules/vite": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", - "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", "dev": true, "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.23", - "rollup": "^3.21.0" + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" }, "bin": { "vite": "bin/vite.js" @@ -5849,12 +6279,16 @@ "engines": { "node": "^14.18.0 || >=16.0.0" }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@types/node": ">= 14", "less": "*", + "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", @@ -5867,6 +6301,9 @@ "less": { "optional": true }, + "lightningcss": { + "optional": true + }, "sass": { "optional": true }, @@ -5882,9 +6319,9 @@ } }, "node_modules/vite-node": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.29.7.tgz", - "integrity": "sha512-PakCZLvz37yFfUPWBnLa1OYHPCGm5v4pmRrTcFN4V/N/T3I6tyP3z07S//9w+DdeL7vVd0VSeyMZuAh+449ZWw==", + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.29.8.tgz", + "integrity": "sha512-b6OtCXfk65L6SElVM20q5G546yu10/kNrhg08afEoWlFRJXFq9/6glsvSVY+aI6YeC1tu2TtAqI2jHEQmOmsFw==", "dev": true, "dependencies": { "cac": "^6.7.14", @@ -5905,18 +6342,18 @@ } }, "node_modules/vitest": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.29.7.tgz", - "integrity": "sha512-aWinOSOu4jwTuZHkb+cCyrqQ116Q9TXaJrNKTHudKBknIpR0VplzeaOUuDF9jeZcrbtQKZQt6yrtd+eakbaxHg==", + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.29.8.tgz", + "integrity": "sha512-JIAVi2GK5cvA6awGpH0HvH/gEG9PZ0a/WoxdiV3PmqK+3CjQMf8c+J/Vhv4mdZ2nRyXFw66sAg6qz7VNkaHfDQ==", "dev": true, "dependencies": { "@types/chai": "^4.3.4", "@types/chai-subset": "^1.3.3", "@types/node": "*", - "@vitest/expect": "0.29.7", - "@vitest/runner": "0.29.7", - "@vitest/spy": "0.29.7", - "@vitest/utils": "0.29.7", + "@vitest/expect": "0.29.8", + "@vitest/runner": "0.29.8", + "@vitest/spy": "0.29.8", + "@vitest/utils": "0.29.8", "acorn": "^8.8.1", "acorn-walk": "^8.2.0", "cac": "^6.7.14", @@ -5932,7 +6369,7 @@ "tinypool": "^0.4.0", "tinyspy": "^1.0.2", "vite": "^3.0.0 || ^4.0.0", - "vite-node": "0.29.7", + "vite-node": "0.29.8", "why-is-node-running": "^2.2.2" }, "bin": { @@ -5949,7 +6386,10 @@ "@vitest/browser": "*", "@vitest/ui": "*", "happy-dom": "*", - "jsdom": "*" + "jsdom": "*", + "playwright": "*", + "safaridriver": "*", + "webdriverio": "*" }, "peerDependenciesMeta": { "@edge-runtime/vm": { @@ -5967,6 +6407,9 @@ "jsdom": { "optional": true }, + "playwright": { + "optional": true + }, "safaridriver": { "optional": true }, @@ -6029,18 +6472,58 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6065,15 +6548,6 @@ "node": ">=8" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -6119,6 +6593,35 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -6182,6 +6685,35 @@ "node": ">=10" } }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -6195,578 +6727,26 @@ } }, "node_modules/zip-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", + "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", "dev": true, "dependencies": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", + "archiver-utils": "^3.0.4", + "compress-commons": "^4.1.2", "readable-stream": "^3.6.0" }, "engines": { "node": ">= 10" } - } - }, - "dependencies": { - "@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", - "dev": true, - "requires": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", - "dev": true - }, - "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@esbuild/android-arm": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.13.tgz", - "integrity": "sha512-5tZZ/hLIfBmt7E8JsE5KbsknoAFmoElkg+A/gjyPtmSQvJjPf+9GsSJihid8VMa08lrsYyaEXOT9RLh3xXQONw==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.13.tgz", - "integrity": "sha512-F5DgvJMV2ZEpLNpPCO7FEk1wy8O5tg6cikWSB6uvvncsgE1xgbPlm+Boio/4820C2/mj713X83X1h01v0qoeHg==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.13.tgz", - "integrity": "sha512-5m1UUslzpfVrumG3m3Zv2x9VNAcvMOQWJy009y6jt10tcHpzIq2/b0I0k4fz0QYqGSNS1GteRIhVPN4H7OyCXg==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.13.tgz", - "integrity": "sha512-TXbXp/05r7heRsG8yWwbHw9diay+wXIyRNcIHFoNARRIGahYbTW/qwJzE37zkfxLIUPHgR/SyLTUlnTICg14ag==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.13.tgz", - "integrity": "sha512-Ku9Db2sblCxFvQdEO7X9nBaLR/S81uch81e2Q2+Os5z1NcnsFjuqhIYH0Gm6KNNpIKaEbC7gCLbiIPbLLMX4Pg==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.13.tgz", - "integrity": "sha512-t1T5/nIf2j+FdSf1Fa3dcU0cXycr0nK4xJe52qjWa+1I249mM5NBY1ODjiabZxZ0x3CG05y4fd9bxfDLy9kQtA==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.13.tgz", - "integrity": "sha512-/zbkgEO4gY2qGZr9UNAGI38w/FwUY4bx4EC88k9VeiCKNr3ukNgwH/oIgB5Z9/OqpkNLlcS4w9e2d/MIiy5fbw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.13.tgz", - "integrity": "sha512-RrhjzrCF6aCDH248nUAQoldnRmN7nHMxv85GOj5AH+qkxxYvcig7fnUmgANngntRu4btXhN9WKHMgQ5seERDMw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.13.tgz", - "integrity": "sha512-siu3QZrQ7eGrSttvFaRKyjT7kNRbUuHEKzCCyqRh19MbpGokGY13jbIsBEjx6JmH3T50hds325oweS9Ey2ihAQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.13.tgz", - "integrity": "sha512-ADHA1PqP5gIegehVP0RvxMmNPxpLgetI8QCwYOjUheGXKIKWSdUN8ZS3rusQv3NGZmFCpYdMZzFoI0QtzzGAdw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.13.tgz", - "integrity": "sha512-n1JQPxETmR0brkpWlJHeohReEPLH+m00bnJdNnFyHN3zLBt1QypevuZSmnmFWsC+7r7HTwWILj3lBDjtPH3ydg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.13.tgz", - "integrity": "sha512-d0pnD/j5KKQ43xtSIvOD+wNIy6D/Vh9GbXVRa3u4zCyiJMYWjxkPkbBzlEgNjdDmUM+5gBFen9k7B8Xscy+Myg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.13.tgz", - "integrity": "sha512-C9sMpa/VcGLjVtsT01sXtzZNS7bAZ+icUclkKkiUwBQ9hzT+J+/Xpj+EykI5hB3KgtxQVo4XUahanFoZNxbQ1g==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.13.tgz", - "integrity": "sha512-jYkc5EpNpvjccAHNYekiAtklusVGWftR0VVLtng7dJzDyy+5adAsf1fOG3LllP0WALxS55/w6boLE/728J/bXw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.13.tgz", - "integrity": "sha512-4jAJI5O6E/hATL4lsrG2A+noDjZ377KlATVFKwV3SWaNHj+OvoXe/T84ScQIXEtPI7ndJyLkMYruXj8RR5Ilyw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.13.tgz", - "integrity": "sha512-eFLQhJq98qijGRcv9je/9M4Mz1suZ+pOtj62ArsLd0gubNGhhQDz6T30X2X3f1KZ8lkKkr+zN5vtZzx1GAMoFw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.13.tgz", - "integrity": "sha512-F8PXDeT+3eQpPjf4bmNJapPLu0SKKlWRGPQvBQqVS+YDGoMKnyyYp2UENLFMV8zT7kS39zKxZRZvUL3fMz/7Ww==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.13.tgz", - "integrity": "sha512-9jWfzbFCnIZdHjNs+00KQHArUbp7kjQDNmiuqkwGOQFs67m4/dKNupBv2DP5hTqVlQY4tW4RG3qpb6Y3zOHJeA==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.13.tgz", - "integrity": "sha512-ALbOMlTIBkAVi6KqYjONa7u2oH95RN7OpetFqMtjufFLBiSaayRuwUzhs2yuR9CfGT4qi0jv6HQDav+EG314TQ==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.13.tgz", - "integrity": "sha512-FJBLYL4PkrZGeuHzEqme+0DjNetxkJ+XbB+Aoeow7aQ53JCwsA0/mo8sS5aPkDHgCnMkN4A5GLoFTlDj3BKDrQ==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.13.tgz", - "integrity": "sha512-Qrvst9RkLz4qgi3hqswNliYuKW92/HGJnd7xLWkGaGPa8S4qsONf81FW0ebDc5iUHb0I7QJwQATutvghTabnFA==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.13.tgz", - "integrity": "sha512-pZ/NIgz861XaUPlIkPFjP55nJ4PJa0o/CD4zgeRb1Q9FVE+8GvdB6ifJcK05jRhny5hKExhnRFIdgHmmCYH8vg==", - "dev": true, - "optional": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.1.tgz", - "integrity": "sha512-BISJ6ZE4xQsuL/FmsyRaiffpq977bMlsKfGHTQrOGFErfByxIe6iZTxPf/00Zon9b9a7iUykfQwejN3s2ZW/Bw==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz", - "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@eslint/js": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz", - "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==", - "dev": true }, - "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "node_modules/zip-stream/node_modules/archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@jsdoc/salty": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.5.tgz", - "integrity": "sha512-TfRP53RqunNe2HBobVBJ0VLhK1HbfvBYeTC1ahnN64PWvyYyGebmMiPkuwvD9fpw2ZbkoPb8Q7mwy0aR8Z9rvw==", - "dev": true, - "requires": { - "lodash": "^4.17.21" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", - "dev": true - }, - "@raylib/api": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@raylib/api/-/api-4.5.0.tgz", - "integrity": "sha512-T2jRHIHV2QNERbqgZFPkRGtyAnLDXSd3jOEV7SKIORcHp40k4W/pbqbscIsdF+LfC3e9dmilgNTRRGkJafo3Tg==", - "dev": true - }, - "@types/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", - "dev": true - }, - "@types/chai-subset": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", - "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", - "dev": true, - "requires": { - "@types/chai": "*" - } - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", - "dev": true - }, - "@types/markdown-it": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", - "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", - "dev": true, - "requires": { - "@types/linkify-it": "*", - "@types/mdurl": "*" - } - }, - "@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", - "dev": true - }, - "@types/node": { - "version": "18.15.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.10.tgz", - "integrity": "sha512-9avDaQJczATcXgfmMAW3MIWArOO7A+m90vuCFLr8AotWf8igO/mRoYukrk2cqZVtv38tHs33retzHEilM7FpeQ==", - "dev": true - }, - "@vitest/expect": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.29.7.tgz", - "integrity": "sha512-UtG0tW0DP6b3N8aw7PHmweKDsvPv4wjGvrVZW7OSxaFg76ShtVdMiMcUkZJgCE8QWUmhwaM0aQhbbVLo4F4pkA==", - "dev": true, - "requires": { - "@vitest/spy": "0.29.7", - "@vitest/utils": "0.29.7", - "chai": "^4.3.7" - } - }, - "@vitest/runner": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.29.7.tgz", - "integrity": "sha512-Yt0+csM945+odOx4rjZSjibQfl2ymxqVsmYz6sO2fiO5RGPYDFCo60JF6tLL9pz4G/kjY4irUxadeB1XT+H1jg==", - "dev": true, - "requires": { - "@vitest/utils": "0.29.7", - "p-limit": "^4.0.0", - "pathe": "^1.1.0" - }, - "dependencies": { - "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true - } - } - }, - "@vitest/spy": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.29.7.tgz", - "integrity": "sha512-IalL0iO6A6Xz8hthR8sctk6ZS//zVBX48EiNwQguYACdgdei9ZhwMaBFV70mpmeYAFCRAm+DpoFHM5470Im78A==", - "dev": true, - "requires": { - "tinyspy": "^1.0.2" - } - }, - "@vitest/ui": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.29.7.tgz", - "integrity": "sha512-KeOztcAldlFU5i8DKCQcmGrih1dVowurZy/9iPz5JyQdPJzej+nW1nI4nYvc4ZmUtA8+IAe9uViqnU7IXc1RNw==", - "dev": true, - "requires": { - "fast-glob": "^3.2.12", - "flatted": "^3.2.7", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "sirv": "^2.0.2" - } - }, - "@vitest/utils": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.29.7.tgz", - "integrity": "sha512-vNgGadp2eE5XKCXtZXL5UyNEDn68npSct75OC9AlELenSK0DiV1Mb9tfkwJHKjRb69iek+e79iipoJx8+s3SdA==", - "dev": true, - "requires": { - "cli-truncate": "^3.1.0", - "diff": "^5.1.0", - "loupe": "^2.3.6", - "pretty-format": "^27.5.1" - } - }, - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", - "dev": true, - "requires": { - "array-back": "^3.0.1" - }, "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "archiver": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", - "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "async": "^3.2.3", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - } - }, - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "requires": { - "glob": "^7.1.4", + "glob": "^7.2.3", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", "lodash.defaults": "^4.2.0", @@ -6775,3876 +6755,10 @@ "lodash.isplainobject": "^4.0.6", "lodash.union": "^4.6.0", "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" + "readable-stream": "^3.6.0" }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "array-back": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", - "dev": true - }, - "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, - "array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" - } - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, - "builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "requires": { - "semver": "^7.0.0" - } - }, - "cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true - }, - "cache-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", - "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", - "dev": true, - "requires": { - "array-back": "^4.0.1", - "fs-then-native": "^2.0.0", - "mkdirp2": "^1.0.4" - }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "catharsis": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", - "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dev": true, - "requires": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "collect-all": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", - "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", - "dev": true, - "requires": { - "stream-connect": "^1.0.2", - "stream-via": "^1.0.4" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - }, - "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true - } - } - }, - "command-line-tool": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", - "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", - "dev": true, - "requires": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "command-line-args": "^5.0.0", - "command-line-usage": "^4.1.0", - "typical": "^2.6.1" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } - } - }, - "command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", - "dev": true, - "requires": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } - } - }, - "common-sequence": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", - "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", - "dev": true - }, - "compress-commons": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", - "dev": true, - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "config-master": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", - "integrity": "sha512-n7LBL1zBzYdTpF1mx5DNcZnZn05CWIdsdvtPL4MosvqbBUK3Rq6VWEtGUuF3Y0s9/CIhMejezqlSkP6TnCJ/9g==", - "dev": true, - "requires": { - "walk-back": "^2.0.1" - }, - "dependencies": { - "walk-back": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", - "integrity": "sha512-Nb6GvBR8UWX1D+Le+xUq0+Q1kFmRBIWVrfLnQAOmcpEzA9oAxwJ9gIr36t9TWYfzvWRvuMtjHiVsJYEkXWaTAQ==", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true - }, - "crc32-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - } - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - } - }, - "deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "dev": true - }, - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "dmd": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.2.0.tgz", - "integrity": "sha512-uXWxLF1H7TkUAuoHK59/h/ts5cKavm2LnhrIgJWisip4BVzPoXavlwyoprFFn2CzcahKYgvkfaebS6oxzgflkg==", - "dev": true, - "requires": { - "array-back": "^6.2.2", - "cache-point": "^2.0.0", - "common-sequence": "^2.0.2", - "file-set": "^4.0.2", - "handlebars": "^4.7.7", - "marked": "^4.2.3", - "object-get": "^2.1.1", - "reduce-flatten": "^3.0.1", - "reduce-unique": "^2.0.1", - "reduce-without": "^1.0.1", - "test-value": "^3.0.0", - "walk-back": "^5.1.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.21.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", - "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - } - }, - "es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - } - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "esbuild": { - "version": "0.17.13", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.13.tgz", - "integrity": "sha512-4ixMwdErBcQHgTBeoxnowENCPKWFAGxgTyKHMK8gqn9sZaC7ZNWFKtim16g2rzQ2b/FYyy3lIUUJboFtjolhqg==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.17.13", - "@esbuild/android-arm64": "0.17.13", - "@esbuild/android-x64": "0.17.13", - "@esbuild/darwin-arm64": "0.17.13", - "@esbuild/darwin-x64": "0.17.13", - "@esbuild/freebsd-arm64": "0.17.13", - "@esbuild/freebsd-x64": "0.17.13", - "@esbuild/linux-arm": "0.17.13", - "@esbuild/linux-arm64": "0.17.13", - "@esbuild/linux-ia32": "0.17.13", - "@esbuild/linux-loong64": "0.17.13", - "@esbuild/linux-mips64el": "0.17.13", - "@esbuild/linux-ppc64": "0.17.13", - "@esbuild/linux-riscv64": "0.17.13", - "@esbuild/linux-s390x": "0.17.13", - "@esbuild/linux-x64": "0.17.13", - "@esbuild/netbsd-x64": "0.17.13", - "@esbuild/openbsd-x64": "0.17.13", - "@esbuild/sunos-x64": "0.17.13", - "@esbuild/win32-arm64": "0.17.13", - "@esbuild/win32-ia32": "0.17.13", - "@esbuild/win32-x64": "0.17.13" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "eslint": { - "version": "8.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz", - "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.1", - "@eslint/js": "8.36.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.5.0", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - } - } - }, - "eslint-config-standard": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", - "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", - "dev": true, - "requires": {} - }, - "eslint-config-standard-jsx": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz", - "integrity": "sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==", - "dev": true, - "requires": {} - }, - "eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - } - } - }, - "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-es": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", - "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", - "dev": true, - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-plugin-n": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.6.1.tgz", - "integrity": "sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==", - "dev": true, - "requires": { - "builtins": "^5.0.1", - "eslint-plugin-es": "^4.1.0", - "eslint-utils": "^3.0.0", - "ignore": "^5.1.1", - "is-core-module": "^2.11.0", - "minimatch": "^3.1.2", - "resolve": "^1.22.1", - "semver": "^7.3.8" - }, - "dependencies": { - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - } - } - }, - "eslint-plugin-promise": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", - "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", - "dev": true, - "requires": {} - }, - "eslint-plugin-react": { - "version": "7.32.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", - "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", - "dev": true, - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.8" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz", - "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-set": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", - "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", - "dev": true, - "requires": { - "array-back": "^5.0.0", - "glob": "^7.1.6" - }, - "dependencies": { - "array-back": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", - "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", - "dev": true - } - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "requires": { - "array-back": "^3.0.1" - }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - } - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-then-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", - "integrity": "sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", - "dev": true - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "into-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", - "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", - "dev": true, - "requires": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" - } - }, - "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "js2xmlparser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", - "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", - "dev": true, - "requires": { - "xmlcreate": "^2.0.4" - } - }, - "jsdoc": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz", - "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==", - "dev": true, - "requires": { - "@babel/parser": "^7.20.15", - "@jsdoc/salty": "^0.2.1", - "@types/markdown-it": "^12.2.3", - "bluebird": "^3.7.2", - "catharsis": "^0.9.0", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.2", - "klaw": "^3.0.0", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.4.1", - "marked": "^4.0.10", - "mkdirp": "^1.0.4", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.1.0", - "underscore": "~1.13.2" - } - }, - "jsdoc-api": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-8.0.0.tgz", - "integrity": "sha512-Rnhor0suB1Ds1abjmFkFfKeD+kSMRN9oHMTMZoJVUrmtCGDwXty+sWMA9sa4xbe4UyxuPjhC7tavZ40mDKK6QQ==", - "dev": true, - "requires": { - "array-back": "^6.2.2", - "cache-point": "^2.0.0", - "collect-all": "^1.0.4", - "file-set": "^4.0.2", - "fs-then-native": "^2.0.0", - "jsdoc": "^4.0.0", - "object-to-spawn-args": "^2.0.1", - "temp-path": "^1.0.0", - "walk-back": "^5.1.0" - } - }, - "jsdoc-parse": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.0.tgz", - "integrity": "sha512-Afu1fQBEb7QHt6QWX/6eUWvYHJofB90Fjx7FuJYF7mnG9z5BkAIpms1wsnvYLytfmqpEENHs/fax9p8gvMj7dw==", - "dev": true, - "requires": { - "array-back": "^6.2.2", - "lodash.omit": "^4.5.0", - "lodash.pick": "^4.4.0", - "reduce-extract": "^1.0.0", - "sort-array": "^4.1.5", - "test-value": "^3.0.0" - } - }, - "jsdoc-to-markdown": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-8.0.0.tgz", - "integrity": "sha512-2FQvYkg491+FP6s15eFlgSSWs69CvQrpbABGYBtvAvGWy/lWo8IKKToarT283w59rQFrpcjHl3YdhHCa3l7gXg==", - "dev": true, - "requires": { - "array-back": "^6.2.2", - "command-line-tool": "^0.8.0", - "config-master": "^3.1.0", - "dmd": "^6.2.0", - "jsdoc-api": "^8.0.0", - "jsdoc-parse": "^6.2.0", - "walk-back": "^5.1.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", - "dev": true, - "requires": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" - } - }, - "klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "load-json-file": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", - "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "parse-json": "^4.0.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0", - "type-fest": "^0.3.0" - }, - "dependencies": { - "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", - "dev": true - } - } - }, - "local-pkg": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", - "dev": true - }, - "lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", - "dev": true - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", - "dev": true - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, - "requires": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdown-it-anchor": { - "version": "8.6.7", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", - "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", - "dev": true, - "requires": {} - }, - "marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "mkdirp2": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz", - "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==", - "dev": true - }, - "mlly": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.2.0.tgz", - "integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==", - "dev": true, - "requires": { - "acorn": "^8.8.2", - "pathe": "^1.1.0", - "pkg-types": "^1.0.2", - "ufo": "^1.1.1" - } - }, - "module-alias": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.2.tgz", - "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==" - }, - "mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "multistream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", - "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", - "dev": true, - "requires": { - "once": "^1.4.0", - "readable-stream": "^3.6.0" - } - }, - "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true - }, - "napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node-abi": { - "version": "3.33.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.33.0.tgz", - "integrity": "sha512-7GGVawqyHF4pfd0YFybhv/eM9JwTtPqx0mAanQ146O3FlSh3pA24zf9IRQTOsfTSqXTNzPSP5iagAJ94jjuVog==", - "dev": true, - "requires": { - "semver": "^7.3.5" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-get": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", - "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", - "dev": true - }, - "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-to-spawn-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz", - "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", - "dev": true, - "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pathe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.0.tgz", - "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pkg": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", - "integrity": "sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==", - "dev": true, - "requires": { - "@babel/generator": "7.18.2", - "@babel/parser": "7.18.4", - "@babel/types": "7.19.0", - "chalk": "^4.1.2", - "fs-extra": "^9.1.0", - "globby": "^11.1.0", - "into-stream": "^6.0.0", - "is-core-module": "2.9.0", - "minimist": "^1.2.6", - "multistream": "^4.1.0", - "pkg-fetch": "3.4.2", - "prebuild-install": "7.1.1", - "resolve": "^1.22.0", - "stream-meter": "^1.0.4" - }, - "dependencies": { - "@babel/parser": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", - "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", - "dev": true - } - } - }, - "pkg-conf": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", - "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", - "dev": true, - "requires": { - "find-up": "^3.0.0", - "load-json-file": "^5.2.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - } - } - }, - "pkg-fetch": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", - "integrity": "sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==", - "dev": true, - "requires": { - "chalk": "^4.1.2", - "fs-extra": "^9.1.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.6", - "progress": "^2.0.3", - "semver": "^7.3.5", - "tar-fs": "^2.1.1", - "yargs": "^16.2.0" - } - }, - "pkg-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.2.tgz", - "integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==", - "dev": true, - "requires": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.1.1", - "pathe": "^1.1.0" - } - }, - "postcss": { - "version": "8.4.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", - "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", - "dev": true, - "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "prebuild-install": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", - "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", - "dev": true, - "requires": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true - } - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdir-glob": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.2.tgz", - "integrity": "sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==", - "dev": true, - "requires": { - "minimatch": "^5.1.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "reduce-extract": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", - "integrity": "sha512-QF8vjWx3wnRSL5uFMyCjDeDc5EBMiryoT9tz94VvgjKfzecHAVnqmXAwQDcr7X4JmLc2cjkjFGCVzhMqDjgR9g==", - "dev": true, - "requires": { - "test-value": "^1.0.1" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - }, - "test-value": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", - "integrity": "sha512-wrsbRo7qP+2Je8x8DsK8ovCGyxe3sYfQwOraIY/09A2gFXU9DYKiTF14W4ki/01AEh56kMzAmlj9CaHGDDUBJA==", - "dev": true, - "requires": { - "array-back": "^1.0.2", - "typical": "^2.4.2" - } - } - } - }, - "reduce-flatten": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", - "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", - "dev": true - }, - "reduce-unique": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", - "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", - "dev": true - }, - "reduce-without": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", - "integrity": "sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==", - "dev": true, - "requires": { - "test-value": "^2.0.0" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - }, - "test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", - "dev": true, - "requires": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - } - } - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "requizzle": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", - "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", - "dev": true, - "requires": { - "lodash": "^4.17.21" - } - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.23.1.tgz", - "integrity": "sha512-ybRdFVHOoljGEFILHLd2g/qateqUdjE6YS41WXq4p3C/WwD3xtWxV4FYWETA1u9TeXQc5K8L8zHE5d/scOvrOQ==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true - }, - "simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "dev": true, - "requires": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "sirv": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", - "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", - "dev": true, - "requires": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^3.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true - } - } - }, - "sort-array": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz", - "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==", - "dev": true, - "requires": { - "array-back": "^5.0.0", - "typical": "^6.0.1" - }, - "dependencies": { - "array-back": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", - "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", - "dev": true - }, - "typical": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", - "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", - "dev": true - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true - }, - "standard": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/standard/-/standard-17.0.0.tgz", - "integrity": "sha512-GlCM9nzbLUkr+TYR5I2WQoIah4wHA2lMauqbyPLV/oI5gJxqhHzhjl9EG2N0lr/nRqI3KCbCvm/W3smxvLaChA==", - "dev": true, - "requires": { - "eslint": "^8.13.0", - "eslint-config-standard": "17.0.0", - "eslint-config-standard-jsx": "^11.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.1.0", - "eslint-plugin-promise": "^6.0.0", - "eslint-plugin-react": "^7.28.0", - "standard-engine": "^15.0.0" - } - }, - "standard-engine": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.0.0.tgz", - "integrity": "sha512-4xwUhJNo1g/L2cleysUqUv7/btn7GEbYJvmgKrQ2vd/8pkTmN8cpqAZg+BT8Z1hNeEH787iWUdOpL8fmApLtxA==", - "dev": true, - "requires": { - "get-stdin": "^8.0.0", - "minimist": "^1.2.6", - "pkg-conf": "^3.1.0", - "xdg-basedir": "^4.0.0" - } - }, - "std-env": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz", - "integrity": "sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==", - "dev": true - }, - "stream-connect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", - "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==", - "dev": true, - "requires": { - "array-back": "^1.0.2" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - } - } - }, - "stream-meter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", - "integrity": "sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==", - "dev": true, - "requires": { - "readable-stream": "^2.1.4" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "stream-via": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", - "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "strip-literal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", - "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", - "dev": true, - "requires": { - "acorn": "^8.8.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", - "dev": true, - "requires": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } - } - }, - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "temp-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", - "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==", - "dev": true - }, - "test-value": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", - "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", - "dev": true, - "requires": { - "array-back": "^2.0.0", - "typical": "^2.6.1" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "tinybench": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz", - "integrity": "sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==", - "dev": true - }, - "tinypool": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.4.0.tgz", - "integrity": "sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==", - "dev": true - }, - "tinyspy": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.1.1.tgz", - "integrity": "sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "totalist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", - "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", - "dev": true - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", - "dev": true - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "ufo": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.1.tgz", - "integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==", - "dev": true - }, - "uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "vite": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", - "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", - "dev": true, - "requires": { - "esbuild": "^0.17.5", - "fsevents": "~2.3.2", - "postcss": "^8.4.23", - "rollup": "^3.21.0" - } - }, - "vite-node": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.29.7.tgz", - "integrity": "sha512-PakCZLvz37yFfUPWBnLa1OYHPCGm5v4pmRrTcFN4V/N/T3I6tyP3z07S//9w+DdeL7vVd0VSeyMZuAh+449ZWw==", - "dev": true, - "requires": { - "cac": "^6.7.14", - "debug": "^4.3.4", - "mlly": "^1.1.0", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "vite": "^3.0.0 || ^4.0.0" - } - }, - "vitest": { - "version": "0.29.7", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.29.7.tgz", - "integrity": "sha512-aWinOSOu4jwTuZHkb+cCyrqQ116Q9TXaJrNKTHudKBknIpR0VplzeaOUuDF9jeZcrbtQKZQt6yrtd+eakbaxHg==", - "dev": true, - "requires": { - "@types/chai": "^4.3.4", - "@types/chai-subset": "^1.3.3", - "@types/node": "*", - "@vitest/expect": "0.29.7", - "@vitest/runner": "0.29.7", - "@vitest/spy": "0.29.7", - "@vitest/utils": "0.29.7", - "acorn": "^8.8.1", - "acorn-walk": "^8.2.0", - "cac": "^6.7.14", - "chai": "^4.3.7", - "debug": "^4.3.4", - "local-pkg": "^0.4.2", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "source-map": "^0.6.1", - "std-env": "^3.3.1", - "strip-literal": "^1.0.0", - "tinybench": "^2.3.1", - "tinypool": "^0.4.0", - "tinyspy": "^1.0.2", - "vite": "^3.0.0 || ^4.0.0", - "vite-node": "0.29.7", - "why-is-node-running": "^2.2.2" - } - }, - "walk-back": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz", - "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - } - }, - "why-is-node-running": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", - "dev": true, - "requires": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "wordwrapjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", - "dev": true, - "requires": { - "reduce-flatten": "^1.0.1", - "typical": "^2.6.1" - }, - "dependencies": { - "reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", - "dev": true - } - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true - }, - "xmlcreate": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", - "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "zip-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" + "engines": { + "node": ">= 10" } } } diff --git a/package.json b/package.json index d4cbb3a..8607616 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "module-alias": "^2.2.2" }, "devDependencies": { - "@raylib/api": "~4.5.0", + "@raylib/api": "RobLoach/raylib-api#raylib5", "@vitest/ui": "^0.29.7", "archiver": "^5.3.1", "jsdoc-to-markdown": "^8.0.0", diff --git a/src/generated/node-raylib-drm.js b/src/generated/node-raylib-drm.js index 7b2b53f..e3d1de4 100644 --- a/src/generated/node-raylib-drm.js +++ b/src/generated/node-raylib-drm.js @@ -29,16 +29,6 @@ function InitWindow(width, height, title) { } raylib.InitWindow = InitWindow -/** - * Check if KEY_ESCAPE pressed or Close icon pressed - * - * @return {boolean} The resulting bool. - */ -function WindowShouldClose() { - return r.BindWindowShouldClose() -} -raylib.WindowShouldClose = WindowShouldClose - /** * Close window and unload OpenGL context * @@ -49,6 +39,16 @@ function CloseWindow() { } raylib.CloseWindow = CloseWindow +/** + * Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) + * + * @return {boolean} The resulting bool. + */ +function WindowShouldClose() { + return r.BindWindowShouldClose() +} +raylib.WindowShouldClose = WindowShouldClose + /** * Check if window has been initialized successfully * @@ -171,6 +171,16 @@ function ToggleFullscreen() { } raylib.ToggleFullscreen = ToggleFullscreen +/** + * Toggle window state: borderless windowed (only PLATFORM_DESKTOP) + * + * @return {undefined} + */ +function ToggleBorderlessWindowed() { + return r.BindToggleBorderlessWindowed() +} +raylib.ToggleBorderlessWindowed = ToggleBorderlessWindowed + /** * Set window state: maximized, if resizable (only PLATFORM_DESKTOP) * @@ -236,7 +246,7 @@ function SetWindowIcons(images, count) { raylib.SetWindowIcons = SetWindowIcons /** - * Set title for window (only PLATFORM_DESKTOP) + * Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB) * * @param {string} title * @@ -266,7 +276,7 @@ function SetWindowPosition(x, y) { raylib.SetWindowPosition = SetWindowPosition /** - * Set monitor for the current window (fullscreen mode) + * Set monitor for the current window * * @param {number} monitor * @@ -295,6 +305,22 @@ function SetWindowMinSize(width, height) { } raylib.SetWindowMinSize = SetWindowMinSize +/** + * Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) + * + * @param {number} width + * @param {number} height + * + * @return {undefined} + */ +function SetWindowMaxSize(width, height) { + return r.BindSetWindowMaxSize( + width, + height + ) +} +raylib.SetWindowMaxSize = SetWindowMaxSize + /** * Set window dimensions * @@ -325,6 +351,16 @@ function SetWindowOpacity(opacity) { } raylib.SetWindowOpacity = SetWindowOpacity +/** + * Set window focused (only PLATFORM_DESKTOP) + * + * @return {undefined} + */ +function SetWindowFocused() { + return r.BindSetWindowFocused() +} +raylib.SetWindowFocused = SetWindowFocused + /** * Get native window handle * @@ -500,7 +536,7 @@ function GetWindowScaleDPI() { raylib.GetWindowScaleDPI = GetWindowScaleDPI /** - * Get the human-readable, UTF-8 encoded name of the primary monitor + * Get the human-readable, UTF-8 encoded name of the specified monitor * * @param {number} monitor * @@ -557,40 +593,6 @@ function DisableEventWaiting() { } raylib.DisableEventWaiting = DisableEventWaiting -/** - * Swap back buffer with front buffer (screen drawing) - * - * @return {undefined} - */ -function SwapScreenBuffer() { - return r.BindSwapScreenBuffer() -} -raylib.SwapScreenBuffer = SwapScreenBuffer - -/** - * Register all input events - * - * @return {undefined} - */ -function PollInputEvents() { - return r.BindPollInputEvents() -} -raylib.PollInputEvents = PollInputEvents - -/** - * Wait for some time (halt program execution) - * - * @param {number} seconds - * - * @return {undefined} - */ -function WaitTime(seconds) { - return r.BindWaitTime( - seconds - ) -} -raylib.WaitTime = WaitTime - /** * Shows cursor * @@ -1215,16 +1217,6 @@ function SetTargetFPS(fps) { } raylib.SetTargetFPS = SetTargetFPS -/** - * Get current FPS - * - * @return {number} The resulting int. - */ -function GetFPS() { - return r.BindGetFPS() -} -raylib.GetFPS = GetFPS - /** * Get time in seconds for last frame drawn (delta time) * @@ -1245,6 +1237,64 @@ function GetTime() { } raylib.GetTime = GetTime +/** + * Get current FPS + * + * @return {number} The resulting int. + */ +function GetFPS() { + return r.BindGetFPS() +} +raylib.GetFPS = GetFPS + +/** + * Swap back buffer with front buffer (screen drawing) + * + * @return {undefined} + */ +function SwapScreenBuffer() { + return r.BindSwapScreenBuffer() +} +raylib.SwapScreenBuffer = SwapScreenBuffer + +/** + * Register all input events + * + * @return {undefined} + */ +function PollInputEvents() { + return r.BindPollInputEvents() +} +raylib.PollInputEvents = PollInputEvents + +/** + * Wait for some time (halt program execution) + * + * @param {number} seconds + * + * @return {undefined} + */ +function WaitTime(seconds) { + return r.BindWaitTime( + seconds + ) +} +raylib.WaitTime = WaitTime + +/** + * Set the seed for the random number generator + * + * @param {number} seed + * + * @return {undefined} + */ +function SetRandomSeed(seed) { + return r.BindSetRandomSeed( + seed + ) +} +raylib.SetRandomSeed = SetRandomSeed + /** * Get a random value between min and max (both included) * @@ -1262,18 +1312,36 @@ function GetRandomValue(min, max) { raylib.GetRandomValue = GetRandomValue /** - * Set the seed for the random number generator + * Load random values sequence, no values repeated * - * @param {number} seed + * @param {number} count + * @param {number} min + * @param {number} max + * + * @return {number} The resulting int *. + */ +function LoadRandomSequence(count, min, max) { + return r.BindLoadRandomSequence( + count, + min, + max + ) +} +raylib.LoadRandomSequence = LoadRandomSequence + +/** + * Unload random values sequence + * + * @param {number} sequence * * @return {undefined} */ -function SetRandomSeed(seed) { - return r.BindSetRandomSeed( - seed +function UnloadRandomSequence(sequence) { + return r.BindUnloadRandomSequence( + sequence ) } -raylib.SetRandomSeed = SetRandomSeed +raylib.UnloadRandomSequence = UnloadRandomSequence /** * Takes a screenshot of current screen (filename extension defines format) @@ -1303,6 +1371,20 @@ function SetConfigFlags(flags) { } raylib.SetConfigFlags = SetConfigFlags +/** + * Open URL with default system browser (if available) + * + * @param {string} url + * + * @return {undefined} + */ +function OpenURL(url) { + return r.BindOpenURL( + url + ) +} +raylib.OpenURL = OpenURL + /** * Set the current threshold (minimum) log level * @@ -1361,32 +1443,18 @@ function MemFree(ptr) { } raylib.MemFree = MemFree -/** - * Open URL with default system browser (if available) - * - * @param {string} url - * - * @return {undefined} - */ -function OpenURL(url) { - return r.BindOpenURL( - url - ) -} -raylib.OpenURL = OpenURL - /** * Load file data as byte array (read) * * @param {string} fileName - * @param {number} bytesRead + * @param {number} dataSize * * @return {Buffer} The resulting unsigned char *. */ -function LoadFileData(fileName, bytesRead) { +function LoadFileData(fileName, dataSize) { return r.BindLoadFileData( fileName, - bytesRead + dataSize ) } raylib.LoadFileData = LoadFileData @@ -1410,15 +1478,15 @@ raylib.UnloadFileData = UnloadFileData * * @param {string} fileName * @param {number} data - * @param {number} bytesToWrite + * @param {number} dataSize * * @return {boolean} The resulting bool. */ -function SaveFileData(fileName, data, bytesToWrite) { +function SaveFileData(fileName, data, dataSize) { return r.BindSaveFileData( fileName, data, - bytesToWrite + dataSize ) } raylib.SaveFileData = SaveFileData @@ -1427,15 +1495,15 @@ raylib.SaveFileData = SaveFileData * Export data to code (.h), returns true on success * * @param {Buffer} data - * @param {number} size + * @param {number} dataSize * @param {string} fileName * * @return {boolean} The resulting bool. */ -function ExportDataAsCode(data, size, fileName) { +function ExportDataAsCode(data, dataSize, fileName) { return r.BindExportDataAsCode( data, - size, + dataSize, fileName ) } @@ -1624,7 +1692,7 @@ function GetWorkingDirectory() { raylib.GetWorkingDirectory = GetWorkingDirectory /** - * Get the directory if the running application (uses static string) + * Get the directory of the running application (uses static string) * * @return {string} The resulting const char *. */ @@ -1830,101 +1898,225 @@ function DecodeDataBase64(data, outputSize) { raylib.DecodeDataBase64 = DecodeDataBase64 /** - * Check if a key has been pressed once + * Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS * - * @param {number} key + * @param {string} fileName * - * @return {boolean} The resulting bool. + * @return {AutomationEventList} The resulting AutomationEventList. */ -function IsKeyPressed(key) { - return r.BindIsKeyPressed( - key +function LoadAutomationEventList(fileName) { + return r.BindLoadAutomationEventList( + fileName ) } -raylib.IsKeyPressed = IsKeyPressed +raylib.LoadAutomationEventList = LoadAutomationEventList /** - * Check if a key is being pressed + * Unload automation events list from file * - * @param {number} key + * @param {number} list * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function IsKeyDown(key) { - return r.BindIsKeyDown( - key +function UnloadAutomationEventList(list) { + return r.BindUnloadAutomationEventList( + list ) } -raylib.IsKeyDown = IsKeyDown +raylib.UnloadAutomationEventList = UnloadAutomationEventList /** - * Check if a key has been released once + * Export automation events list as text file * - * @param {number} key + * @param {AutomationEventList} list + * @param {string} fileName * * @return {boolean} The resulting bool. */ -function IsKeyReleased(key) { - return r.BindIsKeyReleased( - key +function ExportAutomationEventList(list, fileName) { + return r.BindExportAutomationEventList( + list.capacity, + list.count, + list.events, + fileName ) } -raylib.IsKeyReleased = IsKeyReleased +raylib.ExportAutomationEventList = ExportAutomationEventList /** - * Check if a key is NOT being pressed + * Set automation event list to record to * - * @param {number} key + * @param {number} list * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function IsKeyUp(key) { - return r.BindIsKeyUp( - key +function SetAutomationEventList(list) { + return r.BindSetAutomationEventList( + list ) } -raylib.IsKeyUp = IsKeyUp +raylib.SetAutomationEventList = SetAutomationEventList /** - * Set a custom key to exit program (default is ESC) + * Set automation event internal base frame to start recording * - * @param {number} key + * @param {number} frame * * @return {undefined} */ -function SetExitKey(key) { - return r.BindSetExitKey( - key +function SetAutomationEventBaseFrame(frame) { + return r.BindSetAutomationEventBaseFrame( + frame ) } -raylib.SetExitKey = SetExitKey +raylib.SetAutomationEventBaseFrame = SetAutomationEventBaseFrame /** - * Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty + * Start recording automation events (AutomationEventList must be set) * - * @return {number} The resulting int. + * @return {undefined} */ -function GetKeyPressed() { - return r.BindGetKeyPressed() +function StartAutomationEventRecording() { + return r.BindStartAutomationEventRecording() } -raylib.GetKeyPressed = GetKeyPressed +raylib.StartAutomationEventRecording = StartAutomationEventRecording /** - * Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty + * Stop recording automation events * - * @return {number} The resulting int. + * @return {undefined} */ -function GetCharPressed() { - return r.BindGetCharPressed() +function StopAutomationEventRecording() { + return r.BindStopAutomationEventRecording() } -raylib.GetCharPressed = GetCharPressed +raylib.StopAutomationEventRecording = StopAutomationEventRecording /** - * Check if a gamepad is available + * Play a recorded automation event * - * @param {number} gamepad + * @param {AutomationEvent} event * - * @return {boolean} The resulting bool. + * @return {undefined} + */ +function PlayAutomationEvent(event) { + return r.BindPlayAutomationEvent( + event.frame, + event.type, + event.params + ) +} +raylib.PlayAutomationEvent = PlayAutomationEvent + +/** + * Check if a key has been pressed once + * + * @param {number} key + * + * @return {boolean} The resulting bool. + */ +function IsKeyPressed(key) { + return r.BindIsKeyPressed( + key + ) +} +raylib.IsKeyPressed = IsKeyPressed + +/** + * Check if a key has been pressed again (Only PLATFORM_DESKTOP) + * + * @param {number} key + * + * @return {boolean} The resulting bool. + */ +function IsKeyPressedRepeat(key) { + return r.BindIsKeyPressedRepeat( + key + ) +} +raylib.IsKeyPressedRepeat = IsKeyPressedRepeat + +/** + * Check if a key is being pressed + * + * @param {number} key + * + * @return {boolean} The resulting bool. + */ +function IsKeyDown(key) { + return r.BindIsKeyDown( + key + ) +} +raylib.IsKeyDown = IsKeyDown + +/** + * Check if a key has been released once + * + * @param {number} key + * + * @return {boolean} The resulting bool. + */ +function IsKeyReleased(key) { + return r.BindIsKeyReleased( + key + ) +} +raylib.IsKeyReleased = IsKeyReleased + +/** + * Check if a key is NOT being pressed + * + * @param {number} key + * + * @return {boolean} The resulting bool. + */ +function IsKeyUp(key) { + return r.BindIsKeyUp( + key + ) +} +raylib.IsKeyUp = IsKeyUp + +/** + * Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty + * + * @return {number} The resulting int. + */ +function GetKeyPressed() { + return r.BindGetKeyPressed() +} +raylib.GetKeyPressed = GetKeyPressed + +/** + * Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty + * + * @return {number} The resulting int. + */ +function GetCharPressed() { + return r.BindGetCharPressed() +} +raylib.GetCharPressed = GetCharPressed + +/** + * Set a custom key to exit program (default is ESC) + * + * @param {number} key + * + * @return {undefined} + */ +function SetExitKey(key) { + return r.BindSetExitKey( + key + ) +} +raylib.SetExitKey = SetExitKey + +/** + * Check if a gamepad is available + * + * @param {number} gamepad + * + * @return {boolean} The resulting bool. */ function IsGamepadAvailable(gamepad) { return r.BindIsGamepadAvailable( @@ -2503,7 +2695,7 @@ function DrawLine(startPosX, startPosY, endPosX, endPosY, color) { raylib.DrawLine = DrawLine /** - * Draw a line (Vector version) + * Draw a line (using gl lines) * * @param {Vector2} startPos * @param {Vector2} endPos @@ -2526,7 +2718,7 @@ function DrawLineV(startPos, endPos, color) { raylib.DrawLineV = DrawLineV /** - * Draw a line defining thickness + * Draw a line (using triangles/quads) * * @param {Vector2} startPos * @param {Vector2} endPos @@ -2551,80 +2743,42 @@ function DrawLineEx(startPos, endPos, thick, color) { raylib.DrawLineEx = DrawLineEx /** - * Draw a line using cubic-bezier curves in-out - * - * @param {Vector2} startPos - * @param {Vector2} endPos - * @param {number} thick - * @param {Color} color - * - * @return {undefined} - */ -function DrawLineBezier(startPos, endPos, thick, color) { - return r.BindDrawLineBezier( - startPos.x, - startPos.y, - endPos.x, - endPos.y, - thick, - color.r, - color.g, - color.b, - color.a - ) -} -raylib.DrawLineBezier = DrawLineBezier - -/** - * Draw line using quadratic bezier curves with a control point + * Draw lines sequence (using gl lines) * - * @param {Vector2} startPos - * @param {Vector2} endPos - * @param {Vector2} controlPos - * @param {number} thick + * @param {number} points + * @param {number} pointCount * @param {Color} color * * @return {undefined} */ -function DrawLineBezierQuad(startPos, endPos, controlPos, thick, color) { - return r.BindDrawLineBezierQuad( - startPos.x, - startPos.y, - endPos.x, - endPos.y, - controlPos.x, - controlPos.y, - thick, +function DrawLineStrip(points, pointCount, color) { + return r.BindDrawLineStrip( + points, + pointCount, color.r, color.g, color.b, color.a ) } -raylib.DrawLineBezierQuad = DrawLineBezierQuad +raylib.DrawLineStrip = DrawLineStrip /** - * Draw line using cubic bezier curves with 2 control points + * Draw line segment cubic-bezier in-out interpolation * * @param {Vector2} startPos * @param {Vector2} endPos - * @param {Vector2} startControlPos - * @param {Vector2} endControlPos * @param {number} thick * @param {Color} color * * @return {undefined} */ -function DrawLineBezierCubic(startPos, endPos, startControlPos, endControlPos, thick, color) { - return r.BindDrawLineBezierCubic( +function DrawLineBezier(startPos, endPos, thick, color) { + return r.BindDrawLineBezier( startPos.x, startPos.y, endPos.x, endPos.y, - startControlPos.x, - startControlPos.y, - endControlPos.x, - endControlPos.y, thick, color.r, color.g, @@ -2632,28 +2786,7 @@ function DrawLineBezierCubic(startPos, endPos, startControlPos, endControlPos, t color.a ) } -raylib.DrawLineBezierCubic = DrawLineBezierCubic - -/** - * Draw lines sequence - * - * @param {number} points - * @param {number} pointCount - * @param {Color} color - * - * @return {undefined} - */ -function DrawLineStrip(points, pointCount, color) { - return r.BindDrawLineStrip( - points, - pointCount, - color.r, - color.g, - color.b, - color.a - ) -} -raylib.DrawLineStrip = DrawLineStrip +raylib.DrawLineBezier = DrawLineBezier /** * Draw a color-filled circle @@ -2807,6 +2940,28 @@ function DrawCircleLines(centerX, centerY, radius, color) { } raylib.DrawCircleLines = DrawCircleLines +/** + * Draw circle outline (Vector version) + * + * @param {Vector2} center + * @param {number} radius + * @param {Color} color + * + * @return {undefined} + */ +function DrawCircleLinesV(center, radius, color) { + return r.BindDrawCircleLinesV( + center.x, + center.y, + radius, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawCircleLinesV = DrawCircleLinesV + /** * Draw ellipse * @@ -3389,59 +3544,441 @@ function DrawPolyLinesEx(center, sides, radius, rotation, lineThick, color) { raylib.DrawPolyLinesEx = DrawPolyLinesEx /** - * Check collision between two rectangles + * Draw spline: Linear, minimum 2 points * - * @param {Rectangle} rec1 - * @param {Rectangle} rec2 + * @param {number} points + * @param {number} pointCount + * @param {number} thick + * @param {Color} color * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function CheckCollisionRecs(rec1, rec2) { - return r.BindCheckCollisionRecs( - rec1.x, - rec1.y, - rec1.width, - rec1.height, - rec2.x, - rec2.y, - rec2.width, - rec2.height +function DrawSplineLinear(points, pointCount, thick, color) { + return r.BindDrawSplineLinear( + points, + pointCount, + thick, + color.r, + color.g, + color.b, + color.a ) } -raylib.CheckCollisionRecs = CheckCollisionRecs +raylib.DrawSplineLinear = DrawSplineLinear /** - * Check collision between two circles + * Draw spline: B-Spline, minimum 4 points * - * @param {Vector2} center1 - * @param {number} radius1 - * @param {Vector2} center2 - * @param {number} radius2 + * @param {number} points + * @param {number} pointCount + * @param {number} thick + * @param {Color} color * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function CheckCollisionCircles(center1, radius1, center2, radius2) { - return r.BindCheckCollisionCircles( - center1.x, - center1.y, - radius1, - center2.x, - center2.y, - radius2 +function DrawSplineBasis(points, pointCount, thick, color) { + return r.BindDrawSplineBasis( + points, + pointCount, + thick, + color.r, + color.g, + color.b, + color.a ) } -raylib.CheckCollisionCircles = CheckCollisionCircles +raylib.DrawSplineBasis = DrawSplineBasis /** - * Check collision between circle and rectangle + * Draw spline: Catmull-Rom, minimum 4 points * - * @param {Vector2} center - * @param {number} radius - * @param {Rectangle} rec + * @param {number} points + * @param {number} pointCount + * @param {number} thick + * @param {Color} color * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function CheckCollisionCircleRec(center, radius, rec) { +function DrawSplineCatmullRom(points, pointCount, thick, color) { + return r.BindDrawSplineCatmullRom( + points, + pointCount, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineCatmullRom = DrawSplineCatmullRom + +/** + * Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] + * + * @param {number} points + * @param {number} pointCount + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineBezierQuadratic(points, pointCount, thick, color) { + return r.BindDrawSplineBezierQuadratic( + points, + pointCount, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineBezierQuadratic = DrawSplineBezierQuadratic + +/** + * Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] + * + * @param {number} points + * @param {number} pointCount + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineBezierCubic(points, pointCount, thick, color) { + return r.BindDrawSplineBezierCubic( + points, + pointCount, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineBezierCubic = DrawSplineBezierCubic + +/** + * Draw spline segment: Linear, 2 points + * + * @param {Vector2} p1 + * @param {Vector2} p2 + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineSegmentLinear(p1, p2, thick, color) { + return r.BindDrawSplineSegmentLinear( + p1.x, + p1.y, + p2.x, + p2.y, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineSegmentLinear = DrawSplineSegmentLinear + +/** + * Draw spline segment: B-Spline, 4 points + * + * @param {Vector2} p1 + * @param {Vector2} p2 + * @param {Vector2} p3 + * @param {Vector2} p4 + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineSegmentBasis(p1, p2, p3, p4, thick, color) { + return r.BindDrawSplineSegmentBasis( + p1.x, + p1.y, + p2.x, + p2.y, + p3.x, + p3.y, + p4.x, + p4.y, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineSegmentBasis = DrawSplineSegmentBasis + +/** + * Draw spline segment: Catmull-Rom, 4 points + * + * @param {Vector2} p1 + * @param {Vector2} p2 + * @param {Vector2} p3 + * @param {Vector2} p4 + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineSegmentCatmullRom(p1, p2, p3, p4, thick, color) { + return r.BindDrawSplineSegmentCatmullRom( + p1.x, + p1.y, + p2.x, + p2.y, + p3.x, + p3.y, + p4.x, + p4.y, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineSegmentCatmullRom = DrawSplineSegmentCatmullRom + +/** + * Draw spline segment: Quadratic Bezier, 2 points, 1 control point + * + * @param {Vector2} p1 + * @param {Vector2} c2 + * @param {Vector2} p3 + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineSegmentBezierQuadratic(p1, c2, p3, thick, color) { + return r.BindDrawSplineSegmentBezierQuadratic( + p1.x, + p1.y, + c2.x, + c2.y, + p3.x, + p3.y, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineSegmentBezierQuadratic = DrawSplineSegmentBezierQuadratic + +/** + * Draw spline segment: Cubic Bezier, 2 points, 2 control points + * + * @param {Vector2} p1 + * @param {Vector2} c2 + * @param {Vector2} c3 + * @param {Vector2} p4 + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineSegmentBezierCubic(p1, c2, c3, p4, thick, color) { + return r.BindDrawSplineSegmentBezierCubic( + p1.x, + p1.y, + c2.x, + c2.y, + c3.x, + c3.y, + p4.x, + p4.y, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineSegmentBezierCubic = DrawSplineSegmentBezierCubic + +/** + * Get (evaluate) spline point: Linear + * + * @param {Vector2} startPos + * @param {Vector2} endPos + * @param {number} t + * + * @return {Vector2} The resulting Vector2. + */ +function GetSplinePointLinear(startPos, endPos, t) { + return r.BindGetSplinePointLinear( + startPos.x, + startPos.y, + endPos.x, + endPos.y, + t + ) +} +raylib.GetSplinePointLinear = GetSplinePointLinear + +/** + * Get (evaluate) spline point: B-Spline + * + * @param {Vector2} p1 + * @param {Vector2} p2 + * @param {Vector2} p3 + * @param {Vector2} p4 + * @param {number} t + * + * @return {Vector2} The resulting Vector2. + */ +function GetSplinePointBasis(p1, p2, p3, p4, t) { + return r.BindGetSplinePointBasis( + p1.x, + p1.y, + p2.x, + p2.y, + p3.x, + p3.y, + p4.x, + p4.y, + t + ) +} +raylib.GetSplinePointBasis = GetSplinePointBasis + +/** + * Get (evaluate) spline point: Catmull-Rom + * + * @param {Vector2} p1 + * @param {Vector2} p2 + * @param {Vector2} p3 + * @param {Vector2} p4 + * @param {number} t + * + * @return {Vector2} The resulting Vector2. + */ +function GetSplinePointCatmullRom(p1, p2, p3, p4, t) { + return r.BindGetSplinePointCatmullRom( + p1.x, + p1.y, + p2.x, + p2.y, + p3.x, + p3.y, + p4.x, + p4.y, + t + ) +} +raylib.GetSplinePointCatmullRom = GetSplinePointCatmullRom + +/** + * Get (evaluate) spline point: Quadratic Bezier + * + * @param {Vector2} p1 + * @param {Vector2} c2 + * @param {Vector2} p3 + * @param {number} t + * + * @return {Vector2} The resulting Vector2. + */ +function GetSplinePointBezierQuad(p1, c2, p3, t) { + return r.BindGetSplinePointBezierQuad( + p1.x, + p1.y, + c2.x, + c2.y, + p3.x, + p3.y, + t + ) +} +raylib.GetSplinePointBezierQuad = GetSplinePointBezierQuad + +/** + * Get (evaluate) spline point: Cubic Bezier + * + * @param {Vector2} p1 + * @param {Vector2} c2 + * @param {Vector2} c3 + * @param {Vector2} p4 + * @param {number} t + * + * @return {Vector2} The resulting Vector2. + */ +function GetSplinePointBezierCubic(p1, c2, c3, p4, t) { + return r.BindGetSplinePointBezierCubic( + p1.x, + p1.y, + c2.x, + c2.y, + c3.x, + c3.y, + p4.x, + p4.y, + t + ) +} +raylib.GetSplinePointBezierCubic = GetSplinePointBezierCubic + +/** + * Check collision between two rectangles + * + * @param {Rectangle} rec1 + * @param {Rectangle} rec2 + * + * @return {boolean} The resulting bool. + */ +function CheckCollisionRecs(rec1, rec2) { + return r.BindCheckCollisionRecs( + rec1.x, + rec1.y, + rec1.width, + rec1.height, + rec2.x, + rec2.y, + rec2.width, + rec2.height + ) +} +raylib.CheckCollisionRecs = CheckCollisionRecs + +/** + * Check collision between two circles + * + * @param {Vector2} center1 + * @param {number} radius1 + * @param {Vector2} center2 + * @param {number} radius2 + * + * @return {boolean} The resulting bool. + */ +function CheckCollisionCircles(center1, radius1, center2, radius2) { + return r.BindCheckCollisionCircles( + center1.x, + center1.y, + radius1, + center2.x, + center2.y, + radius2 + ) +} +raylib.CheckCollisionCircles = CheckCollisionCircles + +/** + * Check collision between circle and rectangle + * + * @param {Vector2} center + * @param {number} radius + * @param {Rectangle} rec + * + * @return {boolean} The resulting bool. + */ +function CheckCollisionCircleRec(center, radius, rec) { return r.BindCheckCollisionCircleRec( center.x, center.y, @@ -3637,12 +4174,30 @@ function LoadImageRaw(fileName, width, height, format, headerSize) { return r.BindLoadImageRaw( fileName, width, - height, - format, - headerSize + height, + format, + headerSize + ) +} +raylib.LoadImageRaw = LoadImageRaw + +/** + * Load image from SVG file data or string with specified size + * + * @param {string} fileNameOrString + * @param {number} width + * @param {number} height + * + * @return {Image} The resulting Image. + */ +function LoadImageSvg(fileNameOrString, width, height) { + return r.BindLoadImageSvg( + fileNameOrString, + width, + height ) } -raylib.LoadImageRaw = LoadImageRaw +raylib.LoadImageSvg = LoadImageSvg /** * Load image sequence from file (frames appended to image.data) @@ -3762,6 +4317,28 @@ function ExportImage(image, fileName) { } raylib.ExportImage = ExportImage +/** + * Export image to memory buffer + * + * @param {Image} image + * @param {string} fileType + * @param {number} fileSize + * + * @return {Buffer} The resulting unsigned char *. + */ +function ExportImageToMemory(image, fileType, fileSize) { + return r.BindExportImageToMemory( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + fileType, + fileSize + ) +} +raylib.ExportImageToMemory = ExportImageToMemory + /** * Export image as code file defining an array of bytes, returns true on success * @@ -3804,59 +4381,63 @@ function GenImageColor(width, height, color) { raylib.GenImageColor = GenImageColor /** - * Generate image: vertical gradient + * Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient * * @param {number} width * @param {number} height - * @param {Color} top - * @param {Color} bottom + * @param {number} direction + * @param {Color} start + * @param {Color} end * * @return {Image} The resulting Image. */ -function GenImageGradientV(width, height, top, bottom) { - return r.BindGenImageGradientV( +function GenImageGradientLinear(width, height, direction, start, end) { + return r.BindGenImageGradientLinear( width, height, - top.r, - top.g, - top.b, - top.a, - bottom.r, - bottom.g, - bottom.b, - bottom.a + direction, + start.r, + start.g, + start.b, + start.a, + end.r, + end.g, + end.b, + end.a ) } -raylib.GenImageGradientV = GenImageGradientV +raylib.GenImageGradientLinear = GenImageGradientLinear /** - * Generate image: horizontal gradient + * Generate image: radial gradient * * @param {number} width * @param {number} height - * @param {Color} left - * @param {Color} right + * @param {number} density + * @param {Color} inner + * @param {Color} outer * * @return {Image} The resulting Image. */ -function GenImageGradientH(width, height, left, right) { - return r.BindGenImageGradientH( +function GenImageGradientRadial(width, height, density, inner, outer) { + return r.BindGenImageGradientRadial( width, height, - left.r, - left.g, - left.b, - left.a, - right.r, - right.g, - right.b, - right.a + density, + inner.r, + inner.g, + inner.b, + inner.a, + outer.r, + outer.g, + outer.b, + outer.a ) } -raylib.GenImageGradientH = GenImageGradientH +raylib.GenImageGradientRadial = GenImageGradientRadial /** - * Generate image: radial gradient + * Generate image: square gradient * * @param {number} width * @param {number} height @@ -3866,8 +4447,8 @@ raylib.GenImageGradientH = GenImageGradientH * * @return {Image} The resulting Image. */ -function GenImageGradientRadial(width, height, density, inner, outer) { - return r.BindGenImageGradientRadial( +function GenImageGradientSquare(width, height, density, inner, outer) { + return r.BindGenImageGradientSquare( width, height, density, @@ -3881,7 +4462,7 @@ function GenImageGradientRadial(width, height, density, inner, outer) { outer.a ) } -raylib.GenImageGradientRadial = GenImageGradientRadial +raylib.GenImageGradientSquare = GenImageGradientSquare /** * Generate image: checked @@ -4101,6 +4682,22 @@ function ImageBlurGaussian(image, blurSize) { } raylib.ImageBlurGaussian = ImageBlurGaussian +/** + * Rotate image by input angle in degrees (-359 to 359) + * + * @param {number} image + * @param {number} degrees + * + * @return {undefined} + */ +function ImageRotate(image, degrees) { + return r.BindImageRotate( + image, + degrees + ) +} +raylib.ImageRotate = ImageRotate + /** * Load color data from image as a Color array (RGBA - 32bit) * @@ -4997,21 +5594,21 @@ function LoadFont(fileName) { raylib.LoadFont = LoadFont /** - * Load font from file with extended parameters, use NULL for fontChars and 0 for glyphCount to load the default character set + * Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont * * @param {string} fileName * @param {number} fontSize - * @param {number} fontChars - * @param {number} glyphCount + * @param {number} codepoints + * @param {number} codepointCount * * @return {Font} The resulting Font. */ -function LoadFontEx(fileName, fontSize, fontChars, glyphCount) { +function LoadFontEx(fileName, fontSize, codepoints, codepointCount) { return r.BindLoadFontEx( fileName, fontSize, - fontChars, - glyphCount + codepoints, + codepointCount ) } raylib.LoadFontEx = LoadFontEx @@ -5048,19 +5645,19 @@ raylib.LoadFontFromImage = LoadFontFromImage * @param {Buffer} fileData * @param {number} dataSize * @param {number} fontSize - * @param {number} fontChars - * @param {number} glyphCount + * @param {number} codepoints + * @param {number} codepointCount * * @return {Font} The resulting Font. */ -function LoadFontFromMemory(fileType, fileData, dataSize, fontSize, fontChars, glyphCount) { +function LoadFontFromMemory(fileType, fileData, dataSize, fontSize, codepoints, codepointCount) { return r.BindLoadFontFromMemory( fileType, fileData, dataSize, fontSize, - fontChars, - glyphCount + codepoints, + codepointCount ) } raylib.LoadFontFromMemory = LoadFontFromMemory @@ -5094,19 +5691,19 @@ raylib.IsFontReady = IsFontReady * @param {Buffer} fileData * @param {number} dataSize * @param {number} fontSize - * @param {number} fontChars - * @param {number} glyphCount + * @param {number} codepoints + * @param {number} codepointCount * @param {number} type * * @return {number} The resulting GlyphInfo *. */ -function LoadFontData(fileData, dataSize, fontSize, fontChars, glyphCount, type) { +function LoadFontData(fileData, dataSize, fontSize, codepoints, codepointCount, type) { return r.BindLoadFontData( fileData, dataSize, fontSize, - fontChars, - glyphCount, + codepoints, + codepointCount, type ) } @@ -5115,8 +5712,8 @@ raylib.LoadFontData = LoadFontData /** * Generate image font atlas using chars info * - * @param {number} chars - * @param {number} recs + * @param {number} glyphs + * @param {number} glyphRecs * @param {number} glyphCount * @param {number} fontSize * @param {number} padding @@ -5124,10 +5721,10 @@ raylib.LoadFontData = LoadFontData * * @return {Image} The resulting Image. */ -function GenImageFontAtlas(chars, recs, glyphCount, fontSize, padding, packMethod) { +function GenImageFontAtlas(glyphs, glyphRecs, glyphCount, fontSize, padding, packMethod) { return r.BindGenImageFontAtlas( - chars, - recs, + glyphs, + glyphRecs, glyphCount, fontSize, padding, @@ -5139,14 +5736,14 @@ raylib.GenImageFontAtlas = GenImageFontAtlas /** * Unload font chars info data (RAM) * - * @param {number} chars + * @param {number} glyphs * @param {number} glyphCount * * @return {undefined} */ -function UnloadFontData(chars, glyphCount) { +function UnloadFontData(glyphs, glyphCount) { return r.BindUnloadFontData( - chars, + glyphs, glyphCount ) } @@ -5360,7 +5957,7 @@ raylib.DrawTextCodepoint = DrawTextCodepoint * * @param {Font} font * @param {number} codepoints - * @param {number} count + * @param {number} codepointCount * @param {Vector2} position * @param {number} fontSize * @param {number} spacing @@ -5368,7 +5965,7 @@ raylib.DrawTextCodepoint = DrawTextCodepoint * * @return {undefined} */ -function DrawTextCodepoints(font, codepoints, count, position, fontSize, spacing, tint) { +function DrawTextCodepoints(font, codepoints, codepointCount, position, fontSize, spacing, tint) { return r.BindDrawTextCodepoints( font.baseSize, font.glyphCount, @@ -5381,7 +5978,7 @@ function DrawTextCodepoints(font, codepoints, count, position, fontSize, spacing font.recs, font.glyphs, codepoints, - count, + codepointCount, position.x, position.y, fontSize, @@ -5394,6 +5991,20 @@ function DrawTextCodepoints(font, codepoints, count, position, fontSize, spacing } raylib.DrawTextCodepoints = DrawTextCodepoints +/** + * Set vertical line spacing when drawing with line-breaks + * + * @param {number} spacing + * + * @return {undefined} + */ +function SetTextLineSpacing(spacing) { + return r.BindSetTextLineSpacing( + spacing + ) +} +raylib.SetTextLineSpacing = SetTextLineSpacing + /** * Measure string width for default font * @@ -7346,6 +7957,7 @@ function UpdateModelAnimation(model, anim, frame) { anim.frameCount, anim.bones, anim.framePoses, + anim.name, frame ) } @@ -7363,7 +7975,8 @@ function UnloadModelAnimation(anim) { anim.boneCount, anim.frameCount, anim.bones, - anim.framePoses + anim.framePoses, + anim.name ) } raylib.UnloadModelAnimation = UnloadModelAnimation @@ -7372,14 +7985,14 @@ raylib.UnloadModelAnimation = UnloadModelAnimation * Unload animation array data * * @param {number} animations - * @param {number} count + * @param {number} animCount * * @return {undefined} */ -function UnloadModelAnimations(animations, count) { +function UnloadModelAnimations(animations, animCount) { return r.BindUnloadModelAnimations( animations, - count + animCount ) } raylib.UnloadModelAnimations = UnloadModelAnimations @@ -7421,7 +8034,8 @@ function IsModelAnimationValid(model, anim) { anim.boneCount, anim.frameCount, anim.bones, - anim.framePoses + anim.framePoses, + anim.name ) } raylib.IsModelAnimationValid = IsModelAnimationValid @@ -7714,6 +8328,16 @@ function SetMasterVolume(volume) { } raylib.SetMasterVolume = SetMasterVolume +/** + * Get master volume (listener) + * + * @return {number} The resulting float. + */ +function GetMasterVolume() { + return r.BindGetMasterVolume() +} +raylib.GetMasterVolume = GetMasterVolume + /** * Load wave data from file * @@ -7796,6 +8420,25 @@ function LoadSoundFromWave(wave) { } raylib.LoadSoundFromWave = LoadSoundFromWave +/** + * Create a new sound that shares the same sample data as the source sound, does not own the sound data + * + * @param {Sound} source + * + * @return {Sound} The resulting Sound. + */ +function LoadSoundAlias(source) { + return r.BindLoadSoundAlias( + source.stream.buffer, + source.stream.processor, + source.stream.sampleRate, + source.stream.sampleSize, + source.stream.channels, + source.frameCount + ) +} +raylib.LoadSoundAlias = LoadSoundAlias + /** * Checks if a sound is ready * @@ -7875,6 +8518,25 @@ function UnloadSound(sound) { } raylib.UnloadSound = UnloadSound +/** + * Unload a sound alias (does not deallocate sample data) + * + * @param {Sound} alias + * + * @return {undefined} + */ +function UnloadSoundAlias(alias) { + return r.BindUnloadSoundAlias( + alias.stream.buffer, + alias.stream.processor, + alias.stream.sampleRate, + alias.stream.sampleSize, + alias.stream.channels, + alias.frameCount + ) +} +raylib.UnloadSoundAlias = UnloadSoundAlias + /** * Export wave data to file, returns true on success * @@ -9797,6 +10459,30 @@ function Vector3Normalize(v) { } raylib.Vector3Normalize = Vector3Normalize +function Vector3Project(v1, v2) { + return r.BindVector3Project( + v1.x, + v1.y, + v1.z, + v2.x, + v2.y, + v2.z + ) +} +raylib.Vector3Project = Vector3Project + +function Vector3Reject(v1, v2) { + return r.BindVector3Reject( + v1.x, + v1.y, + v1.z, + v2.x, + v2.y, + v2.z + ) +} +raylib.Vector3Reject = Vector3Reject + function Vector3OrthoNormalize(v1, v2) { return r.BindVector3OrthoNormalize( v1, @@ -10307,24 +10993,24 @@ function MatrixFrustum(left, right, bottom, top, near, far) { } raylib.MatrixFrustum = MatrixFrustum -function MatrixPerspective(fovy, aspect, near, far) { +function MatrixPerspective(fovY, aspect, nearPlane, farPlane) { return r.BindMatrixPerspective( - fovy, + fovY, aspect, - near, - far + nearPlane, + farPlane ) } raylib.MatrixPerspective = MatrixPerspective -function MatrixOrtho(left, right, bottom, top, near, far) { +function MatrixOrtho(left, right, bottom, top, nearPlane, farPlane) { return r.BindMatrixOrtho( left, right, bottom, top, - near, - far + nearPlane, + farPlane ) } raylib.MatrixOrtho = MatrixOrtho @@ -10617,12 +11303,12 @@ raylib.GuiIsLocked = GuiIsLocked * * @return {undefined} */ -function GuiFade(alpha) { - return r.BindGuiFade( +function GuiSetAlpha(alpha) { + return r.BindGuiSetAlpha( alpha ) } -raylib.GuiFade = GuiFade +raylib.GuiSetAlpha = GuiSetAlpha /** * Set gui state (global state) @@ -10669,51 +11355,190 @@ function GuiSetFont(font) { font.glyphs ) } -raylib.GuiSetFont = GuiSetFont +raylib.GuiSetFont = GuiSetFont + +/** + * Get gui custom font (global state) + * + * @return {Font} The resulting Font. + */ +function GuiGetFont() { + return r.BindGuiGetFont() +} +raylib.GuiGetFont = GuiGetFont + +/** + * Set one style property + * + * @param {number} control + * @param {number} property + * @param {number} value + * + * @return {undefined} + */ +function GuiSetStyle(control, property, value) { + return r.BindGuiSetStyle( + control, + property, + value + ) +} +raylib.GuiSetStyle = GuiSetStyle + +/** + * Get one style property + * + * @param {number} control + * @param {number} property + * + * @return {number} The resulting int. + */ +function GuiGetStyle(control, property) { + return r.BindGuiGetStyle( + control, + property + ) +} +raylib.GuiGetStyle = GuiGetStyle + +/** + * Load style file over global style variable (.rgs) + * + * @param {string} fileName + * + * @return {undefined} + */ +function GuiLoadStyle(fileName) { + return r.BindGuiLoadStyle( + fileName + ) +} +raylib.GuiLoadStyle = GuiLoadStyle + +/** + * Load style default over global style + * + * @return {undefined} + */ +function GuiLoadStyleDefault() { + return r.BindGuiLoadStyleDefault() +} +raylib.GuiLoadStyleDefault = GuiLoadStyleDefault + +/** + * Enable gui tooltips (global state) + * + * @return {undefined} + */ +function GuiEnableTooltip() { + return r.BindGuiEnableTooltip() +} +raylib.GuiEnableTooltip = GuiEnableTooltip + +/** + * Disable gui tooltips (global state) + * + * @return {undefined} + */ +function GuiDisableTooltip() { + return r.BindGuiDisableTooltip() +} +raylib.GuiDisableTooltip = GuiDisableTooltip + +/** + * Set tooltip string + * + * @param {string} tooltip + * + * @return {undefined} + */ +function GuiSetTooltip(tooltip) { + return r.BindGuiSetTooltip( + tooltip + ) +} +raylib.GuiSetTooltip = GuiSetTooltip + +/** + * Get text with icon id prepended (if supported) + * + * @param {number} iconId + * @param {string} text + * + * @return {string} The resulting const char *. + */ +function GuiIconText(iconId, text) { + return r.BindGuiIconText( + iconId, + text + ) +} +raylib.GuiIconText = GuiIconText + +/** + * Set default icon drawing size + * + * @param {number} scale + * + * @return {undefined} + */ +function GuiSetIconScale(scale) { + return r.BindGuiSetIconScale( + scale + ) +} +raylib.GuiSetIconScale = GuiSetIconScale /** - * Get gui custom font (global state) + * Get raygui icons data pointer * - * @return {Font} The resulting Font. + * @return {number} The resulting unsigned int *. */ -function GuiGetFont() { - return r.BindGuiGetFont() +function GuiGetIcons() { + return r.BindGuiGetIcons() } -raylib.GuiGetFont = GuiGetFont +raylib.GuiGetIcons = GuiGetIcons /** - * Set one style property + * Load raygui icons file (.rgi) into internal icons data * - * @param {number} control - * @param {number} property - * @param {number} value + * @param {string} fileName + * @param {boolean} loadIconsName * - * @return {undefined} + * @return {number} The resulting char **. */ -function GuiSetStyle(control, property, value) { - return r.BindGuiSetStyle( - control, - property, - value +function GuiLoadIcons(fileName, loadIconsName) { + return r.BindGuiLoadIcons( + fileName, + loadIconsName ) } -raylib.GuiSetStyle = GuiSetStyle +raylib.GuiLoadIcons = GuiLoadIcons /** - * Get one style property + * Draw icon using pixel size at specified position * - * @param {number} control - * @param {number} property + * @param {number} iconId + * @param {number} posX + * @param {number} posY + * @param {number} pixelSize + * @param {Color} color * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiGetStyle(control, property) { - return r.BindGuiGetStyle( - control, - property +function GuiDrawIcon(iconId, posX, posY, pixelSize, color) { + return r.BindGuiDrawIcon( + iconId, + posX, + posY, + pixelSize, + color.r, + color.g, + color.b, + color.a ) } -raylib.GuiGetStyle = GuiGetStyle +raylib.GuiDrawIcon = GuiDrawIcon /** * Window Box control, shows a window that can be closed @@ -10721,7 +11546,7 @@ raylib.GuiGetStyle = GuiGetStyle * @param {Rectangle} bounds * @param {string} title * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiWindowBox(bounds, title) { return r.BindGuiWindowBox( @@ -10740,7 +11565,7 @@ raylib.GuiWindowBox = GuiWindowBox * @param {Rectangle} bounds * @param {string} text * - * @return {undefined} + * @return {number} The resulting int. */ function GuiGroupBox(bounds, text) { return r.BindGuiGroupBox( @@ -10759,7 +11584,7 @@ raylib.GuiGroupBox = GuiGroupBox * @param {Rectangle} bounds * @param {string} text * - * @return {undefined} + * @return {number} The resulting int. */ function GuiLine(bounds, text) { return r.BindGuiLine( @@ -10778,7 +11603,7 @@ raylib.GuiLine = GuiLine * @param {Rectangle} bounds * @param {string} text * - * @return {undefined} + * @return {number} The resulting int. */ function GuiPanel(bounds, text) { return r.BindGuiPanel( @@ -10821,10 +11646,11 @@ raylib.GuiTabBar = GuiTabBar * @param {string} text * @param {Rectangle} content * @param {number} scroll + * @param {number} view * - * @return {Rectangle} The resulting Rectangle. + * @return {number} The resulting int. */ -function GuiScrollPanel(bounds, text, content, scroll) { +function GuiScrollPanel(bounds, text, content, scroll, view) { return r.BindGuiScrollPanel( bounds.x, bounds.y, @@ -10835,7 +11661,8 @@ function GuiScrollPanel(bounds, text, content, scroll) { content.y, content.width, content.height, - scroll + scroll, + view ) } raylib.GuiScrollPanel = GuiScrollPanel @@ -10846,7 +11673,7 @@ raylib.GuiScrollPanel = GuiScrollPanel * @param {Rectangle} bounds * @param {string} text * - * @return {undefined} + * @return {number} The resulting int. */ function GuiLabel(bounds, text) { return r.BindGuiLabel( @@ -10865,7 +11692,7 @@ raylib.GuiLabel = GuiLabel * @param {Rectangle} bounds * @param {string} text * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiButton(bounds, text) { return r.BindGuiButton( @@ -10884,7 +11711,7 @@ raylib.GuiButton = GuiButton * @param {Rectangle} bounds * @param {string} text * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiLabelButton(bounds, text) { return r.BindGuiLabelButton( @@ -10902,9 +11729,9 @@ raylib.GuiLabelButton = GuiLabelButton * * @param {Rectangle} bounds * @param {string} text - * @param {boolean} active + * @param {number} active * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiToggle(bounds, text, active) { return r.BindGuiToggle( @@ -10939,14 +11766,35 @@ function GuiToggleGroup(bounds, text, active) { } raylib.GuiToggleGroup = GuiToggleGroup +/** + * Toggle Slider control, returns true when clicked + * + * @param {Rectangle} bounds + * @param {string} text + * @param {number} active + * + * @return {number} The resulting int. + */ +function GuiToggleSlider(bounds, text, active) { + return r.BindGuiToggleSlider( + bounds.x, + bounds.y, + bounds.width, + bounds.height, + text, + active + ) +} +raylib.GuiToggleSlider = GuiToggleSlider + /** * Check Box control, returns true when active * * @param {Rectangle} bounds * @param {string} text - * @param {boolean} checked + * @param {number} checked * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiCheckBox(bounds, text, checked) { return r.BindGuiCheckBox( @@ -10989,7 +11837,7 @@ raylib.GuiComboBox = GuiComboBox * @param {number} active * @param {boolean} editMode * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiDropdownBox(bounds, text, active, editMode) { return r.BindGuiDropdownBox( @@ -11014,7 +11862,7 @@ raylib.GuiDropdownBox = GuiDropdownBox * @param {number} maxValue * @param {boolean} editMode * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiSpinner(bounds, text, value, minValue, maxValue, editMode) { return r.BindGuiSpinner( @@ -11041,7 +11889,7 @@ raylib.GuiSpinner = GuiSpinner * @param {number} maxValue * @param {boolean} editMode * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiValueBox(bounds, text, value, minValue, maxValue, editMode) { return r.BindGuiValueBox( @@ -11066,7 +11914,7 @@ raylib.GuiValueBox = GuiValueBox * @param {number} textSize * @param {boolean} editMode * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiTextBox(bounds, text, textSize, editMode) { return r.BindGuiTextBox( @@ -11081,29 +11929,6 @@ function GuiTextBox(bounds, text, textSize, editMode) { } raylib.GuiTextBox = GuiTextBox -/** - * Text Box control with multiple lines - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} textSize - * @param {boolean} editMode - * - * @return {boolean} The resulting bool. - */ -function GuiTextBoxMulti(bounds, text, textSize, editMode) { - return r.BindGuiTextBoxMulti( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - textSize, - editMode - ) -} -raylib.GuiTextBoxMulti = GuiTextBoxMulti - /** * Slider control, returns selected value * @@ -11114,7 +11939,7 @@ raylib.GuiTextBoxMulti = GuiTextBoxMulti * @param {number} minValue * @param {number} maxValue * - * @return {number} The resulting float. + * @return {number} The resulting int. */ function GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue) { return r.BindGuiSlider( @@ -11141,7 +11966,7 @@ raylib.GuiSlider = GuiSlider * @param {number} minValue * @param {number} maxValue * - * @return {number} The resulting float. + * @return {number} The resulting int. */ function GuiSliderBar(bounds, textLeft, textRight, value, minValue, maxValue) { return r.BindGuiSliderBar( @@ -11168,7 +11993,7 @@ raylib.GuiSliderBar = GuiSliderBar * @param {number} minValue * @param {number} maxValue * - * @return {number} The resulting float. + * @return {number} The resulting int. */ function GuiProgressBar(bounds, textLeft, textRight, value, minValue, maxValue) { return r.BindGuiProgressBar( @@ -11191,7 +12016,7 @@ raylib.GuiProgressBar = GuiProgressBar * @param {Rectangle} bounds * @param {string} text * - * @return {undefined} + * @return {number} The resulting int. */ function GuiStatusBar(bounds, text) { return r.BindGuiStatusBar( @@ -11210,7 +12035,7 @@ raylib.GuiStatusBar = GuiStatusBar * @param {Rectangle} bounds * @param {string} text * - * @return {undefined} + * @return {number} The resulting int. */ function GuiDummyRec(bounds, text) { return r.BindGuiDummyRec( @@ -11230,10 +12055,11 @@ raylib.GuiDummyRec = GuiDummyRec * @param {string} text * @param {number} spacing * @param {number} subdivs + * @param {number} mouseCell * - * @return {Vector2} The resulting Vector2. + * @return {number} The resulting int. */ -function GuiGrid(bounds, text, spacing, subdivs) { +function GuiGrid(bounds, text, spacing, subdivs, mouseCell) { return r.BindGuiGrid( bounds.x, bounds.y, @@ -11241,7 +12067,8 @@ function GuiGrid(bounds, text, spacing, subdivs) { bounds.height, text, spacing, - subdivs + subdivs, + mouseCell ) } raylib.GuiGrid = GuiGrid @@ -11275,13 +12102,13 @@ raylib.GuiListView = GuiListView * @param {Rectangle} bounds * @param {number} text * @param {number} count - * @param {number} focus * @param {number} scrollIndex * @param {number} active + * @param {number} focus * * @return {number} The resulting int. */ -function GuiListViewEx(bounds, text, count, focus, scrollIndex, active) { +function GuiListViewEx(bounds, text, count, scrollIndex, active, focus) { return r.BindGuiListViewEx( bounds.x, bounds.y, @@ -11289,9 +12116,9 @@ function GuiListViewEx(bounds, text, count, focus, scrollIndex, active) { bounds.height, text, count, - focus, scrollIndex, - active + active, + focus ) } raylib.GuiListViewEx = GuiListViewEx @@ -11353,9 +12180,9 @@ raylib.GuiTextInputBox = GuiTextInputBox * * @param {Rectangle} bounds * @param {string} text - * @param {Color} color + * @param {number} color * - * @return {Color} The resulting Color. + * @return {number} The resulting int. */ function GuiColorPicker(bounds, text, color) { return r.BindGuiColorPicker( @@ -11364,10 +12191,7 @@ function GuiColorPicker(bounds, text, color) { bounds.width, bounds.height, text, - color.r, - color.g, - color.b, - color.a + color ) } raylib.GuiColorPicker = GuiColorPicker @@ -11377,194 +12201,105 @@ raylib.GuiColorPicker = GuiColorPicker * * @param {Rectangle} bounds * @param {string} text - * @param {Color} color - * - * @return {Color} The resulting Color. - */ -function GuiColorPanel(bounds, text, color) { - return r.BindGuiColorPanel( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - color.r, - color.g, - color.b, - color.a - ) -} -raylib.GuiColorPanel = GuiColorPanel - -/** - * Color Bar Alpha control - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} alpha - * - * @return {number} The resulting float. - */ -function GuiColorBarAlpha(bounds, text, alpha) { - return r.BindGuiColorBarAlpha( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - alpha - ) -} -raylib.GuiColorBarAlpha = GuiColorBarAlpha - -/** - * Color Bar Hue control - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} value - * - * @return {number} The resulting float. - */ -function GuiColorBarHue(bounds, text, value) { - return r.BindGuiColorBarHue( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - value - ) -} -raylib.GuiColorBarHue = GuiColorBarHue - -/** - * Load style file over global style variable (.rgs) - * - * @param {string} fileName - * - * @return {undefined} - */ -function GuiLoadStyle(fileName) { - return r.BindGuiLoadStyle( - fileName - ) -} -raylib.GuiLoadStyle = GuiLoadStyle - -/** - * Load style default over global style - * - * @return {undefined} - */ -function GuiLoadStyleDefault() { - return r.BindGuiLoadStyleDefault() -} -raylib.GuiLoadStyleDefault = GuiLoadStyleDefault - -/** - * Enable gui tooltips (global state) - * - * @return {undefined} - */ -function GuiEnableTooltip() { - return r.BindGuiEnableTooltip() -} -raylib.GuiEnableTooltip = GuiEnableTooltip - -/** - * Disable gui tooltips (global state) - * - * @return {undefined} - */ -function GuiDisableTooltip() { - return r.BindGuiDisableTooltip() -} -raylib.GuiDisableTooltip = GuiDisableTooltip - -/** - * Set tooltip string - * - * @param {string} tooltip + * @param {number} color * - * @return {undefined} + * @return {number} The resulting int. */ -function GuiSetTooltip(tooltip) { - return r.BindGuiSetTooltip( - tooltip +function GuiColorPanel(bounds, text, color) { + return r.BindGuiColorPanel( + bounds.x, + bounds.y, + bounds.width, + bounds.height, + text, + color ) } -raylib.GuiSetTooltip = GuiSetTooltip +raylib.GuiColorPanel = GuiColorPanel /** - * Get text with icon id prepended (if supported) + * Color Bar Alpha control * - * @param {number} iconId + * @param {Rectangle} bounds * @param {string} text + * @param {number} alpha * - * @return {string} The resulting const char *. + * @return {number} The resulting int. */ -function GuiIconText(iconId, text) { - return r.BindGuiIconText( - iconId, - text +function GuiColorBarAlpha(bounds, text, alpha) { + return r.BindGuiColorBarAlpha( + bounds.x, + bounds.y, + bounds.width, + bounds.height, + text, + alpha ) } -raylib.GuiIconText = GuiIconText +raylib.GuiColorBarAlpha = GuiColorBarAlpha /** - * Get raygui icons data pointer + * Color Bar Hue control * - * @return {number} The resulting unsigned int *. + * @param {Rectangle} bounds + * @param {string} text + * @param {number} value + * + * @return {number} The resulting int. */ -function GuiGetIcons() { - return r.BindGuiGetIcons() +function GuiColorBarHue(bounds, text, value) { + return r.BindGuiColorBarHue( + bounds.x, + bounds.y, + bounds.width, + bounds.height, + text, + value + ) } -raylib.GuiGetIcons = GuiGetIcons +raylib.GuiColorBarHue = GuiColorBarHue /** - * Load raygui icons file (.rgi) into internal icons data + * Color Picker control that avoids conversion to RGB on each call (multiple color controls) * - * @param {string} fileName - * @param {boolean} loadIconsName + * @param {Rectangle} bounds + * @param {string} text + * @param {number} colorHsv * - * @return {number} The resulting char **. + * @return {number} The resulting int. */ -function GuiLoadIcons(fileName, loadIconsName) { - return r.BindGuiLoadIcons( - fileName, - loadIconsName - ) -} -raylib.GuiLoadIcons = GuiLoadIcons - -function GuiDrawIcon(iconId, posX, posY, pixelSize, color) { - return r.BindGuiDrawIcon( - iconId, - posX, - posY, - pixelSize, - color.r, - color.g, - color.b, - color.a +function GuiColorPickerHSV(bounds, text, colorHsv) { + return r.BindGuiColorPickerHSV( + bounds.x, + bounds.y, + bounds.width, + bounds.height, + text, + colorHsv ) } -raylib.GuiDrawIcon = GuiDrawIcon +raylib.GuiColorPickerHSV = GuiColorPickerHSV /** - * Set icon drawing size + * Color Panel control that returns HSV color value, used by GuiColorPickerHSV() * - * @param {number} scale + * @param {Rectangle} bounds + * @param {string} text + * @param {number} colorHsv * - * @return {undefined} + * @return {number} The resulting int. */ -function GuiSetIconScale(scale) { - return r.BindGuiSetIconScale( - scale +function GuiColorPanelHSV(bounds, text, colorHsv) { + return r.BindGuiColorPanelHSV( + bounds.x, + bounds.y, + bounds.width, + bounds.height, + text, + colorHsv ) } -raylib.GuiSetIconScale = GuiSetIconScale +raylib.GuiColorPanelHSV = GuiColorPanelHSV /** * Choose the current matrix to be transformed @@ -12150,6 +12885,36 @@ function rlActiveDrawBuffers(count) { } raylib.rlActiveDrawBuffers = rlActiveDrawBuffers +/** + * Blit active framebuffer to main framebuffer + * + * @param {number} srcX + * @param {number} srcY + * @param {number} srcWidth + * @param {number} srcHeight + * @param {number} dstX + * @param {number} dstY + * @param {number} dstWidth + * @param {number} dstHeight + * @param {number} bufferMask + * + * @return {undefined} + */ +function rlBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask) { + return r.BindrlBlitFramebuffer( + srcX, + srcY, + srcWidth, + srcHeight, + dstX, + dstY, + dstWidth, + dstHeight, + bufferMask + ) +} +raylib.rlBlitFramebuffer = rlBlitFramebuffer + /** * Enable color blending * @@ -12295,7 +13060,17 @@ function rlEnableWireMode() { raylib.rlEnableWireMode = rlEnableWireMode /** - * Disable wire mode + * Enable point mode + * + * @return {undefined} + */ +function rlEnablePointMode() { + return r.BindrlEnablePointMode() +} +raylib.rlEnablePointMode = rlEnablePointMode + +/** + * Disable wire mode ( and point ) maybe rename * * @return {undefined} */ @@ -15326,6 +16101,14 @@ raylib.FLAG_WINDOW_HIGHDPI = 8192 */ raylib.FLAG_WINDOW_MOUSE_PASSTHROUGH = 16384 +/** + * Set to run program in borderless windowed mode + * + * @type {number} + * @constant + */ +raylib.FLAG_BORDERLESS_WINDOWED_MODE = 32768 + /** * Set to try enabling MSAA 4X * @@ -17102,13 +17885,37 @@ raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9 */ raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10 +/** + * 16 bpp (1 channel - half float) + * + * @type {number} + * @constant + */ +raylib.PIXELFORMAT_UNCOMPRESSED_R16 = 11 + +/** + * 16*3 bpp (3 channels - half float) + * + * @type {number} + * @constant + */ +raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12 + +/** + * 16*4 bpp (4 channels - half float) + * + * @type {number} + * @constant + */ +raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13 + /** * 4 bpp (no alpha) * * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 11 +raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 14 /** * 4 bpp (1 bit alpha) @@ -17116,7 +17923,7 @@ raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 11 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12 +raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15 /** * 8 bpp @@ -17124,7 +17931,7 @@ raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13 +raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16 /** * 8 bpp @@ -17132,7 +17939,7 @@ raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14 +raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17 /** * 4 bpp @@ -17140,7 +17947,7 @@ raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 15 +raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 18 /** * 4 bpp @@ -17148,7 +17955,7 @@ raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 15 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 16 +raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 19 /** * 8 bpp @@ -17156,7 +17963,7 @@ raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 16 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17 +raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20 /** * 4 bpp @@ -17164,7 +17971,7 @@ raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 18 +raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 21 /** * 4 bpp @@ -17172,7 +17979,7 @@ raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 18 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19 +raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22 /** * 8 bpp @@ -17180,7 +17987,7 @@ raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20 +raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23 /** * 2 bpp @@ -17188,7 +17995,7 @@ raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21 +raylib.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24 /** * No filter, just pixel approximation @@ -17630,6 +18437,54 @@ raylib.TEXT_ALIGN_CENTER = 1 */ raylib.TEXT_ALIGN_RIGHT = 2 +/** + * + * + * @type {number} + * @constant + */ +raylib.TEXT_ALIGN_TOP = 0 + +/** + * + * + * @type {number} + * @constant + */ +raylib.TEXT_ALIGN_MIDDLE = 1 + +/** + * + * + * @type {number} + * @constant + */ +raylib.TEXT_ALIGN_BOTTOM = 2 + +/** + * + * + * @type {number} + * @constant + */ +raylib.TEXT_WRAP_NONE = 0 + +/** + * + * + * @type {number} + * @constant + */ +raylib.TEXT_WRAP_CHAR = 1 + +/** + * + * + * @type {number} + * @constant + */ +raylib.TEXT_WRAP_WORD = 2 + /** * * @@ -17663,7 +18518,7 @@ raylib.BUTTON = 2 raylib.TOGGLE = 3 /** - * Used also for: SLIDERBAR + * Used also for: SLIDERBAR, TOGGLESLIDER * * @type {number} * @constant @@ -17759,7 +18614,7 @@ raylib.SCROLLBAR = 14 raylib.STATUSBAR = 15 /** - * + * Control border color in STATE_NORMAL * * @type {number} * @constant @@ -17767,7 +18622,7 @@ raylib.STATUSBAR = 15 raylib.BORDER_COLOR_NORMAL = 0 /** - * + * Control base color in STATE_NORMAL * * @type {number} * @constant @@ -17775,7 +18630,7 @@ raylib.BORDER_COLOR_NORMAL = 0 raylib.BASE_COLOR_NORMAL = 1 /** - * + * Control text color in STATE_NORMAL * * @type {number} * @constant @@ -17783,7 +18638,7 @@ raylib.BASE_COLOR_NORMAL = 1 raylib.TEXT_COLOR_NORMAL = 2 /** - * + * Control border color in STATE_FOCUSED * * @type {number} * @constant @@ -17791,7 +18646,7 @@ raylib.TEXT_COLOR_NORMAL = 2 raylib.BORDER_COLOR_FOCUSED = 3 /** - * + * Control base color in STATE_FOCUSED * * @type {number} * @constant @@ -17799,7 +18654,7 @@ raylib.BORDER_COLOR_FOCUSED = 3 raylib.BASE_COLOR_FOCUSED = 4 /** - * + * Control text color in STATE_FOCUSED * * @type {number} * @constant @@ -17807,7 +18662,7 @@ raylib.BASE_COLOR_FOCUSED = 4 raylib.TEXT_COLOR_FOCUSED = 5 /** - * + * Control border color in STATE_PRESSED * * @type {number} * @constant @@ -17815,7 +18670,7 @@ raylib.TEXT_COLOR_FOCUSED = 5 raylib.BORDER_COLOR_PRESSED = 6 /** - * + * Control base color in STATE_PRESSED * * @type {number} * @constant @@ -17823,7 +18678,7 @@ raylib.BORDER_COLOR_PRESSED = 6 raylib.BASE_COLOR_PRESSED = 7 /** - * + * Control text color in STATE_PRESSED * * @type {number} * @constant @@ -17831,7 +18686,7 @@ raylib.BASE_COLOR_PRESSED = 7 raylib.TEXT_COLOR_PRESSED = 8 /** - * + * Control border color in STATE_DISABLED * * @type {number} * @constant @@ -17839,7 +18694,7 @@ raylib.TEXT_COLOR_PRESSED = 8 raylib.BORDER_COLOR_DISABLED = 9 /** - * + * Control base color in STATE_DISABLED * * @type {number} * @constant @@ -17847,7 +18702,7 @@ raylib.BORDER_COLOR_DISABLED = 9 raylib.BASE_COLOR_DISABLED = 10 /** - * + * Control text color in STATE_DISABLED * * @type {number} * @constant @@ -17855,7 +18710,7 @@ raylib.BASE_COLOR_DISABLED = 10 raylib.TEXT_COLOR_DISABLED = 11 /** - * + * Control border size, 0 for no border * * @type {number} * @constant @@ -17863,7 +18718,7 @@ raylib.TEXT_COLOR_DISABLED = 11 raylib.BORDER_WIDTH = 12 /** - * + * Control text padding, not considering border * * @type {number} * @constant @@ -17871,21 +18726,13 @@ raylib.BORDER_WIDTH = 12 raylib.TEXT_PADDING = 13 /** - * + * Control text horizontal alignment inside control text bound (after border and padding) * * @type {number} * @constant */ raylib.TEXT_ALIGNMENT = 14 -/** - * - * - * @type {number} - * @constant - */ -raylib.RESERVED = 15 - /** * Text size (glyphs max height) * @@ -17918,6 +18765,30 @@ raylib.LINE_COLOR = 18 */ raylib.BACKGROUND_COLOR = 19 +/** + * Text spacing between lines + * + * @type {number} + * @constant + */ +raylib.TEXT_LINE_SPACING = 20 + +/** + * Text vertical alignment inside text bounds (after border and padding) + * + * @type {number} + * @constant + */ +raylib.TEXT_ALIGNMENT_VERTICAL = 21 + +/** + * Text wrap-mode inside text bounds + * + * @type {number} + * @constant + */ +raylib.TEXT_WRAP_MODE = 22 + /** * ToggleGroup separation between toggles * @@ -17951,7 +18822,7 @@ raylib.SLIDER_PADDING = 17 raylib.PROGRESS_PADDING = 16 /** - * + * ScrollBar arrows size * * @type {number} * @constant @@ -17959,7 +18830,7 @@ raylib.PROGRESS_PADDING = 16 raylib.ARROWS_SIZE = 16 /** - * + * ScrollBar arrows visible * * @type {number} * @constant @@ -17967,7 +18838,7 @@ raylib.ARROWS_SIZE = 16 raylib.ARROWS_VISIBLE = 17 /** - * (SLIDERBAR, SLIDER_PADDING) + * ScrollBar slider internal padding * * @type {number} * @constant @@ -17975,7 +18846,7 @@ raylib.ARROWS_VISIBLE = 17 raylib.SCROLL_SLIDER_PADDING = 18 /** - * + * ScrollBar slider size * * @type {number} * @constant @@ -17983,7 +18854,7 @@ raylib.SCROLL_SLIDER_PADDING = 18 raylib.SCROLL_SLIDER_SIZE = 19 /** - * + * ScrollBar scroll padding from arrows * * @type {number} * @constant @@ -17991,7 +18862,7 @@ raylib.SCROLL_SLIDER_SIZE = 19 raylib.SCROLL_PADDING = 20 /** - * + * ScrollBar scrolling speed * * @type {number} * @constant @@ -18039,20 +18910,12 @@ raylib.ARROW_PADDING = 16 raylib.DROPDOWN_ITEMS_SPACING = 17 /** - * TextBox/TextBoxMulti/ValueBox/Spinner inner text padding - * - * @type {number} - * @constant - */ -raylib.TEXT_INNER_PADDING = 16 - -/** - * TextBoxMulti lines separation + * TextBox in read-only mode: 0-text editable, 1-text no-editable * * @type {number} * @constant */ -raylib.TEXT_LINES_SPACING = 17 +raylib.TEXT_READONLY = 16 /** * Spinner left/right buttons width @@ -18095,7 +18958,7 @@ raylib.LIST_ITEMS_SPACING = 17 raylib.SCROLLBAR_WIDTH = 18 /** - * ListView scrollbar side (0-left, 1-right) + * ListView scrollbar side (0-SCROLLBAR_LEFT_SIDE, 1-SCROLLBAR_RIGHT_SIDE) * * @type {number} * @constant @@ -19900,7 +20763,7 @@ raylib.ICON_FILE = 218 * @type {number} * @constant */ -raylib.ICON_219 = 219 +raylib.ICON_SAND_TIMER = 219 /** * @@ -20230,6 +21093,14 @@ raylib.RL_OPENGL_43 = 4 */ raylib.RL_OPENGL_ES_20 = 5 +/** + * OpenGL ES 3.0 (GLSL 300 es) + * + * @type {number} + * @constant + */ +raylib.RL_OPENGL_ES_30 = 6 + /** * Display all logs * @@ -20374,13 +21245,37 @@ raylib.RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9 */ raylib.RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10 +/** + * 16 bpp (1 channel - half float) + * + * @type {number} + * @constant + */ +raylib.RL_PIXELFORMAT_UNCOMPRESSED_R16 = 11 + +/** + * 16*3 bpp (3 channels - half float) + * + * @type {number} + * @constant + */ +raylib.RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12 + +/** + * 16*4 bpp (4 channels - half float) + * + * @type {number} + * @constant + */ +raylib.RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13 + /** * 4 bpp (no alpha) * * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11 +raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 14 /** * 4 bpp (1 bit alpha) @@ -20388,7 +21283,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12 +raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15 /** * 8 bpp @@ -20396,7 +21291,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13 +raylib.RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16 /** * 8 bpp @@ -20404,7 +21299,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14 +raylib.RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17 /** * 4 bpp @@ -20412,7 +21307,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15 +raylib.RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 18 /** * 4 bpp @@ -20420,7 +21315,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16 +raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 19 /** * 8 bpp @@ -20428,7 +21323,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17 +raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20 /** * 4 bpp @@ -20436,7 +21331,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18 +raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 21 /** * 4 bpp @@ -20444,7 +21339,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19 +raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22 /** * 8 bpp @@ -20452,7 +21347,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20 +raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23 /** * 2 bpp @@ -20460,7 +21355,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21 +raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24 /** * No filter, just pixel approximation diff --git a/src/generated/node-raylib.cc b/src/generated/node-raylib.cc index b0ea9d3..2acd06d 100644 --- a/src/generated/node-raylib.cc +++ b/src/generated/node-raylib.cc @@ -315,7 +315,8 @@ inline ModelAnimation ModelAnimationFromValue(const Napi::CallbackInfo& info, in intFromValue(info, index + 0), intFromValue(info, index + 1), (BoneInfo *) pointerFromValue(info, index + 2), - (Transform **) pointerFromValue(info, index + 3) + (Transform **) pointerFromValue(info, index + 3), + pointerFromValue(info, index + 4) }; } @@ -387,6 +388,22 @@ inline FilePathList FilePathListFromValue(const Napi::CallbackInfo& info, int in }; } +inline AutomationEvent AutomationEventFromValue(const Napi::CallbackInfo& info, int index) { + return { + unsignedintFromValue(info, index + 0), + unsignedintFromValue(info, index + 1), + int[4]FromValue(info, index + 2) + }; +} + +inline AutomationEventList AutomationEventListFromValue(const Napi::CallbackInfo& info, int index) { + return { + unsignedintFromValue(info, index + 0), + unsignedintFromValue(info, index + 1), + (AutomationEvent *) pointerFromValue(info, index + 2) + }; +} + inline rlDrawCall rlDrawCallFromValue(const Napi::CallbackInfo& info, int index) { return { intFromValue(info, index + 0), @@ -620,6 +637,7 @@ inline Napi::Value ToValue(Napi::Env env, ModelAnimation obj) { out.Set("frameCount", ToValue(env, obj.frameCount)); out.Set("bones", ToValue(env, obj.bones)); out.Set("framePoses", ToValue(env, obj.framePoses)); + out.Set("name", ToValue(env, obj.name)); return out; } @@ -691,6 +709,22 @@ inline Napi::Value ToValue(Napi::Env env, FilePathList obj) { return out; } +inline Napi::Value ToValue(Napi::Env env, AutomationEvent obj) { + Napi::Object out = Napi::Object::New(env); + out.Set("frame", ToValue(env, obj.frame)); + out.Set("type", ToValue(env, obj.type)); + out.Set("params", ToValue(env, obj.params)); + return out; +} + +inline Napi::Value ToValue(Napi::Env env, AutomationEventList obj) { + Napi::Object out = Napi::Object::New(env); + out.Set("capacity", ToValue(env, obj.capacity)); + out.Set("count", ToValue(env, obj.count)); + out.Set("events", ToValue(env, obj.events)); + return out; +} + inline Napi::Value ToValue(Napi::Env env, rlVertexBuffer obj) { Napi::Object out = Napi::Object::New(env); out.Set("elementCount", ToValue(env, obj.elementCount)); @@ -1066,25 +1100,25 @@ Napi::Value BindGetWorldToScreen2D(const Napi::CallbackInfo& info) { ); } -Napi::Value BindGetFPS(const Napi::CallbackInfo& info) { +Napi::Value BindGetFrameTime(const Napi::CallbackInfo& info) { return ToValue(info.Env(), - GetFPS( + GetFrameTime( ) ); } -Napi::Value BindGetFrameTime(const Napi::CallbackInfo& info) { +Napi::Value BindGetTime(const Napi::CallbackInfo& info) { return ToValue(info.Env(), - GetFrameTime( + GetTime( ) ); } -Napi::Value BindGetTime(const Napi::CallbackInfo& info) { +Napi::Value BindGetFPS(const Napi::CallbackInfo& info) { return ToValue(info.Env(), - GetTime( + GetFPS( ) ); @@ -1099,6 +1133,16 @@ Napi::Value BindGetRandomValue(const Napi::CallbackInfo& info) { ); } +Napi::Value BindLoadRandomSequence(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + LoadRandomSequence( + unsignedintFromValue(info, 0), + intFromValue(info, 1), + intFromValue(info, 2) + ) + ); +} + Napi::Value BindMemAlloc(const Napi::CallbackInfo& info) { return ToValue(info.Env(), MemAlloc( @@ -1120,7 +1164,7 @@ Napi::Value BindLoadFileData(const Napi::CallbackInfo& info) { return ToValue(info.Env(), LoadFileData( (const char *) stringFromValue(info, 0), - (unsigned int *) pointerFromValue(info, 1) + (int *) pointerFromValue(info, 1) ) ); } @@ -1130,7 +1174,7 @@ Napi::Value BindSaveFileData(const Napi::CallbackInfo& info) { SaveFileData( (const char *) stringFromValue(info, 0), (void *) pointerFromValue(info, 1), - unsignedintFromValue(info, 2) + intFromValue(info, 2) ) ); } @@ -1139,7 +1183,7 @@ Napi::Value BindExportDataAsCode(const Napi::CallbackInfo& info) { return ToValue(info.Env(), ExportDataAsCode( (const unsigned char *) pointerFromValue(info, 0), - unsignedintFromValue(info, 1), + intFromValue(info, 1), (const char *) stringFromValue(info, 2) ) ); @@ -1348,6 +1392,23 @@ Napi::Value BindDecodeDataBase64(const Napi::CallbackInfo& info) { ); } +Napi::Value BindLoadAutomationEventList(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + LoadAutomationEventList( + (const char *) stringFromValue(info, 0) + ) + ); +} + +Napi::Value BindExportAutomationEventList(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + ExportAutomationEventList( + AutomationEventListFromValue(info, 0), + (const char *) stringFromValue(info, 3) + ) + ); +} + Napi::Value BindIsKeyPressed(const Napi::CallbackInfo& info) { return ToValue(info.Env(), IsKeyPressed( @@ -1356,6 +1417,14 @@ Napi::Value BindIsKeyPressed(const Napi::CallbackInfo& info) { ); } +Napi::Value BindIsKeyPressedRepeat(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + IsKeyPressedRepeat( + intFromValue(info, 0) + ) + ); +} + Napi::Value BindIsKeyDown(const Napi::CallbackInfo& info) { return ToValue(info.Env(), IsKeyDown( @@ -1604,7 +1673,7 @@ Napi::Value BindGetTouchPointCount(const Napi::CallbackInfo& info) { Napi::Value BindIsGestureDetected(const Napi::CallbackInfo& info) { return ToValue(info.Env(), IsGestureDetected( - intFromValue(info, 0) + unsignedintFromValue(info, 0) ) ); } @@ -1657,6 +1726,63 @@ Napi::Value BindGetGesturePinchAngle(const Napi::CallbackInfo& info) { ); } +Napi::Value BindGetSplinePointLinear(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GetSplinePointLinear( + Vector2FromValue(info, 0), + Vector2FromValue(info, 2), + floatFromValue(info, 4) + ) + ); +} + +Napi::Value BindGetSplinePointBasis(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GetSplinePointBasis( + Vector2FromValue(info, 0), + Vector2FromValue(info, 2), + Vector2FromValue(info, 4), + Vector2FromValue(info, 6), + floatFromValue(info, 8) + ) + ); +} + +Napi::Value BindGetSplinePointCatmullRom(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GetSplinePointCatmullRom( + Vector2FromValue(info, 0), + Vector2FromValue(info, 2), + Vector2FromValue(info, 4), + Vector2FromValue(info, 6), + floatFromValue(info, 8) + ) + ); +} + +Napi::Value BindGetSplinePointBezierQuad(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GetSplinePointBezierQuad( + Vector2FromValue(info, 0), + Vector2FromValue(info, 2), + Vector2FromValue(info, 4), + floatFromValue(info, 6) + ) + ); +} + +Napi::Value BindGetSplinePointBezierCubic(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GetSplinePointBezierCubic( + Vector2FromValue(info, 0), + Vector2FromValue(info, 2), + Vector2FromValue(info, 4), + Vector2FromValue(info, 6), + floatFromValue(info, 8) + ) + ); +} + Napi::Value BindCheckCollisionRecs(const Napi::CallbackInfo& info) { return ToValue(info.Env(), CheckCollisionRecs( @@ -1779,6 +1905,16 @@ Napi::Value BindLoadImageRaw(const Napi::CallbackInfo& info) { ); } +Napi::Value BindLoadImageSvg(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + LoadImageSvg( + (const char *) stringFromValue(info, 0), + intFromValue(info, 1), + intFromValue(info, 2) + ) + ); +} + Napi::Value BindLoadImageAnim(const Napi::CallbackInfo& info) { return ToValue(info.Env(), LoadImageAnim( @@ -1831,6 +1967,16 @@ Napi::Value BindExportImage(const Napi::CallbackInfo& info) { ); } +Napi::Value BindExportImageToMemory(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + ExportImageToMemory( + ImageFromValue(info, 0), + (const char *) stringFromValue(info, 5), + (int *) pointerFromValue(info, 6) + ) + ); +} + Napi::Value BindExportImageAsCode(const Napi::CallbackInfo& info) { return ToValue(info.Env(), ExportImageAsCode( @@ -1850,31 +1996,33 @@ Napi::Value BindGenImageColor(const Napi::CallbackInfo& info) { ); } -Napi::Value BindGenImageGradientV(const Napi::CallbackInfo& info) { +Napi::Value BindGenImageGradientLinear(const Napi::CallbackInfo& info) { return ToValue(info.Env(), - GenImageGradientV( + GenImageGradientLinear( intFromValue(info, 0), intFromValue(info, 1), - ColorFromValue(info, 2), - ColorFromValue(info, 6) + intFromValue(info, 2), + ColorFromValue(info, 3), + ColorFromValue(info, 7) ) ); } -Napi::Value BindGenImageGradientH(const Napi::CallbackInfo& info) { +Napi::Value BindGenImageGradientRadial(const Napi::CallbackInfo& info) { return ToValue(info.Env(), - GenImageGradientH( + GenImageGradientRadial( intFromValue(info, 0), intFromValue(info, 1), - ColorFromValue(info, 2), - ColorFromValue(info, 6) + floatFromValue(info, 2), + ColorFromValue(info, 3), + ColorFromValue(info, 7) ) ); } -Napi::Value BindGenImageGradientRadial(const Napi::CallbackInfo& info) { +Napi::Value BindGenImageGradientSquare(const Napi::CallbackInfo& info) { return ToValue(info.Env(), - GenImageGradientRadial( + GenImageGradientSquare( intFromValue(info, 0), intFromValue(info, 1), floatFromValue(info, 2), @@ -2671,7 +2819,7 @@ Napi::Value BindLoadModelAnimations(const Napi::CallbackInfo& info) { return ToValue(info.Env(), LoadModelAnimations( (const char *) stringFromValue(info, 0), - (unsigned int *) pointerFromValue(info, 1) + (int *) pointerFromValue(info, 1) ) ); } @@ -2775,6 +2923,14 @@ Napi::Value BindIsAudioDeviceReady(const Napi::CallbackInfo& info) { ); } +Napi::Value BindGetMasterVolume(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GetMasterVolume( + + ) + ); +} + Napi::Value BindLoadWave(const Napi::CallbackInfo& info) { return ToValue(info.Env(), LoadWave( @@ -2817,6 +2973,14 @@ Napi::Value BindLoadSoundFromWave(const Napi::CallbackInfo& info) { ); } +Napi::Value BindLoadSoundAlias(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + LoadSoundAlias( + SoundFromValue(info, 0) + ) + ); +} + Napi::Value BindIsSoundReady(const Napi::CallbackInfo& info) { return ToValue(info.Env(), IsSoundReady( @@ -3724,6 +3888,24 @@ Napi::Value BindVector3Normalize(const Napi::CallbackInfo& info) { ); } +Napi::Value BindVector3Project(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + Vector3Project( + Vector3FromValue(info, 0), + Vector3FromValue(info, 3) + ) + ); +} + +Napi::Value BindVector3Reject(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + Vector3Reject( + Vector3FromValue(info, 0), + Vector3FromValue(info, 3) + ) + ); +} + Napi::Value BindVector3Transform(const Napi::CallbackInfo& info) { return ToValue(info.Env(), Vector3Transform( @@ -4268,6 +4450,32 @@ Napi::Value BindGuiGetStyle(const Napi::CallbackInfo& info) { ); } +Napi::Value BindGuiIconText(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GuiIconText( + intFromValue(info, 0), + (const char *) stringFromValue(info, 1) + ) + ); +} + +Napi::Value BindGuiGetIcons(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GuiGetIcons( + + ) + ); +} + +Napi::Value BindGuiLoadIcons(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GuiLoadIcons( + (const char *) stringFromValue(info, 0), + boolFromValue(info, 1) + ) + ); +} + Napi::Value BindGuiWindowBox(const Napi::CallbackInfo& info) { return ToValue(info.Env(), GuiWindowBox( @@ -4277,6 +4485,33 @@ Napi::Value BindGuiWindowBox(const Napi::CallbackInfo& info) { ); } +Napi::Value BindGuiGroupBox(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GuiGroupBox( + RectangleFromValue(info, 0), + (const char *) stringFromValue(info, 4) + ) + ); +} + +Napi::Value BindGuiLine(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GuiLine( + RectangleFromValue(info, 0), + (const char *) stringFromValue(info, 4) + ) + ); +} + +Napi::Value BindGuiPanel(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GuiPanel( + RectangleFromValue(info, 0), + (const char *) stringFromValue(info, 4) + ) + ); +} + Napi::Value BindGuiTabBar(const Napi::CallbackInfo& info) { return ToValue(info.Env(), GuiTabBar( @@ -4294,7 +4529,17 @@ Napi::Value BindGuiScrollPanel(const Napi::CallbackInfo& info) { RectangleFromValue(info, 0), (const char *) stringFromValue(info, 4), RectangleFromValue(info, 5), - (Vector2 *) pointerFromValue(info, 9) + (Vector2 *) pointerFromValue(info, 9), + (Rectangle *) pointerFromValue(info, 10) + ) + ); +} + +Napi::Value BindGuiLabel(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GuiLabel( + RectangleFromValue(info, 0), + (const char *) stringFromValue(info, 4) ) ); } @@ -4322,7 +4567,7 @@ Napi::Value BindGuiToggle(const Napi::CallbackInfo& info) { GuiToggle( RectangleFromValue(info, 0), (const char *) stringFromValue(info, 4), - boolFromValue(info, 5) + (bool *) pointerFromValue(info, 5) ) ); } @@ -4332,7 +4577,17 @@ Napi::Value BindGuiToggleGroup(const Napi::CallbackInfo& info) { GuiToggleGroup( RectangleFromValue(info, 0), (const char *) stringFromValue(info, 4), - intFromValue(info, 5) + (int *) pointerFromValue(info, 5) + ) + ); +} + +Napi::Value BindGuiToggleSlider(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GuiToggleSlider( + RectangleFromValue(info, 0), + (const char *) stringFromValue(info, 4), + (int *) pointerFromValue(info, 5) ) ); } @@ -4342,7 +4597,7 @@ Napi::Value BindGuiCheckBox(const Napi::CallbackInfo& info) { GuiCheckBox( RectangleFromValue(info, 0), (const char *) stringFromValue(info, 4), - boolFromValue(info, 5) + (bool *) pointerFromValue(info, 5) ) ); } @@ -4352,7 +4607,7 @@ Napi::Value BindGuiComboBox(const Napi::CallbackInfo& info) { GuiComboBox( RectangleFromValue(info, 0), (const char *) stringFromValue(info, 4), - intFromValue(info, 5) + (int *) pointerFromValue(info, 5) ) ); } @@ -4405,24 +4660,13 @@ Napi::Value BindGuiTextBox(const Napi::CallbackInfo& info) { ); } -Napi::Value BindGuiTextBoxMulti(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiTextBoxMulti( - RectangleFromValue(info, 0), - (char *) pointerFromValue(info, 4), - intFromValue(info, 5), - boolFromValue(info, 6) - ) - ); -} - Napi::Value BindGuiSlider(const Napi::CallbackInfo& info) { return ToValue(info.Env(), GuiSlider( RectangleFromValue(info, 0), (const char *) stringFromValue(info, 4), (const char *) stringFromValue(info, 5), - floatFromValue(info, 6), + (float *) pointerFromValue(info, 6), floatFromValue(info, 7), floatFromValue(info, 8) ) @@ -4435,7 +4679,7 @@ Napi::Value BindGuiSliderBar(const Napi::CallbackInfo& info) { RectangleFromValue(info, 0), (const char *) stringFromValue(info, 4), (const char *) stringFromValue(info, 5), - floatFromValue(info, 6), + (float *) pointerFromValue(info, 6), floatFromValue(info, 7), floatFromValue(info, 8) ) @@ -4448,31 +4692,50 @@ Napi::Value BindGuiProgressBar(const Napi::CallbackInfo& info) { RectangleFromValue(info, 0), (const char *) stringFromValue(info, 4), (const char *) stringFromValue(info, 5), - floatFromValue(info, 6), + (float *) pointerFromValue(info, 6), floatFromValue(info, 7), floatFromValue(info, 8) ) ); } -Napi::Value BindGuiGrid(const Napi::CallbackInfo& info) { +Napi::Value BindGuiStatusBar(const Napi::CallbackInfo& info) { return ToValue(info.Env(), - GuiGrid( + GuiStatusBar( RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - floatFromValue(info, 5), - intFromValue(info, 6) + (const char *) stringFromValue(info, 4) ) ); } -Napi::Value BindGuiListView(const Napi::CallbackInfo& info) { +Napi::Value BindGuiDummyRec(const Napi::CallbackInfo& info) { return ToValue(info.Env(), - GuiListView( + GuiDummyRec( RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (int *) pointerFromValue(info, 5), - intFromValue(info, 6) + (const char *) stringFromValue(info, 4) + ) + ); +} + +Napi::Value BindGuiGrid(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GuiGrid( + RectangleFromValue(info, 0), + (const char *) stringFromValue(info, 4), + floatFromValue(info, 5), + intFromValue(info, 6), + (Vector2 *) pointerFromValue(info, 7) + ) + ); +} + +Napi::Value BindGuiListView(const Napi::CallbackInfo& info) { + return ToValue(info.Env(), + GuiListView( + RectangleFromValue(info, 0), + (const char *) stringFromValue(info, 4), + (int *) pointerFromValue(info, 5), + (int *) pointerFromValue(info, 6) ) ); } @@ -4485,7 +4748,7 @@ Napi::Value BindGuiListViewEx(const Napi::CallbackInfo& info) { intFromValue(info, 5), (int *) pointerFromValue(info, 6), (int *) pointerFromValue(info, 7), - intFromValue(info, 8) + (int *) pointerFromValue(info, 8) ) ); } @@ -4510,7 +4773,7 @@ Napi::Value BindGuiTextInputBox(const Napi::CallbackInfo& info) { (const char *) stringFromValue(info, 6), (char *) pointerFromValue(info, 7), intFromValue(info, 8), - (int *) pointerFromValue(info, 9) + (bool *) pointerFromValue(info, 9) ) ); } @@ -4520,7 +4783,7 @@ Napi::Value BindGuiColorPicker(const Napi::CallbackInfo& info) { GuiColorPicker( RectangleFromValue(info, 0), (const char *) stringFromValue(info, 4), - ColorFromValue(info, 5) + (Color *) pointerFromValue(info, 5) ) ); } @@ -4530,7 +4793,7 @@ Napi::Value BindGuiColorPanel(const Napi::CallbackInfo& info) { GuiColorPanel( RectangleFromValue(info, 0), (const char *) stringFromValue(info, 4), - ColorFromValue(info, 5) + (Color *) pointerFromValue(info, 5) ) ); } @@ -4540,7 +4803,7 @@ Napi::Value BindGuiColorBarAlpha(const Napi::CallbackInfo& info) { GuiColorBarAlpha( RectangleFromValue(info, 0), (const char *) stringFromValue(info, 4), - floatFromValue(info, 5) + (float *) pointerFromValue(info, 5) ) ); } @@ -4550,33 +4813,27 @@ Napi::Value BindGuiColorBarHue(const Napi::CallbackInfo& info) { GuiColorBarHue( RectangleFromValue(info, 0), (const char *) stringFromValue(info, 4), - floatFromValue(info, 5) - ) - ); -} - -Napi::Value BindGuiIconText(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiIconText( - intFromValue(info, 0), - (const char *) stringFromValue(info, 1) + (float *) pointerFromValue(info, 5) ) ); } -Napi::Value BindGuiGetIcons(const Napi::CallbackInfo& info) { +Napi::Value BindGuiColorPickerHSV(const Napi::CallbackInfo& info) { return ToValue(info.Env(), - GuiGetIcons( - + GuiColorPickerHSV( + RectangleFromValue(info, 0), + (const char *) stringFromValue(info, 4), + (Vector3 *) pointerFromValue(info, 5) ) ); } -Napi::Value BindGuiLoadIcons(const Napi::CallbackInfo& info) { +Napi::Value BindGuiColorPanelHSV(const Napi::CallbackInfo& info) { return ToValue(info.Env(), - GuiLoadIcons( - (const char *) stringFromValue(info, 0), - boolFromValue(info, 1) + GuiColorPanelHSV( + RectangleFromValue(info, 0), + (const char *) stringFromValue(info, 4), + (Vector3 *) pointerFromValue(info, 5) ) ); } @@ -4918,6 +5175,12 @@ void BindToggleFullscreen(const Napi::CallbackInfo& info) { ); } +void BindToggleBorderlessWindowed(const Napi::CallbackInfo& info) { + ToggleBorderlessWindowed( + + ); +} + void BindMaximizeWindow(const Napi::CallbackInfo& info) { MaximizeWindow( @@ -4975,6 +5238,13 @@ void BindSetWindowMinSize(const Napi::CallbackInfo& info) { ); } +void BindSetWindowMaxSize(const Napi::CallbackInfo& info) { + SetWindowMaxSize( + intFromValue(info, 0), + intFromValue(info, 1) + ); +} + void BindSetWindowSize(const Napi::CallbackInfo& info) { SetWindowSize( intFromValue(info, 0), @@ -4988,6 +5258,12 @@ void BindSetWindowOpacity(const Napi::CallbackInfo& info) { ); } +void BindSetWindowFocused(const Napi::CallbackInfo& info) { + SetWindowFocused( + + ); +} + void BindSetClipboardText(const Napi::CallbackInfo& info) { SetClipboardText( (const char *) stringFromValue(info, 0) @@ -5006,24 +5282,6 @@ void BindDisableEventWaiting(const Napi::CallbackInfo& info) { ); } -void BindSwapScreenBuffer(const Napi::CallbackInfo& info) { - SwapScreenBuffer( - - ); -} - -void BindPollInputEvents(const Napi::CallbackInfo& info) { - PollInputEvents( - - ); -} - -void BindWaitTime(const Napi::CallbackInfo& info) { - WaitTime( - doubleFromValue(info, 0) - ); -} - void BindShowCursor(const Napi::CallbackInfo& info) { ShowCursor( @@ -5175,12 +5433,36 @@ void BindSetTargetFPS(const Napi::CallbackInfo& info) { ); } +void BindSwapScreenBuffer(const Napi::CallbackInfo& info) { + SwapScreenBuffer( + + ); +} + +void BindPollInputEvents(const Napi::CallbackInfo& info) { + PollInputEvents( + + ); +} + +void BindWaitTime(const Napi::CallbackInfo& info) { + WaitTime( + doubleFromValue(info, 0) + ); +} + void BindSetRandomSeed(const Napi::CallbackInfo& info) { SetRandomSeed( unsignedintFromValue(info, 0) ); } +void BindUnloadRandomSequence(const Napi::CallbackInfo& info) { + UnloadRandomSequence( + (int *) pointerFromValue(info, 0) + ); +} + void BindTakeScreenshot(const Napi::CallbackInfo& info) { TakeScreenshot( (const char *) stringFromValue(info, 0) @@ -5193,6 +5475,12 @@ void BindSetConfigFlags(const Napi::CallbackInfo& info) { ); } +void BindOpenURL(const Napi::CallbackInfo& info) { + OpenURL( + (const char *) stringFromValue(info, 0) + ); +} + void BindSetTraceLogLevel(const Napi::CallbackInfo& info) { SetTraceLogLevel( intFromValue(info, 0) @@ -5205,12 +5493,6 @@ void BindMemFree(const Napi::CallbackInfo& info) { ); } -void BindOpenURL(const Napi::CallbackInfo& info) { - OpenURL( - (const char *) stringFromValue(info, 0) - ); -} - void BindUnloadFileData(const Napi::CallbackInfo& info) { UnloadFileData( (unsigned char *) pointerFromValue(info, 0) @@ -5235,6 +5517,42 @@ void BindUnloadDroppedFiles(const Napi::CallbackInfo& info) { ); } +void BindUnloadAutomationEventList(const Napi::CallbackInfo& info) { + UnloadAutomationEventList( + (AutomationEventList *) pointerFromValue(info, 0) + ); +} + +void BindSetAutomationEventList(const Napi::CallbackInfo& info) { + SetAutomationEventList( + (AutomationEventList *) pointerFromValue(info, 0) + ); +} + +void BindSetAutomationEventBaseFrame(const Napi::CallbackInfo& info) { + SetAutomationEventBaseFrame( + intFromValue(info, 0) + ); +} + +void BindStartAutomationEventRecording(const Napi::CallbackInfo& info) { + StartAutomationEventRecording( + + ); +} + +void BindStopAutomationEventRecording(const Napi::CallbackInfo& info) { + StopAutomationEventRecording( + + ); +} + +void BindPlayAutomationEvent(const Napi::CallbackInfo& info) { + PlayAutomationEvent( + AutomationEventFromValue(info, 0) + ); +} + void BindSetExitKey(const Napi::CallbackInfo& info) { SetExitKey( intFromValue(info, 0) @@ -5332,6 +5650,14 @@ void BindDrawLineEx(const Napi::CallbackInfo& info) { ); } +void BindDrawLineStrip(const Napi::CallbackInfo& info) { + DrawLineStrip( + (Vector2 *) pointerFromValue(info, 0), + intFromValue(info, 1), + ColorFromValue(info, 2) + ); +} + void BindDrawLineBezier(const Napi::CallbackInfo& info) { DrawLineBezier( Vector2FromValue(info, 0), @@ -5341,35 +5667,6 @@ void BindDrawLineBezier(const Napi::CallbackInfo& info) { ); } -void BindDrawLineBezierQuad(const Napi::CallbackInfo& info) { - DrawLineBezierQuad( - Vector2FromValue(info, 0), - Vector2FromValue(info, 2), - Vector2FromValue(info, 4), - floatFromValue(info, 6), - ColorFromValue(info, 7) - ); -} - -void BindDrawLineBezierCubic(const Napi::CallbackInfo& info) { - DrawLineBezierCubic( - Vector2FromValue(info, 0), - Vector2FromValue(info, 2), - Vector2FromValue(info, 4), - Vector2FromValue(info, 6), - floatFromValue(info, 8), - ColorFromValue(info, 9) - ); -} - -void BindDrawLineStrip(const Napi::CallbackInfo& info) { - DrawLineStrip( - (Vector2 *) pointerFromValue(info, 0), - intFromValue(info, 1), - ColorFromValue(info, 2) - ); -} - void BindDrawCircle(const Napi::CallbackInfo& info) { DrawCircle( intFromValue(info, 0), @@ -5428,6 +5725,14 @@ void BindDrawCircleLines(const Napi::CallbackInfo& info) { ); } +void BindDrawCircleLinesV(const Napi::CallbackInfo& info) { + DrawCircleLinesV( + Vector2FromValue(info, 0), + floatFromValue(info, 2), + ColorFromValue(info, 3) + ); +} + void BindDrawEllipse(const Napi::CallbackInfo& info) { DrawEllipse( intFromValue(info, 0), @@ -5640,6 +5945,103 @@ void BindDrawPolyLinesEx(const Napi::CallbackInfo& info) { ); } +void BindDrawSplineLinear(const Napi::CallbackInfo& info) { + DrawSplineLinear( + (Vector2 *) pointerFromValue(info, 0), + intFromValue(info, 1), + floatFromValue(info, 2), + ColorFromValue(info, 3) + ); +} + +void BindDrawSplineBasis(const Napi::CallbackInfo& info) { + DrawSplineBasis( + (Vector2 *) pointerFromValue(info, 0), + intFromValue(info, 1), + floatFromValue(info, 2), + ColorFromValue(info, 3) + ); +} + +void BindDrawSplineCatmullRom(const Napi::CallbackInfo& info) { + DrawSplineCatmullRom( + (Vector2 *) pointerFromValue(info, 0), + intFromValue(info, 1), + floatFromValue(info, 2), + ColorFromValue(info, 3) + ); +} + +void BindDrawSplineBezierQuadratic(const Napi::CallbackInfo& info) { + DrawSplineBezierQuadratic( + (Vector2 *) pointerFromValue(info, 0), + intFromValue(info, 1), + floatFromValue(info, 2), + ColorFromValue(info, 3) + ); +} + +void BindDrawSplineBezierCubic(const Napi::CallbackInfo& info) { + DrawSplineBezierCubic( + (Vector2 *) pointerFromValue(info, 0), + intFromValue(info, 1), + floatFromValue(info, 2), + ColorFromValue(info, 3) + ); +} + +void BindDrawSplineSegmentLinear(const Napi::CallbackInfo& info) { + DrawSplineSegmentLinear( + Vector2FromValue(info, 0), + Vector2FromValue(info, 2), + floatFromValue(info, 4), + ColorFromValue(info, 5) + ); +} + +void BindDrawSplineSegmentBasis(const Napi::CallbackInfo& info) { + DrawSplineSegmentBasis( + Vector2FromValue(info, 0), + Vector2FromValue(info, 2), + Vector2FromValue(info, 4), + Vector2FromValue(info, 6), + floatFromValue(info, 8), + ColorFromValue(info, 9) + ); +} + +void BindDrawSplineSegmentCatmullRom(const Napi::CallbackInfo& info) { + DrawSplineSegmentCatmullRom( + Vector2FromValue(info, 0), + Vector2FromValue(info, 2), + Vector2FromValue(info, 4), + Vector2FromValue(info, 6), + floatFromValue(info, 8), + ColorFromValue(info, 9) + ); +} + +void BindDrawSplineSegmentBezierQuadratic(const Napi::CallbackInfo& info) { + DrawSplineSegmentBezierQuadratic( + Vector2FromValue(info, 0), + Vector2FromValue(info, 2), + Vector2FromValue(info, 4), + floatFromValue(info, 6), + ColorFromValue(info, 7) + ); +} + +void BindDrawSplineSegmentBezierCubic(const Napi::CallbackInfo& info) { + DrawSplineSegmentBezierCubic( + Vector2FromValue(info, 0), + Vector2FromValue(info, 2), + Vector2FromValue(info, 4), + Vector2FromValue(info, 6), + floatFromValue(info, 8), + ColorFromValue(info, 9) + ); +} + void BindUnloadImage(const Napi::CallbackInfo& info) { UnloadImage( ImageFromValue(info, 0) @@ -5653,6 +6055,13 @@ void BindImageBlurGaussian(const Napi::CallbackInfo& info) { ); } +void BindImageRotate(const Napi::CallbackInfo& info) { + ImageRotate( + (Image *) pointerFromValue(info, 0), + intFromValue(info, 1) + ); +} + void BindUnloadImageColors(const Napi::CallbackInfo& info) { UnloadImageColors( (Color *) pointerFromValue(info, 0) @@ -5867,6 +6276,12 @@ void BindDrawTextCodepoints(const Napi::CallbackInfo& info) { ); } +void BindSetTextLineSpacing(const Napi::CallbackInfo& info) { + SetTextLineSpacing( + intFromValue(info, 0) + ); +} + void BindUnloadUTF8(const Napi::CallbackInfo& info) { UnloadUTF8( (char *) pointerFromValue(info, 0) @@ -6189,7 +6604,7 @@ void BindUpdateModelAnimation(const Napi::CallbackInfo& info) { UpdateModelAnimation( ModelFromValue(info, 0), ModelAnimationFromValue(info, 24), - intFromValue(info, 28) + intFromValue(info, 29) ); } @@ -6202,7 +6617,7 @@ void BindUnloadModelAnimation(const Napi::CallbackInfo& info) { void BindUnloadModelAnimations(const Napi::CallbackInfo& info) { UnloadModelAnimations( (ModelAnimation *) pointerFromValue(info, 0), - unsignedintFromValue(info, 1) + intFromValue(info, 1) ); } @@ -6244,6 +6659,12 @@ void BindUnloadSound(const Napi::CallbackInfo& info) { ); } +void BindUnloadSoundAlias(const Napi::CallbackInfo& info) { + UnloadSoundAlias( + SoundFromValue(info, 0) + ); +} + void BindPlaySound(const Napi::CallbackInfo& info) { PlaySound( SoundFromValue(info, 0) @@ -6463,8 +6884,8 @@ void BindGuiUnlock(const Napi::CallbackInfo& info) { ); } -void BindGuiFade(const Napi::CallbackInfo& info) { - GuiFade( +void BindGuiSetAlpha(const Napi::CallbackInfo& info) { + GuiSetAlpha( floatFromValue(info, 0) ); } @@ -6489,48 +6910,6 @@ void BindGuiSetStyle(const Napi::CallbackInfo& info) { ); } -void BindGuiGroupBox(const Napi::CallbackInfo& info) { - GuiGroupBox( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ); -} - -void BindGuiLine(const Napi::CallbackInfo& info) { - GuiLine( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ); -} - -void BindGuiPanel(const Napi::CallbackInfo& info) { - GuiPanel( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ); -} - -void BindGuiLabel(const Napi::CallbackInfo& info) { - GuiLabel( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ); -} - -void BindGuiStatusBar(const Napi::CallbackInfo& info) { - GuiStatusBar( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ); -} - -void BindGuiDummyRec(const Napi::CallbackInfo& info) { - GuiDummyRec( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ); -} - void BindGuiLoadStyle(const Napi::CallbackInfo& info) { GuiLoadStyle( (const char *) stringFromValue(info, 0) @@ -6561,6 +6940,12 @@ void BindGuiSetTooltip(const Napi::CallbackInfo& info) { ); } +void BindGuiSetIconScale(const Napi::CallbackInfo& info) { + GuiSetIconScale( + intFromValue(info, 0) + ); +} + void BindGuiDrawIcon(const Napi::CallbackInfo& info) { GuiDrawIcon( intFromValue(info, 0), @@ -6571,12 +6956,6 @@ void BindGuiDrawIcon(const Napi::CallbackInfo& info) { ); } -void BindGuiSetIconScale(const Napi::CallbackInfo& info) { - GuiSetIconScale( - intFromValue(info, 0) - ); -} - void BindrlMatrixMode(const Napi::CallbackInfo& info) { rlMatrixMode( intFromValue(info, 0) @@ -6856,6 +7235,20 @@ void BindrlActiveDrawBuffers(const Napi::CallbackInfo& info) { ); } +void BindrlBlitFramebuffer(const Napi::CallbackInfo& info) { + rlBlitFramebuffer( + intFromValue(info, 0), + intFromValue(info, 1), + intFromValue(info, 2), + intFromValue(info, 3), + intFromValue(info, 4), + intFromValue(info, 5), + intFromValue(info, 6), + intFromValue(info, 7), + intFromValue(info, 8) + ); +} + void BindrlEnableColorBlend(const Napi::CallbackInfo& info) { rlEnableColorBlend( @@ -6937,6 +7330,12 @@ void BindrlEnableWireMode(const Napi::CallbackInfo& info) { ); } +void BindrlEnablePointMode(const Napi::CallbackInfo& info) { + rlEnablePointMode( + + ); +} + void BindrlDisableWireMode(const Napi::CallbackInfo& info) { rlDisableWireMode( @@ -7819,8 +8218,8 @@ void BindSetShaderVec4(const Napi::CallbackInfo& info) { Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindInitWindow", Napi::Function::New(env, BindInitWindow)); - exports.Set("BindWindowShouldClose", Napi::Function::New(env, BindWindowShouldClose)); exports.Set("BindCloseWindow", Napi::Function::New(env, BindCloseWindow)); + exports.Set("BindWindowShouldClose", Napi::Function::New(env, BindWindowShouldClose)); exports.Set("BindIsWindowReady", Napi::Function::New(env, BindIsWindowReady)); exports.Set("BindIsWindowFullscreen", Napi::Function::New(env, BindIsWindowFullscreen)); exports.Set("BindIsWindowHidden", Napi::Function::New(env, BindIsWindowHidden)); @@ -7832,6 +8231,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindSetWindowState", Napi::Function::New(env, BindSetWindowState)); exports.Set("BindClearWindowState", Napi::Function::New(env, BindClearWindowState)); exports.Set("BindToggleFullscreen", Napi::Function::New(env, BindToggleFullscreen)); + exports.Set("BindToggleBorderlessWindowed", Napi::Function::New(env, BindToggleBorderlessWindowed)); exports.Set("BindMaximizeWindow", Napi::Function::New(env, BindMaximizeWindow)); exports.Set("BindMinimizeWindow", Napi::Function::New(env, BindMinimizeWindow)); exports.Set("BindRestoreWindow", Napi::Function::New(env, BindRestoreWindow)); @@ -7841,8 +8241,10 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindSetWindowPosition", Napi::Function::New(env, BindSetWindowPosition)); exports.Set("BindSetWindowMonitor", Napi::Function::New(env, BindSetWindowMonitor)); exports.Set("BindSetWindowMinSize", Napi::Function::New(env, BindSetWindowMinSize)); + exports.Set("BindSetWindowMaxSize", Napi::Function::New(env, BindSetWindowMaxSize)); exports.Set("BindSetWindowSize", Napi::Function::New(env, BindSetWindowSize)); exports.Set("BindSetWindowOpacity", Napi::Function::New(env, BindSetWindowOpacity)); + exports.Set("BindSetWindowFocused", Napi::Function::New(env, BindSetWindowFocused)); exports.Set("BindGetWindowHandle", Napi::Function::New(env, BindGetWindowHandle)); exports.Set("BindGetScreenWidth", Napi::Function::New(env, BindGetScreenWidth)); exports.Set("BindGetScreenHeight", Napi::Function::New(env, BindGetScreenHeight)); @@ -7863,9 +8265,6 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindGetClipboardText", Napi::Function::New(env, BindGetClipboardText)); exports.Set("BindEnableEventWaiting", Napi::Function::New(env, BindEnableEventWaiting)); exports.Set("BindDisableEventWaiting", Napi::Function::New(env, BindDisableEventWaiting)); - exports.Set("BindSwapScreenBuffer", Napi::Function::New(env, BindSwapScreenBuffer)); - exports.Set("BindPollInputEvents", Napi::Function::New(env, BindPollInputEvents)); - exports.Set("BindWaitTime", Napi::Function::New(env, BindWaitTime)); exports.Set("BindShowCursor", Napi::Function::New(env, BindShowCursor)); exports.Set("BindHideCursor", Napi::Function::New(env, BindHideCursor)); exports.Set("BindIsCursorHidden", Napi::Function::New(env, BindIsCursorHidden)); @@ -7904,18 +8303,23 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindGetWorldToScreenEx", Napi::Function::New(env, BindGetWorldToScreenEx)); exports.Set("BindGetWorldToScreen2D", Napi::Function::New(env, BindGetWorldToScreen2D)); exports.Set("BindSetTargetFPS", Napi::Function::New(env, BindSetTargetFPS)); - exports.Set("BindGetFPS", Napi::Function::New(env, BindGetFPS)); exports.Set("BindGetFrameTime", Napi::Function::New(env, BindGetFrameTime)); exports.Set("BindGetTime", Napi::Function::New(env, BindGetTime)); - exports.Set("BindGetRandomValue", Napi::Function::New(env, BindGetRandomValue)); + exports.Set("BindGetFPS", Napi::Function::New(env, BindGetFPS)); + exports.Set("BindSwapScreenBuffer", Napi::Function::New(env, BindSwapScreenBuffer)); + exports.Set("BindPollInputEvents", Napi::Function::New(env, BindPollInputEvents)); + exports.Set("BindWaitTime", Napi::Function::New(env, BindWaitTime)); exports.Set("BindSetRandomSeed", Napi::Function::New(env, BindSetRandomSeed)); + exports.Set("BindGetRandomValue", Napi::Function::New(env, BindGetRandomValue)); + exports.Set("BindLoadRandomSequence", Napi::Function::New(env, BindLoadRandomSequence)); + exports.Set("BindUnloadRandomSequence", Napi::Function::New(env, BindUnloadRandomSequence)); exports.Set("BindTakeScreenshot", Napi::Function::New(env, BindTakeScreenshot)); exports.Set("BindSetConfigFlags", Napi::Function::New(env, BindSetConfigFlags)); + exports.Set("BindOpenURL", Napi::Function::New(env, BindOpenURL)); exports.Set("BindSetTraceLogLevel", Napi::Function::New(env, BindSetTraceLogLevel)); exports.Set("BindMemAlloc", Napi::Function::New(env, BindMemAlloc)); exports.Set("BindMemRealloc", Napi::Function::New(env, BindMemRealloc)); exports.Set("BindMemFree", Napi::Function::New(env, BindMemFree)); - exports.Set("BindOpenURL", Napi::Function::New(env, BindOpenURL)); exports.Set("BindLoadFileData", Napi::Function::New(env, BindLoadFileData)); exports.Set("BindUnloadFileData", Napi::Function::New(env, BindUnloadFileData)); exports.Set("BindSaveFileData", Napi::Function::New(env, BindSaveFileData)); @@ -7947,13 +8351,22 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindDecompressData", Napi::Function::New(env, BindDecompressData)); exports.Set("BindEncodeDataBase64", Napi::Function::New(env, BindEncodeDataBase64)); exports.Set("BindDecodeDataBase64", Napi::Function::New(env, BindDecodeDataBase64)); + exports.Set("BindLoadAutomationEventList", Napi::Function::New(env, BindLoadAutomationEventList)); + exports.Set("BindUnloadAutomationEventList", Napi::Function::New(env, BindUnloadAutomationEventList)); + exports.Set("BindExportAutomationEventList", Napi::Function::New(env, BindExportAutomationEventList)); + exports.Set("BindSetAutomationEventList", Napi::Function::New(env, BindSetAutomationEventList)); + exports.Set("BindSetAutomationEventBaseFrame", Napi::Function::New(env, BindSetAutomationEventBaseFrame)); + exports.Set("BindStartAutomationEventRecording", Napi::Function::New(env, BindStartAutomationEventRecording)); + exports.Set("BindStopAutomationEventRecording", Napi::Function::New(env, BindStopAutomationEventRecording)); + exports.Set("BindPlayAutomationEvent", Napi::Function::New(env, BindPlayAutomationEvent)); exports.Set("BindIsKeyPressed", Napi::Function::New(env, BindIsKeyPressed)); + exports.Set("BindIsKeyPressedRepeat", Napi::Function::New(env, BindIsKeyPressedRepeat)); exports.Set("BindIsKeyDown", Napi::Function::New(env, BindIsKeyDown)); exports.Set("BindIsKeyReleased", Napi::Function::New(env, BindIsKeyReleased)); exports.Set("BindIsKeyUp", Napi::Function::New(env, BindIsKeyUp)); - exports.Set("BindSetExitKey", Napi::Function::New(env, BindSetExitKey)); exports.Set("BindGetKeyPressed", Napi::Function::New(env, BindGetKeyPressed)); exports.Set("BindGetCharPressed", Napi::Function::New(env, BindGetCharPressed)); + exports.Set("BindSetExitKey", Napi::Function::New(env, BindSetExitKey)); exports.Set("BindIsGamepadAvailable", Napi::Function::New(env, BindIsGamepadAvailable)); exports.Set("BindGetGamepadName", Napi::Function::New(env, BindGetGamepadName)); exports.Set("BindIsGamepadButtonPressed", Napi::Function::New(env, BindIsGamepadButtonPressed)); @@ -7999,16 +8412,15 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindDrawLine", Napi::Function::New(env, BindDrawLine)); exports.Set("BindDrawLineV", Napi::Function::New(env, BindDrawLineV)); exports.Set("BindDrawLineEx", Napi::Function::New(env, BindDrawLineEx)); - exports.Set("BindDrawLineBezier", Napi::Function::New(env, BindDrawLineBezier)); - exports.Set("BindDrawLineBezierQuad", Napi::Function::New(env, BindDrawLineBezierQuad)); - exports.Set("BindDrawLineBezierCubic", Napi::Function::New(env, BindDrawLineBezierCubic)); exports.Set("BindDrawLineStrip", Napi::Function::New(env, BindDrawLineStrip)); + exports.Set("BindDrawLineBezier", Napi::Function::New(env, BindDrawLineBezier)); exports.Set("BindDrawCircle", Napi::Function::New(env, BindDrawCircle)); exports.Set("BindDrawCircleSector", Napi::Function::New(env, BindDrawCircleSector)); exports.Set("BindDrawCircleSectorLines", Napi::Function::New(env, BindDrawCircleSectorLines)); exports.Set("BindDrawCircleGradient", Napi::Function::New(env, BindDrawCircleGradient)); exports.Set("BindDrawCircleV", Napi::Function::New(env, BindDrawCircleV)); exports.Set("BindDrawCircleLines", Napi::Function::New(env, BindDrawCircleLines)); + exports.Set("BindDrawCircleLinesV", Napi::Function::New(env, BindDrawCircleLinesV)); exports.Set("BindDrawEllipse", Napi::Function::New(env, BindDrawEllipse)); exports.Set("BindDrawEllipseLines", Napi::Function::New(env, BindDrawEllipseLines)); exports.Set("BindDrawRing", Napi::Function::New(env, BindDrawRing)); @@ -8031,6 +8443,21 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindDrawPoly", Napi::Function::New(env, BindDrawPoly)); exports.Set("BindDrawPolyLines", Napi::Function::New(env, BindDrawPolyLines)); exports.Set("BindDrawPolyLinesEx", Napi::Function::New(env, BindDrawPolyLinesEx)); + exports.Set("BindDrawSplineLinear", Napi::Function::New(env, BindDrawSplineLinear)); + exports.Set("BindDrawSplineBasis", Napi::Function::New(env, BindDrawSplineBasis)); + exports.Set("BindDrawSplineCatmullRom", Napi::Function::New(env, BindDrawSplineCatmullRom)); + exports.Set("BindDrawSplineBezierQuadratic", Napi::Function::New(env, BindDrawSplineBezierQuadratic)); + exports.Set("BindDrawSplineBezierCubic", Napi::Function::New(env, BindDrawSplineBezierCubic)); + exports.Set("BindDrawSplineSegmentLinear", Napi::Function::New(env, BindDrawSplineSegmentLinear)); + exports.Set("BindDrawSplineSegmentBasis", Napi::Function::New(env, BindDrawSplineSegmentBasis)); + exports.Set("BindDrawSplineSegmentCatmullRom", Napi::Function::New(env, BindDrawSplineSegmentCatmullRom)); + exports.Set("BindDrawSplineSegmentBezierQuadratic", Napi::Function::New(env, BindDrawSplineSegmentBezierQuadratic)); + exports.Set("BindDrawSplineSegmentBezierCubic", Napi::Function::New(env, BindDrawSplineSegmentBezierCubic)); + exports.Set("BindGetSplinePointLinear", Napi::Function::New(env, BindGetSplinePointLinear)); + exports.Set("BindGetSplinePointBasis", Napi::Function::New(env, BindGetSplinePointBasis)); + exports.Set("BindGetSplinePointCatmullRom", Napi::Function::New(env, BindGetSplinePointCatmullRom)); + exports.Set("BindGetSplinePointBezierQuad", Napi::Function::New(env, BindGetSplinePointBezierQuad)); + exports.Set("BindGetSplinePointBezierCubic", Napi::Function::New(env, BindGetSplinePointBezierCubic)); exports.Set("BindCheckCollisionRecs", Napi::Function::New(env, BindCheckCollisionRecs)); exports.Set("BindCheckCollisionCircles", Napi::Function::New(env, BindCheckCollisionCircles)); exports.Set("BindCheckCollisionCircleRec", Napi::Function::New(env, BindCheckCollisionCircleRec)); @@ -8043,6 +8470,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindGetCollisionRec", Napi::Function::New(env, BindGetCollisionRec)); exports.Set("BindLoadImage", Napi::Function::New(env, BindLoadImage)); exports.Set("BindLoadImageRaw", Napi::Function::New(env, BindLoadImageRaw)); + exports.Set("BindLoadImageSvg", Napi::Function::New(env, BindLoadImageSvg)); exports.Set("BindLoadImageAnim", Napi::Function::New(env, BindLoadImageAnim)); exports.Set("BindLoadImageFromMemory", Napi::Function::New(env, BindLoadImageFromMemory)); exports.Set("BindLoadImageFromTexture", Napi::Function::New(env, BindLoadImageFromTexture)); @@ -8050,11 +8478,12 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindIsImageReady", Napi::Function::New(env, BindIsImageReady)); exports.Set("BindUnloadImage", Napi::Function::New(env, BindUnloadImage)); exports.Set("BindExportImage", Napi::Function::New(env, BindExportImage)); + exports.Set("BindExportImageToMemory", Napi::Function::New(env, BindExportImageToMemory)); exports.Set("BindExportImageAsCode", Napi::Function::New(env, BindExportImageAsCode)); exports.Set("BindGenImageColor", Napi::Function::New(env, BindGenImageColor)); - exports.Set("BindGenImageGradientV", Napi::Function::New(env, BindGenImageGradientV)); - exports.Set("BindGenImageGradientH", Napi::Function::New(env, BindGenImageGradientH)); + exports.Set("BindGenImageGradientLinear", Napi::Function::New(env, BindGenImageGradientLinear)); exports.Set("BindGenImageGradientRadial", Napi::Function::New(env, BindGenImageGradientRadial)); + exports.Set("BindGenImageGradientSquare", Napi::Function::New(env, BindGenImageGradientSquare)); exports.Set("BindGenImageChecked", Napi::Function::New(env, BindGenImageChecked)); exports.Set("BindGenImageWhiteNoise", Napi::Function::New(env, BindGenImageWhiteNoise)); exports.Set("BindGenImagePerlinNoise", Napi::Function::New(env, BindGenImagePerlinNoise)); @@ -8079,6 +8508,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindImageDither", Napi::Function::New(env, BindImageDither)); exports.Set("BindImageFlipVertical", Napi::Function::New(env, BindImageFlipVertical)); exports.Set("BindImageFlipHorizontal", Napi::Function::New(env, BindImageFlipHorizontal)); + exports.Set("BindImageRotate", Napi::Function::New(env, BindImageRotate)); exports.Set("BindImageRotateCW", Napi::Function::New(env, BindImageRotateCW)); exports.Set("BindImageRotateCCW", Napi::Function::New(env, BindImageRotateCCW)); exports.Set("BindImageColorTint", Napi::Function::New(env, BindImageColorTint)); @@ -8160,6 +8590,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindDrawTextPro", Napi::Function::New(env, BindDrawTextPro)); exports.Set("BindDrawTextCodepoint", Napi::Function::New(env, BindDrawTextCodepoint)); exports.Set("BindDrawTextCodepoints", Napi::Function::New(env, BindDrawTextCodepoints)); + exports.Set("BindSetTextLineSpacing", Napi::Function::New(env, BindSetTextLineSpacing)); exports.Set("BindMeasureText", Napi::Function::New(env, BindMeasureText)); exports.Set("BindMeasureTextEx", Napi::Function::New(env, BindMeasureTextEx)); exports.Set("BindGetGlyphIndex", Napi::Function::New(env, BindGetGlyphIndex)); @@ -8257,15 +8688,18 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindCloseAudioDevice", Napi::Function::New(env, BindCloseAudioDevice)); exports.Set("BindIsAudioDeviceReady", Napi::Function::New(env, BindIsAudioDeviceReady)); exports.Set("BindSetMasterVolume", Napi::Function::New(env, BindSetMasterVolume)); + exports.Set("BindGetMasterVolume", Napi::Function::New(env, BindGetMasterVolume)); exports.Set("BindLoadWave", Napi::Function::New(env, BindLoadWave)); exports.Set("BindLoadWaveFromMemory", Napi::Function::New(env, BindLoadWaveFromMemory)); exports.Set("BindIsWaveReady", Napi::Function::New(env, BindIsWaveReady)); exports.Set("BindLoadSound", Napi::Function::New(env, BindLoadSound)); exports.Set("BindLoadSoundFromWave", Napi::Function::New(env, BindLoadSoundFromWave)); + exports.Set("BindLoadSoundAlias", Napi::Function::New(env, BindLoadSoundAlias)); exports.Set("BindIsSoundReady", Napi::Function::New(env, BindIsSoundReady)); exports.Set("BindUpdateSound", Napi::Function::New(env, BindUpdateSound)); exports.Set("BindUnloadWave", Napi::Function::New(env, BindUnloadWave)); exports.Set("BindUnloadSound", Napi::Function::New(env, BindUnloadSound)); + exports.Set("BindUnloadSoundAlias", Napi::Function::New(env, BindUnloadSoundAlias)); exports.Set("BindExportWave", Napi::Function::New(env, BindExportWave)); exports.Set("BindExportWaveAsCode", Napi::Function::New(env, BindExportWaveAsCode)); exports.Set("BindPlaySound", Napi::Function::New(env, BindPlaySound)); @@ -8391,6 +8825,8 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindVector3Negate", Napi::Function::New(env, BindVector3Negate)); exports.Set("BindVector3Divide", Napi::Function::New(env, BindVector3Divide)); exports.Set("BindVector3Normalize", Napi::Function::New(env, BindVector3Normalize)); + exports.Set("BindVector3Project", Napi::Function::New(env, BindVector3Project)); + exports.Set("BindVector3Reject", Napi::Function::New(env, BindVector3Reject)); exports.Set("BindVector3OrthoNormalize", Napi::Function::New(env, BindVector3OrthoNormalize)); exports.Set("BindVector3Transform", Napi::Function::New(env, BindVector3Transform)); exports.Set("BindVector3RotateByQuaternion", Napi::Function::New(env, BindVector3RotateByQuaternion)); @@ -8454,13 +8890,23 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindGuiLock", Napi::Function::New(env, BindGuiLock)); exports.Set("BindGuiUnlock", Napi::Function::New(env, BindGuiUnlock)); exports.Set("BindGuiIsLocked", Napi::Function::New(env, BindGuiIsLocked)); - exports.Set("BindGuiFade", Napi::Function::New(env, BindGuiFade)); + exports.Set("BindGuiSetAlpha", Napi::Function::New(env, BindGuiSetAlpha)); exports.Set("BindGuiSetState", Napi::Function::New(env, BindGuiSetState)); exports.Set("BindGuiGetState", Napi::Function::New(env, BindGuiGetState)); exports.Set("BindGuiSetFont", Napi::Function::New(env, BindGuiSetFont)); exports.Set("BindGuiGetFont", Napi::Function::New(env, BindGuiGetFont)); exports.Set("BindGuiSetStyle", Napi::Function::New(env, BindGuiSetStyle)); exports.Set("BindGuiGetStyle", Napi::Function::New(env, BindGuiGetStyle)); + exports.Set("BindGuiLoadStyle", Napi::Function::New(env, BindGuiLoadStyle)); + exports.Set("BindGuiLoadStyleDefault", Napi::Function::New(env, BindGuiLoadStyleDefault)); + exports.Set("BindGuiEnableTooltip", Napi::Function::New(env, BindGuiEnableTooltip)); + exports.Set("BindGuiDisableTooltip", Napi::Function::New(env, BindGuiDisableTooltip)); + exports.Set("BindGuiSetTooltip", Napi::Function::New(env, BindGuiSetTooltip)); + exports.Set("BindGuiIconText", Napi::Function::New(env, BindGuiIconText)); + exports.Set("BindGuiSetIconScale", Napi::Function::New(env, BindGuiSetIconScale)); + exports.Set("BindGuiGetIcons", Napi::Function::New(env, BindGuiGetIcons)); + exports.Set("BindGuiLoadIcons", Napi::Function::New(env, BindGuiLoadIcons)); + exports.Set("BindGuiDrawIcon", Napi::Function::New(env, BindGuiDrawIcon)); exports.Set("BindGuiWindowBox", Napi::Function::New(env, BindGuiWindowBox)); exports.Set("BindGuiGroupBox", Napi::Function::New(env, BindGuiGroupBox)); exports.Set("BindGuiLine", Napi::Function::New(env, BindGuiLine)); @@ -8472,13 +8918,13 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindGuiLabelButton", Napi::Function::New(env, BindGuiLabelButton)); exports.Set("BindGuiToggle", Napi::Function::New(env, BindGuiToggle)); exports.Set("BindGuiToggleGroup", Napi::Function::New(env, BindGuiToggleGroup)); + exports.Set("BindGuiToggleSlider", Napi::Function::New(env, BindGuiToggleSlider)); exports.Set("BindGuiCheckBox", Napi::Function::New(env, BindGuiCheckBox)); exports.Set("BindGuiComboBox", Napi::Function::New(env, BindGuiComboBox)); exports.Set("BindGuiDropdownBox", Napi::Function::New(env, BindGuiDropdownBox)); exports.Set("BindGuiSpinner", Napi::Function::New(env, BindGuiSpinner)); exports.Set("BindGuiValueBox", Napi::Function::New(env, BindGuiValueBox)); exports.Set("BindGuiTextBox", Napi::Function::New(env, BindGuiTextBox)); - exports.Set("BindGuiTextBoxMulti", Napi::Function::New(env, BindGuiTextBoxMulti)); exports.Set("BindGuiSlider", Napi::Function::New(env, BindGuiSlider)); exports.Set("BindGuiSliderBar", Napi::Function::New(env, BindGuiSliderBar)); exports.Set("BindGuiProgressBar", Napi::Function::New(env, BindGuiProgressBar)); @@ -8493,16 +8939,8 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindGuiColorPanel", Napi::Function::New(env, BindGuiColorPanel)); exports.Set("BindGuiColorBarAlpha", Napi::Function::New(env, BindGuiColorBarAlpha)); exports.Set("BindGuiColorBarHue", Napi::Function::New(env, BindGuiColorBarHue)); - exports.Set("BindGuiLoadStyle", Napi::Function::New(env, BindGuiLoadStyle)); - exports.Set("BindGuiLoadStyleDefault", Napi::Function::New(env, BindGuiLoadStyleDefault)); - exports.Set("BindGuiEnableTooltip", Napi::Function::New(env, BindGuiEnableTooltip)); - exports.Set("BindGuiDisableTooltip", Napi::Function::New(env, BindGuiDisableTooltip)); - exports.Set("BindGuiSetTooltip", Napi::Function::New(env, BindGuiSetTooltip)); - exports.Set("BindGuiIconText", Napi::Function::New(env, BindGuiIconText)); - exports.Set("BindGuiGetIcons", Napi::Function::New(env, BindGuiGetIcons)); - exports.Set("BindGuiLoadIcons", Napi::Function::New(env, BindGuiLoadIcons)); - exports.Set("BindGuiDrawIcon", Napi::Function::New(env, BindGuiDrawIcon)); - exports.Set("BindGuiSetIconScale", Napi::Function::New(env, BindGuiSetIconScale)); + exports.Set("BindGuiColorPickerHSV", Napi::Function::New(env, BindGuiColorPickerHSV)); + exports.Set("BindGuiColorPanelHSV", Napi::Function::New(env, BindGuiColorPanelHSV)); exports.Set("BindrlMatrixMode", Napi::Function::New(env, BindrlMatrixMode)); exports.Set("BindrlPushMatrix", Napi::Function::New(env, BindrlPushMatrix)); exports.Set("BindrlPopMatrix", Napi::Function::New(env, BindrlPopMatrix)); @@ -8544,6 +8982,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindrlEnableFramebuffer", Napi::Function::New(env, BindrlEnableFramebuffer)); exports.Set("BindrlDisableFramebuffer", Napi::Function::New(env, BindrlDisableFramebuffer)); exports.Set("BindrlActiveDrawBuffers", Napi::Function::New(env, BindrlActiveDrawBuffers)); + exports.Set("BindrlBlitFramebuffer", Napi::Function::New(env, BindrlBlitFramebuffer)); exports.Set("BindrlEnableColorBlend", Napi::Function::New(env, BindrlEnableColorBlend)); exports.Set("BindrlDisableColorBlend", Napi::Function::New(env, BindrlDisableColorBlend)); exports.Set("BindrlEnableDepthTest", Napi::Function::New(env, BindrlEnableDepthTest)); @@ -8557,6 +8996,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindrlDisableScissorTest", Napi::Function::New(env, BindrlDisableScissorTest)); exports.Set("BindrlScissor", Napi::Function::New(env, BindrlScissor)); exports.Set("BindrlEnableWireMode", Napi::Function::New(env, BindrlEnableWireMode)); + exports.Set("BindrlEnablePointMode", Napi::Function::New(env, BindrlEnablePointMode)); exports.Set("BindrlDisableWireMode", Napi::Function::New(env, BindrlDisableWireMode)); exports.Set("BindrlSetLineWidth", Napi::Function::New(env, BindrlSetLineWidth)); exports.Set("BindrlGetLineWidth", Napi::Function::New(env, BindrlGetLineWidth)); diff --git a/src/generated/node-raylib.d.ts b/src/generated/node-raylib.d.ts index f2ff791..d0a9278 100644 --- a/src/generated/node-raylib.d.ts +++ b/src/generated/node-raylib.d.ts @@ -291,6 +291,8 @@ declare module "raylib" { bones: number /** Poses array by frame. (Transform **) */ framePoses: number + /** Animation name. (char[32]) */ + name: string } /** Ray, ray for raycasting */ export interface Ray { @@ -414,6 +416,24 @@ declare module "raylib" { /** Filepaths entries. (char **) */ paths: number } + /** Automation event */ + export interface AutomationEvent { + /** Event frame. (unsigned int) */ + frame: number + /** Event type (AutomationEventType). (unsigned int) */ + type: number + /** Event parameters (if required). (int[4]) */ + params: number + } + /** Automation event list */ + export interface AutomationEventList { + /** Events max entries (MAX_AUTOMATION_EVENTS). (unsigned int) */ + capacity: number + /** Events entries count. (unsigned int) */ + count: number + /** Events entries. (AutomationEvent *) */ + events: number + } /** Dynamic vertex buffers (position + texcoords + colors + indices arrays) */ export interface rlVertexBuffer { /** Number of elements in the buffer (QUADS). (int) */ @@ -475,12 +495,12 @@ declare module "raylib" { /** Initialize window and OpenGL context */ export function InitWindow(width: number, height: number, title: string): void - /** Check if KEY_ESCAPE pressed or Close icon pressed */ - export function WindowShouldClose(): boolean - /** Close window and unload OpenGL context */ export function CloseWindow(): void + /** Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) */ + export function WindowShouldClose(): boolean + /** Check if window has been initialized successfully */ export function IsWindowReady(): boolean @@ -514,6 +534,9 @@ declare module "raylib" { /** Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP) */ export function ToggleFullscreen(): void + /** Toggle window state: borderless windowed (only PLATFORM_DESKTOP) */ + export function ToggleBorderlessWindowed(): void + /** Set window state: maximized, if resizable (only PLATFORM_DESKTOP) */ export function MaximizeWindow(): void @@ -529,24 +552,30 @@ declare module "raylib" { /** Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP) */ export function SetWindowIcons(images: number, count: number): void - /** Set title for window (only PLATFORM_DESKTOP) */ + /** Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB) */ export function SetWindowTitle(title: string): void /** Set window position on screen (only PLATFORM_DESKTOP) */ export function SetWindowPosition(x: number, y: number): void - /** Set monitor for the current window (fullscreen mode) */ + /** Set monitor for the current window */ export function SetWindowMonitor(monitor: number): void /** Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) */ export function SetWindowMinSize(width: number, height: number): void + /** Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) */ + export function SetWindowMaxSize(width: number, height: number): void + /** Set window dimensions */ export function SetWindowSize(width: number, height: number): void /** Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP) */ export function SetWindowOpacity(opacity: number): void + /** Set window focused (only PLATFORM_DESKTOP) */ + export function SetWindowFocused(): void + /** Get native window handle */ export function GetWindowHandle(): number @@ -592,7 +621,7 @@ declare module "raylib" { /** Get window scale DPI factor */ export function GetWindowScaleDPI(): Vector2 - /** Get the human-readable, UTF-8 encoded name of the primary monitor */ + /** Get the human-readable, UTF-8 encoded name of the specified monitor */ export function GetMonitorName(monitor: number): string /** Set clipboard text content */ @@ -607,15 +636,6 @@ declare module "raylib" { /** Disable waiting for events on EndDrawing(), automatic events polling */ export function DisableEventWaiting(): void - /** Swap back buffer with front buffer (screen drawing) */ - export function SwapScreenBuffer(): void - - /** Register all input events */ - export function PollInputEvents(): void - - /** Wait for some time (halt program execution) */ - export function WaitTime(seconds: number): void - /** Shows cursor */ export function ShowCursor(): void @@ -730,27 +750,45 @@ declare module "raylib" { /** Set target FPS (maximum) */ export function SetTargetFPS(fps: number): void - /** Get current FPS */ - export function GetFPS(): number - /** Get time in seconds for last frame drawn (delta time) */ export function GetFrameTime(): number /** Get elapsed time in seconds since InitWindow() */ export function GetTime(): number - /** Get a random value between min and max (both included) */ - export function GetRandomValue(min: number, max: number): number + /** Get current FPS */ + export function GetFPS(): number + + /** Swap back buffer with front buffer (screen drawing) */ + export function SwapScreenBuffer(): void + + /** Register all input events */ + export function PollInputEvents(): void + + /** Wait for some time (halt program execution) */ + export function WaitTime(seconds: number): void /** Set the seed for the random number generator */ export function SetRandomSeed(seed: number): void + /** Get a random value between min and max (both included) */ + export function GetRandomValue(min: number, max: number): number + + /** Load random values sequence, no values repeated */ + export function LoadRandomSequence(count: number, min: number, max: number): number + + /** Unload random values sequence */ + export function UnloadRandomSequence(sequence: number): void + /** Takes a screenshot of current screen (filename extension defines format) */ export function TakeScreenshot(fileName: string): void /** Setup init configuration flags (view FLAGS) */ export function SetConfigFlags(flags: number): void + /** Open URL with default system browser (if available) */ + export function OpenURL(url: string): void + /** Set the current threshold (minimum) log level */ export function SetTraceLogLevel(logLevel: number): void @@ -763,20 +801,17 @@ declare module "raylib" { /** Internal memory free */ export function MemFree(ptr: number): void - /** Open URL with default system browser (if available) */ - export function OpenURL(url: string): void - /** Load file data as byte array (read) */ - export function LoadFileData(fileName: string, bytesRead: number): Buffer + export function LoadFileData(fileName: string, dataSize: number): Buffer /** Unload file data allocated by LoadFileData() */ export function UnloadFileData(data: Buffer): void /** Save data to file from byte array (write), returns true on success */ - export function SaveFileData(fileName: string, data: number, bytesToWrite: number): boolean + export function SaveFileData(fileName: string, data: number, dataSize: number): boolean /** Export data to code (.h), returns true on success */ - export function ExportDataAsCode(data: Buffer, size: number, fileName: string): boolean + export function ExportDataAsCode(data: Buffer, dataSize: number, fileName: string): boolean /** Load text data from file (read), returns a '\0' terminated string */ export function LoadFileText(fileName: string): string @@ -817,7 +852,7 @@ declare module "raylib" { /** Get current working directory (uses static string) */ export function GetWorkingDirectory(): string - /** Get the directory if the running application (uses static string) */ + /** Get the directory of the running application (uses static string) */ export function GetApplicationDirectory(): string /** Change working directory, return true on success */ @@ -859,9 +894,36 @@ declare module "raylib" { /** Decode Base64 string data, memory must be MemFree() */ export function DecodeDataBase64(data: Buffer, outputSize: number): Buffer + /** Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS */ + export function LoadAutomationEventList(fileName: string): AutomationEventList + + /** Unload automation events list from file */ + export function UnloadAutomationEventList(list: number): void + + /** Export automation events list as text file */ + export function ExportAutomationEventList(list: AutomationEventList, fileName: string): boolean + + /** Set automation event list to record to */ + export function SetAutomationEventList(list: number): void + + /** Set automation event internal base frame to start recording */ + export function SetAutomationEventBaseFrame(frame: number): void + + /** Start recording automation events (AutomationEventList must be set) */ + export function StartAutomationEventRecording(): void + + /** Stop recording automation events */ + export function StopAutomationEventRecording(): void + + /** Play a recorded automation event */ + export function PlayAutomationEvent(event: AutomationEvent): void + /** Check if a key has been pressed once */ export function IsKeyPressed(key: number): boolean + /** Check if a key has been pressed again (Only PLATFORM_DESKTOP) */ + export function IsKeyPressedRepeat(key: number): boolean + /** Check if a key is being pressed */ export function IsKeyDown(key: number): boolean @@ -871,15 +933,15 @@ declare module "raylib" { /** Check if a key is NOT being pressed */ export function IsKeyUp(key: number): boolean - /** Set a custom key to exit program (default is ESC) */ - export function SetExitKey(key: number): void - /** Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty */ export function GetKeyPressed(): number /** Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty */ export function GetCharPressed(): number + /** Set a custom key to exit program (default is ESC) */ + export function SetExitKey(key: number): void + /** Check if a gamepad is available */ export function IsGamepadAvailable(gamepad: number): boolean @@ -1009,24 +1071,18 @@ declare module "raylib" { /** Draw a line */ export function DrawLine(startPosX: number, startPosY: number, endPosX: number, endPosY: number, color: Color): void - /** Draw a line (Vector version) */ + /** Draw a line (using gl lines) */ export function DrawLineV(startPos: Vector2, endPos: Vector2, color: Color): void - /** Draw a line defining thickness */ + /** Draw a line (using triangles/quads) */ export function DrawLineEx(startPos: Vector2, endPos: Vector2, thick: number, color: Color): void - /** Draw a line using cubic-bezier curves in-out */ - export function DrawLineBezier(startPos: Vector2, endPos: Vector2, thick: number, color: Color): void - - /** Draw line using quadratic bezier curves with a control point */ - export function DrawLineBezierQuad(startPos: Vector2, endPos: Vector2, controlPos: Vector2, thick: number, color: Color): void - - /** Draw line using cubic bezier curves with 2 control points */ - export function DrawLineBezierCubic(startPos: Vector2, endPos: Vector2, startControlPos: Vector2, endControlPos: Vector2, thick: number, color: Color): void - - /** Draw lines sequence */ + /** Draw lines sequence (using gl lines) */ export function DrawLineStrip(points: number, pointCount: number, color: Color): void + /** Draw line segment cubic-bezier in-out interpolation */ + export function DrawLineBezier(startPos: Vector2, endPos: Vector2, thick: number, color: Color): void + /** Draw a color-filled circle */ export function DrawCircle(centerX: number, centerY: number, radius: number, color: Color): void @@ -1045,6 +1101,9 @@ declare module "raylib" { /** Draw circle outline */ export function DrawCircleLines(centerX: number, centerY: number, radius: number, color: Color): void + /** Draw circle outline (Vector version) */ + export function DrawCircleLinesV(center: Vector2, radius: number, color: Color): void + /** Draw ellipse */ export function DrawEllipse(centerX: number, centerY: number, radiusH: number, radiusV: number, color: Color): void @@ -1111,6 +1170,51 @@ declare module "raylib" { /** Draw a polygon outline of n sides with extended parameters */ export function DrawPolyLinesEx(center: Vector2, sides: number, radius: number, rotation: number, lineThick: number, color: Color): void + /** Draw spline: Linear, minimum 2 points */ + export function DrawSplineLinear(points: number, pointCount: number, thick: number, color: Color): void + + /** Draw spline: B-Spline, minimum 4 points */ + export function DrawSplineBasis(points: number, pointCount: number, thick: number, color: Color): void + + /** Draw spline: Catmull-Rom, minimum 4 points */ + export function DrawSplineCatmullRom(points: number, pointCount: number, thick: number, color: Color): void + + /** Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] */ + export function DrawSplineBezierQuadratic(points: number, pointCount: number, thick: number, color: Color): void + + /** Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] */ + export function DrawSplineBezierCubic(points: number, pointCount: number, thick: number, color: Color): void + + /** Draw spline segment: Linear, 2 points */ + export function DrawSplineSegmentLinear(p1: Vector2, p2: Vector2, thick: number, color: Color): void + + /** Draw spline segment: B-Spline, 4 points */ + export function DrawSplineSegmentBasis(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, thick: number, color: Color): void + + /** Draw spline segment: Catmull-Rom, 4 points */ + export function DrawSplineSegmentCatmullRom(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, thick: number, color: Color): void + + /** Draw spline segment: Quadratic Bezier, 2 points, 1 control point */ + export function DrawSplineSegmentBezierQuadratic(p1: Vector2, c2: Vector2, p3: Vector2, thick: number, color: Color): void + + /** Draw spline segment: Cubic Bezier, 2 points, 2 control points */ + export function DrawSplineSegmentBezierCubic(p1: Vector2, c2: Vector2, c3: Vector2, p4: Vector2, thick: number, color: Color): void + + /** Get (evaluate) spline point: Linear */ + export function GetSplinePointLinear(startPos: Vector2, endPos: Vector2, t: number): Vector2 + + /** Get (evaluate) spline point: B-Spline */ + export function GetSplinePointBasis(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, t: number): Vector2 + + /** Get (evaluate) spline point: Catmull-Rom */ + export function GetSplinePointCatmullRom(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, t: number): Vector2 + + /** Get (evaluate) spline point: Quadratic Bezier */ + export function GetSplinePointBezierQuad(p1: Vector2, c2: Vector2, p3: Vector2, t: number): Vector2 + + /** Get (evaluate) spline point: Cubic Bezier */ + export function GetSplinePointBezierCubic(p1: Vector2, c2: Vector2, c3: Vector2, p4: Vector2, t: number): Vector2 + /** Check collision between two rectangles */ export function CheckCollisionRecs(rec1: Rectangle, rec2: Rectangle): boolean @@ -1147,6 +1251,9 @@ declare module "raylib" { /** Load image from RAW file data */ export function LoadImageRaw(fileName: string, width: number, height: number, format: number, headerSize: number): Image + /** Load image from SVG file data or string with specified size */ + export function LoadImageSvg(fileNameOrString: string, width: number, height: number): Image + /** Load image sequence from file (frames appended to image.data) */ export function LoadImageAnim(fileName: string, frames: number): Image @@ -1168,21 +1275,24 @@ declare module "raylib" { /** Export image data to file, returns true on success */ export function ExportImage(image: Image, fileName: string): boolean + /** Export image to memory buffer */ + export function ExportImageToMemory(image: Image, fileType: string, fileSize: number): Buffer + /** Export image as code file defining an array of bytes, returns true on success */ export function ExportImageAsCode(image: Image, fileName: string): boolean /** Generate image: plain color */ export function GenImageColor(width: number, height: number, color: Color): Image - /** Generate image: vertical gradient */ - export function GenImageGradientV(width: number, height: number, top: Color, bottom: Color): Image - - /** Generate image: horizontal gradient */ - export function GenImageGradientH(width: number, height: number, left: Color, right: Color): Image + /** Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient */ + export function GenImageGradientLinear(width: number, height: number, direction: number, start: Color, end: Color): Image /** Generate image: radial gradient */ export function GenImageGradientRadial(width: number, height: number, density: number, inner: Color, outer: Color): Image + /** Generate image: square gradient */ + export function GenImageGradientSquare(width: number, height: number, density: number, inner: Color, outer: Color): Image + /** Generate image: checked */ export function GenImageChecked(width: number, height: number, checksX: number, checksY: number, col1: Color, col2: Color): Image @@ -1255,6 +1365,9 @@ declare module "raylib" { /** Flip image horizontally */ export function ImageFlipHorizontal(image: Image): void + /** Rotate image by input angle in degrees (-359 to 359) */ + export function ImageRotate(image: number, degrees: number): void + /** Rotate image clockwise 90deg */ export function ImageRotateCW(image: Image): void @@ -1453,26 +1566,26 @@ declare module "raylib" { /** Load font from file into GPU memory (VRAM) */ export function LoadFont(fileName: string): Font - /** Load font from file with extended parameters, use NULL for fontChars and 0 for glyphCount to load the default character set */ - export function LoadFontEx(fileName: string, fontSize: number, fontChars: number, glyphCount: number): Font + /** Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont */ + export function LoadFontEx(fileName: string, fontSize: number, codepoints: number, codepointCount: number): Font /** Load font from Image (XNA style) */ export function LoadFontFromImage(image: Image, key: Color, firstChar: number): Font /** Load font from memory buffer, fileType refers to extension: i.e. '.ttf' */ - export function LoadFontFromMemory(fileType: string, fileData: Buffer, dataSize: number, fontSize: number, fontChars: number, glyphCount: number): Font + export function LoadFontFromMemory(fileType: string, fileData: Buffer, dataSize: number, fontSize: number, codepoints: number, codepointCount: number): Font /** Check if a font is ready */ export function IsFontReady(font: Font): boolean /** Load font data for further use */ - export function LoadFontData(fileData: Buffer, dataSize: number, fontSize: number, fontChars: number, glyphCount: number, type: number): number + export function LoadFontData(fileData: Buffer, dataSize: number, fontSize: number, codepoints: number, codepointCount: number, type: number): number /** Generate image font atlas using chars info */ - export function GenImageFontAtlas(chars: number, recs: number, glyphCount: number, fontSize: number, padding: number, packMethod: number): Image + export function GenImageFontAtlas(glyphs: number, glyphRecs: number, glyphCount: number, fontSize: number, padding: number, packMethod: number): Image /** Unload font chars info data (RAM) */ - export function UnloadFontData(chars: number, glyphCount: number): void + export function UnloadFontData(glyphs: number, glyphCount: number): void /** Unload font from GPU memory (VRAM) */ export function UnloadFont(font: Font): void @@ -1496,7 +1609,10 @@ declare module "raylib" { export function DrawTextCodepoint(font: Font, codepoint: number, position: Vector2, fontSize: number, tint: Color): void /** Draw multiple character (codepoint) */ - export function DrawTextCodepoints(font: Font, codepoints: number, count: number, position: Vector2, fontSize: number, spacing: number, tint: Color): void + export function DrawTextCodepoints(font: Font, codepoints: number, codepointCount: number, position: Vector2, fontSize: number, spacing: number, tint: Color): void + + /** Set vertical line spacing when drawing with line-breaks */ + export function SetTextLineSpacing(spacing: number): void /** Measure string width for default font */ export function MeasureText(text: string, fontSize: number): number @@ -1748,7 +1864,7 @@ declare module "raylib" { export function UnloadModelAnimation(anim: ModelAnimation): void /** Unload animation array data */ - export function UnloadModelAnimations(animations: number, count: number): void + export function UnloadModelAnimations(animations: number, animCount: number): void /** Check model animation skeleton match */ export function IsModelAnimationValid(model: Model, anim: ModelAnimation): boolean @@ -1789,6 +1905,9 @@ declare module "raylib" { /** Set master volume (listener) */ export function SetMasterVolume(volume: number): void + /** Get master volume (listener) */ + export function GetMasterVolume(): number + /** Load wave data from file */ export function LoadWave(fileName: string): Wave @@ -1804,6 +1923,9 @@ declare module "raylib" { /** Load sound from wave data */ export function LoadSoundFromWave(wave: Wave): Sound + /** Create a new sound that shares the same sample data as the source sound, does not own the sound data */ + export function LoadSoundAlias(source: Sound): Sound + /** Checks if a sound is ready */ export function IsSoundReady(sound: Sound): boolean @@ -1816,6 +1938,9 @@ declare module "raylib" { /** Unload sound */ export function UnloadSound(sound: Sound): void + /** Unload a sound alias (does not deallocate sample data) */ + export function UnloadSoundAlias(alias: Sound): void + /** Export wave data to file, returns true on success */ export function ExportWave(wave: Wave, fileName: string): boolean @@ -2191,6 +2316,12 @@ declare module "raylib" { /** */ export function Vector3Normalize(v: Vector3): Vector3 + /** */ + export function Vector3Project(v1: Vector3, v2: Vector3): Vector3 + + /** */ + export function Vector3Reject(v1: Vector3, v2: Vector3): Vector3 + /** */ export function Vector3OrthoNormalize(v1: number, v2: number): void @@ -2288,10 +2419,10 @@ declare module "raylib" { export function MatrixFrustum(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix /** */ - export function MatrixPerspective(fovy: number, aspect: number, near: number, far: number): Matrix + export function MatrixPerspective(fovY: number, aspect: number, nearPlane: number, farPlane: number): Matrix /** */ - export function MatrixOrtho(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix + export function MatrixOrtho(left: number, right: number, bottom: number, top: number, nearPlane: number, farPlane: number): Matrix /** */ export function MatrixLookAt(eye: Vector3, target: Vector3, up: Vector3): Matrix @@ -2381,7 +2512,7 @@ declare module "raylib" { export function GuiIsLocked(): boolean /** Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f */ - export function GuiFade(alpha: number): void + export function GuiSetAlpha(alpha: number): void /** Set gui state (global state) */ export function GuiSetState(state: number): void @@ -2401,59 +2532,89 @@ declare module "raylib" { /** Get one style property */ export function GuiGetStyle(control: number, property: number): number + /** Load style file over global style variable (.rgs) */ + export function GuiLoadStyle(fileName: string): void + + /** Load style default over global style */ + export function GuiLoadStyleDefault(): void + + /** Enable gui tooltips (global state) */ + export function GuiEnableTooltip(): void + + /** Disable gui tooltips (global state) */ + export function GuiDisableTooltip(): void + + /** Set tooltip string */ + export function GuiSetTooltip(tooltip: string): void + + /** Get text with icon id prepended (if supported) */ + export function GuiIconText(iconId: number, text: string): string + + /** Set default icon drawing size */ + export function GuiSetIconScale(scale: number): void + + /** Get raygui icons data pointer */ + export function GuiGetIcons(): number + + /** Load raygui icons file (.rgi) into internal icons data */ + export function GuiLoadIcons(fileName: string, loadIconsName: boolean): number + + /** Draw icon using pixel size at specified position */ + export function GuiDrawIcon(iconId: number, posX: number, posY: number, pixelSize: number, color: Color): void + /** Window Box control, shows a window that can be closed */ - export function GuiWindowBox(bounds: Rectangle, title: string): boolean + export function GuiWindowBox(bounds: Rectangle, title: string): number /** Group Box control with text name */ - export function GuiGroupBox(bounds: Rectangle, text: string): void + export function GuiGroupBox(bounds: Rectangle, text: string): number /** Line separator control, could contain text */ - export function GuiLine(bounds: Rectangle, text: string): void + export function GuiLine(bounds: Rectangle, text: string): number /** Panel control, useful to group controls */ - export function GuiPanel(bounds: Rectangle, text: string): void + export function GuiPanel(bounds: Rectangle, text: string): number /** Tab Bar control, returns TAB to be closed or -1 */ export function GuiTabBar(bounds: Rectangle, text: number, count: number, active: number): number /** Scroll Panel control */ - export function GuiScrollPanel(bounds: Rectangle, text: string, content: Rectangle, scroll: number): Rectangle + export function GuiScrollPanel(bounds: Rectangle, text: string, content: Rectangle, scroll: number, view: number): number /** Label control, shows text */ - export function GuiLabel(bounds: Rectangle, text: string): void + export function GuiLabel(bounds: Rectangle, text: string): number /** Button control, returns true when clicked */ - export function GuiButton(bounds: Rectangle, text: string): boolean + export function GuiButton(bounds: Rectangle, text: string): number /** Label button control, show true when clicked */ - export function GuiLabelButton(bounds: Rectangle, text: string): boolean + export function GuiLabelButton(bounds: Rectangle, text: string): number /** Toggle Button control, returns true when active */ - export function GuiToggle(bounds: Rectangle, text: string, active: boolean): boolean + export function GuiToggle(bounds: Rectangle, text: string, active: number): number /** Toggle Group control, returns active toggle index */ export function GuiToggleGroup(bounds: Rectangle, text: string, active: number): number + /** Toggle Slider control, returns true when clicked */ + export function GuiToggleSlider(bounds: Rectangle, text: string, active: number): number + /** Check Box control, returns true when active */ - export function GuiCheckBox(bounds: Rectangle, text: string, checked: boolean): boolean + export function GuiCheckBox(bounds: Rectangle, text: string, checked: number): number /** Combo Box control, returns selected item index */ export function GuiComboBox(bounds: Rectangle, text: string, active: number): number /** Dropdown Box control, returns selected item */ - export function GuiDropdownBox(bounds: Rectangle, text: string, active: number, editMode: boolean): boolean + export function GuiDropdownBox(bounds: Rectangle, text: string, active: number, editMode: boolean): number /** Spinner control, returns selected value */ - export function GuiSpinner(bounds: Rectangle, text: string, value: number, minValue: number, maxValue: number, editMode: boolean): boolean + export function GuiSpinner(bounds: Rectangle, text: string, value: number, minValue: number, maxValue: number, editMode: boolean): number /** Value Box control, updates input text with numbers */ - export function GuiValueBox(bounds: Rectangle, text: string, value: number, minValue: number, maxValue: number, editMode: boolean): boolean + export function GuiValueBox(bounds: Rectangle, text: string, value: number, minValue: number, maxValue: number, editMode: boolean): number /** Text Box control, updates input text */ - export function GuiTextBox(bounds: Rectangle, text: string, textSize: number, editMode: boolean): boolean - - /** Text Box control with multiple lines */ - export function GuiTextBoxMulti(bounds: Rectangle, text: string, textSize: number, editMode: boolean): boolean + export function GuiTextBox(bounds: Rectangle, text: string, textSize: number, editMode: boolean): number /** Slider control, returns selected value */ export function GuiSlider(bounds: Rectangle, textLeft: string, textRight: string, value: number, minValue: number, maxValue: number): number @@ -2465,19 +2626,19 @@ declare module "raylib" { export function GuiProgressBar(bounds: Rectangle, textLeft: string, textRight: string, value: number, minValue: number, maxValue: number): number /** Status Bar control, shows info text */ - export function GuiStatusBar(bounds: Rectangle, text: string): void + export function GuiStatusBar(bounds: Rectangle, text: string): number /** Dummy control for placeholders */ - export function GuiDummyRec(bounds: Rectangle, text: string): void + export function GuiDummyRec(bounds: Rectangle, text: string): number /** Grid control, returns mouse cell position */ - export function GuiGrid(bounds: Rectangle, text: string, spacing: number, subdivs: number): Vector2 + export function GuiGrid(bounds: Rectangle, text: string, spacing: number, subdivs: number, mouseCell: number): number /** List View control, returns selected list item index */ export function GuiListView(bounds: Rectangle, text: string, scrollIndex: number, active: number): number /** List View with extended parameters */ - export function GuiListViewEx(bounds: Rectangle, text: number, count: number, focus: number, scrollIndex: number, active: number): number + export function GuiListViewEx(bounds: Rectangle, text: number, count: number, scrollIndex: number, active: number, focus: number): number /** Message Box control, displays a message */ export function GuiMessageBox(bounds: Rectangle, title: string, message: string, buttons: string): number @@ -2486,10 +2647,10 @@ declare module "raylib" { export function GuiTextInputBox(bounds: Rectangle, title: string, message: string, buttons: string, text: string, textMaxSize: number, secretViewActive: number): number /** Color Picker control (multiple color controls) */ - export function GuiColorPicker(bounds: Rectangle, text: string, color: Color): Color + export function GuiColorPicker(bounds: Rectangle, text: string, color: number): number /** Color Panel control */ - export function GuiColorPanel(bounds: Rectangle, text: string, color: Color): Color + export function GuiColorPanel(bounds: Rectangle, text: string, color: number): number /** Color Bar Alpha control */ export function GuiColorBarAlpha(bounds: Rectangle, text: string, alpha: number): number @@ -2497,35 +2658,11 @@ declare module "raylib" { /** Color Bar Hue control */ export function GuiColorBarHue(bounds: Rectangle, text: string, value: number): number - /** Load style file over global style variable (.rgs) */ - export function GuiLoadStyle(fileName: string): void - - /** Load style default over global style */ - export function GuiLoadStyleDefault(): void - - /** Enable gui tooltips (global state) */ - export function GuiEnableTooltip(): void - - /** Disable gui tooltips (global state) */ - export function GuiDisableTooltip(): void - - /** Set tooltip string */ - export function GuiSetTooltip(tooltip: string): void - - /** Get text with icon id prepended (if supported) */ - export function GuiIconText(iconId: number, text: string): string - - /** Get raygui icons data pointer */ - export function GuiGetIcons(): number + /** Color Picker control that avoids conversion to RGB on each call (multiple color controls) */ + export function GuiColorPickerHSV(bounds: Rectangle, text: string, colorHsv: number): number - /** Load raygui icons file (.rgi) into internal icons data */ - export function GuiLoadIcons(fileName: string, loadIconsName: boolean): number - - /** */ - export function GuiDrawIcon(iconId: number, posX: number, posY: number, pixelSize: number, color: Color): void - - /** Set icon drawing size */ - export function GuiSetIconScale(scale: number): void + /** Color Panel control that returns HSV color value, used by GuiColorPickerHSV() */ + export function GuiColorPanelHSV(bounds: Rectangle, text: string, colorHsv: number): number /** Choose the current matrix to be transformed */ export function rlMatrixMode(mode: number): void @@ -2650,6 +2787,9 @@ declare module "raylib" { /** Activate multiple draw color buffers */ export function rlActiveDrawBuffers(count: number): void + /** Blit active framebuffer to main framebuffer */ + export function rlBlitFramebuffer(srcX: number, srcY: number, srcWidth: number, srcHeight: number, dstX: number, dstY: number, dstWidth: number, dstHeight: number, bufferMask: number): void + /** Enable color blending */ export function rlEnableColorBlend(): void @@ -2689,7 +2829,10 @@ declare module "raylib" { /** Enable wire mode */ export function rlEnableWireMode(): void - /** Disable wire mode */ + /** Enable point mode */ + export function rlEnablePointMode(): void + + /** Disable wire mode ( and point ) maybe rename */ export function rlDisableWireMode(): void /** Set the line drawing width */ @@ -3000,6 +3143,8 @@ declare module "raylib" { export const FLAG_WINDOW_HIGHDPI = 8192 /** Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED */ export const FLAG_WINDOW_MOUSE_PASSTHROUGH = 16384 + /** Set to run program in borderless windowed mode */ + export const FLAG_BORDERLESS_WINDOWED_MODE = 32768 /** Set to try enabling MSAA 4X */ export const FLAG_MSAA_4X_HINT = 32 /** Set to try enabling interlaced video format (for V3D) */ @@ -3444,28 +3589,34 @@ declare module "raylib" { export const PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9 /** 32*4 bpp (4 channels - float) */ export const PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10 + /** 16 bpp (1 channel - half float) */ + export const PIXELFORMAT_UNCOMPRESSED_R16 = 11 + /** 16*3 bpp (3 channels - half float) */ + export const PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12 + /** 16*4 bpp (4 channels - half float) */ + export const PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13 /** 4 bpp (no alpha) */ - export const PIXELFORMAT_COMPRESSED_DXT1_RGB = 11 + export const PIXELFORMAT_COMPRESSED_DXT1_RGB = 14 /** 4 bpp (1 bit alpha) */ - export const PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12 + export const PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15 /** 8 bpp */ - export const PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13 + export const PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16 /** 8 bpp */ - export const PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14 + export const PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17 /** 4 bpp */ - export const PIXELFORMAT_COMPRESSED_ETC1_RGB = 15 + export const PIXELFORMAT_COMPRESSED_ETC1_RGB = 18 /** 4 bpp */ - export const PIXELFORMAT_COMPRESSED_ETC2_RGB = 16 + export const PIXELFORMAT_COMPRESSED_ETC2_RGB = 19 /** 8 bpp */ - export const PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17 + export const PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20 /** 4 bpp */ - export const PIXELFORMAT_COMPRESSED_PVRT_RGB = 18 + export const PIXELFORMAT_COMPRESSED_PVRT_RGB = 21 /** 4 bpp */ - export const PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19 + export const PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22 /** 8 bpp */ - export const PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20 + export const PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23 /** 2 bpp */ - export const PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21 + export const PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24 /** No filter, just pixel approximation */ export const TEXTURE_FILTER_POINT = 0 /** Linear filtering */ @@ -3577,6 +3728,18 @@ declare module "raylib" { /** */ export const TEXT_ALIGN_RIGHT = 2 /** */ + export const TEXT_ALIGN_TOP = 0 + /** */ + export const TEXT_ALIGN_MIDDLE = 1 + /** */ + export const TEXT_ALIGN_BOTTOM = 2 + /** */ + export const TEXT_WRAP_NONE = 0 + /** */ + export const TEXT_WRAP_CHAR = 1 + /** */ + export const TEXT_WRAP_WORD = 2 + /** */ export const DEFAULT = 0 /** Used also for: LABELBUTTON */ export const LABEL = 1 @@ -3584,7 +3747,7 @@ declare module "raylib" { export const BUTTON = 2 /** Used also for: TOGGLEGROUP */ export const TOGGLE = 3 - /** Used also for: SLIDERBAR */ + /** Used also for: SLIDERBAR, TOGGLESLIDER */ export const SLIDER = 4 /** */ export const PROGRESSBAR = 5 @@ -3608,38 +3771,36 @@ declare module "raylib" { export const SCROLLBAR = 14 /** */ export const STATUSBAR = 15 - /** */ + /** Control border color in STATE_NORMAL */ export const BORDER_COLOR_NORMAL = 0 - /** */ + /** Control base color in STATE_NORMAL */ export const BASE_COLOR_NORMAL = 1 - /** */ + /** Control text color in STATE_NORMAL */ export const TEXT_COLOR_NORMAL = 2 - /** */ + /** Control border color in STATE_FOCUSED */ export const BORDER_COLOR_FOCUSED = 3 - /** */ + /** Control base color in STATE_FOCUSED */ export const BASE_COLOR_FOCUSED = 4 - /** */ + /** Control text color in STATE_FOCUSED */ export const TEXT_COLOR_FOCUSED = 5 - /** */ + /** Control border color in STATE_PRESSED */ export const BORDER_COLOR_PRESSED = 6 - /** */ + /** Control base color in STATE_PRESSED */ export const BASE_COLOR_PRESSED = 7 - /** */ + /** Control text color in STATE_PRESSED */ export const TEXT_COLOR_PRESSED = 8 - /** */ + /** Control border color in STATE_DISABLED */ export const BORDER_COLOR_DISABLED = 9 - /** */ + /** Control base color in STATE_DISABLED */ export const BASE_COLOR_DISABLED = 10 - /** */ + /** Control text color in STATE_DISABLED */ export const TEXT_COLOR_DISABLED = 11 - /** */ + /** Control border size, 0 for no border */ export const BORDER_WIDTH = 12 - /** */ + /** Control text padding, not considering border */ export const TEXT_PADDING = 13 - /** */ + /** Control text horizontal alignment inside control text bound (after border and padding) */ export const TEXT_ALIGNMENT = 14 - /** */ - export const RESERVED = 15 /** Text size (glyphs max height) */ export const TEXT_SIZE = 16 /** Text spacing between glyphs */ @@ -3648,6 +3809,12 @@ declare module "raylib" { export const LINE_COLOR = 18 /** Background color */ export const BACKGROUND_COLOR = 19 + /** Text spacing between lines */ + export const TEXT_LINE_SPACING = 20 + /** Text vertical alignment inside text bounds (after border and padding) */ + export const TEXT_ALIGNMENT_VERTICAL = 21 + /** Text wrap-mode inside text bounds */ + export const TEXT_WRAP_MODE = 22 /** ToggleGroup separation between toggles */ export const GROUP_PADDING = 16 /** Slider size of internal bar */ @@ -3656,17 +3823,17 @@ declare module "raylib" { export const SLIDER_PADDING = 17 /** ProgressBar internal padding */ export const PROGRESS_PADDING = 16 - /** */ + /** ScrollBar arrows size */ export const ARROWS_SIZE = 16 - /** */ + /** ScrollBar arrows visible */ export const ARROWS_VISIBLE = 17 - /** (SLIDERBAR, SLIDER_PADDING) */ + /** ScrollBar slider internal padding */ export const SCROLL_SLIDER_PADDING = 18 - /** */ + /** ScrollBar slider size */ export const SCROLL_SLIDER_SIZE = 19 - /** */ + /** ScrollBar scroll padding from arrows */ export const SCROLL_PADDING = 20 - /** */ + /** ScrollBar scrolling speed */ export const SCROLL_SPEED = 21 /** CheckBox internal check padding */ export const CHECK_PADDING = 16 @@ -3678,10 +3845,8 @@ declare module "raylib" { export const ARROW_PADDING = 16 /** DropdownBox items separation */ export const DROPDOWN_ITEMS_SPACING = 17 - /** TextBox/TextBoxMulti/ValueBox/Spinner inner text padding */ - export const TEXT_INNER_PADDING = 16 - /** TextBoxMulti lines separation */ - export const TEXT_LINES_SPACING = 17 + /** TextBox in read-only mode: 0-text editable, 1-text no-editable */ + export const TEXT_READONLY = 16 /** Spinner left/right buttons width */ export const SPIN_BUTTON_WIDTH = 16 /** Spinner buttons separation */ @@ -3692,7 +3857,7 @@ declare module "raylib" { export const LIST_ITEMS_SPACING = 17 /** ListView scrollbar size (usually width) */ export const SCROLLBAR_WIDTH = 18 - /** ListView scrollbar side (0-left, 1-right) */ + /** ListView scrollbar side (0-SCROLLBAR_LEFT_SIDE, 1-SCROLLBAR_RIGHT_SIDE) */ export const SCROLLBAR_SIDE = 19 /** */ export const COLOR_SELECTOR_SIZE = 16 @@ -4143,7 +4308,7 @@ declare module "raylib" { /** */ export const ICON_FILE = 218 /** */ - export const ICON_219 = 219 + export const ICON_SAND_TIMER = 219 /** */ export const ICON_220 = 220 /** */ @@ -4226,6 +4391,8 @@ declare module "raylib" { export const RL_OPENGL_43 = 4 /** OpenGL ES 2.0 (GLSL 100) */ export const RL_OPENGL_ES_20 = 5 + /** OpenGL ES 3.0 (GLSL 300 es) */ + export const RL_OPENGL_ES_30 = 6 /** Display all logs */ export const RL_LOG_ALL = 0 /** Trace logging, intended for internal use only */ @@ -4262,28 +4429,34 @@ declare module "raylib" { export const RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9 /** 32*4 bpp (4 channels - float) */ export const RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10 + /** 16 bpp (1 channel - half float) */ + export const RL_PIXELFORMAT_UNCOMPRESSED_R16 = 11 + /** 16*3 bpp (3 channels - half float) */ + export const RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12 + /** 16*4 bpp (4 channels - half float) */ + export const RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13 /** 4 bpp (no alpha) */ - export const RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11 + export const RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 14 /** 4 bpp (1 bit alpha) */ - export const RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12 + export const RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15 /** 8 bpp */ - export const RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13 + export const RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16 /** 8 bpp */ - export const RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14 + export const RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17 /** 4 bpp */ - export const RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15 + export const RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 18 /** 4 bpp */ - export const RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16 + export const RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 19 /** 8 bpp */ - export const RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17 + export const RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20 /** 4 bpp */ - export const RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18 + export const RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 21 /** 4 bpp */ - export const RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19 + export const RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22 /** 8 bpp */ - export const RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20 + export const RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23 /** 2 bpp */ - export const RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21 + export const RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24 /** No filter, just pixel approximation */ export const RL_TEXTURE_FILTER_POINT = 0 /** Linear filtering */ diff --git a/src/generated/node-raylib.js b/src/generated/node-raylib.js index d0ebea9..c570134 100644 --- a/src/generated/node-raylib.js +++ b/src/generated/node-raylib.js @@ -29,16 +29,6 @@ function InitWindow(width, height, title) { } raylib.InitWindow = InitWindow -/** - * Check if KEY_ESCAPE pressed or Close icon pressed - * - * @return {boolean} The resulting bool. - */ -function WindowShouldClose() { - return r.BindWindowShouldClose() -} -raylib.WindowShouldClose = WindowShouldClose - /** * Close window and unload OpenGL context * @@ -49,6 +39,16 @@ function CloseWindow() { } raylib.CloseWindow = CloseWindow +/** + * Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) + * + * @return {boolean} The resulting bool. + */ +function WindowShouldClose() { + return r.BindWindowShouldClose() +} +raylib.WindowShouldClose = WindowShouldClose + /** * Check if window has been initialized successfully * @@ -171,6 +171,16 @@ function ToggleFullscreen() { } raylib.ToggleFullscreen = ToggleFullscreen +/** + * Toggle window state: borderless windowed (only PLATFORM_DESKTOP) + * + * @return {undefined} + */ +function ToggleBorderlessWindowed() { + return r.BindToggleBorderlessWindowed() +} +raylib.ToggleBorderlessWindowed = ToggleBorderlessWindowed + /** * Set window state: maximized, if resizable (only PLATFORM_DESKTOP) * @@ -236,7 +246,7 @@ function SetWindowIcons(images, count) { raylib.SetWindowIcons = SetWindowIcons /** - * Set title for window (only PLATFORM_DESKTOP) + * Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB) * * @param {string} title * @@ -266,7 +276,7 @@ function SetWindowPosition(x, y) { raylib.SetWindowPosition = SetWindowPosition /** - * Set monitor for the current window (fullscreen mode) + * Set monitor for the current window * * @param {number} monitor * @@ -295,6 +305,22 @@ function SetWindowMinSize(width, height) { } raylib.SetWindowMinSize = SetWindowMinSize +/** + * Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) + * + * @param {number} width + * @param {number} height + * + * @return {undefined} + */ +function SetWindowMaxSize(width, height) { + return r.BindSetWindowMaxSize( + width, + height + ) +} +raylib.SetWindowMaxSize = SetWindowMaxSize + /** * Set window dimensions * @@ -325,6 +351,16 @@ function SetWindowOpacity(opacity) { } raylib.SetWindowOpacity = SetWindowOpacity +/** + * Set window focused (only PLATFORM_DESKTOP) + * + * @return {undefined} + */ +function SetWindowFocused() { + return r.BindSetWindowFocused() +} +raylib.SetWindowFocused = SetWindowFocused + /** * Get native window handle * @@ -500,7 +536,7 @@ function GetWindowScaleDPI() { raylib.GetWindowScaleDPI = GetWindowScaleDPI /** - * Get the human-readable, UTF-8 encoded name of the primary monitor + * Get the human-readable, UTF-8 encoded name of the specified monitor * * @param {number} monitor * @@ -557,40 +593,6 @@ function DisableEventWaiting() { } raylib.DisableEventWaiting = DisableEventWaiting -/** - * Swap back buffer with front buffer (screen drawing) - * - * @return {undefined} - */ -function SwapScreenBuffer() { - return r.BindSwapScreenBuffer() -} -raylib.SwapScreenBuffer = SwapScreenBuffer - -/** - * Register all input events - * - * @return {undefined} - */ -function PollInputEvents() { - return r.BindPollInputEvents() -} -raylib.PollInputEvents = PollInputEvents - -/** - * Wait for some time (halt program execution) - * - * @param {number} seconds - * - * @return {undefined} - */ -function WaitTime(seconds) { - return r.BindWaitTime( - seconds - ) -} -raylib.WaitTime = WaitTime - /** * Shows cursor * @@ -1215,16 +1217,6 @@ function SetTargetFPS(fps) { } raylib.SetTargetFPS = SetTargetFPS -/** - * Get current FPS - * - * @return {number} The resulting int. - */ -function GetFPS() { - return r.BindGetFPS() -} -raylib.GetFPS = GetFPS - /** * Get time in seconds for last frame drawn (delta time) * @@ -1245,6 +1237,64 @@ function GetTime() { } raylib.GetTime = GetTime +/** + * Get current FPS + * + * @return {number} The resulting int. + */ +function GetFPS() { + return r.BindGetFPS() +} +raylib.GetFPS = GetFPS + +/** + * Swap back buffer with front buffer (screen drawing) + * + * @return {undefined} + */ +function SwapScreenBuffer() { + return r.BindSwapScreenBuffer() +} +raylib.SwapScreenBuffer = SwapScreenBuffer + +/** + * Register all input events + * + * @return {undefined} + */ +function PollInputEvents() { + return r.BindPollInputEvents() +} +raylib.PollInputEvents = PollInputEvents + +/** + * Wait for some time (halt program execution) + * + * @param {number} seconds + * + * @return {undefined} + */ +function WaitTime(seconds) { + return r.BindWaitTime( + seconds + ) +} +raylib.WaitTime = WaitTime + +/** + * Set the seed for the random number generator + * + * @param {number} seed + * + * @return {undefined} + */ +function SetRandomSeed(seed) { + return r.BindSetRandomSeed( + seed + ) +} +raylib.SetRandomSeed = SetRandomSeed + /** * Get a random value between min and max (both included) * @@ -1262,18 +1312,36 @@ function GetRandomValue(min, max) { raylib.GetRandomValue = GetRandomValue /** - * Set the seed for the random number generator + * Load random values sequence, no values repeated * - * @param {number} seed + * @param {number} count + * @param {number} min + * @param {number} max + * + * @return {number} The resulting int *. + */ +function LoadRandomSequence(count, min, max) { + return r.BindLoadRandomSequence( + count, + min, + max + ) +} +raylib.LoadRandomSequence = LoadRandomSequence + +/** + * Unload random values sequence + * + * @param {number} sequence * * @return {undefined} */ -function SetRandomSeed(seed) { - return r.BindSetRandomSeed( - seed +function UnloadRandomSequence(sequence) { + return r.BindUnloadRandomSequence( + sequence ) } -raylib.SetRandomSeed = SetRandomSeed +raylib.UnloadRandomSequence = UnloadRandomSequence /** * Takes a screenshot of current screen (filename extension defines format) @@ -1303,6 +1371,20 @@ function SetConfigFlags(flags) { } raylib.SetConfigFlags = SetConfigFlags +/** + * Open URL with default system browser (if available) + * + * @param {string} url + * + * @return {undefined} + */ +function OpenURL(url) { + return r.BindOpenURL( + url + ) +} +raylib.OpenURL = OpenURL + /** * Set the current threshold (minimum) log level * @@ -1361,32 +1443,18 @@ function MemFree(ptr) { } raylib.MemFree = MemFree -/** - * Open URL with default system browser (if available) - * - * @param {string} url - * - * @return {undefined} - */ -function OpenURL(url) { - return r.BindOpenURL( - url - ) -} -raylib.OpenURL = OpenURL - /** * Load file data as byte array (read) * * @param {string} fileName - * @param {number} bytesRead + * @param {number} dataSize * * @return {Buffer} The resulting unsigned char *. */ -function LoadFileData(fileName, bytesRead) { +function LoadFileData(fileName, dataSize) { return r.BindLoadFileData( fileName, - bytesRead + dataSize ) } raylib.LoadFileData = LoadFileData @@ -1410,15 +1478,15 @@ raylib.UnloadFileData = UnloadFileData * * @param {string} fileName * @param {number} data - * @param {number} bytesToWrite + * @param {number} dataSize * * @return {boolean} The resulting bool. */ -function SaveFileData(fileName, data, bytesToWrite) { +function SaveFileData(fileName, data, dataSize) { return r.BindSaveFileData( fileName, data, - bytesToWrite + dataSize ) } raylib.SaveFileData = SaveFileData @@ -1427,15 +1495,15 @@ raylib.SaveFileData = SaveFileData * Export data to code (.h), returns true on success * * @param {Buffer} data - * @param {number} size + * @param {number} dataSize * @param {string} fileName * * @return {boolean} The resulting bool. */ -function ExportDataAsCode(data, size, fileName) { +function ExportDataAsCode(data, dataSize, fileName) { return r.BindExportDataAsCode( data, - size, + dataSize, fileName ) } @@ -1624,7 +1692,7 @@ function GetWorkingDirectory() { raylib.GetWorkingDirectory = GetWorkingDirectory /** - * Get the directory if the running application (uses static string) + * Get the directory of the running application (uses static string) * * @return {string} The resulting const char *. */ @@ -1830,101 +1898,225 @@ function DecodeDataBase64(data, outputSize) { raylib.DecodeDataBase64 = DecodeDataBase64 /** - * Check if a key has been pressed once + * Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS * - * @param {number} key + * @param {string} fileName * - * @return {boolean} The resulting bool. + * @return {AutomationEventList} The resulting AutomationEventList. */ -function IsKeyPressed(key) { - return r.BindIsKeyPressed( - key +function LoadAutomationEventList(fileName) { + return r.BindLoadAutomationEventList( + fileName ) } -raylib.IsKeyPressed = IsKeyPressed +raylib.LoadAutomationEventList = LoadAutomationEventList /** - * Check if a key is being pressed + * Unload automation events list from file * - * @param {number} key + * @param {number} list * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function IsKeyDown(key) { - return r.BindIsKeyDown( - key +function UnloadAutomationEventList(list) { + return r.BindUnloadAutomationEventList( + list ) } -raylib.IsKeyDown = IsKeyDown +raylib.UnloadAutomationEventList = UnloadAutomationEventList /** - * Check if a key has been released once + * Export automation events list as text file * - * @param {number} key + * @param {AutomationEventList} list + * @param {string} fileName * * @return {boolean} The resulting bool. */ -function IsKeyReleased(key) { - return r.BindIsKeyReleased( - key +function ExportAutomationEventList(list, fileName) { + return r.BindExportAutomationEventList( + list.capacity, + list.count, + list.events, + fileName ) } -raylib.IsKeyReleased = IsKeyReleased +raylib.ExportAutomationEventList = ExportAutomationEventList /** - * Check if a key is NOT being pressed + * Set automation event list to record to * - * @param {number} key + * @param {number} list * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function IsKeyUp(key) { - return r.BindIsKeyUp( - key +function SetAutomationEventList(list) { + return r.BindSetAutomationEventList( + list ) } -raylib.IsKeyUp = IsKeyUp +raylib.SetAutomationEventList = SetAutomationEventList /** - * Set a custom key to exit program (default is ESC) + * Set automation event internal base frame to start recording * - * @param {number} key + * @param {number} frame * * @return {undefined} */ -function SetExitKey(key) { - return r.BindSetExitKey( - key +function SetAutomationEventBaseFrame(frame) { + return r.BindSetAutomationEventBaseFrame( + frame ) } -raylib.SetExitKey = SetExitKey +raylib.SetAutomationEventBaseFrame = SetAutomationEventBaseFrame /** - * Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty + * Start recording automation events (AutomationEventList must be set) * - * @return {number} The resulting int. + * @return {undefined} */ -function GetKeyPressed() { - return r.BindGetKeyPressed() +function StartAutomationEventRecording() { + return r.BindStartAutomationEventRecording() } -raylib.GetKeyPressed = GetKeyPressed +raylib.StartAutomationEventRecording = StartAutomationEventRecording /** - * Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty + * Stop recording automation events * - * @return {number} The resulting int. + * @return {undefined} */ -function GetCharPressed() { - return r.BindGetCharPressed() +function StopAutomationEventRecording() { + return r.BindStopAutomationEventRecording() } -raylib.GetCharPressed = GetCharPressed +raylib.StopAutomationEventRecording = StopAutomationEventRecording /** - * Check if a gamepad is available + * Play a recorded automation event * - * @param {number} gamepad + * @param {AutomationEvent} event * - * @return {boolean} The resulting bool. + * @return {undefined} + */ +function PlayAutomationEvent(event) { + return r.BindPlayAutomationEvent( + event.frame, + event.type, + event.params + ) +} +raylib.PlayAutomationEvent = PlayAutomationEvent + +/** + * Check if a key has been pressed once + * + * @param {number} key + * + * @return {boolean} The resulting bool. + */ +function IsKeyPressed(key) { + return r.BindIsKeyPressed( + key + ) +} +raylib.IsKeyPressed = IsKeyPressed + +/** + * Check if a key has been pressed again (Only PLATFORM_DESKTOP) + * + * @param {number} key + * + * @return {boolean} The resulting bool. + */ +function IsKeyPressedRepeat(key) { + return r.BindIsKeyPressedRepeat( + key + ) +} +raylib.IsKeyPressedRepeat = IsKeyPressedRepeat + +/** + * Check if a key is being pressed + * + * @param {number} key + * + * @return {boolean} The resulting bool. + */ +function IsKeyDown(key) { + return r.BindIsKeyDown( + key + ) +} +raylib.IsKeyDown = IsKeyDown + +/** + * Check if a key has been released once + * + * @param {number} key + * + * @return {boolean} The resulting bool. + */ +function IsKeyReleased(key) { + return r.BindIsKeyReleased( + key + ) +} +raylib.IsKeyReleased = IsKeyReleased + +/** + * Check if a key is NOT being pressed + * + * @param {number} key + * + * @return {boolean} The resulting bool. + */ +function IsKeyUp(key) { + return r.BindIsKeyUp( + key + ) +} +raylib.IsKeyUp = IsKeyUp + +/** + * Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty + * + * @return {number} The resulting int. + */ +function GetKeyPressed() { + return r.BindGetKeyPressed() +} +raylib.GetKeyPressed = GetKeyPressed + +/** + * Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty + * + * @return {number} The resulting int. + */ +function GetCharPressed() { + return r.BindGetCharPressed() +} +raylib.GetCharPressed = GetCharPressed + +/** + * Set a custom key to exit program (default is ESC) + * + * @param {number} key + * + * @return {undefined} + */ +function SetExitKey(key) { + return r.BindSetExitKey( + key + ) +} +raylib.SetExitKey = SetExitKey + +/** + * Check if a gamepad is available + * + * @param {number} gamepad + * + * @return {boolean} The resulting bool. */ function IsGamepadAvailable(gamepad) { return r.BindIsGamepadAvailable( @@ -2503,7 +2695,7 @@ function DrawLine(startPosX, startPosY, endPosX, endPosY, color) { raylib.DrawLine = DrawLine /** - * Draw a line (Vector version) + * Draw a line (using gl lines) * * @param {Vector2} startPos * @param {Vector2} endPos @@ -2526,7 +2718,7 @@ function DrawLineV(startPos, endPos, color) { raylib.DrawLineV = DrawLineV /** - * Draw a line defining thickness + * Draw a line (using triangles/quads) * * @param {Vector2} startPos * @param {Vector2} endPos @@ -2551,80 +2743,42 @@ function DrawLineEx(startPos, endPos, thick, color) { raylib.DrawLineEx = DrawLineEx /** - * Draw a line using cubic-bezier curves in-out - * - * @param {Vector2} startPos - * @param {Vector2} endPos - * @param {number} thick - * @param {Color} color - * - * @return {undefined} - */ -function DrawLineBezier(startPos, endPos, thick, color) { - return r.BindDrawLineBezier( - startPos.x, - startPos.y, - endPos.x, - endPos.y, - thick, - color.r, - color.g, - color.b, - color.a - ) -} -raylib.DrawLineBezier = DrawLineBezier - -/** - * Draw line using quadratic bezier curves with a control point + * Draw lines sequence (using gl lines) * - * @param {Vector2} startPos - * @param {Vector2} endPos - * @param {Vector2} controlPos - * @param {number} thick + * @param {number} points + * @param {number} pointCount * @param {Color} color * * @return {undefined} */ -function DrawLineBezierQuad(startPos, endPos, controlPos, thick, color) { - return r.BindDrawLineBezierQuad( - startPos.x, - startPos.y, - endPos.x, - endPos.y, - controlPos.x, - controlPos.y, - thick, +function DrawLineStrip(points, pointCount, color) { + return r.BindDrawLineStrip( + points, + pointCount, color.r, color.g, color.b, color.a ) } -raylib.DrawLineBezierQuad = DrawLineBezierQuad +raylib.DrawLineStrip = DrawLineStrip /** - * Draw line using cubic bezier curves with 2 control points + * Draw line segment cubic-bezier in-out interpolation * * @param {Vector2} startPos * @param {Vector2} endPos - * @param {Vector2} startControlPos - * @param {Vector2} endControlPos * @param {number} thick * @param {Color} color * * @return {undefined} */ -function DrawLineBezierCubic(startPos, endPos, startControlPos, endControlPos, thick, color) { - return r.BindDrawLineBezierCubic( +function DrawLineBezier(startPos, endPos, thick, color) { + return r.BindDrawLineBezier( startPos.x, startPos.y, endPos.x, endPos.y, - startControlPos.x, - startControlPos.y, - endControlPos.x, - endControlPos.y, thick, color.r, color.g, @@ -2632,28 +2786,7 @@ function DrawLineBezierCubic(startPos, endPos, startControlPos, endControlPos, t color.a ) } -raylib.DrawLineBezierCubic = DrawLineBezierCubic - -/** - * Draw lines sequence - * - * @param {number} points - * @param {number} pointCount - * @param {Color} color - * - * @return {undefined} - */ -function DrawLineStrip(points, pointCount, color) { - return r.BindDrawLineStrip( - points, - pointCount, - color.r, - color.g, - color.b, - color.a - ) -} -raylib.DrawLineStrip = DrawLineStrip +raylib.DrawLineBezier = DrawLineBezier /** * Draw a color-filled circle @@ -2807,6 +2940,28 @@ function DrawCircleLines(centerX, centerY, radius, color) { } raylib.DrawCircleLines = DrawCircleLines +/** + * Draw circle outline (Vector version) + * + * @param {Vector2} center + * @param {number} radius + * @param {Color} color + * + * @return {undefined} + */ +function DrawCircleLinesV(center, radius, color) { + return r.BindDrawCircleLinesV( + center.x, + center.y, + radius, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawCircleLinesV = DrawCircleLinesV + /** * Draw ellipse * @@ -3389,59 +3544,441 @@ function DrawPolyLinesEx(center, sides, radius, rotation, lineThick, color) { raylib.DrawPolyLinesEx = DrawPolyLinesEx /** - * Check collision between two rectangles + * Draw spline: Linear, minimum 2 points * - * @param {Rectangle} rec1 - * @param {Rectangle} rec2 + * @param {number} points + * @param {number} pointCount + * @param {number} thick + * @param {Color} color * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function CheckCollisionRecs(rec1, rec2) { - return r.BindCheckCollisionRecs( - rec1.x, - rec1.y, - rec1.width, - rec1.height, - rec2.x, - rec2.y, - rec2.width, - rec2.height +function DrawSplineLinear(points, pointCount, thick, color) { + return r.BindDrawSplineLinear( + points, + pointCount, + thick, + color.r, + color.g, + color.b, + color.a ) } -raylib.CheckCollisionRecs = CheckCollisionRecs +raylib.DrawSplineLinear = DrawSplineLinear /** - * Check collision between two circles + * Draw spline: B-Spline, minimum 4 points * - * @param {Vector2} center1 - * @param {number} radius1 - * @param {Vector2} center2 - * @param {number} radius2 + * @param {number} points + * @param {number} pointCount + * @param {number} thick + * @param {Color} color * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function CheckCollisionCircles(center1, radius1, center2, radius2) { - return r.BindCheckCollisionCircles( - center1.x, - center1.y, - radius1, - center2.x, - center2.y, - radius2 +function DrawSplineBasis(points, pointCount, thick, color) { + return r.BindDrawSplineBasis( + points, + pointCount, + thick, + color.r, + color.g, + color.b, + color.a ) } -raylib.CheckCollisionCircles = CheckCollisionCircles +raylib.DrawSplineBasis = DrawSplineBasis /** - * Check collision between circle and rectangle + * Draw spline: Catmull-Rom, minimum 4 points * - * @param {Vector2} center - * @param {number} radius - * @param {Rectangle} rec + * @param {number} points + * @param {number} pointCount + * @param {number} thick + * @param {Color} color * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function CheckCollisionCircleRec(center, radius, rec) { +function DrawSplineCatmullRom(points, pointCount, thick, color) { + return r.BindDrawSplineCatmullRom( + points, + pointCount, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineCatmullRom = DrawSplineCatmullRom + +/** + * Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] + * + * @param {number} points + * @param {number} pointCount + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineBezierQuadratic(points, pointCount, thick, color) { + return r.BindDrawSplineBezierQuadratic( + points, + pointCount, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineBezierQuadratic = DrawSplineBezierQuadratic + +/** + * Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] + * + * @param {number} points + * @param {number} pointCount + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineBezierCubic(points, pointCount, thick, color) { + return r.BindDrawSplineBezierCubic( + points, + pointCount, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineBezierCubic = DrawSplineBezierCubic + +/** + * Draw spline segment: Linear, 2 points + * + * @param {Vector2} p1 + * @param {Vector2} p2 + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineSegmentLinear(p1, p2, thick, color) { + return r.BindDrawSplineSegmentLinear( + p1.x, + p1.y, + p2.x, + p2.y, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineSegmentLinear = DrawSplineSegmentLinear + +/** + * Draw spline segment: B-Spline, 4 points + * + * @param {Vector2} p1 + * @param {Vector2} p2 + * @param {Vector2} p3 + * @param {Vector2} p4 + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineSegmentBasis(p1, p2, p3, p4, thick, color) { + return r.BindDrawSplineSegmentBasis( + p1.x, + p1.y, + p2.x, + p2.y, + p3.x, + p3.y, + p4.x, + p4.y, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineSegmentBasis = DrawSplineSegmentBasis + +/** + * Draw spline segment: Catmull-Rom, 4 points + * + * @param {Vector2} p1 + * @param {Vector2} p2 + * @param {Vector2} p3 + * @param {Vector2} p4 + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineSegmentCatmullRom(p1, p2, p3, p4, thick, color) { + return r.BindDrawSplineSegmentCatmullRom( + p1.x, + p1.y, + p2.x, + p2.y, + p3.x, + p3.y, + p4.x, + p4.y, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineSegmentCatmullRom = DrawSplineSegmentCatmullRom + +/** + * Draw spline segment: Quadratic Bezier, 2 points, 1 control point + * + * @param {Vector2} p1 + * @param {Vector2} c2 + * @param {Vector2} p3 + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineSegmentBezierQuadratic(p1, c2, p3, thick, color) { + return r.BindDrawSplineSegmentBezierQuadratic( + p1.x, + p1.y, + c2.x, + c2.y, + p3.x, + p3.y, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineSegmentBezierQuadratic = DrawSplineSegmentBezierQuadratic + +/** + * Draw spline segment: Cubic Bezier, 2 points, 2 control points + * + * @param {Vector2} p1 + * @param {Vector2} c2 + * @param {Vector2} c3 + * @param {Vector2} p4 + * @param {number} thick + * @param {Color} color + * + * @return {undefined} + */ +function DrawSplineSegmentBezierCubic(p1, c2, c3, p4, thick, color) { + return r.BindDrawSplineSegmentBezierCubic( + p1.x, + p1.y, + c2.x, + c2.y, + c3.x, + c3.y, + p4.x, + p4.y, + thick, + color.r, + color.g, + color.b, + color.a + ) +} +raylib.DrawSplineSegmentBezierCubic = DrawSplineSegmentBezierCubic + +/** + * Get (evaluate) spline point: Linear + * + * @param {Vector2} startPos + * @param {Vector2} endPos + * @param {number} t + * + * @return {Vector2} The resulting Vector2. + */ +function GetSplinePointLinear(startPos, endPos, t) { + return r.BindGetSplinePointLinear( + startPos.x, + startPos.y, + endPos.x, + endPos.y, + t + ) +} +raylib.GetSplinePointLinear = GetSplinePointLinear + +/** + * Get (evaluate) spline point: B-Spline + * + * @param {Vector2} p1 + * @param {Vector2} p2 + * @param {Vector2} p3 + * @param {Vector2} p4 + * @param {number} t + * + * @return {Vector2} The resulting Vector2. + */ +function GetSplinePointBasis(p1, p2, p3, p4, t) { + return r.BindGetSplinePointBasis( + p1.x, + p1.y, + p2.x, + p2.y, + p3.x, + p3.y, + p4.x, + p4.y, + t + ) +} +raylib.GetSplinePointBasis = GetSplinePointBasis + +/** + * Get (evaluate) spline point: Catmull-Rom + * + * @param {Vector2} p1 + * @param {Vector2} p2 + * @param {Vector2} p3 + * @param {Vector2} p4 + * @param {number} t + * + * @return {Vector2} The resulting Vector2. + */ +function GetSplinePointCatmullRom(p1, p2, p3, p4, t) { + return r.BindGetSplinePointCatmullRom( + p1.x, + p1.y, + p2.x, + p2.y, + p3.x, + p3.y, + p4.x, + p4.y, + t + ) +} +raylib.GetSplinePointCatmullRom = GetSplinePointCatmullRom + +/** + * Get (evaluate) spline point: Quadratic Bezier + * + * @param {Vector2} p1 + * @param {Vector2} c2 + * @param {Vector2} p3 + * @param {number} t + * + * @return {Vector2} The resulting Vector2. + */ +function GetSplinePointBezierQuad(p1, c2, p3, t) { + return r.BindGetSplinePointBezierQuad( + p1.x, + p1.y, + c2.x, + c2.y, + p3.x, + p3.y, + t + ) +} +raylib.GetSplinePointBezierQuad = GetSplinePointBezierQuad + +/** + * Get (evaluate) spline point: Cubic Bezier + * + * @param {Vector2} p1 + * @param {Vector2} c2 + * @param {Vector2} c3 + * @param {Vector2} p4 + * @param {number} t + * + * @return {Vector2} The resulting Vector2. + */ +function GetSplinePointBezierCubic(p1, c2, c3, p4, t) { + return r.BindGetSplinePointBezierCubic( + p1.x, + p1.y, + c2.x, + c2.y, + c3.x, + c3.y, + p4.x, + p4.y, + t + ) +} +raylib.GetSplinePointBezierCubic = GetSplinePointBezierCubic + +/** + * Check collision between two rectangles + * + * @param {Rectangle} rec1 + * @param {Rectangle} rec2 + * + * @return {boolean} The resulting bool. + */ +function CheckCollisionRecs(rec1, rec2) { + return r.BindCheckCollisionRecs( + rec1.x, + rec1.y, + rec1.width, + rec1.height, + rec2.x, + rec2.y, + rec2.width, + rec2.height + ) +} +raylib.CheckCollisionRecs = CheckCollisionRecs + +/** + * Check collision between two circles + * + * @param {Vector2} center1 + * @param {number} radius1 + * @param {Vector2} center2 + * @param {number} radius2 + * + * @return {boolean} The resulting bool. + */ +function CheckCollisionCircles(center1, radius1, center2, radius2) { + return r.BindCheckCollisionCircles( + center1.x, + center1.y, + radius1, + center2.x, + center2.y, + radius2 + ) +} +raylib.CheckCollisionCircles = CheckCollisionCircles + +/** + * Check collision between circle and rectangle + * + * @param {Vector2} center + * @param {number} radius + * @param {Rectangle} rec + * + * @return {boolean} The resulting bool. + */ +function CheckCollisionCircleRec(center, radius, rec) { return r.BindCheckCollisionCircleRec( center.x, center.y, @@ -3637,12 +4174,30 @@ function LoadImageRaw(fileName, width, height, format, headerSize) { return r.BindLoadImageRaw( fileName, width, - height, - format, - headerSize + height, + format, + headerSize + ) +} +raylib.LoadImageRaw = LoadImageRaw + +/** + * Load image from SVG file data or string with specified size + * + * @param {string} fileNameOrString + * @param {number} width + * @param {number} height + * + * @return {Image} The resulting Image. + */ +function LoadImageSvg(fileNameOrString, width, height) { + return r.BindLoadImageSvg( + fileNameOrString, + width, + height ) } -raylib.LoadImageRaw = LoadImageRaw +raylib.LoadImageSvg = LoadImageSvg /** * Load image sequence from file (frames appended to image.data) @@ -3762,6 +4317,28 @@ function ExportImage(image, fileName) { } raylib.ExportImage = ExportImage +/** + * Export image to memory buffer + * + * @param {Image} image + * @param {string} fileType + * @param {number} fileSize + * + * @return {Buffer} The resulting unsigned char *. + */ +function ExportImageToMemory(image, fileType, fileSize) { + return r.BindExportImageToMemory( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + fileType, + fileSize + ) +} +raylib.ExportImageToMemory = ExportImageToMemory + /** * Export image as code file defining an array of bytes, returns true on success * @@ -3804,59 +4381,63 @@ function GenImageColor(width, height, color) { raylib.GenImageColor = GenImageColor /** - * Generate image: vertical gradient + * Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient * * @param {number} width * @param {number} height - * @param {Color} top - * @param {Color} bottom + * @param {number} direction + * @param {Color} start + * @param {Color} end * * @return {Image} The resulting Image. */ -function GenImageGradientV(width, height, top, bottom) { - return r.BindGenImageGradientV( +function GenImageGradientLinear(width, height, direction, start, end) { + return r.BindGenImageGradientLinear( width, height, - top.r, - top.g, - top.b, - top.a, - bottom.r, - bottom.g, - bottom.b, - bottom.a + direction, + start.r, + start.g, + start.b, + start.a, + end.r, + end.g, + end.b, + end.a ) } -raylib.GenImageGradientV = GenImageGradientV +raylib.GenImageGradientLinear = GenImageGradientLinear /** - * Generate image: horizontal gradient + * Generate image: radial gradient * * @param {number} width * @param {number} height - * @param {Color} left - * @param {Color} right + * @param {number} density + * @param {Color} inner + * @param {Color} outer * * @return {Image} The resulting Image. */ -function GenImageGradientH(width, height, left, right) { - return r.BindGenImageGradientH( +function GenImageGradientRadial(width, height, density, inner, outer) { + return r.BindGenImageGradientRadial( width, height, - left.r, - left.g, - left.b, - left.a, - right.r, - right.g, - right.b, - right.a + density, + inner.r, + inner.g, + inner.b, + inner.a, + outer.r, + outer.g, + outer.b, + outer.a ) } -raylib.GenImageGradientH = GenImageGradientH +raylib.GenImageGradientRadial = GenImageGradientRadial /** - * Generate image: radial gradient + * Generate image: square gradient * * @param {number} width * @param {number} height @@ -3866,8 +4447,8 @@ raylib.GenImageGradientH = GenImageGradientH * * @return {Image} The resulting Image. */ -function GenImageGradientRadial(width, height, density, inner, outer) { - return r.BindGenImageGradientRadial( +function GenImageGradientSquare(width, height, density, inner, outer) { + return r.BindGenImageGradientSquare( width, height, density, @@ -3881,7 +4462,7 @@ function GenImageGradientRadial(width, height, density, inner, outer) { outer.a ) } -raylib.GenImageGradientRadial = GenImageGradientRadial +raylib.GenImageGradientSquare = GenImageGradientSquare /** * Generate image: checked @@ -4101,6 +4682,22 @@ function ImageBlurGaussian(image, blurSize) { } raylib.ImageBlurGaussian = ImageBlurGaussian +/** + * Rotate image by input angle in degrees (-359 to 359) + * + * @param {number} image + * @param {number} degrees + * + * @return {undefined} + */ +function ImageRotate(image, degrees) { + return r.BindImageRotate( + image, + degrees + ) +} +raylib.ImageRotate = ImageRotate + /** * Load color data from image as a Color array (RGBA - 32bit) * @@ -4997,21 +5594,21 @@ function LoadFont(fileName) { raylib.LoadFont = LoadFont /** - * Load font from file with extended parameters, use NULL for fontChars and 0 for glyphCount to load the default character set + * Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont * * @param {string} fileName * @param {number} fontSize - * @param {number} fontChars - * @param {number} glyphCount + * @param {number} codepoints + * @param {number} codepointCount * * @return {Font} The resulting Font. */ -function LoadFontEx(fileName, fontSize, fontChars, glyphCount) { +function LoadFontEx(fileName, fontSize, codepoints, codepointCount) { return r.BindLoadFontEx( fileName, fontSize, - fontChars, - glyphCount + codepoints, + codepointCount ) } raylib.LoadFontEx = LoadFontEx @@ -5048,19 +5645,19 @@ raylib.LoadFontFromImage = LoadFontFromImage * @param {Buffer} fileData * @param {number} dataSize * @param {number} fontSize - * @param {number} fontChars - * @param {number} glyphCount + * @param {number} codepoints + * @param {number} codepointCount * * @return {Font} The resulting Font. */ -function LoadFontFromMemory(fileType, fileData, dataSize, fontSize, fontChars, glyphCount) { +function LoadFontFromMemory(fileType, fileData, dataSize, fontSize, codepoints, codepointCount) { return r.BindLoadFontFromMemory( fileType, fileData, dataSize, fontSize, - fontChars, - glyphCount + codepoints, + codepointCount ) } raylib.LoadFontFromMemory = LoadFontFromMemory @@ -5094,19 +5691,19 @@ raylib.IsFontReady = IsFontReady * @param {Buffer} fileData * @param {number} dataSize * @param {number} fontSize - * @param {number} fontChars - * @param {number} glyphCount + * @param {number} codepoints + * @param {number} codepointCount * @param {number} type * * @return {number} The resulting GlyphInfo *. */ -function LoadFontData(fileData, dataSize, fontSize, fontChars, glyphCount, type) { +function LoadFontData(fileData, dataSize, fontSize, codepoints, codepointCount, type) { return r.BindLoadFontData( fileData, dataSize, fontSize, - fontChars, - glyphCount, + codepoints, + codepointCount, type ) } @@ -5115,8 +5712,8 @@ raylib.LoadFontData = LoadFontData /** * Generate image font atlas using chars info * - * @param {number} chars - * @param {number} recs + * @param {number} glyphs + * @param {number} glyphRecs * @param {number} glyphCount * @param {number} fontSize * @param {number} padding @@ -5124,10 +5721,10 @@ raylib.LoadFontData = LoadFontData * * @return {Image} The resulting Image. */ -function GenImageFontAtlas(chars, recs, glyphCount, fontSize, padding, packMethod) { +function GenImageFontAtlas(glyphs, glyphRecs, glyphCount, fontSize, padding, packMethod) { return r.BindGenImageFontAtlas( - chars, - recs, + glyphs, + glyphRecs, glyphCount, fontSize, padding, @@ -5139,14 +5736,14 @@ raylib.GenImageFontAtlas = GenImageFontAtlas /** * Unload font chars info data (RAM) * - * @param {number} chars + * @param {number} glyphs * @param {number} glyphCount * * @return {undefined} */ -function UnloadFontData(chars, glyphCount) { +function UnloadFontData(glyphs, glyphCount) { return r.BindUnloadFontData( - chars, + glyphs, glyphCount ) } @@ -5360,7 +5957,7 @@ raylib.DrawTextCodepoint = DrawTextCodepoint * * @param {Font} font * @param {number} codepoints - * @param {number} count + * @param {number} codepointCount * @param {Vector2} position * @param {number} fontSize * @param {number} spacing @@ -5368,7 +5965,7 @@ raylib.DrawTextCodepoint = DrawTextCodepoint * * @return {undefined} */ -function DrawTextCodepoints(font, codepoints, count, position, fontSize, spacing, tint) { +function DrawTextCodepoints(font, codepoints, codepointCount, position, fontSize, spacing, tint) { return r.BindDrawTextCodepoints( font.baseSize, font.glyphCount, @@ -5381,7 +5978,7 @@ function DrawTextCodepoints(font, codepoints, count, position, fontSize, spacing font.recs, font.glyphs, codepoints, - count, + codepointCount, position.x, position.y, fontSize, @@ -5394,6 +5991,20 @@ function DrawTextCodepoints(font, codepoints, count, position, fontSize, spacing } raylib.DrawTextCodepoints = DrawTextCodepoints +/** + * Set vertical line spacing when drawing with line-breaks + * + * @param {number} spacing + * + * @return {undefined} + */ +function SetTextLineSpacing(spacing) { + return r.BindSetTextLineSpacing( + spacing + ) +} +raylib.SetTextLineSpacing = SetTextLineSpacing + /** * Measure string width for default font * @@ -7346,6 +7957,7 @@ function UpdateModelAnimation(model, anim, frame) { anim.frameCount, anim.bones, anim.framePoses, + anim.name, frame ) } @@ -7363,7 +7975,8 @@ function UnloadModelAnimation(anim) { anim.boneCount, anim.frameCount, anim.bones, - anim.framePoses + anim.framePoses, + anim.name ) } raylib.UnloadModelAnimation = UnloadModelAnimation @@ -7372,14 +7985,14 @@ raylib.UnloadModelAnimation = UnloadModelAnimation * Unload animation array data * * @param {number} animations - * @param {number} count + * @param {number} animCount * * @return {undefined} */ -function UnloadModelAnimations(animations, count) { +function UnloadModelAnimations(animations, animCount) { return r.BindUnloadModelAnimations( animations, - count + animCount ) } raylib.UnloadModelAnimations = UnloadModelAnimations @@ -7421,7 +8034,8 @@ function IsModelAnimationValid(model, anim) { anim.boneCount, anim.frameCount, anim.bones, - anim.framePoses + anim.framePoses, + anim.name ) } raylib.IsModelAnimationValid = IsModelAnimationValid @@ -7714,6 +8328,16 @@ function SetMasterVolume(volume) { } raylib.SetMasterVolume = SetMasterVolume +/** + * Get master volume (listener) + * + * @return {number} The resulting float. + */ +function GetMasterVolume() { + return r.BindGetMasterVolume() +} +raylib.GetMasterVolume = GetMasterVolume + /** * Load wave data from file * @@ -7796,6 +8420,25 @@ function LoadSoundFromWave(wave) { } raylib.LoadSoundFromWave = LoadSoundFromWave +/** + * Create a new sound that shares the same sample data as the source sound, does not own the sound data + * + * @param {Sound} source + * + * @return {Sound} The resulting Sound. + */ +function LoadSoundAlias(source) { + return r.BindLoadSoundAlias( + source.stream.buffer, + source.stream.processor, + source.stream.sampleRate, + source.stream.sampleSize, + source.stream.channels, + source.frameCount + ) +} +raylib.LoadSoundAlias = LoadSoundAlias + /** * Checks if a sound is ready * @@ -7875,6 +8518,25 @@ function UnloadSound(sound) { } raylib.UnloadSound = UnloadSound +/** + * Unload a sound alias (does not deallocate sample data) + * + * @param {Sound} alias + * + * @return {undefined} + */ +function UnloadSoundAlias(alias) { + return r.BindUnloadSoundAlias( + alias.stream.buffer, + alias.stream.processor, + alias.stream.sampleRate, + alias.stream.sampleSize, + alias.stream.channels, + alias.frameCount + ) +} +raylib.UnloadSoundAlias = UnloadSoundAlias + /** * Export wave data to file, returns true on success * @@ -9797,6 +10459,30 @@ function Vector3Normalize(v) { } raylib.Vector3Normalize = Vector3Normalize +function Vector3Project(v1, v2) { + return r.BindVector3Project( + v1.x, + v1.y, + v1.z, + v2.x, + v2.y, + v2.z + ) +} +raylib.Vector3Project = Vector3Project + +function Vector3Reject(v1, v2) { + return r.BindVector3Reject( + v1.x, + v1.y, + v1.z, + v2.x, + v2.y, + v2.z + ) +} +raylib.Vector3Reject = Vector3Reject + function Vector3OrthoNormalize(v1, v2) { return r.BindVector3OrthoNormalize( v1, @@ -10307,24 +10993,24 @@ function MatrixFrustum(left, right, bottom, top, near, far) { } raylib.MatrixFrustum = MatrixFrustum -function MatrixPerspective(fovy, aspect, near, far) { +function MatrixPerspective(fovY, aspect, nearPlane, farPlane) { return r.BindMatrixPerspective( - fovy, + fovY, aspect, - near, - far + nearPlane, + farPlane ) } raylib.MatrixPerspective = MatrixPerspective -function MatrixOrtho(left, right, bottom, top, near, far) { +function MatrixOrtho(left, right, bottom, top, nearPlane, farPlane) { return r.BindMatrixOrtho( left, right, bottom, top, - near, - far + nearPlane, + farPlane ) } raylib.MatrixOrtho = MatrixOrtho @@ -10617,12 +11303,12 @@ raylib.GuiIsLocked = GuiIsLocked * * @return {undefined} */ -function GuiFade(alpha) { - return r.BindGuiFade( +function GuiSetAlpha(alpha) { + return r.BindGuiSetAlpha( alpha ) } -raylib.GuiFade = GuiFade +raylib.GuiSetAlpha = GuiSetAlpha /** * Set gui state (global state) @@ -10669,51 +11355,190 @@ function GuiSetFont(font) { font.glyphs ) } -raylib.GuiSetFont = GuiSetFont +raylib.GuiSetFont = GuiSetFont + +/** + * Get gui custom font (global state) + * + * @return {Font} The resulting Font. + */ +function GuiGetFont() { + return r.BindGuiGetFont() +} +raylib.GuiGetFont = GuiGetFont + +/** + * Set one style property + * + * @param {number} control + * @param {number} property + * @param {number} value + * + * @return {undefined} + */ +function GuiSetStyle(control, property, value) { + return r.BindGuiSetStyle( + control, + property, + value + ) +} +raylib.GuiSetStyle = GuiSetStyle + +/** + * Get one style property + * + * @param {number} control + * @param {number} property + * + * @return {number} The resulting int. + */ +function GuiGetStyle(control, property) { + return r.BindGuiGetStyle( + control, + property + ) +} +raylib.GuiGetStyle = GuiGetStyle + +/** + * Load style file over global style variable (.rgs) + * + * @param {string} fileName + * + * @return {undefined} + */ +function GuiLoadStyle(fileName) { + return r.BindGuiLoadStyle( + fileName + ) +} +raylib.GuiLoadStyle = GuiLoadStyle + +/** + * Load style default over global style + * + * @return {undefined} + */ +function GuiLoadStyleDefault() { + return r.BindGuiLoadStyleDefault() +} +raylib.GuiLoadStyleDefault = GuiLoadStyleDefault + +/** + * Enable gui tooltips (global state) + * + * @return {undefined} + */ +function GuiEnableTooltip() { + return r.BindGuiEnableTooltip() +} +raylib.GuiEnableTooltip = GuiEnableTooltip + +/** + * Disable gui tooltips (global state) + * + * @return {undefined} + */ +function GuiDisableTooltip() { + return r.BindGuiDisableTooltip() +} +raylib.GuiDisableTooltip = GuiDisableTooltip + +/** + * Set tooltip string + * + * @param {string} tooltip + * + * @return {undefined} + */ +function GuiSetTooltip(tooltip) { + return r.BindGuiSetTooltip( + tooltip + ) +} +raylib.GuiSetTooltip = GuiSetTooltip + +/** + * Get text with icon id prepended (if supported) + * + * @param {number} iconId + * @param {string} text + * + * @return {string} The resulting const char *. + */ +function GuiIconText(iconId, text) { + return r.BindGuiIconText( + iconId, + text + ) +} +raylib.GuiIconText = GuiIconText + +/** + * Set default icon drawing size + * + * @param {number} scale + * + * @return {undefined} + */ +function GuiSetIconScale(scale) { + return r.BindGuiSetIconScale( + scale + ) +} +raylib.GuiSetIconScale = GuiSetIconScale /** - * Get gui custom font (global state) + * Get raygui icons data pointer * - * @return {Font} The resulting Font. + * @return {number} The resulting unsigned int *. */ -function GuiGetFont() { - return r.BindGuiGetFont() +function GuiGetIcons() { + return r.BindGuiGetIcons() } -raylib.GuiGetFont = GuiGetFont +raylib.GuiGetIcons = GuiGetIcons /** - * Set one style property + * Load raygui icons file (.rgi) into internal icons data * - * @param {number} control - * @param {number} property - * @param {number} value + * @param {string} fileName + * @param {boolean} loadIconsName * - * @return {undefined} + * @return {number} The resulting char **. */ -function GuiSetStyle(control, property, value) { - return r.BindGuiSetStyle( - control, - property, - value +function GuiLoadIcons(fileName, loadIconsName) { + return r.BindGuiLoadIcons( + fileName, + loadIconsName ) } -raylib.GuiSetStyle = GuiSetStyle +raylib.GuiLoadIcons = GuiLoadIcons /** - * Get one style property + * Draw icon using pixel size at specified position * - * @param {number} control - * @param {number} property + * @param {number} iconId + * @param {number} posX + * @param {number} posY + * @param {number} pixelSize + * @param {Color} color * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiGetStyle(control, property) { - return r.BindGuiGetStyle( - control, - property +function GuiDrawIcon(iconId, posX, posY, pixelSize, color) { + return r.BindGuiDrawIcon( + iconId, + posX, + posY, + pixelSize, + color.r, + color.g, + color.b, + color.a ) } -raylib.GuiGetStyle = GuiGetStyle +raylib.GuiDrawIcon = GuiDrawIcon /** * Window Box control, shows a window that can be closed @@ -10721,7 +11546,7 @@ raylib.GuiGetStyle = GuiGetStyle * @param {Rectangle} bounds * @param {string} title * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiWindowBox(bounds, title) { return r.BindGuiWindowBox( @@ -10740,7 +11565,7 @@ raylib.GuiWindowBox = GuiWindowBox * @param {Rectangle} bounds * @param {string} text * - * @return {undefined} + * @return {number} The resulting int. */ function GuiGroupBox(bounds, text) { return r.BindGuiGroupBox( @@ -10759,7 +11584,7 @@ raylib.GuiGroupBox = GuiGroupBox * @param {Rectangle} bounds * @param {string} text * - * @return {undefined} + * @return {number} The resulting int. */ function GuiLine(bounds, text) { return r.BindGuiLine( @@ -10778,7 +11603,7 @@ raylib.GuiLine = GuiLine * @param {Rectangle} bounds * @param {string} text * - * @return {undefined} + * @return {number} The resulting int. */ function GuiPanel(bounds, text) { return r.BindGuiPanel( @@ -10821,10 +11646,11 @@ raylib.GuiTabBar = GuiTabBar * @param {string} text * @param {Rectangle} content * @param {number} scroll + * @param {number} view * - * @return {Rectangle} The resulting Rectangle. + * @return {number} The resulting int. */ -function GuiScrollPanel(bounds, text, content, scroll) { +function GuiScrollPanel(bounds, text, content, scroll, view) { return r.BindGuiScrollPanel( bounds.x, bounds.y, @@ -10835,7 +11661,8 @@ function GuiScrollPanel(bounds, text, content, scroll) { content.y, content.width, content.height, - scroll + scroll, + view ) } raylib.GuiScrollPanel = GuiScrollPanel @@ -10846,7 +11673,7 @@ raylib.GuiScrollPanel = GuiScrollPanel * @param {Rectangle} bounds * @param {string} text * - * @return {undefined} + * @return {number} The resulting int. */ function GuiLabel(bounds, text) { return r.BindGuiLabel( @@ -10865,7 +11692,7 @@ raylib.GuiLabel = GuiLabel * @param {Rectangle} bounds * @param {string} text * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiButton(bounds, text) { return r.BindGuiButton( @@ -10884,7 +11711,7 @@ raylib.GuiButton = GuiButton * @param {Rectangle} bounds * @param {string} text * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiLabelButton(bounds, text) { return r.BindGuiLabelButton( @@ -10902,9 +11729,9 @@ raylib.GuiLabelButton = GuiLabelButton * * @param {Rectangle} bounds * @param {string} text - * @param {boolean} active + * @param {number} active * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiToggle(bounds, text, active) { return r.BindGuiToggle( @@ -10939,14 +11766,35 @@ function GuiToggleGroup(bounds, text, active) { } raylib.GuiToggleGroup = GuiToggleGroup +/** + * Toggle Slider control, returns true when clicked + * + * @param {Rectangle} bounds + * @param {string} text + * @param {number} active + * + * @return {number} The resulting int. + */ +function GuiToggleSlider(bounds, text, active) { + return r.BindGuiToggleSlider( + bounds.x, + bounds.y, + bounds.width, + bounds.height, + text, + active + ) +} +raylib.GuiToggleSlider = GuiToggleSlider + /** * Check Box control, returns true when active * * @param {Rectangle} bounds * @param {string} text - * @param {boolean} checked + * @param {number} checked * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiCheckBox(bounds, text, checked) { return r.BindGuiCheckBox( @@ -10989,7 +11837,7 @@ raylib.GuiComboBox = GuiComboBox * @param {number} active * @param {boolean} editMode * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiDropdownBox(bounds, text, active, editMode) { return r.BindGuiDropdownBox( @@ -11014,7 +11862,7 @@ raylib.GuiDropdownBox = GuiDropdownBox * @param {number} maxValue * @param {boolean} editMode * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiSpinner(bounds, text, value, minValue, maxValue, editMode) { return r.BindGuiSpinner( @@ -11041,7 +11889,7 @@ raylib.GuiSpinner = GuiSpinner * @param {number} maxValue * @param {boolean} editMode * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiValueBox(bounds, text, value, minValue, maxValue, editMode) { return r.BindGuiValueBox( @@ -11066,7 +11914,7 @@ raylib.GuiValueBox = GuiValueBox * @param {number} textSize * @param {boolean} editMode * - * @return {boolean} The resulting bool. + * @return {number} The resulting int. */ function GuiTextBox(bounds, text, textSize, editMode) { return r.BindGuiTextBox( @@ -11081,29 +11929,6 @@ function GuiTextBox(bounds, text, textSize, editMode) { } raylib.GuiTextBox = GuiTextBox -/** - * Text Box control with multiple lines - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} textSize - * @param {boolean} editMode - * - * @return {boolean} The resulting bool. - */ -function GuiTextBoxMulti(bounds, text, textSize, editMode) { - return r.BindGuiTextBoxMulti( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - textSize, - editMode - ) -} -raylib.GuiTextBoxMulti = GuiTextBoxMulti - /** * Slider control, returns selected value * @@ -11114,7 +11939,7 @@ raylib.GuiTextBoxMulti = GuiTextBoxMulti * @param {number} minValue * @param {number} maxValue * - * @return {number} The resulting float. + * @return {number} The resulting int. */ function GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue) { return r.BindGuiSlider( @@ -11141,7 +11966,7 @@ raylib.GuiSlider = GuiSlider * @param {number} minValue * @param {number} maxValue * - * @return {number} The resulting float. + * @return {number} The resulting int. */ function GuiSliderBar(bounds, textLeft, textRight, value, minValue, maxValue) { return r.BindGuiSliderBar( @@ -11168,7 +11993,7 @@ raylib.GuiSliderBar = GuiSliderBar * @param {number} minValue * @param {number} maxValue * - * @return {number} The resulting float. + * @return {number} The resulting int. */ function GuiProgressBar(bounds, textLeft, textRight, value, minValue, maxValue) { return r.BindGuiProgressBar( @@ -11191,7 +12016,7 @@ raylib.GuiProgressBar = GuiProgressBar * @param {Rectangle} bounds * @param {string} text * - * @return {undefined} + * @return {number} The resulting int. */ function GuiStatusBar(bounds, text) { return r.BindGuiStatusBar( @@ -11210,7 +12035,7 @@ raylib.GuiStatusBar = GuiStatusBar * @param {Rectangle} bounds * @param {string} text * - * @return {undefined} + * @return {number} The resulting int. */ function GuiDummyRec(bounds, text) { return r.BindGuiDummyRec( @@ -11230,10 +12055,11 @@ raylib.GuiDummyRec = GuiDummyRec * @param {string} text * @param {number} spacing * @param {number} subdivs + * @param {number} mouseCell * - * @return {Vector2} The resulting Vector2. + * @return {number} The resulting int. */ -function GuiGrid(bounds, text, spacing, subdivs) { +function GuiGrid(bounds, text, spacing, subdivs, mouseCell) { return r.BindGuiGrid( bounds.x, bounds.y, @@ -11241,7 +12067,8 @@ function GuiGrid(bounds, text, spacing, subdivs) { bounds.height, text, spacing, - subdivs + subdivs, + mouseCell ) } raylib.GuiGrid = GuiGrid @@ -11275,13 +12102,13 @@ raylib.GuiListView = GuiListView * @param {Rectangle} bounds * @param {number} text * @param {number} count - * @param {number} focus * @param {number} scrollIndex * @param {number} active + * @param {number} focus * * @return {number} The resulting int. */ -function GuiListViewEx(bounds, text, count, focus, scrollIndex, active) { +function GuiListViewEx(bounds, text, count, scrollIndex, active, focus) { return r.BindGuiListViewEx( bounds.x, bounds.y, @@ -11289,9 +12116,9 @@ function GuiListViewEx(bounds, text, count, focus, scrollIndex, active) { bounds.height, text, count, - focus, scrollIndex, - active + active, + focus ) } raylib.GuiListViewEx = GuiListViewEx @@ -11353,9 +12180,9 @@ raylib.GuiTextInputBox = GuiTextInputBox * * @param {Rectangle} bounds * @param {string} text - * @param {Color} color + * @param {number} color * - * @return {Color} The resulting Color. + * @return {number} The resulting int. */ function GuiColorPicker(bounds, text, color) { return r.BindGuiColorPicker( @@ -11364,10 +12191,7 @@ function GuiColorPicker(bounds, text, color) { bounds.width, bounds.height, text, - color.r, - color.g, - color.b, - color.a + color ) } raylib.GuiColorPicker = GuiColorPicker @@ -11377,194 +12201,105 @@ raylib.GuiColorPicker = GuiColorPicker * * @param {Rectangle} bounds * @param {string} text - * @param {Color} color - * - * @return {Color} The resulting Color. - */ -function GuiColorPanel(bounds, text, color) { - return r.BindGuiColorPanel( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - color.r, - color.g, - color.b, - color.a - ) -} -raylib.GuiColorPanel = GuiColorPanel - -/** - * Color Bar Alpha control - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} alpha - * - * @return {number} The resulting float. - */ -function GuiColorBarAlpha(bounds, text, alpha) { - return r.BindGuiColorBarAlpha( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - alpha - ) -} -raylib.GuiColorBarAlpha = GuiColorBarAlpha - -/** - * Color Bar Hue control - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} value - * - * @return {number} The resulting float. - */ -function GuiColorBarHue(bounds, text, value) { - return r.BindGuiColorBarHue( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - value - ) -} -raylib.GuiColorBarHue = GuiColorBarHue - -/** - * Load style file over global style variable (.rgs) - * - * @param {string} fileName - * - * @return {undefined} - */ -function GuiLoadStyle(fileName) { - return r.BindGuiLoadStyle( - fileName - ) -} -raylib.GuiLoadStyle = GuiLoadStyle - -/** - * Load style default over global style - * - * @return {undefined} - */ -function GuiLoadStyleDefault() { - return r.BindGuiLoadStyleDefault() -} -raylib.GuiLoadStyleDefault = GuiLoadStyleDefault - -/** - * Enable gui tooltips (global state) - * - * @return {undefined} - */ -function GuiEnableTooltip() { - return r.BindGuiEnableTooltip() -} -raylib.GuiEnableTooltip = GuiEnableTooltip - -/** - * Disable gui tooltips (global state) - * - * @return {undefined} - */ -function GuiDisableTooltip() { - return r.BindGuiDisableTooltip() -} -raylib.GuiDisableTooltip = GuiDisableTooltip - -/** - * Set tooltip string - * - * @param {string} tooltip + * @param {number} color * - * @return {undefined} + * @return {number} The resulting int. */ -function GuiSetTooltip(tooltip) { - return r.BindGuiSetTooltip( - tooltip +function GuiColorPanel(bounds, text, color) { + return r.BindGuiColorPanel( + bounds.x, + bounds.y, + bounds.width, + bounds.height, + text, + color ) } -raylib.GuiSetTooltip = GuiSetTooltip +raylib.GuiColorPanel = GuiColorPanel /** - * Get text with icon id prepended (if supported) + * Color Bar Alpha control * - * @param {number} iconId + * @param {Rectangle} bounds * @param {string} text + * @param {number} alpha * - * @return {string} The resulting const char *. + * @return {number} The resulting int. */ -function GuiIconText(iconId, text) { - return r.BindGuiIconText( - iconId, - text +function GuiColorBarAlpha(bounds, text, alpha) { + return r.BindGuiColorBarAlpha( + bounds.x, + bounds.y, + bounds.width, + bounds.height, + text, + alpha ) } -raylib.GuiIconText = GuiIconText +raylib.GuiColorBarAlpha = GuiColorBarAlpha /** - * Get raygui icons data pointer + * Color Bar Hue control * - * @return {number} The resulting unsigned int *. + * @param {Rectangle} bounds + * @param {string} text + * @param {number} value + * + * @return {number} The resulting int. */ -function GuiGetIcons() { - return r.BindGuiGetIcons() +function GuiColorBarHue(bounds, text, value) { + return r.BindGuiColorBarHue( + bounds.x, + bounds.y, + bounds.width, + bounds.height, + text, + value + ) } -raylib.GuiGetIcons = GuiGetIcons +raylib.GuiColorBarHue = GuiColorBarHue /** - * Load raygui icons file (.rgi) into internal icons data + * Color Picker control that avoids conversion to RGB on each call (multiple color controls) * - * @param {string} fileName - * @param {boolean} loadIconsName + * @param {Rectangle} bounds + * @param {string} text + * @param {number} colorHsv * - * @return {number} The resulting char **. + * @return {number} The resulting int. */ -function GuiLoadIcons(fileName, loadIconsName) { - return r.BindGuiLoadIcons( - fileName, - loadIconsName - ) -} -raylib.GuiLoadIcons = GuiLoadIcons - -function GuiDrawIcon(iconId, posX, posY, pixelSize, color) { - return r.BindGuiDrawIcon( - iconId, - posX, - posY, - pixelSize, - color.r, - color.g, - color.b, - color.a +function GuiColorPickerHSV(bounds, text, colorHsv) { + return r.BindGuiColorPickerHSV( + bounds.x, + bounds.y, + bounds.width, + bounds.height, + text, + colorHsv ) } -raylib.GuiDrawIcon = GuiDrawIcon +raylib.GuiColorPickerHSV = GuiColorPickerHSV /** - * Set icon drawing size + * Color Panel control that returns HSV color value, used by GuiColorPickerHSV() * - * @param {number} scale + * @param {Rectangle} bounds + * @param {string} text + * @param {number} colorHsv * - * @return {undefined} + * @return {number} The resulting int. */ -function GuiSetIconScale(scale) { - return r.BindGuiSetIconScale( - scale +function GuiColorPanelHSV(bounds, text, colorHsv) { + return r.BindGuiColorPanelHSV( + bounds.x, + bounds.y, + bounds.width, + bounds.height, + text, + colorHsv ) } -raylib.GuiSetIconScale = GuiSetIconScale +raylib.GuiColorPanelHSV = GuiColorPanelHSV /** * Choose the current matrix to be transformed @@ -12150,6 +12885,36 @@ function rlActiveDrawBuffers(count) { } raylib.rlActiveDrawBuffers = rlActiveDrawBuffers +/** + * Blit active framebuffer to main framebuffer + * + * @param {number} srcX + * @param {number} srcY + * @param {number} srcWidth + * @param {number} srcHeight + * @param {number} dstX + * @param {number} dstY + * @param {number} dstWidth + * @param {number} dstHeight + * @param {number} bufferMask + * + * @return {undefined} + */ +function rlBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask) { + return r.BindrlBlitFramebuffer( + srcX, + srcY, + srcWidth, + srcHeight, + dstX, + dstY, + dstWidth, + dstHeight, + bufferMask + ) +} +raylib.rlBlitFramebuffer = rlBlitFramebuffer + /** * Enable color blending * @@ -12295,7 +13060,17 @@ function rlEnableWireMode() { raylib.rlEnableWireMode = rlEnableWireMode /** - * Disable wire mode + * Enable point mode + * + * @return {undefined} + */ +function rlEnablePointMode() { + return r.BindrlEnablePointMode() +} +raylib.rlEnablePointMode = rlEnablePointMode + +/** + * Disable wire mode ( and point ) maybe rename * * @return {undefined} */ @@ -15326,6 +16101,14 @@ raylib.FLAG_WINDOW_HIGHDPI = 8192 */ raylib.FLAG_WINDOW_MOUSE_PASSTHROUGH = 16384 +/** + * Set to run program in borderless windowed mode + * + * @type {number} + * @constant + */ +raylib.FLAG_BORDERLESS_WINDOWED_MODE = 32768 + /** * Set to try enabling MSAA 4X * @@ -17102,13 +17885,37 @@ raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9 */ raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10 +/** + * 16 bpp (1 channel - half float) + * + * @type {number} + * @constant + */ +raylib.PIXELFORMAT_UNCOMPRESSED_R16 = 11 + +/** + * 16*3 bpp (3 channels - half float) + * + * @type {number} + * @constant + */ +raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12 + +/** + * 16*4 bpp (4 channels - half float) + * + * @type {number} + * @constant + */ +raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13 + /** * 4 bpp (no alpha) * * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 11 +raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 14 /** * 4 bpp (1 bit alpha) @@ -17116,7 +17923,7 @@ raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 11 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12 +raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15 /** * 8 bpp @@ -17124,7 +17931,7 @@ raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13 +raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16 /** * 8 bpp @@ -17132,7 +17939,7 @@ raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14 +raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17 /** * 4 bpp @@ -17140,7 +17947,7 @@ raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 15 +raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 18 /** * 4 bpp @@ -17148,7 +17955,7 @@ raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 15 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 16 +raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 19 /** * 8 bpp @@ -17156,7 +17963,7 @@ raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 16 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17 +raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20 /** * 4 bpp @@ -17164,7 +17971,7 @@ raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 18 +raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 21 /** * 4 bpp @@ -17172,7 +17979,7 @@ raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 18 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19 +raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22 /** * 8 bpp @@ -17180,7 +17987,7 @@ raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20 +raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23 /** * 2 bpp @@ -17188,7 +17995,7 @@ raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20 * @type {number} * @constant */ -raylib.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21 +raylib.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24 /** * No filter, just pixel approximation @@ -17630,6 +18437,54 @@ raylib.TEXT_ALIGN_CENTER = 1 */ raylib.TEXT_ALIGN_RIGHT = 2 +/** + * + * + * @type {number} + * @constant + */ +raylib.TEXT_ALIGN_TOP = 0 + +/** + * + * + * @type {number} + * @constant + */ +raylib.TEXT_ALIGN_MIDDLE = 1 + +/** + * + * + * @type {number} + * @constant + */ +raylib.TEXT_ALIGN_BOTTOM = 2 + +/** + * + * + * @type {number} + * @constant + */ +raylib.TEXT_WRAP_NONE = 0 + +/** + * + * + * @type {number} + * @constant + */ +raylib.TEXT_WRAP_CHAR = 1 + +/** + * + * + * @type {number} + * @constant + */ +raylib.TEXT_WRAP_WORD = 2 + /** * * @@ -17663,7 +18518,7 @@ raylib.BUTTON = 2 raylib.TOGGLE = 3 /** - * Used also for: SLIDERBAR + * Used also for: SLIDERBAR, TOGGLESLIDER * * @type {number} * @constant @@ -17759,7 +18614,7 @@ raylib.SCROLLBAR = 14 raylib.STATUSBAR = 15 /** - * + * Control border color in STATE_NORMAL * * @type {number} * @constant @@ -17767,7 +18622,7 @@ raylib.STATUSBAR = 15 raylib.BORDER_COLOR_NORMAL = 0 /** - * + * Control base color in STATE_NORMAL * * @type {number} * @constant @@ -17775,7 +18630,7 @@ raylib.BORDER_COLOR_NORMAL = 0 raylib.BASE_COLOR_NORMAL = 1 /** - * + * Control text color in STATE_NORMAL * * @type {number} * @constant @@ -17783,7 +18638,7 @@ raylib.BASE_COLOR_NORMAL = 1 raylib.TEXT_COLOR_NORMAL = 2 /** - * + * Control border color in STATE_FOCUSED * * @type {number} * @constant @@ -17791,7 +18646,7 @@ raylib.TEXT_COLOR_NORMAL = 2 raylib.BORDER_COLOR_FOCUSED = 3 /** - * + * Control base color in STATE_FOCUSED * * @type {number} * @constant @@ -17799,7 +18654,7 @@ raylib.BORDER_COLOR_FOCUSED = 3 raylib.BASE_COLOR_FOCUSED = 4 /** - * + * Control text color in STATE_FOCUSED * * @type {number} * @constant @@ -17807,7 +18662,7 @@ raylib.BASE_COLOR_FOCUSED = 4 raylib.TEXT_COLOR_FOCUSED = 5 /** - * + * Control border color in STATE_PRESSED * * @type {number} * @constant @@ -17815,7 +18670,7 @@ raylib.TEXT_COLOR_FOCUSED = 5 raylib.BORDER_COLOR_PRESSED = 6 /** - * + * Control base color in STATE_PRESSED * * @type {number} * @constant @@ -17823,7 +18678,7 @@ raylib.BORDER_COLOR_PRESSED = 6 raylib.BASE_COLOR_PRESSED = 7 /** - * + * Control text color in STATE_PRESSED * * @type {number} * @constant @@ -17831,7 +18686,7 @@ raylib.BASE_COLOR_PRESSED = 7 raylib.TEXT_COLOR_PRESSED = 8 /** - * + * Control border color in STATE_DISABLED * * @type {number} * @constant @@ -17839,7 +18694,7 @@ raylib.TEXT_COLOR_PRESSED = 8 raylib.BORDER_COLOR_DISABLED = 9 /** - * + * Control base color in STATE_DISABLED * * @type {number} * @constant @@ -17847,7 +18702,7 @@ raylib.BORDER_COLOR_DISABLED = 9 raylib.BASE_COLOR_DISABLED = 10 /** - * + * Control text color in STATE_DISABLED * * @type {number} * @constant @@ -17855,7 +18710,7 @@ raylib.BASE_COLOR_DISABLED = 10 raylib.TEXT_COLOR_DISABLED = 11 /** - * + * Control border size, 0 for no border * * @type {number} * @constant @@ -17863,7 +18718,7 @@ raylib.TEXT_COLOR_DISABLED = 11 raylib.BORDER_WIDTH = 12 /** - * + * Control text padding, not considering border * * @type {number} * @constant @@ -17871,21 +18726,13 @@ raylib.BORDER_WIDTH = 12 raylib.TEXT_PADDING = 13 /** - * + * Control text horizontal alignment inside control text bound (after border and padding) * * @type {number} * @constant */ raylib.TEXT_ALIGNMENT = 14 -/** - * - * - * @type {number} - * @constant - */ -raylib.RESERVED = 15 - /** * Text size (glyphs max height) * @@ -17918,6 +18765,30 @@ raylib.LINE_COLOR = 18 */ raylib.BACKGROUND_COLOR = 19 +/** + * Text spacing between lines + * + * @type {number} + * @constant + */ +raylib.TEXT_LINE_SPACING = 20 + +/** + * Text vertical alignment inside text bounds (after border and padding) + * + * @type {number} + * @constant + */ +raylib.TEXT_ALIGNMENT_VERTICAL = 21 + +/** + * Text wrap-mode inside text bounds + * + * @type {number} + * @constant + */ +raylib.TEXT_WRAP_MODE = 22 + /** * ToggleGroup separation between toggles * @@ -17951,7 +18822,7 @@ raylib.SLIDER_PADDING = 17 raylib.PROGRESS_PADDING = 16 /** - * + * ScrollBar arrows size * * @type {number} * @constant @@ -17959,7 +18830,7 @@ raylib.PROGRESS_PADDING = 16 raylib.ARROWS_SIZE = 16 /** - * + * ScrollBar arrows visible * * @type {number} * @constant @@ -17967,7 +18838,7 @@ raylib.ARROWS_SIZE = 16 raylib.ARROWS_VISIBLE = 17 /** - * (SLIDERBAR, SLIDER_PADDING) + * ScrollBar slider internal padding * * @type {number} * @constant @@ -17975,7 +18846,7 @@ raylib.ARROWS_VISIBLE = 17 raylib.SCROLL_SLIDER_PADDING = 18 /** - * + * ScrollBar slider size * * @type {number} * @constant @@ -17983,7 +18854,7 @@ raylib.SCROLL_SLIDER_PADDING = 18 raylib.SCROLL_SLIDER_SIZE = 19 /** - * + * ScrollBar scroll padding from arrows * * @type {number} * @constant @@ -17991,7 +18862,7 @@ raylib.SCROLL_SLIDER_SIZE = 19 raylib.SCROLL_PADDING = 20 /** - * + * ScrollBar scrolling speed * * @type {number} * @constant @@ -18039,20 +18910,12 @@ raylib.ARROW_PADDING = 16 raylib.DROPDOWN_ITEMS_SPACING = 17 /** - * TextBox/TextBoxMulti/ValueBox/Spinner inner text padding - * - * @type {number} - * @constant - */ -raylib.TEXT_INNER_PADDING = 16 - -/** - * TextBoxMulti lines separation + * TextBox in read-only mode: 0-text editable, 1-text no-editable * * @type {number} * @constant */ -raylib.TEXT_LINES_SPACING = 17 +raylib.TEXT_READONLY = 16 /** * Spinner left/right buttons width @@ -18095,7 +18958,7 @@ raylib.LIST_ITEMS_SPACING = 17 raylib.SCROLLBAR_WIDTH = 18 /** - * ListView scrollbar side (0-left, 1-right) + * ListView scrollbar side (0-SCROLLBAR_LEFT_SIDE, 1-SCROLLBAR_RIGHT_SIDE) * * @type {number} * @constant @@ -19900,7 +20763,7 @@ raylib.ICON_FILE = 218 * @type {number} * @constant */ -raylib.ICON_219 = 219 +raylib.ICON_SAND_TIMER = 219 /** * @@ -20230,6 +21093,14 @@ raylib.RL_OPENGL_43 = 4 */ raylib.RL_OPENGL_ES_20 = 5 +/** + * OpenGL ES 3.0 (GLSL 300 es) + * + * @type {number} + * @constant + */ +raylib.RL_OPENGL_ES_30 = 6 + /** * Display all logs * @@ -20374,13 +21245,37 @@ raylib.RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9 */ raylib.RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10 +/** + * 16 bpp (1 channel - half float) + * + * @type {number} + * @constant + */ +raylib.RL_PIXELFORMAT_UNCOMPRESSED_R16 = 11 + +/** + * 16*3 bpp (3 channels - half float) + * + * @type {number} + * @constant + */ +raylib.RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12 + +/** + * 16*4 bpp (4 channels - half float) + * + * @type {number} + * @constant + */ +raylib.RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13 + /** * 4 bpp (no alpha) * * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11 +raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 14 /** * 4 bpp (1 bit alpha) @@ -20388,7 +21283,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGB = 11 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12 +raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15 /** * 8 bpp @@ -20396,7 +21291,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA = 12 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13 +raylib.RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16 /** * 8 bpp @@ -20404,7 +21299,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA = 13 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14 +raylib.RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17 /** * 4 bpp @@ -20412,7 +21307,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_DXT5_RGBA = 14 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15 +raylib.RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 18 /** * 4 bpp @@ -20420,7 +21315,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ETC1_RGB = 15 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16 +raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 19 /** * 8 bpp @@ -20428,7 +21323,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_RGB = 16 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17 +raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20 /** * 4 bpp @@ -20436,7 +21331,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 17 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18 +raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 21 /** * 4 bpp @@ -20444,7 +21339,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGB = 18 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19 +raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22 /** * 8 bpp @@ -20452,7 +21347,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_PVRT_RGBA = 19 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20 +raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23 /** * 2 bpp @@ -20460,7 +21355,7 @@ raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 20 * @type {number} * @constant */ -raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 21 +raylib.RL_PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24 /** * No filter, just pixel approximation From 3b0904522e1ff30f7326613a1369f082cc0e4f55 Mon Sep 17 00:00:00 2001 From: David Konsumer Date: Sat, 18 Nov 2023 15:52:22 -0800 Subject: [PATCH 3/7] update headers --- src/extras/raygui.h | 2792 ++++++++++++++++++++++++++++--------------- src/extras/rlgl.h | 379 ++++-- 2 files changed, 2092 insertions(+), 1079 deletions(-) diff --git a/src/extras/raygui.h b/src/extras/raygui.h index 833725d..987e221 100644 --- a/src/extras/raygui.h +++ b/src/extras/raygui.h @@ -1,32 +1,55 @@ /******************************************************************************************* * -* raygui v3.5-dev - A simple and easy-to-use immediate-mode gui library +* raygui v4.0 - A simple and easy-to-use immediate-mode gui library * * DESCRIPTION: +* raygui is a tools-dev-focused immediate-mode-gui library based on raylib but also +* available as a standalone library, as long as input and drawing functions are provided. * -* raygui is a tools-dev-focused immediate-mode-gui library based on raylib but also -* available as a standalone library, as long as input and drawing functions are provided. +* FEATURES: +* - Immediate-mode gui, minimal retained data +* - +25 controls provided (basic and advanced) +* - Styling system for colors, font and metrics +* - Icons supported, embedded as a 1-bit icons pack +* - Standalone mode option (custom input/graphics backend) +* - Multiple support tools provided for raygui development * -* Controls provided: +* POSSIBLE IMPROVEMENTS: +* - Better standalone mode API for easy plug of custom backends +* - Externalize required inputs, allow user easier customization * -* # Container/separators Controls +* LIMITATIONS: +* - No editable multi-line word-wraped text box supported +* - No auto-layout mechanism, up to the user to define controls position and size +* - Standalone mode requires library modification and some user work to plug another backend +* +* NOTES: +* - WARNING: GuiLoadStyle() and GuiLoadStyle{Custom}() functions, allocate memory for +* font atlas recs and glyphs, freeing that memory is (usually) up to the user, +* no unload function is explicitly provided... but note that GuiLoadStyleDefaulf() unloads +* by default any previously loaded font (texture, recs, glyphs). +* - Global UI alpha (guiAlpha) is applied inside GuiDrawRectangle() and GuiDrawText() functions +* +* CONTROLS PROVIDED: +* # Container/separators Controls * - WindowBox --> StatusBar, Panel * - GroupBox --> Line * - Line * - Panel --> StatusBar * - ScrollPanel --> StatusBar +* - TabBar --> Button * -* # Basic Controls +* # Basic Controls * - Label -* - Button * - LabelButton --> Label +* - Button * - Toggle * - ToggleGroup --> Toggle +* - ToggleSlider * - CheckBox * - ComboBox * - DropdownBox * - TextBox -* - TextBoxMulti * - ValueBox --> TextBox * - Spinner --> Button, ValueBox * - Slider @@ -36,88 +59,141 @@ * - DummyRec * - Grid * -* # Advance Controls +* # Advance Controls * - ListView * - ColorPicker --> ColorPanel, ColorBarHue * - MessageBox --> Window, Label, Button * - TextInputBox --> Window, Label, TextBox, Button * -* It also provides a set of functions for styling the controls based on its properties (size, color). +* It also provides a set of functions for styling the controls based on its properties (size, color). * * * RAYGUI STYLE (guiStyle): +* raygui uses a global data array for all gui style properties (allocated on data segment by default), +* when a new style is loaded, it is loaded over the global style... but a default gui style could always be +* recovered with GuiLoadStyleDefault() function, that overwrites the current style to the default one * -* raygui uses a global data array for all gui style properties (allocated on data segment by default), -* when a new style is loaded, it is loaded over the global style... but a default gui style could always be -* recovered with GuiLoadStyleDefault() function, that overwrites the current style to the default one +* The global style array size is fixed and depends on the number of controls and properties: * -* The global style array size is fixed and depends on the number of controls and properties: +* static unsigned int guiStyle[RAYGUI_MAX_CONTROLS*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED)]; * -* static unsigned int guiStyle[RAYGUI_MAX_CONTROLS*(RAYGUI_MAX_PROPS_BASE + RAYGUI_MAX_PROPS_EXTENDED)]; +* guiStyle size is by default: 16*(16 + 8) = 384*4 = 1536 bytes = 1.5 KB * -* guiStyle size is by default: 16*(16 + 8) = 384*4 = 1536 bytes = 1.5 KB +* Note that the first set of BASE properties (by default guiStyle[0..15]) belong to the generic style +* used for all controls, when any of those base values is set, it is automatically populated to all +* controls, so, specific control values overwriting generic style should be set after base values. * -* Note that the first set of BASE properties (by default guiStyle[0..15]) belong to the generic style -* used for all controls, when any of those base values is set, it is automatically populated to all -* controls, so, specific control values overwriting generic style should be set after base values. +* After the first BASE set we have the EXTENDED properties (by default guiStyle[16..23]), those +* properties are actually common to all controls and can not be overwritten individually (like BASE ones) +* Some of those properties are: TEXT_SIZE, TEXT_SPACING, LINE_COLOR, BACKGROUND_COLOR * -* After the first BASE set we have the EXTENDED properties (by default guiStyle[16..23]), those -* properties are actually common to all controls and can not be overwritten individually (like BASE ones) -* Some of those properties are: TEXT_SIZE, TEXT_SPACING, LINE_COLOR, BACKGROUND_COLOR +* Custom control properties can be defined using the EXTENDED properties for each independent control. * -* Custom control properties can be defined using the EXTENDED properties for each independent control. -* -* TOOL: rGuiStyler is a visual tool to customize raygui style. +* TOOL: rGuiStyler is a visual tool to customize raygui style: github.com/raysan5/rguistyler * * * RAYGUI ICONS (guiIcons): +* raygui could use a global array containing icons data (allocated on data segment by default), +* a custom icons set could be loaded over this array using GuiLoadIcons(), but loaded icons set +* must be same RAYGUI_ICON_SIZE and no more than RAYGUI_ICON_MAX_ICONS will be loaded * -* raygui could use a global array containing icons data (allocated on data segment by default), -* a custom icons set could be loaded over this array using GuiLoadIcons(), but loaded icons set -* must be same RAYGUI_ICON_SIZE and no more than RAYGUI_ICON_MAX_ICONS will be loaded +* Every icon is codified in binary form, using 1 bit per pixel, so, every 16x16 icon +* requires 8 integers (16*16/32) to be stored in memory. * -* Every icon is codified in binary form, using 1 bit per pixel, so, every 16x16 icon -* requires 8 integers (16*16/32) to be stored in memory. +* When the icon is draw, actually one quad per pixel is drawn if the bit for that pixel is set. * -* When the icon is draw, actually one quad per pixel is drawn if the bit for that pixel is set. +* The global icons array size is fixed and depends on the number of icons and size: * -* The global icons array size is fixed and depends on the number of icons and size: +* static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS]; * -* static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS]; +* guiIcons size is by default: 256*(16*16/32) = 2048*4 = 8192 bytes = 8 KB * -* guiIcons size is by default: 256*(16*16/32) = 2048*4 = 8192 bytes = 8 KB +* TOOL: rGuiIcons is a visual tool to customize/create raygui icons: github.com/raysan5/rguiicons * -* TOOL: rGuiIcons is a visual tool to customize raygui icons and create new ones. +* RAYGUI LAYOUT: +* raygui currently does not provide an auto-layout mechanism like other libraries, +* layouts must be defined manually on controls drawing, providing the right bounds Rectangle for it. * +* TOOL: rGuiLayout is a visual tool to create raygui layouts: github.com/raysan5/rguilayout * * CONFIGURATION: +* #define RAYGUI_IMPLEMENTATION +* Generates the implementation of the library into the included file. +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation. * -* #define RAYGUI_IMPLEMENTATION -* Generates the implementation of the library into the included file. -* If not defined, the library is in header only mode and can be included in other headers -* or source files without problems. But only ONE file should hold the implementation. +* #define RAYGUI_STANDALONE +* Avoid raylib.h header inclusion in this file. Data types defined on raylib are defined +* internally in the library and input management and drawing functions must be provided by +* the user (check library implementation for further details). * -* #define RAYGUI_STANDALONE -* Avoid raylib.h header inclusion in this file. Data types defined on raylib are defined -* internally in the library and input management and drawing functions must be provided by -* the user (check library implementation for further details). +* #define RAYGUI_NO_ICONS +* Avoid including embedded ricons data (256 icons, 16x16 pixels, 1-bit per pixel, 2KB) * -* #define RAYGUI_NO_ICONS -* Avoid including embedded ricons data (256 icons, 16x16 pixels, 1-bit per pixel, 2KB) +* #define RAYGUI_CUSTOM_ICONS +* Includes custom ricons.h header defining a set of custom icons, +* this file can be generated using rGuiIcons tool * -* #define RAYGUI_CUSTOM_ICONS -* Includes custom ricons.h header defining a set of custom icons, -* this file can be generated using rGuiIcons tool +* #define RAYGUI_DEBUG_RECS_BOUNDS +* Draw control bounds rectangles for debug * +* #define RAYGUI_DEBUG_TEXT_BOUNDS +* Draw text bounds rectangles for debug * * VERSIONS HISTORY: -* 3.5 (xx-xxx-2022) ADDED: Multiple new icons, useful for code editing tools -* ADDED: GuiTabBar(), based on GuiToggle() +* 4.0 (12-Sep-2023) ADDED: GuiToggleSlider() +* ADDED: GuiColorPickerHSV() and GuiColorPanelHSV() +* ADDED: Multiple new icons, mostly compiler related +* ADDED: New DEFAULT properties: TEXT_LINE_SPACING, TEXT_ALIGNMENT_VERTICAL, TEXT_WRAP_MODE +* ADDED: New enum values: GuiTextAlignment, GuiTextAlignmentVertical, GuiTextWrapMode +* ADDED: Support loading styles with custom font charset from external file +* REDESIGNED: GuiTextBox(), support mouse cursor positioning +* REDESIGNED: GuiDrawText(), support multiline and word-wrap modes (read only) +* REDESIGNED: GuiProgressBar() to be more visual, progress affects border color +* REDESIGNED: Global alpha consideration moved to GuiDrawRectangle() and GuiDrawText() +* REDESIGNED: GuiScrollPanel(), get parameters by reference and return result value +* REDESIGNED: GuiToggleGroup(), get parameters by reference and return result value +* REDESIGNED: GuiComboBox(), get parameters by reference and return result value +* REDESIGNED: GuiCheckBox(), get parameters by reference and return result value +* REDESIGNED: GuiSlider(), get parameters by reference and return result value +* REDESIGNED: GuiSliderBar(), get parameters by reference and return result value +* REDESIGNED: GuiProgressBar(), get parameters by reference and return result value +* REDESIGNED: GuiListView(), get parameters by reference and return result value +* REDESIGNED: GuiColorPicker(), get parameters by reference and return result value +* REDESIGNED: GuiColorPanel(), get parameters by reference and return result value +* REDESIGNED: GuiColorBarAlpha(), get parameters by reference and return result value +* REDESIGNED: GuiColorBarHue(), get parameters by reference and return result value +* REDESIGNED: GuiGrid(), get parameters by reference and return result value +* REDESIGNED: GuiGrid(), added extra parameter +* REDESIGNED: GuiListViewEx(), change parameters order +* REDESIGNED: All controls return result as int value +* REVIEWED: GuiScrollPanel() to avoid smallish scroll-bars +* REVIEWED: All examples and specially controls_test_suite +* RENAMED: gui_file_dialog module to gui_window_file_dialog +* UPDATED: All styles to include ISO-8859-15 charset (as much as possible) +* +* 3.6 (10-May-2023) ADDED: New icon: SAND_TIMER +* ADDED: GuiLoadStyleFromMemory() (binary only) +* REVIEWED: GuiScrollBar() horizontal movement key +* REVIEWED: GuiTextBox() crash on cursor movement +* REVIEWED: GuiTextBox(), additional inputs support +* REVIEWED: GuiLabelButton(), avoid text cut +* REVIEWED: GuiTextInputBox(), password input +* REVIEWED: Local GetCodepointNext(), aligned with raylib +* REDESIGNED: GuiSlider*()/GuiScrollBar() to support out-of-bounds +* +* 3.5 (20-Apr-2023) ADDED: GuiTabBar(), based on GuiToggle() +* ADDED: Helper functions to split text in separate lines +* ADDED: Multiple new icons, useful for code editing tools * REMOVED: Unneeded icon editing functions -* REDESIGNED: GuiDrawText() to divide drawing by lines +* REMOVED: GuiTextBoxMulti(), very limited and broken * REMOVED: MeasureTextEx() dependency, logic directly implemented * REMOVED: DrawTextEx() dependency, logic directly implemented -* ADDED: Helper functions to split text in separate lines +* REVIEWED: GuiScrollBar(), improve mouse-click behaviour +* REVIEWED: Library header info, more info, better organized +* REDESIGNED: GuiTextBox() to support cursor movement +* REDESIGNED: GuiDrawText() to divide drawing by lines +* * 3.2 (22-May-2022) RENAMED: Some enum values, for unification, avoiding prefixes * REMOVED: GuiScrollBar(), only internal * REDESIGNED: GuiPanel() to support text parameter @@ -127,6 +203,7 @@ * REDESIGNED: GuiColorBarAlpha() to support text parameter * REDESIGNED: GuiColorBarHue() to support text parameter * REDESIGNED: GuiTextInputBox() to support password +* * 3.1 (12-Jan-2022) REVIEWED: Default style for consistency (aligned with rGuiLayout v2.5 tool) * REVIEWED: GuiLoadStyle() to support compressed font atlas image data and unload previous textures * REVIEWED: External icons usage logic @@ -134,10 +211,12 @@ * RENAMED: Multiple controls properties definitions to prepend RAYGUI_ * RENAMED: RICON_ references to RAYGUI_ICON_ for library consistency * Projects updated and multiple tweaks +* * 3.0 (04-Nov-2021) Integrated ricons data to avoid external file * REDESIGNED: GuiTextBoxMulti() * REMOVED: GuiImageButton*() * Multiple minor tweaks and bugs corrected +* * 2.9 (17-Mar-2021) REMOVED: Tooltip API * 2.8 (03-May-2020) Centralized rectangles drawing to GuiDrawRectangle() * 2.7 (20-Feb-2020) ADDED: Possible tooltips API @@ -147,6 +226,7 @@ * Replaced property INNER_PADDING by TEXT_PADDING, renamed some properties * ADDED: 8 new custom styles ready to use * Multiple minor tweaks and bugs corrected +* * 2.5 (28-May-2019) Implemented extended GuiTextBox(), GuiValueBox(), GuiSpinner() * 2.3 (29-Apr-2019) ADDED: rIcons auxiliar library and support for it, multiple controls reviewed * Refactor all controls drawing mechanism to use control state @@ -165,14 +245,44 @@ * 0.9 (07-Mar-2016) Reviewed and tested by Albert Martos, Ian Eito, Sergio Martinez and Ramon Santamaria. * 0.8 (27-Aug-2015) Initial release. Implemented by Kevin Gato, Daniel Nicolás and Ramon Santamaria. * +* DEPENDENCIES: +* raylib 5.0 - Inputs reading (keyboard/mouse), shapes drawing, font loading and text drawing * -* CONTRIBUTORS: +* STANDALONE MODE: +* By default raygui depends on raylib mostly for the inputs and the drawing functionality but that dependency can be disabled +* with the config flag RAYGUI_STANDALONE. In that case is up to the user to provide another backend to cover library needs. +* +* The following functions should be redefined for a custom backend: +* +* - Vector2 GetMousePosition(void); +* - float GetMouseWheelMove(void); +* - bool IsMouseButtonDown(int button); +* - bool IsMouseButtonPressed(int button); +* - bool IsMouseButtonReleased(int button); +* - bool IsKeyDown(int key); +* - bool IsKeyPressed(int key); +* - int GetCharPressed(void); // -- GuiTextBox(), GuiValueBox() +* +* - void DrawRectangle(int x, int y, int width, int height, Color color); // -- GuiDrawRectangle() +* - void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); // -- GuiColorPicker() * +* - Font GetFontDefault(void); // -- GuiLoadStyleDefault() +* - Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // -- GuiLoadStyle() +* - Texture2D LoadTextureFromImage(Image image); // -- GuiLoadStyle(), required to load texture from embedded font atlas image +* - void SetShapesTexture(Texture2D tex, Rectangle rec); // -- GuiLoadStyle(), required to set shapes rec to font white rec (optimization) +* - char *LoadFileText(const char *fileName); // -- GuiLoadStyle(), required to load charset data +* - void UnloadFileText(char *text); // -- GuiLoadStyle(), required to unload charset data +* - const char *GetDirectoryPath(const char *filePath); // -- GuiLoadStyle(), required to find charset/font file from text .rgs +* - int *LoadCodepoints(const char *text, int *count); // -- GuiLoadStyle(), required to load required font codepoints list +* - void UnloadCodepoints(int *codepoints); // -- GuiLoadStyle(), required to unload codepoints list +* - unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // -- GuiLoadStyle() +* +* CONTRIBUTORS: * Ramon Santamaria: Supervision, review, redesign, update and maintenance * Vlad Adrian: Complete rewrite of GuiTextBox() to support extended features (2019) * Sergio Martinez: Review, testing (2015) and redesign of multiple controls (2018) -* Adria Arranz: Testing and Implementation of additional controls (2018) -* Jordi Jorba: Testing and Implementation of additional controls (2018) +* Adria Arranz: Testing and implementation of additional controls (2018) +* Jordi Jorba: Testing and implementation of additional controls (2018) * Albert Martos: Review and testing of the library (2015) * Ian Eito: Review and testing of the library (2015) * Kevin Gato: Initial implementation of basic components (2014) @@ -203,7 +313,10 @@ #ifndef RAYGUI_H #define RAYGUI_H -#define RAYGUI_VERSION "3.2" +#define RAYGUI_VERSION_MAJOR 4 +#define RAYGUI_VERSION_MINOR 0 +#define RAYGUI_VERSION_PATCH 0 +#define RAYGUI_VERSION "4.0" #if !defined(RAYGUI_STANDALONE) #include "raylib.h" @@ -328,37 +441,69 @@ } Font; #endif + // Style property +// NOTE: Used when exporting style as code for convenience typedef struct GuiStyleProp { - unsigned short controlId; - unsigned short propertyId; - unsigned int propertyValue; + unsigned short controlId; // Control identifier + unsigned short propertyId; // Property identifier + int propertyValue; // Property value } GuiStyleProp; +/* +// Controls text style -NOT USED- +// NOTE: Text style is defined by control +typedef struct GuiTextStyle { + unsigned int size; + int charSpacing; + int lineSpacing; + int alignmentH; + int alignmentV; + int padding; +} GuiTextStyle; +*/ + // Gui control state typedef enum { STATE_NORMAL = 0, STATE_FOCUSED, STATE_PRESSED, - STATE_DISABLED, + STATE_DISABLED } GuiState; // Gui control text alignment typedef enum { TEXT_ALIGN_LEFT = 0, TEXT_ALIGN_CENTER, - TEXT_ALIGN_RIGHT, + TEXT_ALIGN_RIGHT } GuiTextAlignment; +// Gui control text alignment vertical +// NOTE: Text vertical position inside the text bounds +typedef enum { + TEXT_ALIGN_TOP = 0, + TEXT_ALIGN_MIDDLE, + TEXT_ALIGN_BOTTOM +} GuiTextAlignmentVertical; + +// Gui control text wrap mode +// NOTE: Useful for multiline text +typedef enum { + TEXT_WRAP_NONE = 0, + TEXT_WRAP_CHAR, + TEXT_WRAP_WORD +} GuiTextWrapMode; + // Gui controls typedef enum { // Default -> populates to all controls when set DEFAULT = 0, + // Basic controls LABEL, // Used also for: LABELBUTTON BUTTON, TOGGLE, // Used also for: TOGGLEGROUP - SLIDER, // Used also for: SLIDERBAR + SLIDER, // Used also for: SLIDERBAR, TOGGLESLIDER PROGRESSBAR, CHECKBOX, COMBOBOX, @@ -375,37 +520,55 @@ typedef enum { // Gui base properties for every control // NOTE: RAYGUI_MAX_PROPS_BASE properties (by default 16 properties) typedef enum { - BORDER_COLOR_NORMAL = 0, - BASE_COLOR_NORMAL, - TEXT_COLOR_NORMAL, - BORDER_COLOR_FOCUSED, - BASE_COLOR_FOCUSED, - TEXT_COLOR_FOCUSED, - BORDER_COLOR_PRESSED, - BASE_COLOR_PRESSED, - TEXT_COLOR_PRESSED, - BORDER_COLOR_DISABLED, - BASE_COLOR_DISABLED, - TEXT_COLOR_DISABLED, - BORDER_WIDTH, - TEXT_PADDING, - TEXT_ALIGNMENT, - RESERVED + BORDER_COLOR_NORMAL = 0, // Control border color in STATE_NORMAL + BASE_COLOR_NORMAL, // Control base color in STATE_NORMAL + TEXT_COLOR_NORMAL, // Control text color in STATE_NORMAL + BORDER_COLOR_FOCUSED, // Control border color in STATE_FOCUSED + BASE_COLOR_FOCUSED, // Control base color in STATE_FOCUSED + TEXT_COLOR_FOCUSED, // Control text color in STATE_FOCUSED + BORDER_COLOR_PRESSED, // Control border color in STATE_PRESSED + BASE_COLOR_PRESSED, // Control base color in STATE_PRESSED + TEXT_COLOR_PRESSED, // Control text color in STATE_PRESSED + BORDER_COLOR_DISABLED, // Control border color in STATE_DISABLED + BASE_COLOR_DISABLED, // Control base color in STATE_DISABLED + TEXT_COLOR_DISABLED, // Control text color in STATE_DISABLED + BORDER_WIDTH, // Control border size, 0 for no border + //TEXT_SIZE, // Control text size (glyphs max height) -> GLOBAL for all controls + //TEXT_SPACING, // Control text spacing between glyphs -> GLOBAL for all controls + //TEXT_LINE_SPACING // Control text spacing between lines -> GLOBAL for all controls + TEXT_PADDING, // Control text padding, not considering border + TEXT_ALIGNMENT, // Control text horizontal alignment inside control text bound (after border and padding) + //TEXT_WRAP_MODE // Control text wrap-mode inside text bounds -> GLOBAL for all controls } GuiControlProperty; +// TODO: Which text styling properties should be global or per-control? +// At this moment TEXT_PADDING and TEXT_ALIGNMENT is configured and saved per control while +// TEXT_SIZE, TEXT_SPACING, TEXT_LINE_SPACING, TEXT_ALIGNMENT_VERTICAL, TEXT_WRAP_MODE are global and +// should be configured by user as needed while defining the UI layout + + // Gui extended properties depend on control -// NOTE: RAYGUI_MAX_PROPS_EXTENDED properties (by default 8 properties) +// NOTE: RAYGUI_MAX_PROPS_EXTENDED properties (by default, max 8 properties) //---------------------------------------------------------------------------------- - // DEFAULT extended properties // NOTE: Those properties are common to all controls or global +// WARNING: We only have 8 slots for those properties by default!!! -> New global control: TEXT? typedef enum { TEXT_SIZE = 16, // Text size (glyphs max height) TEXT_SPACING, // Text spacing between glyphs LINE_COLOR, // Line control color BACKGROUND_COLOR, // Background color + TEXT_LINE_SPACING, // Text spacing between lines + TEXT_ALIGNMENT_VERTICAL, // Text vertical alignment inside text bounds (after border and padding) + TEXT_WRAP_MODE // Text wrap-mode inside text bounds + //TEXT_DECORATION // Text decoration: 0-None, 1-Underline, 2-Line-through, 3-Overline + //TEXT_DECORATION_THICK // Text decoration line thikness } GuiDefaultProperty; +// Other possible text properties: +// TEXT_WEIGHT // Normal, Italic, Bold -> Requires specific font change +// TEXT_INDENT // Text indentation -> Now using TEXT_PADDING... + // Label //typedef enum { } GuiLabelProperty; @@ -430,12 +593,12 @@ typedef enum { // ScrollBar typedef enum { - ARROWS_SIZE = 16, - ARROWS_VISIBLE, - SCROLL_SLIDER_PADDING, // (SLIDERBAR, SLIDER_PADDING) - SCROLL_SLIDER_SIZE, - SCROLL_PADDING, - SCROLL_SPEED, + ARROWS_SIZE = 16, // ScrollBar arrows size + ARROWS_VISIBLE, // ScrollBar arrows visible + SCROLL_SLIDER_PADDING, // ScrollBar slider internal padding + SCROLL_SLIDER_SIZE, // ScrollBar slider size + SCROLL_PADDING, // ScrollBar scroll padding from arrows + SCROLL_SPEED, // ScrollBar scrolling speed } GuiScrollBarProperty; // CheckBox @@ -457,8 +620,7 @@ typedef enum { // TextBox/TextBoxMulti/ValueBox/Spinner typedef enum { - TEXT_INNER_PADDING = 16, // TextBox/TextBoxMulti/ValueBox/Spinner inner text padding - TEXT_LINES_SPACING, // TextBoxMulti lines separation + TEXT_READONLY = 16, // TextBox in read-only mode: 0-text editable, 1-text no-editable } GuiTextBoxProperty; // Spinner @@ -472,7 +634,7 @@ typedef enum { LIST_ITEMS_HEIGHT = 16, // ListView items height LIST_ITEMS_SPACING, // ListView items separation SCROLLBAR_WIDTH, // ListView scrollbar size (usually width) - SCROLLBAR_SIDE, // ListView scrollbar side (0-left, 1-right) + SCROLLBAR_SIDE, // ListView scrollbar side (0-SCROLLBAR_LEFT_SIDE, 1-SCROLLBAR_RIGHT_SIDE) } GuiListViewProperty; // ColorPicker @@ -501,78 +663,89 @@ extern "C" { // Prevents name mangling of functions #endif // Global gui state control functions -RAYGUIAPI void GuiEnable(void); // Enable gui controls (global state) -RAYGUIAPI void GuiDisable(void); // Disable gui controls (global state) -RAYGUIAPI void GuiLock(void); // Lock gui controls (global state) -RAYGUIAPI void GuiUnlock(void); // Unlock gui controls (global state) -RAYGUIAPI bool GuiIsLocked(void); // Check if gui is locked (global state) -RAYGUIAPI void GuiFade(float alpha); // Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f -RAYGUIAPI void GuiSetState(int state); // Set gui state (global state) -RAYGUIAPI int GuiGetState(void); // Get gui state (global state) +RAYGUIAPI void GuiEnable(void); // Enable gui controls (global state) +RAYGUIAPI void GuiDisable(void); // Disable gui controls (global state) +RAYGUIAPI void GuiLock(void); // Lock gui controls (global state) +RAYGUIAPI void GuiUnlock(void); // Unlock gui controls (global state) +RAYGUIAPI bool GuiIsLocked(void); // Check if gui is locked (global state) +RAYGUIAPI void GuiSetAlpha(float alpha); // Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f +RAYGUIAPI void GuiSetState(int state); // Set gui state (global state) +RAYGUIAPI int GuiGetState(void); // Get gui state (global state) // Font set/get functions -RAYGUIAPI void GuiSetFont(Font font); // Set gui custom font (global state) -RAYGUIAPI Font GuiGetFont(void); // Get gui custom font (global state) +RAYGUIAPI void GuiSetFont(Font font); // Set gui custom font (global state) +RAYGUIAPI Font GuiGetFont(void); // Get gui custom font (global state) // Style set/get functions -RAYGUIAPI void GuiSetStyle(int control, int property, int value); // Set one style property -RAYGUIAPI int GuiGetStyle(int control, int property); // Get one style property - -// Container/separator controls, useful for controls organization -RAYGUIAPI bool GuiWindowBox(Rectangle bounds, const char *title); // Window Box control, shows a window that can be closed -RAYGUIAPI void GuiGroupBox(Rectangle bounds, const char *text); // Group Box control with text name -RAYGUIAPI void GuiLine(Rectangle bounds, const char *text); // Line separator control, could contain text -RAYGUIAPI void GuiPanel(Rectangle bounds, const char *text); // Panel control, useful to group controls -RAYGUIAPI int GuiTabBar(Rectangle bounds, const char **text, int count, int *active); // Tab Bar control, returns TAB to be closed or -1 -RAYGUIAPI Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector2 *scroll); // Scroll Panel control - -// Basic controls set -RAYGUIAPI void GuiLabel(Rectangle bounds, const char *text); // Label control, shows text -RAYGUIAPI bool GuiButton(Rectangle bounds, const char *text); // Button control, returns true when clicked -RAYGUIAPI bool GuiLabelButton(Rectangle bounds, const char *text); // Label button control, show true when clicked -RAYGUIAPI bool GuiToggle(Rectangle bounds, const char *text, bool active); // Toggle Button control, returns true when active -RAYGUIAPI int GuiToggleGroup(Rectangle bounds, const char *text, int active); // Toggle Group control, returns active toggle index -RAYGUIAPI bool GuiCheckBox(Rectangle bounds, const char *text, bool checked); // Check Box control, returns true when active -RAYGUIAPI int GuiComboBox(Rectangle bounds, const char *text, int active); // Combo Box control, returns selected item index -RAYGUIAPI bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode); // Dropdown Box control, returns selected item -RAYGUIAPI bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Spinner control, returns selected value -RAYGUIAPI bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Value Box control, updates input text with numbers -RAYGUIAPI bool GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control, updates input text -RAYGUIAPI bool GuiTextBoxMulti(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control with multiple lines -RAYGUIAPI float GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue); // Slider control, returns selected value -RAYGUIAPI float GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue); // Slider Bar control, returns selected value -RAYGUIAPI float GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue); // Progress Bar control, shows current progress value -RAYGUIAPI void GuiStatusBar(Rectangle bounds, const char *text); // Status Bar control, shows info text -RAYGUIAPI void GuiDummyRec(Rectangle bounds, const char *text); // Dummy control for placeholders -RAYGUIAPI Vector2 GuiGrid(Rectangle bounds, const char *text, float spacing, int subdivs); // Grid control, returns mouse cell position - -// Advance controls set -RAYGUIAPI int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int active); // List View control, returns selected list item index -RAYGUIAPI int GuiListViewEx(Rectangle bounds, const char **text, int count, int *focus, int *scrollIndex, int active); // List View with extended parameters -RAYGUIAPI int GuiMessageBox(Rectangle bounds, const char *title, const char *message, const char *buttons); // Message Box control, displays a message -RAYGUIAPI int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text, int textMaxSize, int *secretViewActive); // Text Input Box control, ask for text, supports secret -RAYGUIAPI Color GuiColorPicker(Rectangle bounds, const char *text, Color color); // Color Picker control (multiple color controls) -RAYGUIAPI Color GuiColorPanel(Rectangle bounds, const char *text, Color color); // Color Panel control -RAYGUIAPI float GuiColorBarAlpha(Rectangle bounds, const char *text, float alpha); // Color Bar Alpha control -RAYGUIAPI float GuiColorBarHue(Rectangle bounds, const char *text, float value); // Color Bar Hue control +RAYGUIAPI void GuiSetStyle(int control, int property, int value); // Set one style property +RAYGUIAPI int GuiGetStyle(int control, int property); // Get one style property // Styles loading functions RAYGUIAPI void GuiLoadStyle(const char *fileName); // Load style file over global style variable (.rgs) RAYGUIAPI void GuiLoadStyleDefault(void); // Load style default over global style // Tooltips management functions -RAYGUIAPI void GuiEnableTooltip(void); // Enable gui tooltips (global state) -RAYGUIAPI void GuiDisableTooltip(void); // Disable gui tooltips (global state) -RAYGUIAPI void GuiSetTooltip(const char *tooltip); // Set tooltip string +RAYGUIAPI void GuiEnableTooltip(void); // Enable gui tooltips (global state) +RAYGUIAPI void GuiDisableTooltip(void); // Disable gui tooltips (global state) +RAYGUIAPI void GuiSetTooltip(const char *tooltip); // Set tooltip string // Icons functionality RAYGUIAPI const char *GuiIconText(int iconId, const char *text); // Get text with icon id prepended (if supported) - #if !defined(RAYGUI_NO_ICONS) +RAYGUIAPI void GuiSetIconScale(int scale); // Set default icon drawing size RAYGUIAPI unsigned int *GuiGetIcons(void); // Get raygui icons data pointer -RAYGUIAPI char **GuiLoadIcons(const char *fileName, bool loadIconsName); // Load raygui icons file (.rgi) into internal icons data -RAYGUIAPI void GuiDrawIcon(int iconId, int posX, int posY, int pixelSize, Color color); -RAYGUIAPI void GuiSetIconScale(int scale); // Set icon drawing size +RAYGUIAPI char **GuiLoadIcons(const char *fileName, bool loadIconsName); // Load raygui icons file (.rgi) into internal icons data +RAYGUIAPI void GuiDrawIcon(int iconId, int posX, int posY, int pixelSize, Color color); // Draw icon using pixel size at specified position +#endif + + +// Controls +//---------------------------------------------------------------------------------------------------------- +// Container/separator controls, useful for controls organization +RAYGUIAPI int GuiWindowBox(Rectangle bounds, const char *title); // Window Box control, shows a window that can be closed +RAYGUIAPI int GuiGroupBox(Rectangle bounds, const char *text); // Group Box control with text name +RAYGUIAPI int GuiLine(Rectangle bounds, const char *text); // Line separator control, could contain text +RAYGUIAPI int GuiPanel(Rectangle bounds, const char *text); // Panel control, useful to group controls +RAYGUIAPI int GuiTabBar(Rectangle bounds, const char **text, int count, int *active); // Tab Bar control, returns TAB to be closed or -1 +RAYGUIAPI int GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector2 *scroll, Rectangle *view); // Scroll Panel control + +// Basic controls set +RAYGUIAPI int GuiLabel(Rectangle bounds, const char *text); // Label control, shows text +RAYGUIAPI int GuiButton(Rectangle bounds, const char *text); // Button control, returns true when clicked +RAYGUIAPI int GuiLabelButton(Rectangle bounds, const char *text); // Label button control, show true when clicked +RAYGUIAPI int GuiToggle(Rectangle bounds, const char *text, bool *active); // Toggle Button control, returns true when active +RAYGUIAPI int GuiToggleGroup(Rectangle bounds, const char *text, int *active); // Toggle Group control, returns active toggle index +RAYGUIAPI int GuiToggleSlider(Rectangle bounds, const char *text, int *active); // Toggle Slider control, returns true when clicked +RAYGUIAPI int GuiCheckBox(Rectangle bounds, const char *text, bool *checked); // Check Box control, returns true when active +RAYGUIAPI int GuiComboBox(Rectangle bounds, const char *text, int *active); // Combo Box control, returns selected item index + +RAYGUIAPI int GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode); // Dropdown Box control, returns selected item +RAYGUIAPI int GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Spinner control, returns selected value +RAYGUIAPI int GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Value Box control, updates input text with numbers +RAYGUIAPI int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control, updates input text + +RAYGUIAPI int GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Slider control, returns selected value +RAYGUIAPI int GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Slider Bar control, returns selected value +RAYGUIAPI int GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue); // Progress Bar control, shows current progress value +RAYGUIAPI int GuiStatusBar(Rectangle bounds, const char *text); // Status Bar control, shows info text +RAYGUIAPI int GuiDummyRec(Rectangle bounds, const char *text); // Dummy control for placeholders +RAYGUIAPI int GuiGrid(Rectangle bounds, const char *text, float spacing, int subdivs, Vector2 *mouseCell); // Grid control, returns mouse cell position + +// Advance controls set +RAYGUIAPI int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int *active); // List View control, returns selected list item index +RAYGUIAPI int GuiListViewEx(Rectangle bounds, const char **text, int count, int *scrollIndex, int *active, int *focus); // List View with extended parameters +RAYGUIAPI int GuiMessageBox(Rectangle bounds, const char *title, const char *message, const char *buttons); // Message Box control, displays a message +RAYGUIAPI int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text, int textMaxSize, bool *secretViewActive); // Text Input Box control, ask for text, supports secret +RAYGUIAPI int GuiColorPicker(Rectangle bounds, const char *text, Color *color); // Color Picker control (multiple color controls) +RAYGUIAPI int GuiColorPanel(Rectangle bounds, const char *text, Color *color); // Color Panel control +RAYGUIAPI int GuiColorBarAlpha(Rectangle bounds, const char *text, float *alpha); // Color Bar Alpha control +RAYGUIAPI int GuiColorBarHue(Rectangle bounds, const char *text, float *value); // Color Bar Hue control +RAYGUIAPI int GuiColorPickerHSV(Rectangle bounds, const char *text, Vector3 *colorHsv); // Color Picker control that avoids conversion to RGB on each call (multiple color controls) +RAYGUIAPI int GuiColorPanelHSV(Rectangle bounds, const char *text, Vector3 *colorHsv); // Color Panel control that returns HSV color value, used by GuiColorPickerHSV() +//---------------------------------------------------------------------------------------------------------- + + +#if !defined(RAYGUI_NO_ICONS) #if !defined(RAYGUI_CUSTOM_ICONS) //---------------------------------------------------------------------------------- @@ -798,7 +971,7 @@ typedef enum { ICON_REG_EXP = 216, ICON_FOLDER = 217, ICON_FILE = 218, - ICON_219 = 219, + ICON_SAND_TIMER = 219, ICON_220 = 220, ICON_221 = 221, ICON_222 = 222, @@ -856,7 +1029,7 @@ typedef enum { #include // Required for: FILE, fopen(), fclose(), fprintf(), feof(), fscanf(), vsprintf() [GuiLoadStyle(), GuiLoadIcons()] #include // Required for: malloc(), calloc(), free() [GuiLoadStyle(), GuiLoadIcons()] -#include // Required for: strlen() [GuiTextBox(), GuiTextBoxMulti(), GuiValueBox()], memset(), memcpy() +#include // Required for: strlen() [GuiTextBox(), GuiValueBox()], memset(), memcpy() #include // Required for: va_list, va_start(), vfprintf(), va_end() [TextFormat()] #include // Required for: roundf() [GuiColorPicker()] @@ -866,6 +1039,11 @@ typedef enum { #define RAYGUI_CLITERAL(name) (name) #endif +// Check if two rectangles are equal, used to validate a slider bounds as an id +#ifndef CHECK_BOUNDS_ID + #define CHECK_BOUNDS_ID(src, dst) ((src.x == dst.x) && (src.y == dst.y) && (src.width == dst.width) && (src.height == dst.height)) +#endif + #if !defined(RAYGUI_NO_ICONS) && !defined(RAYGUI_CUSTOM_ICONS) // Embedded icons, no external file provided @@ -1056,11 +1234,11 @@ static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS] = 0x78040000, 0x501f600e, 0x0ef44004, 0x12f41284, 0x0ef41284, 0x10140004, 0x7ffc300c, 0x10003000, // ICON_MODE_3D 0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // ICON_CUBE 0x7fe00000, 0x5ff87ff0, 0x47fe4ffc, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_TOP - 0x7fe00000, 0x50386030, 0x47fe483c, 0x443e443e, 0x443e443e, 0x241e75fe, 0x0c06140e, 0x000007fe, // ICON_CUBE_FACE_LEFT + 0x7fe00000, 0x50386030, 0x47c2483c, 0x443e443e, 0x443e443e, 0x241e75fe, 0x0c06140e, 0x000007fe, // ICON_CUBE_FACE_LEFT 0x7fe00000, 0x50286030, 0x47fe4804, 0x47fe47fe, 0x47fe47fe, 0x27fe77fe, 0x0ffe17fe, 0x000007fe, // ICON_CUBE_FACE_FRONT - 0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x3ff27fe2, 0x0ffe1ffa, 0x000007fe, // ICON_CUBE_FACE_BOTTOM + 0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x3bf27be2, 0x0bfe1bfa, 0x000007fe, // ICON_CUBE_FACE_BOTTOM 0x7fe00000, 0x70286030, 0x7ffe7804, 0x7c227c02, 0x7c227c22, 0x3c127de2, 0x0c061c0a, 0x000007fe, // ICON_CUBE_FACE_RIGHT - 0x7fe00000, 0x7fe87ff0, 0x7ffe7fe4, 0x7fe27fe2, 0x7fe27fe2, 0x24127fe2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_BACK + 0x7fe00000, 0x6fe85ff0, 0x781e77e4, 0x7be27be2, 0x7be27be2, 0x24127be2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_BACK 0x00000000, 0x2a0233fe, 0x22022602, 0x22022202, 0x2a022602, 0x00a033fe, 0x02080110, 0x00000000, // ICON_CAMERA 0x00000000, 0x200c3ffc, 0x000c000c, 0x3ffc000c, 0x30003000, 0x30003000, 0x3ffc3004, 0x00000000, // ICON_SPECIAL 0x00000000, 0x0022003e, 0x012201e2, 0x0100013e, 0x01000100, 0x79000100, 0x4f004900, 0x00007800, // ICON_LINK_NET @@ -1111,7 +1289,7 @@ static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS] = 0x00000000, 0x02000000, 0x07000a80, 0x07001fc0, 0x02000a80, 0x00300030, 0x00000000, 0x00000000, // ICON_REG_EXP 0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x40024002, 0x40024002, 0x7ffe4002, 0x00000000, // ICON_FOLDER 0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x00003ffc, // ICON_FILE - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_219 + 0x1ff00000, 0x20082008, 0x17d02fe8, 0x05400ba0, 0x09200540, 0x23881010, 0x2fe827c8, 0x00001ff0, // ICON_SAND_TIMER 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_220 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_221 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_222 @@ -1159,8 +1337,10 @@ static unsigned int *guiIconsPtr = guiIcons; #define RAYGUI_ICON_SIZE 0 #endif -#define RAYGUI_MAX_CONTROLS 16 // Maximum number of standard controls -#define RAYGUI_MAX_PROPS_BASE 16 // Maximum number of standard properties +// WARNING: Those values define the total size of the style data array, +// if changed, previous saved styles could become incompatible +#define RAYGUI_MAX_CONTROLS 16 // Maximum number of controls +#define RAYGUI_MAX_PROPS_BASE 16 // Maximum number of base properties #define RAYGUI_MAX_PROPS_EXTENDED 8 // Maximum number of extended properties //---------------------------------------------------------------------------------- @@ -1172,17 +1352,24 @@ typedef enum { BORDER = 0, BASE, TEXT, OTHER } GuiPropertyElement; //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- -static GuiState guiState = STATE_NORMAL; // Gui global state, if !STATE_NORMAL, forces defined state +static GuiState guiState = STATE_NORMAL; // Gui global state, if !STATE_NORMAL, forces defined state + +static Font guiFont = { 0 }; // Gui current font (WARNING: highly coupled to raylib) +static bool guiLocked = false; // Gui lock state (no inputs processed) +static float guiAlpha = 1.0f; // Gui controls transparency -static Font guiFont = { 0 }; // Gui current font (WARNING: highly coupled to raylib) -static bool guiLocked = false; // Gui lock state (no inputs processed) -static float guiAlpha = 1.0f; // Gui element transpacency on drawing +static unsigned int guiIconScale = 1; // Gui icon default scale (if icons enabled) -static unsigned int guiIconScale = 1; // Gui icon default scale (if icons enabled) +static bool guiTooltip = false; // Tooltip enabled/disabled +static const char *guiTooltipPtr = NULL; // Tooltip string pointer (string provided by user) -static bool guiTooltip = false; // Tooltip enabled/disabled -static const char *guiTooltipPtr = NULL; // Tooltip string pointer (string provided by user) +static bool guiSliderDragging = false; // Gui slider drag state (no inputs processed except dragged slider) +static Rectangle guiSliderActive = { 0 }; // Gui slider active bounds rectangle, used as an unique identifier +static int textBoxCursorIndex = 0; // Cursor index, shared by all GuiTextBox*() +//static int blinkCursorFrameCounter = 0; // Frame counter for cursor blinking +static int autoCursorCooldownCounter = 0; // Cooldown frame counter for automatic cursor movement on key-down +static int autoCursorDelayCounter = 0; // Delay frame counter for automatic cursor movement //---------------------------------------------------------------------------------- // Style data array for all gui style properties (allocated on data segment by default) @@ -1227,31 +1414,38 @@ static bool IsMouseButtonReleased(int button); static bool IsKeyDown(int key); static bool IsKeyPressed(int key); -static int GetCharPressed(void); // -- GuiTextBox(), GuiTextBoxMulti(), GuiValueBox() +static int GetCharPressed(void); // -- GuiTextBox(), GuiValueBox() //------------------------------------------------------------------------------- // Drawing required functions //------------------------------------------------------------------------------- -static void DrawRectangle(int x, int y, int width, int height, Color color); // -- GuiDrawRectangle(), GuiDrawIcon() - +static void DrawRectangle(int x, int y, int width, int height, Color color); // -- GuiDrawRectangle() static void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); // -- GuiColorPicker() //------------------------------------------------------------------------------- // Text required functions //------------------------------------------------------------------------------- -static Font LoadFontEx(const char *fileName, int fontSize, int *fontChars, int glyphCount); // -- GuiLoadStyle() -static Font GetFontDefault(void); // -- GuiLoadStyleDefault() -static Texture2D LoadTextureFromImage(Image image); // -- GuiLoadStyle() -static void SetShapesTexture(Texture2D tex, Rectangle rec); // -- GuiLoadStyle() -static char *LoadFileText(const char *fileName); // -- GuiLoadStyle() -static const char *GetDirectoryPath(const char *filePath); // -- GuiLoadStyle() +static Font GetFontDefault(void); // -- GuiLoadStyleDefault() +static Font LoadFontEx(const char *fileName, int fontSize, int *codepoints, int codepointCount); // -- GuiLoadStyle(), load font + +static Texture2D LoadTextureFromImage(Image image); // -- GuiLoadStyle(), required to load texture from embedded font atlas image +static void SetShapesTexture(Texture2D tex, Rectangle rec); // -- GuiLoadStyle(), required to set shapes rec to font white rec (optimization) + +static char *LoadFileText(const char *fileName); // -- GuiLoadStyle(), required to load charset data +static void UnloadFileText(char *text); // -- GuiLoadStyle(), required to unload charset data + +static const char *GetDirectoryPath(const char *filePath); // -- GuiLoadStyle(), required to find charset/font file from text .rgs + +static int *LoadCodepoints(const char *text, int *count); // -- GuiLoadStyle(), required to load required font codepoints list +static void UnloadCodepoints(int *codepoints); // -- GuiLoadStyle(), required to unload codepoints list + +static unsigned char *DecompressData(const unsigned char *compData, int compDataSize, int *dataSize); // -- GuiLoadStyle() //------------------------------------------------------------------------------- // raylib functions already implemented in raygui //------------------------------------------------------------------------------- static Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value static int ColorToInt(Color color); // Returns hexadecimal value for a Color -static Color Fade(Color color, float alpha); // Color fade-in or fade-out, alpha goes from 0.0f to 1.0f static bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle static const char *TextFormat(const char *text, ...); // Formatting of text with variables to 'embed' static const char **TextSplit(const char *text, char delimiter, int *count); // Split text into multiple strings @@ -1268,11 +1462,13 @@ static void DrawRectangleGradientV(int posX, int posY, int width, int height, Co //---------------------------------------------------------------------------------- // Module specific Functions Declaration //---------------------------------------------------------------------------------- +static void GuiLoadStyleFromMemory(const unsigned char *fileData, int dataSize); // Load style from memory (binary only) + static int GetTextWidth(const char *text); // Gui get text width using gui font and style static Rectangle GetTextBounds(int control, Rectangle bounds); // Get text bounds considering control bounds static const char *GetTextIcon(const char *text, int *iconId); // Get text icon if provided and move text cursor -static void GuiDrawText(const char *text, Rectangle bounds, int alignment, Color tint); // Gui draw text using default font +static void GuiDrawText(const char *text, Rectangle textBounds, int alignment, Color tint); // Gui draw text using default font static void GuiDrawRectangle(Rectangle rec, int borderWidth, Color borderColor, Color color); // Gui draw rectangle using default raygui style static const char **GuiTextSplit(const char *text, char delimiter, int *count, int *textRow); // Split controls text into multiple strings @@ -1282,6 +1478,7 @@ static Vector3 ConvertRGBtoHSV(Vector3 rgb); // Convert color static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue); // Scroll bar control, used by GuiScrollPanel() static void GuiTooltip(Rectangle controlRec); // Draw tooltip using control rec position +static Color GuiFade(Color color, float alpha); // Fade color by an alpha factor //---------------------------------------------------------------------------------- // Gui Setup Functions Definition @@ -1304,7 +1501,7 @@ void GuiUnlock(void) { guiLocked = false; } bool GuiIsLocked(void) { return guiLocked; } // Set gui controls alpha global state -void GuiFade(float alpha) +void GuiSetAlpha(float alpha) { if (alpha < 0.0f) alpha = 0.0f; else if (alpha > 1.0f) alpha = 1.0f; @@ -1330,7 +1527,6 @@ void GuiSetFont(Font font) if (!guiStyleLoaded) GuiLoadStyleDefault(); guiFont = font; - GuiSetStyle(DEFAULT, TEXT_SIZE, font.baseSize); } } @@ -1365,7 +1561,7 @@ int GuiGetStyle(int control, int property) //---------------------------------------------------------------------------------- // Window Box control -bool GuiWindowBox(Rectangle bounds, const char *title) +int GuiWindowBox(Rectangle bounds, const char *title) { // Window title bar height (including borders) // NOTE: This define is also used by GuiMessageBox() and GuiTextInputBox() @@ -1373,8 +1569,8 @@ bool GuiWindowBox(Rectangle bounds, const char *title) #define RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT 24 #endif + int result = 0; //GuiState state = guiState; - bool clicked = false; int statusBarHeight = RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT; @@ -1401,38 +1597,41 @@ bool GuiWindowBox(Rectangle bounds, const char *title) GuiSetStyle(BUTTON, BORDER_WIDTH, 1); GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); #if defined(RAYGUI_NO_ICONS) - clicked = GuiButton(closeButtonRec, "x"); + result = GuiButton(closeButtonRec, "x"); #else - clicked = GuiButton(closeButtonRec, GuiIconText(ICON_CROSS_SMALL, NULL)); + result = GuiButton(closeButtonRec, GuiIconText(ICON_CROSS_SMALL, NULL)); #endif GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlignment); //-------------------------------------------------------------------- - return clicked; + return result; // Window close button clicked: result = 1 } // Group Box control with text name -void GuiGroupBox(Rectangle bounds, const char *text) +int GuiGroupBox(Rectangle bounds, const char *text) { #if !defined(RAYGUI_GROUPBOX_LINE_THICK) #define RAYGUI_GROUPBOX_LINE_THICK 1 #endif + int result = 0; GuiState state = guiState; // Draw control //-------------------------------------------------------------------- - GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, RAYGUI_GROUPBOX_LINE_THICK, bounds.height }, 0, BLANK, Fade(GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR)), guiAlpha)); - GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, bounds.width, RAYGUI_GROUPBOX_LINE_THICK }, 0, BLANK, Fade(GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR)), guiAlpha)); - GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - 1, bounds.y, RAYGUI_GROUPBOX_LINE_THICK, bounds.height }, 0, BLANK, Fade(GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR)), guiAlpha)); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, RAYGUI_GROUPBOX_LINE_THICK, bounds.height }, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, bounds.width, RAYGUI_GROUPBOX_LINE_THICK }, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - 1, bounds.y, RAYGUI_GROUPBOX_LINE_THICK, bounds.height }, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR))); GuiLine(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y - GuiGetStyle(DEFAULT, TEXT_SIZE)/2, bounds.width, (float)GuiGetStyle(DEFAULT, TEXT_SIZE) }, text); //-------------------------------------------------------------------- + + return result; } // Line control -void GuiLine(Rectangle bounds, const char *text) +int GuiLine(Rectangle bounds, const char *text) { #if !defined(RAYGUI_LINE_ORIGIN_SIZE) #define RAYGUI_LINE_MARGIN_TEXT 12 @@ -1441,9 +1640,10 @@ void GuiLine(Rectangle bounds, const char *text) #define RAYGUI_LINE_TEXT_PADDING 4 #endif + int result = 0; GuiState state = guiState; - Color color = Fade(GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR)), guiAlpha); + Color color = GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED : LINE_COLOR)); // Draw control //-------------------------------------------------------------------- @@ -1451,7 +1651,7 @@ void GuiLine(Rectangle bounds, const char *text) else { Rectangle textBounds = { 0 }; - textBounds.width = (float)GetTextWidth(text); + textBounds.width = (float)GetTextWidth(text) + 2; textBounds.height = bounds.height; textBounds.x = bounds.x + RAYGUI_LINE_MARGIN_TEXT; textBounds.y = bounds.y; @@ -1462,15 +1662,18 @@ void GuiLine(Rectangle bounds, const char *text) GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + 12 + textBounds.width + 4, bounds.y + bounds.height/2, bounds.width - textBounds.width - RAYGUI_LINE_MARGIN_TEXT - RAYGUI_LINE_TEXT_PADDING, 1 }, 0, BLANK, color); } //-------------------------------------------------------------------- + + return result; } // Panel control -void GuiPanel(Rectangle bounds, const char *text) +int GuiPanel(Rectangle bounds, const char *text) { #if !defined(RAYGUI_PANEL_BORDER_WIDTH) #define RAYGUI_PANEL_BORDER_WIDTH 1 #endif + int result = 0; GuiState state = guiState; // Text will be drawn as a header bar (if provided) @@ -1481,16 +1684,18 @@ void GuiPanel(Rectangle bounds, const char *text) { // Move panel bounds after the header bar bounds.y += (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 1; - bounds.height -= (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT + 1; + bounds.height -= (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 1; } // Draw control //-------------------------------------------------------------------- if (text != NULL) GuiStatusBar(statusBar, text); // Draw panel header as status bar - GuiDrawRectangle(bounds, RAYGUI_PANEL_BORDER_WIDTH, Fade(GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED: LINE_COLOR)), guiAlpha), - Fade(GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BASE_COLOR_DISABLED : BACKGROUND_COLOR)), guiAlpha)); + GuiDrawRectangle(bounds, RAYGUI_PANEL_BORDER_WIDTH, GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BORDER_COLOR_DISABLED: LINE_COLOR)), + GetColor(GuiGetStyle(DEFAULT, (state == STATE_DISABLED)? BASE_COLOR_DISABLED : BACKGROUND_COLOR))); //-------------------------------------------------------------------- + + return result; } // Tab Bar control @@ -1499,9 +1704,9 @@ int GuiTabBar(Rectangle bounds, const char **text, int count, int *active) { #define RAYGUI_TABBAR_ITEM_WIDTH 160 - GuiState state = guiState; + int result = -1; + //GuiState state = guiState; - int closing = -1; Rectangle tabBounds = { bounds.x, bounds.y, RAYGUI_TABBAR_ITEM_WIDTH, bounds.height }; if (*active < 0) *active = 0; @@ -1511,6 +1716,8 @@ int GuiTabBar(Rectangle bounds, const char **text, int count, int *active) offsetX = (*active + 2)*RAYGUI_TABBAR_ITEM_WIDTH - GetScreenWidth(); if (offsetX < 0) offsetX = 0; + bool toggle = false; // Required for individual toggles + // Draw control //-------------------------------------------------------------------- for (int i = 0; i < count; i++) @@ -1524,21 +1731,32 @@ int GuiTabBar(Rectangle bounds, const char **text, int count, int *active) int textPadding = GuiGetStyle(TOGGLE, TEXT_PADDING); GuiSetStyle(TOGGLE, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); GuiSetStyle(TOGGLE, TEXT_PADDING, 8); - if (i == *active) GuiToggle(tabBounds, GuiIconText(12, text[i]), true); - else if (GuiToggle(tabBounds, GuiIconText(12, text[i]), false) == true) *active = i; + + if (i == (*active)) + { + toggle = true; + GuiToggle(tabBounds, GuiIconText(12, text[i]), &toggle); + } + else + { + toggle = false; + GuiToggle(tabBounds, GuiIconText(12, text[i]), &toggle); + if (toggle) *active = i; + } + GuiSetStyle(TOGGLE, TEXT_PADDING, textPadding); GuiSetStyle(TOGGLE, TEXT_ALIGNMENT, textAlignment); // Draw tab close button - // NOTE: Only draw close button for curren tab: if (CheckCollisionPointRec(mousePoint, tabBounds)) + // NOTE: Only draw close button for current tab: if (CheckCollisionPointRec(mousePosition, tabBounds)) int tempBorderWidth = GuiGetStyle(BUTTON, BORDER_WIDTH); int tempTextAlignment = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); GuiSetStyle(BUTTON, BORDER_WIDTH, 1); GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); #if defined(RAYGUI_NO_ICONS) - if (GuiButton(closeButtonRec, "x")) closing = i; + if (GuiButton(RAYGUI_CLITERAL(Rectangle){ tabBounds.x + tabBounds.width - 14 - 5, tabBounds.y + 5, 14, 14 }, "x")) result = i; #else - if (GuiButton(RAYGUI_CLITERAL(Rectangle){ tabBounds.x + tabBounds.width - 14 - 5, tabBounds.y + 5, 14, 14 }, GuiIconText(ICON_CROSS_SMALL, NULL))) closing = i; + if (GuiButton(RAYGUI_CLITERAL(Rectangle){ tabBounds.x + tabBounds.width - 14 - 5, tabBounds.y + 5, 14, 14 }, GuiIconText(ICON_CROSS_SMALL, NULL))) result = i; #endif GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlignment); @@ -1549,13 +1767,21 @@ int GuiTabBar(Rectangle bounds, const char **text, int count, int *active) GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, bounds.width, 1 }, 0, BLANK, GetColor(GuiGetStyle(TOGGLE, BORDER_COLOR_NORMAL))); //-------------------------------------------------------------------- - return closing; // Return closing tab requested + return result; // Return as result the current TAB closing requested } // Scroll Panel control -Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector2 *scroll) +int GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector2 *scroll, Rectangle *view) { + #define RAYGUI_MIN_SCROLLBAR_WIDTH 40 + #define RAYGUI_MIN_SCROLLBAR_HEIGHT 40 + + int result = 0; GuiState state = guiState; + float mouseWheelSpeed = 20.0f; // Default movement speed with mouse wheel + + Rectangle temp = { 0 }; + if (view == NULL) view = &temp; Vector2 scrollPos = { 0.0f, 0.0f }; if (scroll != NULL) scrollPos = *scroll; @@ -1580,17 +1806,40 @@ Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, int horizontalScrollBarWidth = hasHorizontalScrollBar? GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH) : 0; int verticalScrollBarWidth = hasVerticalScrollBar? GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH) : 0; - Rectangle horizontalScrollBar = { (float)((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)bounds.x + verticalScrollBarWidth : (float)bounds.x) + GuiGetStyle(DEFAULT, BORDER_WIDTH), (float)bounds.y + bounds.height - horizontalScrollBarWidth - GuiGetStyle(DEFAULT, BORDER_WIDTH), (float)bounds.width - verticalScrollBarWidth - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH), (float)horizontalScrollBarWidth }; - Rectangle verticalScrollBar = { (float)((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH) : (float)bounds.x + bounds.width - verticalScrollBarWidth - GuiGetStyle(DEFAULT, BORDER_WIDTH)), (float)bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), (float)verticalScrollBarWidth, (float)bounds.height - horizontalScrollBarWidth - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) }; + Rectangle horizontalScrollBar = { + (float)((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)bounds.x + verticalScrollBarWidth : (float)bounds.x) + GuiGetStyle(DEFAULT, BORDER_WIDTH), + (float)bounds.y + bounds.height - horizontalScrollBarWidth - GuiGetStyle(DEFAULT, BORDER_WIDTH), + (float)bounds.width - verticalScrollBarWidth - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH), + (float)horizontalScrollBarWidth + }; + Rectangle verticalScrollBar = { + (float)((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH) : (float)bounds.x + bounds.width - verticalScrollBarWidth - GuiGetStyle(DEFAULT, BORDER_WIDTH)), + (float)bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), + (float)verticalScrollBarWidth, + (float)bounds.height - horizontalScrollBarWidth - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) + }; + + // Make sure scroll bars have a minimum width/height + // NOTE: If content >>> bounds, size could be very small or even 0 + if (horizontalScrollBar.width < RAYGUI_MIN_SCROLLBAR_WIDTH) + { + horizontalScrollBar.width = RAYGUI_MIN_SCROLLBAR_WIDTH; + mouseWheelSpeed = 30.0f; // TODO: Calculate speed increment based on content.height vs bounds.height + } + if (verticalScrollBar.height < RAYGUI_MIN_SCROLLBAR_HEIGHT) + { + verticalScrollBar.height = RAYGUI_MIN_SCROLLBAR_HEIGHT; + mouseWheelSpeed = 30.0f; // TODO: Calculate speed increment based on content.width vs bounds.width + } // Calculate view area (area without the scrollbars) - Rectangle view = (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? + *view = (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? RAYGUI_CLITERAL(Rectangle){ bounds.x + verticalScrollBarWidth + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - verticalScrollBarWidth, bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - horizontalScrollBarWidth } : RAYGUI_CLITERAL(Rectangle){ bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - verticalScrollBarWidth, bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) - horizontalScrollBarWidth }; // Clip view area to the actual content size - if (view.width > content.width) view.width = content.width; - if (view.height > content.height) view.height = content.height; + if (view->width > content.width) view->width = content.width; + if (view->height > content.height) view->height = content.height; float horizontalMin = hasHorizontalScrollBar? ((GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)-verticalScrollBarWidth : 0) - (float)GuiGetStyle(DEFAULT, BORDER_WIDTH) : (((float)GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)-verticalScrollBarWidth : 0) - (float)GuiGetStyle(DEFAULT, BORDER_WIDTH); float horizontalMax = hasHorizontalScrollBar? content.width - bounds.width + (float)verticalScrollBarWidth + GuiGetStyle(DEFAULT, BORDER_WIDTH) - (((float)GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (float)verticalScrollBarWidth : 0) : (float)-GuiGetStyle(DEFAULT, BORDER_WIDTH); @@ -1624,9 +1873,9 @@ Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, #endif float wheelMove = GetMouseWheelMove(); - // Horizontal scroll (Shift + Mouse wheel) - if (hasHorizontalScrollBar && (IsKeyDown(KEY_LEFT_CONTROL) || IsKeyDown(KEY_RIGHT_SHIFT))) scrollPos.x += wheelMove*20; - else scrollPos.y += wheelMove*20; // Vertical scroll + // Horizontal and vertical scrolling with mouse wheel + if (hasHorizontalScrollBar && (IsKeyDown(KEY_LEFT_CONTROL) || IsKeyDown(KEY_LEFT_SHIFT))) scrollPos.x += wheelMove*mouseWheelSpeed; + else scrollPos.y += wheelMove*mouseWheelSpeed; // Vertical scroll } } @@ -1641,7 +1890,7 @@ Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, //-------------------------------------------------------------------- if (text != NULL) GuiStatusBar(statusBar, text); // Draw panel header as status bar - GuiDrawRectangle(bounds, 0, BLANK, Fade(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)), guiAlpha)); // Draw background + GuiDrawRectangle(bounds, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background // Save size of the scrollbar slider const int slider = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE); @@ -1668,11 +1917,11 @@ Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, if (hasHorizontalScrollBar && hasVerticalScrollBar) { Rectangle corner = { (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)? (bounds.x + GuiGetStyle(DEFAULT, BORDER_WIDTH) + 2) : (horizontalScrollBar.x + horizontalScrollBar.width + 2), verticalScrollBar.y + verticalScrollBar.height + 2, (float)horizontalScrollBarWidth - 4, (float)verticalScrollBarWidth - 4 }; - GuiDrawRectangle(corner, 0, BLANK, Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT + (state*3))), guiAlpha)); + GuiDrawRectangle(corner, 0, BLANK, GetColor(GuiGetStyle(LISTVIEW, TEXT + (state*3)))); } // Draw scrollbar lines depending on current state - GuiDrawRectangle(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER + (state*3))), guiAlpha), BLANK); + GuiDrawRectangle(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER + (state*3))), BLANK); // Set scrollbar slider size back to the way it was before GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, slider); @@ -1680,12 +1929,13 @@ Rectangle GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, if (scroll != NULL) *scroll = scrollPos; - return view; + return result; } // Label control -void GuiLabel(Rectangle bounds, const char *text) +int GuiLabel(Rectangle bounds, const char *text) { + int result = 0; GuiState state = guiState; // Update control @@ -1695,19 +1945,21 @@ void GuiLabel(Rectangle bounds, const char *text) // Draw control //-------------------------------------------------------------------- - GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state*3))), guiAlpha)); + GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); //-------------------------------------------------------------------- + + return result; } // Button control, returns true when clicked -bool GuiButton(Rectangle bounds, const char *text) +int GuiButton(Rectangle bounds, const char *text) { + int result = 0; GuiState state = guiState; - bool pressed = false; // Update control //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && !guiLocked) + if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging) { Vector2 mousePoint = GetMousePosition(); @@ -1717,35 +1969,35 @@ bool GuiButton(Rectangle bounds, const char *text) if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) state = STATE_PRESSED; else state = STATE_FOCUSED; - if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) pressed = true; + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) result = 1; } } //-------------------------------------------------------------------- // Draw control //-------------------------------------------------------------------- - GuiDrawRectangle(bounds, GuiGetStyle(BUTTON, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(BUTTON, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(BUTTON, BASE + (state*3))), guiAlpha)); - GuiDrawText(text, GetTextBounds(BUTTON, bounds), GuiGetStyle(BUTTON, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(BUTTON, TEXT + (state*3))), guiAlpha)); + GuiDrawRectangle(bounds, GuiGetStyle(BUTTON, BORDER_WIDTH), GetColor(GuiGetStyle(BUTTON, BORDER + (state*3))), GetColor(GuiGetStyle(BUTTON, BASE + (state*3)))); + GuiDrawText(text, GetTextBounds(BUTTON, bounds), GuiGetStyle(BUTTON, TEXT_ALIGNMENT), GetColor(GuiGetStyle(BUTTON, TEXT + (state*3)))); if (state == STATE_FOCUSED) GuiTooltip(bounds); //------------------------------------------------------------------ - return pressed; + return result; // Button pressed: result = 1 } // Label button control -bool GuiLabelButton(Rectangle bounds, const char *text) +int GuiLabelButton(Rectangle bounds, const char *text) { GuiState state = guiState; bool pressed = false; // NOTE: We force bounds.width to be all text float textWidth = (float)GetTextWidth(text); - if (bounds.width < textWidth) bounds.width = textWidth; + if ((bounds.width - 2*GuiGetStyle(LABEL, BORDER_WIDTH) - 2*GuiGetStyle(LABEL, TEXT_PADDING)) < textWidth) bounds.width = textWidth + 2*GuiGetStyle(LABEL, BORDER_WIDTH) + 2*GuiGetStyle(LABEL, TEXT_PADDING) + 2; // Update control //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && !guiLocked) + if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging) { Vector2 mousePoint = GetMousePosition(); @@ -1762,20 +2014,24 @@ bool GuiLabelButton(Rectangle bounds, const char *text) // Draw control //-------------------------------------------------------------------- - GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state*3))), guiAlpha)); + GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); //-------------------------------------------------------------------- return pressed; } // Toggle Button control, returns true when active -bool GuiToggle(Rectangle bounds, const char *text, bool active) +int GuiToggle(Rectangle bounds, const char *text, bool *active) { + int result = 0; GuiState state = guiState; + bool temp = false; + if (active == NULL) active = &temp; + // Update control //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && !guiLocked) + if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging) { Vector2 mousePoint = GetMousePosition(); @@ -1786,7 +2042,7 @@ bool GuiToggle(Rectangle bounds, const char *text, bool active) else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) { state = STATE_NORMAL; - active = !active; + *active = !(*active); } else state = STATE_FOCUSED; } @@ -1797,30 +2053,36 @@ bool GuiToggle(Rectangle bounds, const char *text, bool active) //-------------------------------------------------------------------- if (state == STATE_NORMAL) { - GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TOGGLE, (active? BORDER_COLOR_PRESSED : (BORDER + state*3)))), guiAlpha), Fade(GetColor(GuiGetStyle(TOGGLE, (active? BASE_COLOR_PRESSED : (BASE + state*3)))), guiAlpha)); - GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(TOGGLE, (active? TEXT_COLOR_PRESSED : (TEXT + state*3)))), guiAlpha)); + GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), GetColor(GuiGetStyle(TOGGLE, ((*active)? BORDER_COLOR_PRESSED : (BORDER + state*3)))), GetColor(GuiGetStyle(TOGGLE, ((*active)? BASE_COLOR_PRESSED : (BASE + state*3))))); + GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), GetColor(GuiGetStyle(TOGGLE, ((*active)? TEXT_COLOR_PRESSED : (TEXT + state*3))))); } else { - GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TOGGLE, BORDER + state*3)), guiAlpha), Fade(GetColor(GuiGetStyle(TOGGLE, BASE + state*3)), guiAlpha)); - GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(TOGGLE, TEXT + state*3)), guiAlpha)); + GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), GetColor(GuiGetStyle(TOGGLE, BORDER + state*3)), GetColor(GuiGetStyle(TOGGLE, BASE + state*3))); + GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), GetColor(GuiGetStyle(TOGGLE, TEXT + state*3))); } if (state == STATE_FOCUSED) GuiTooltip(bounds); //-------------------------------------------------------------------- - return active; + return result; } // Toggle Group control, returns toggled button codepointIndex -int GuiToggleGroup(Rectangle bounds, const char *text, int active) +int GuiToggleGroup(Rectangle bounds, const char *text, int *active) { #if !defined(RAYGUI_TOGGLEGROUP_MAX_ITEMS) #define RAYGUI_TOGGLEGROUP_MAX_ITEMS 32 #endif + int result = 0; float initBoundsX = bounds.x; + int temp = 0; + if (active == NULL) active = &temp; + + bool toggle = false; // Required for individual toggles + // Get substrings items from text (items pointers) int rows[RAYGUI_TOGGLEGROUP_MAX_ITEMS] = { 0 }; int itemCount = 0; @@ -1837,26 +2099,111 @@ int GuiToggleGroup(Rectangle bounds, const char *text, int active) prevRow = rows[i]; } - if (i == active) GuiToggle(bounds, items[i], true); - else if (GuiToggle(bounds, items[i], false) == true) active = i; + if (i == (*active)) + { + toggle = true; + GuiToggle(bounds, items[i], &toggle); + } + else + { + toggle = false; + GuiToggle(bounds, items[i], &toggle); + if (toggle) *active = i; + } bounds.x += (bounds.width + GuiGetStyle(TOGGLE, GROUP_PADDING)); } - return active; + return result; } -// Check Box control, returns true when active -bool GuiCheckBox(Rectangle bounds, const char *text, bool checked) +// Toggle Slider control extended, returns true when clicked +int GuiToggleSlider(Rectangle bounds, const char *text, int *active) { + int result = 0; GuiState state = guiState; - Rectangle textBounds = { 0 }; + int temp = 0; + if (active == NULL) active = &temp; + + //bool toggle = false; // Required for individual toggles + + // Get substrings items from text (items pointers) + int itemCount = 0; + const char **items = GuiTextSplit(text, ';', &itemCount, NULL); + + Rectangle slider = { + 0, // Calculated later depending on the active toggle + bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING), + (bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - (itemCount + 1)*GuiGetStyle(SLIDER, SLIDER_PADDING))/itemCount, + bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING) }; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked) + { + Vector2 mousePoint = GetMousePosition(); + + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) state = STATE_PRESSED; + else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) + { + state = STATE_PRESSED; + (*active)++; + result = 1; + } + else state = STATE_FOCUSED; + } + + if ((*active) && (state != STATE_FOCUSED)) state = STATE_PRESSED; + } + + if (*active >= itemCount) *active = 0; + slider.x = bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH) + (*active + 1)*GuiGetStyle(SLIDER, SLIDER_PADDING) + (*active)*slider.width; + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), GetColor(GuiGetStyle(TOGGLE, BORDER + (state*3))), + GetColor(GuiGetStyle(TOGGLE, BASE_COLOR_NORMAL))); + + // Draw internal slider + if (state == STATE_NORMAL) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED))); + else if (state == STATE_FOCUSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_FOCUSED))); + else if (state == STATE_PRESSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED))); + // Draw text in slider if (text != NULL) { + Rectangle textBounds = { 0 }; textBounds.width = (float)GetTextWidth(text); textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); + textBounds.x = slider.x + slider.width/2 - textBounds.width/2; + textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; + + GuiDrawText(items[*active], textBounds, GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(TOGGLE, TEXT + (state*3))), guiAlpha)); + } + //-------------------------------------------------------------------- + + return result; +} + +// Check Box control, returns 1 when state changed +int GuiCheckBox(Rectangle bounds, const char *text, bool *checked) +{ + int result = 0; + GuiState state = guiState; + + bool temp = false; + if (checked == NULL) checked = &temp; + + Rectangle textBounds = { 0 }; + + if (text != NULL) + { + textBounds.width = (float)GetTextWidth(text) + 2; + textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); textBounds.x = bounds.x + bounds.width + GuiGetStyle(CHECKBOX, TEXT_PADDING); textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; if (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(CHECKBOX, TEXT_PADDING); @@ -1864,7 +2211,7 @@ bool GuiCheckBox(Rectangle bounds, const char *text, bool checked) // Update control //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && !guiLocked) + if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging) { Vector2 mousePoint = GetMousePosition(); @@ -1881,35 +2228,43 @@ bool GuiCheckBox(Rectangle bounds, const char *text, bool checked) if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) state = STATE_PRESSED; else state = STATE_FOCUSED; - if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) checked = !checked; + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) + { + *checked = !(*checked); + result = 1; + } } } //-------------------------------------------------------------------- // Draw control //-------------------------------------------------------------------- - GuiDrawRectangle(bounds, GuiGetStyle(CHECKBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(CHECKBOX, BORDER + (state*3))), guiAlpha), BLANK); + GuiDrawRectangle(bounds, GuiGetStyle(CHECKBOX, BORDER_WIDTH), GetColor(GuiGetStyle(CHECKBOX, BORDER + (state*3))), BLANK); - if (checked) + if (*checked) { Rectangle check = { bounds.x + GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING), bounds.y + GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING), bounds.width - 2*(GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING)), bounds.height - 2*(GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING)) }; - GuiDrawRectangle(check, 0, BLANK, Fade(GetColor(GuiGetStyle(CHECKBOX, TEXT + state*3)), guiAlpha)); + GuiDrawRectangle(check, 0, BLANK, GetColor(GuiGetStyle(CHECKBOX, TEXT + state*3))); } - GuiDrawText(text, textBounds, (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state*3))), guiAlpha)); + GuiDrawText(text, textBounds, (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); //-------------------------------------------------------------------- - return checked; + return result; } // Combo Box control, returns selected item codepointIndex -int GuiComboBox(Rectangle bounds, const char *text, int active) +int GuiComboBox(Rectangle bounds, const char *text, int *active) { + int result = 0; GuiState state = guiState; + int temp = 0; + if (active == NULL) active = &temp; + bounds.width -= (GuiGetStyle(COMBOBOX, COMBO_BUTTON_WIDTH) + GuiGetStyle(COMBOBOX, COMBO_BUTTON_SPACING)); Rectangle selector = { (float)bounds.x + bounds.width + GuiGetStyle(COMBOBOX, COMBO_BUTTON_SPACING), @@ -1919,12 +2274,12 @@ int GuiComboBox(Rectangle bounds, const char *text, int active) int itemCount = 0; const char **items = GuiTextSplit(text, ';', &itemCount, NULL); - if (active < 0) active = 0; - else if (active > itemCount - 1) active = itemCount - 1; + if (*active < 0) *active = 0; + else if (*active > (itemCount - 1)) *active = itemCount - 1; // Update control //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && !guiLocked && (itemCount > 1)) + if ((state != STATE_DISABLED) && !guiLocked && (itemCount > 1) && !guiSliderDragging) { Vector2 mousePoint = GetMousePosition(); @@ -1933,8 +2288,8 @@ int GuiComboBox(Rectangle bounds, const char *text, int active) { if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) { - active += 1; - if (active >= itemCount) active = 0; + *active += 1; + if (*active >= itemCount) *active = 0; // Cyclic combobox } if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) state = STATE_PRESSED; @@ -1946,8 +2301,8 @@ int GuiComboBox(Rectangle bounds, const char *text, int active) // Draw control //-------------------------------------------------------------------- // Draw combo box main - GuiDrawRectangle(bounds, GuiGetStyle(COMBOBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(COMBOBOX, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(COMBOBOX, BASE + (state*3))), guiAlpha)); - GuiDrawText(items[active], GetTextBounds(COMBOBOX, bounds), GuiGetStyle(COMBOBOX, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(COMBOBOX, TEXT + (state*3))), guiAlpha)); + GuiDrawRectangle(bounds, GuiGetStyle(COMBOBOX, BORDER_WIDTH), GetColor(GuiGetStyle(COMBOBOX, BORDER + (state*3))), GetColor(GuiGetStyle(COMBOBOX, BASE + (state*3)))); + GuiDrawText(items[*active], GetTextBounds(COMBOBOX, bounds), GuiGetStyle(COMBOBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(COMBOBOX, TEXT + (state*3)))); // Draw selector using a custom button // NOTE: BORDER_WIDTH and TEXT_ALIGNMENT forced values @@ -1956,20 +2311,22 @@ int GuiComboBox(Rectangle bounds, const char *text, int active) GuiSetStyle(BUTTON, BORDER_WIDTH, 1); GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); - GuiButton(selector, TextFormat("%i/%i", active + 1, itemCount)); + GuiButton(selector, TextFormat("%i/%i", *active + 1, itemCount)); GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlign); GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); //-------------------------------------------------------------------- - return active; + return result; } // Dropdown Box control // NOTE: Returns mouse click -bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode) +int GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode) { + int result = 0; GuiState state = guiState; + int itemSelected = *active; int itemFocused = -1; @@ -1982,11 +2339,9 @@ bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMo Rectangle itemBounds = bounds; - bool pressed = false; // Check mouse button pressed - // Update control //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && (editMode || !guiLocked) && (itemCount > 1)) + if ((state != STATE_DISABLED) && (editMode || !guiLocked) && (itemCount > 1) && !guiSliderDragging) { Vector2 mousePoint = GetMousePosition(); @@ -1997,11 +2352,11 @@ bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMo // Check if mouse has been pressed or released outside limits if (!CheckCollisionPointRec(mousePoint, boundsOpen)) { - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) || IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) pressed = true; + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) || IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) result = 1; } // Check if already selected item has been pressed again - if (CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) pressed = true; + if (CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) result = 1; // Check focused and selected item for (int i = 0; i < itemCount; i++) @@ -2015,7 +2370,7 @@ bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMo if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) { itemSelected = i; - pressed = true; // Item selected, change to editMode = false + result = 1; // Item selected } break; } @@ -2029,7 +2384,7 @@ bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMo { if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) { - pressed = true; + result = 1; state = STATE_PRESSED; } else state = STATE_FOCUSED; @@ -2042,8 +2397,8 @@ bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMo //-------------------------------------------------------------------- if (editMode) GuiPanel(boundsOpen, NULL); - GuiDrawRectangle(bounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, BORDER + state*3)), guiAlpha), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, BASE + state*3)), guiAlpha)); - GuiDrawText(items[itemSelected], GetTextBounds(DEFAULT, bounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + state*3)), guiAlpha)); + GuiDrawRectangle(bounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), GetColor(GuiGetStyle(DROPDOWNBOX, BORDER + state*3)), GetColor(GuiGetStyle(DROPDOWNBOX, BASE + state*3))); + GuiDrawText(items[itemSelected], GetTextBounds(DROPDOWNBOX, bounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + state*3))); if (editMode) { @@ -2055,102 +2410,284 @@ bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMo if (i == itemSelected) { - GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_PRESSED)), guiAlpha), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, BASE_COLOR_PRESSED)), guiAlpha)); - GuiDrawText(items[i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_PRESSED)), guiAlpha)); + GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), GetColor(GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_PRESSED)), GetColor(GuiGetStyle(DROPDOWNBOX, BASE_COLOR_PRESSED))); + GuiDrawText(items[i], GetTextBounds(DROPDOWNBOX, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_PRESSED))); } else if (i == itemFocused) { - GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_FOCUSED)), guiAlpha), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, BASE_COLOR_FOCUSED)), guiAlpha)); - GuiDrawText(items[i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_FOCUSED)), guiAlpha)); + GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), GetColor(GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_FOCUSED)), GetColor(GuiGetStyle(DROPDOWNBOX, BASE_COLOR_FOCUSED))); + GuiDrawText(items[i], GetTextBounds(DROPDOWNBOX, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_FOCUSED))); } - else GuiDrawText(items[i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_NORMAL)), guiAlpha)); + else GuiDrawText(items[i], GetTextBounds(DROPDOWNBOX, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_NORMAL))); } } // Draw arrows (using icon if available) #if defined(RAYGUI_NO_ICONS) GuiDrawText("v", RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_PADDING), bounds.y + bounds.height/2 - 2, 10, 10 }, - TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))), guiAlpha)); + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3)))); #else GuiDrawText("#120#", RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_PADDING), bounds.y + bounds.height/2 - 6, 10, 10 }, - TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))), guiAlpha)); // ICON_ARROW_DOWN_FILL + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3)))); // ICON_ARROW_DOWN_FILL #endif //-------------------------------------------------------------------- *active = itemSelected; - return pressed; + + // TODO: Use result to return more internal states: mouse-press out-of-bounds, mouse-press over selected-item... + return result; // Mouse click: result = 1 } -// Text Box control, updates input text -// NOTE 2: Returns if KEY_ENTER pressed (useful for data validation) -bool GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode) +// Text Box control +// NOTE: Returns true on ENTER pressed (useful for data validation) +int GuiTextBox(Rectangle bounds, char *text, int bufferSize, bool editMode) { + #if !defined(RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN) + #define RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN 40 // Frames to wait for autocursor movement + #endif + #if !defined(RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) + #define RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY 1 // Frames delay for autocursor movement + #endif + + int result = 0; GuiState state = guiState; - Rectangle textBounds = GetTextBounds(TEXTBOX, bounds); - bool pressed = false; - int textWidth = GetTextWidth(text); + bool multiline = false; // TODO: Consider multiline text input + int wrapMode = GuiGetStyle(DEFAULT, TEXT_WRAP_MODE); + Rectangle textBounds = GetTextBounds(TEXTBOX, bounds); + int textWidth = GetTextWidth(text) - GetTextWidth(text + textBoxCursorIndex); + int textIndexOffset = 0; // Text index offset to start drawing in the box + + // Cursor rectangle + // NOTE: Position X value should be updated Rectangle cursor = { - bounds.x + GuiGetStyle(TEXTBOX, TEXT_PADDING) + textWidth + 2, - bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE), - 4, + textBounds.x + textWidth + GuiGetStyle(DEFAULT, TEXT_SPACING), + textBounds.y + textBounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE), + 2, (float)GuiGetStyle(DEFAULT, TEXT_SIZE)*2 }; if (cursor.height >= bounds.height) cursor.height = bounds.height - GuiGetStyle(TEXTBOX, BORDER_WIDTH)*2; if (cursor.y < (bounds.y + GuiGetStyle(TEXTBOX, BORDER_WIDTH))) cursor.y = bounds.y + GuiGetStyle(TEXTBOX, BORDER_WIDTH); + // Mouse cursor rectangle + // NOTE: Initialized outside of screen + Rectangle mouseCursor = cursor; + mouseCursor.x = -1; + mouseCursor.width = 1; + + // Auto-cursor movement logic + // NOTE: Cursor moves automatically when key down after some time + if (IsKeyDown(KEY_LEFT) || IsKeyDown(KEY_RIGHT) || IsKeyDown(KEY_UP) || IsKeyDown(KEY_DOWN) || IsKeyDown(KEY_BACKSPACE) || IsKeyDown(KEY_DELETE)) autoCursorCooldownCounter++; + else + { + autoCursorCooldownCounter = 0; // GLOBAL: Cursor cooldown counter + autoCursorDelayCounter = 0; // GLOBAL: Cursor delay counter + } + + // Blink-cursor frame counter + //if (!autoCursorMode) blinkCursorFrameCounter++; + //else blinkCursorFrameCounter = 0; + // Update control //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && !guiLocked) + // WARNING: Text editing is only supported under certain conditions: + if ((state != STATE_DISABLED) && // Control not disabled + !GuiGetStyle(TEXTBOX, TEXT_READONLY) && // TextBox not on read-only mode + !guiLocked && // Gui not locked + !guiSliderDragging && // No gui slider on dragging + (wrapMode == TEXT_WRAP_NONE)) // No wrap mode { - Vector2 mousePoint = GetMousePosition(); + Vector2 mousePosition = GetMousePosition(); if (editMode) { state = STATE_PRESSED; - int key = GetCharPressed(); // Returns codepoint as Unicode - int keyCount = (int)strlen(text); - int byteSize = 0; - const char *textUTF8 = CodepointToUTF8(key, &byteSize); + // If text does not fit in the textbox and current cursor position is out of bounds, + // we add an index offset to text for drawing only what requires depending on cursor + while (textWidth >= textBounds.width) + { + int nextCodepointSize = 0; + GetCodepointNext(text + textIndexOffset, &nextCodepointSize); + + textIndexOffset += nextCodepointSize; + + textWidth = GetTextWidth(text + textIndexOffset) - GetTextWidth(text + textBoxCursorIndex); + } + + int textLength = (int)strlen(text); // Get current text length + int codepoint = GetCharPressed(); // Get Unicode codepoint + if (multiline && IsKeyPressed(KEY_ENTER)) codepoint = (int)'\n'; + + if (textBoxCursorIndex > textLength) textBoxCursorIndex = textLength; + + // Encode codepoint as UTF-8 + int codepointSize = 0; + const char *charEncoded = CodepointToUTF8(codepoint, &codepointSize); + + // Add codepoint to text, at current cursor position + // NOTE: Make sure we do not overflow buffer size + if (((multiline && (codepoint == (int)'\n')) || (codepoint >= 32)) && ((textLength + codepointSize) < bufferSize)) + { + // Move forward data from cursor position + for (int i = (textLength + codepointSize); i > textBoxCursorIndex; i--) text[i] = text[i - codepointSize]; + + // Add new codepoint in current cursor position + for (int i = 0; i < codepointSize; i++) text[textBoxCursorIndex + i] = charEncoded[i]; + + textBoxCursorIndex += codepointSize; + textLength += codepointSize; + + // Make sure text last character is EOL + text[textLength] = '\0'; + } + + // Move cursor to start + if ((textLength > 0) && IsKeyPressed(KEY_HOME)) textBoxCursorIndex = 0; + + // Move cursor to end + if ((textLength > textBoxCursorIndex) && IsKeyPressed(KEY_END)) textBoxCursorIndex = textLength; + + // Delete codepoint from text, after current cursor position + if ((textLength > textBoxCursorIndex) && (IsKeyPressed(KEY_DELETE) || (IsKeyDown(KEY_DELETE) && (autoCursorCooldownCounter >= RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN)))) + { + autoCursorDelayCounter++; + + if (IsKeyPressed(KEY_DELETE) || (autoCursorDelayCounter%RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) == 0) // Delay every movement some frames + { + int nextCodepointSize = 0; + GetCodepointNext(text + textBoxCursorIndex, &nextCodepointSize); + + // Move backward text from cursor position + for (int i = textBoxCursorIndex; i < textLength; i++) text[i] = text[i + nextCodepointSize]; + + textLength -= codepointSize; - // Only allow keys in range [32..125] - if ((keyCount + byteSize) < textSize) + // Make sure text last character is EOL + text[textLength] = '\0'; + } + } + + // Delete codepoint from text, before current cursor position + if ((textLength > 0) && (IsKeyPressed(KEY_BACKSPACE) || (IsKeyDown(KEY_BACKSPACE) && (autoCursorCooldownCounter >= RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN)))) { - //float maxWidth = (bounds.width - (GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING)*2)); + autoCursorDelayCounter++; - if (key >= 32) + if (IsKeyPressed(KEY_BACKSPACE) || (autoCursorDelayCounter%RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) == 0) // Delay every movement some frames { - for (int i = 0; i < byteSize; i++) + int prevCodepointSize = 0; + GetCodepointPrevious(text + textBoxCursorIndex, &prevCodepointSize); + + // Move backward text from cursor position + for (int i = (textBoxCursorIndex - prevCodepointSize); i < textLength; i++) text[i] = text[i + prevCodepointSize]; + + // Prevent cursor index from decrementing past 0 + if (textBoxCursorIndex > 0) { - text[keyCount] = textUTF8[i]; - keyCount++; + textBoxCursorIndex -= codepointSize; + textLength -= codepointSize; } - text[keyCount] = '\0'; + // Make sure text last character is EOL + text[textLength] = '\0'; } } - // Delete text - if (keyCount > 0) + // Move cursor position with keys + if (IsKeyPressed(KEY_LEFT) || (IsKeyDown(KEY_LEFT) && (autoCursorCooldownCounter > RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN))) { - if (IsKeyPressed(KEY_BACKSPACE)) + autoCursorDelayCounter++; + + if (IsKeyPressed(KEY_LEFT) || (autoCursorDelayCounter%RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) == 0) // Delay every movement some frames + { + int prevCodepointSize = 0; + GetCodepointPrevious(text + textBoxCursorIndex, &prevCodepointSize); + + if (textBoxCursorIndex >= prevCodepointSize) textBoxCursorIndex -= prevCodepointSize; + } + } + else if (IsKeyPressed(KEY_RIGHT) || (IsKeyDown(KEY_RIGHT) && (autoCursorCooldownCounter > RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN))) + { + autoCursorDelayCounter++; + + if (IsKeyPressed(KEY_RIGHT) || (autoCursorDelayCounter%RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY) == 0) // Delay every movement some frames + { + int nextCodepointSize = 0; + GetCodepointNext(text + textBoxCursorIndex, &nextCodepointSize); + + if ((textBoxCursorIndex + nextCodepointSize) <= textLength) textBoxCursorIndex += nextCodepointSize; + } + } + + // Move cursor position with mouse + if (CheckCollisionPointRec(mousePosition, textBounds)) // Mouse hover text + { + float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/(float)guiFont.baseSize; + int codepointIndex = 0; + float glyphWidth = 0.0f; + float widthToMouseX = 0; + int mouseCursorIndex = 0; + + for (int i = textIndexOffset; i < textLength; i++) + { + codepoint = GetCodepointNext(&text[i], &codepointSize); + codepointIndex = GetGlyphIndex(guiFont, codepoint); + + if (guiFont.glyphs[codepointIndex].advanceX == 0) glyphWidth = ((float)guiFont.recs[codepointIndex].width*scaleFactor); + else glyphWidth = ((float)guiFont.glyphs[codepointIndex].advanceX*scaleFactor); + + if (mousePosition.x <= (textBounds.x + (widthToMouseX + glyphWidth/2))) + { + mouseCursor.x = textBounds.x + widthToMouseX; + mouseCursorIndex = i; + break; + } + + widthToMouseX += (glyphWidth + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + } + + // Check if mouse cursor is at the last position + int textEndWidth = GetTextWidth(text + textIndexOffset); + if (GetMousePosition().x >= (textBounds.x + textEndWidth - glyphWidth/2)) + { + mouseCursor.x = textBounds.x + textEndWidth; + mouseCursorIndex = (int)strlen(text); + } + + // Place cursor at required index on mouse click + if ((mouseCursor.x >= 0) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) { - while ((keyCount > 0) && ((text[--keyCount] & 0xc0) == 0x80)); - text[keyCount] = '\0'; + cursor.x = mouseCursor.x; + textBoxCursorIndex = mouseCursorIndex; } } + else mouseCursor.x = -1; - if (IsKeyPressed(KEY_ENTER) || (!CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON))) pressed = true; + // Recalculate cursor position.y depending on textBoxCursorIndex + cursor.x = bounds.x + GuiGetStyle(TEXTBOX, TEXT_PADDING) + GetTextWidth(text + textIndexOffset) - GetTextWidth(text + textBoxCursorIndex) + GuiGetStyle(DEFAULT, TEXT_SPACING); + //if (multiline) cursor.y = GetTextLines() + + // Finish text editing on ENTER or mouse click outside bounds + if ((!multiline && IsKeyPressed(KEY_ENTER)) || + (!CheckCollisionPointRec(mousePosition, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON))) + { + textBoxCursorIndex = 0; // GLOBAL: Reset the shared cursor index + result = 1; + } } else { - if (CheckCollisionPointRec(mousePoint, bounds)) + if (CheckCollisionPointRec(mousePosition, bounds)) { state = STATE_FOCUSED; - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) pressed = true; + + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) + { + textBoxCursorIndex = (int)strlen(text); // GLOBAL: Place cursor index to the end of current text + result = 1; + } } } } @@ -2160,44 +2697,61 @@ bool GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode) //-------------------------------------------------------------------- if (state == STATE_PRESSED) { - GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_PRESSED)), guiAlpha)); + GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_PRESSED))); } else if (state == STATE_DISABLED) { - GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_DISABLED)), guiAlpha)); - } - else GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), guiAlpha), BLANK); - - if (editMode) - { - // In case we edit and text does not fit in the textbox, - // we move text pointer to a position it fits inside the text box - while ((textWidth >= textBounds.width) && (text[0] != '\0')) - { - int codepointSize = 0; - GetCodepointNext(text, &codepointSize); - text += codepointSize; - textWidth = GetTextWidth(text); - cursor.x = textBounds.x + textWidth + 2; - } + GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_DISABLED))); } + else GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), BLANK); - GuiDrawText(text, textBounds, GuiGetStyle(TEXTBOX, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(TEXTBOX, TEXT + (state*3))), guiAlpha)); + // Draw text considering index offset if required + // NOTE: Text index offset depends on cursor position + GuiDrawText(text + textIndexOffset, textBounds, GuiGetStyle(TEXTBOX, TEXT_ALIGNMENT), GetColor(GuiGetStyle(TEXTBOX, TEXT + (state*3)))); // Draw cursor - if (editMode) GuiDrawRectangle(cursor, 0, BLANK, Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED)), guiAlpha)); + if (editMode && !GuiGetStyle(TEXTBOX, TEXT_READONLY)) + { + //if (autoCursorMode || ((blinkCursorFrameCounter/40)%2 == 0)) + GuiDrawRectangle(cursor, 0, BLANK, GetColor(GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED))); + + // Draw mouse position cursor (if required) + if (mouseCursor.x >= 0) GuiDrawRectangle(mouseCursor, 0, BLANK, GetColor(GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED))); + } else if (state == STATE_FOCUSED) GuiTooltip(bounds); //-------------------------------------------------------------------- + return result; // Mouse button pressed: result = 1 +} + +/* +// Text Box control with multiple lines and word-wrap +// NOTE: This text-box is readonly, no editing supported by default +bool GuiTextBoxMulti(Rectangle bounds, char *text, int bufferSize, bool editMode) +{ + bool pressed = false; + + GuiSetStyle(TEXTBOX, TEXT_READONLY, 1); + GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_WORD); // WARNING: If wrap mode enabled, text editing is not supported + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_TOP); + + // TODO: Implement methods to calculate cursor position properly + pressed = GuiTextBox(bounds, text, bufferSize, editMode); + + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_MIDDLE); + GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_NONE); + GuiSetStyle(TEXTBOX, TEXT_READONLY, 0); + return pressed; } +*/ // Spinner control, returns selected value -bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode) +int GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode) { + int result = 1; GuiState state = guiState; - bool pressed = false; int tempValue = *value; Rectangle spinner = { bounds.x + GuiGetStyle(SPINNER, SPIN_BUTTON_WIDTH) + GuiGetStyle(SPINNER, SPIN_BUTTON_SPACING), bounds.y, @@ -2208,7 +2762,7 @@ bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, in Rectangle textBounds = { 0 }; if (text != NULL) { - textBounds.width = (float)GetTextWidth(text); + textBounds.width = (float)GetTextWidth(text) + 2; textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); textBounds.x = bounds.x + bounds.width + GuiGetStyle(SPINNER, TEXT_PADDING); textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; @@ -2217,7 +2771,7 @@ bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, in // Update control //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && !guiLocked) + if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging) { Vector2 mousePoint = GetMousePosition(); @@ -2246,8 +2800,7 @@ bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, in // Draw control //-------------------------------------------------------------------- - // TODO: Set Spinner properties for ValueBox - pressed = GuiValueBox(spinner, NULL, &tempValue, minValue, maxValue, editMode); + result = GuiValueBox(spinner, NULL, &tempValue, minValue, maxValue, editMode); // Draw value selector custom buttons // NOTE: BORDER_WIDTH and TEXT_ALIGNMENT forced values @@ -2260,23 +2813,23 @@ bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, in GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); // Draw text label if provided - GuiDrawText(text, textBounds, (GuiGetStyle(SPINNER, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state*3))), guiAlpha)); + GuiDrawText(text, textBounds, (GuiGetStyle(SPINNER, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); //-------------------------------------------------------------------- *value = tempValue; - return pressed; + return result; } // Value Box control, updates input text with numbers // NOTE: Requires static variables: frameCounter -bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode) +int GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode) { #if !defined(RAYGUI_VALUEBOX_MAX_CHARS) #define RAYGUI_VALUEBOX_MAX_CHARS 32 #endif + int result = 0; GuiState state = guiState; - bool pressed = false; char textValue[RAYGUI_VALUEBOX_MAX_CHARS + 1] = "\0"; sprintf(textValue, "%i", *value); @@ -2284,7 +2837,7 @@ bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, i Rectangle textBounds = { 0 }; if (text != NULL) { - textBounds.width = (float)GetTextWidth(text); + textBounds.width = (float)GetTextWidth(text) + 2; textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE); textBounds.x = bounds.x + bounds.width + GuiGetStyle(VALUEBOX, TEXT_PADDING); textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; @@ -2293,7 +2846,7 @@ bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, i // Update control //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && !guiLocked) + if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging) { Vector2 mousePoint = GetMousePosition(); @@ -2337,7 +2890,7 @@ bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, i //if (*value > maxValue) *value = maxValue; //else if (*value < minValue) *value = minValue; - if (IsKeyPressed(KEY_ENTER) || (!CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON))) pressed = true; + if (IsKeyPressed(KEY_ENTER) || (!CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON))) result = 1; } else { @@ -2347,7 +2900,7 @@ bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, i if (CheckCollisionPointRec(mousePoint, bounds)) { state = STATE_FOCUSED; - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) pressed = true; + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) result = 1; } } } @@ -2359,208 +2912,36 @@ bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, i if (state == STATE_PRESSED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_PRESSED)); else if (state == STATE_DISABLED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_DISABLED)); - // WARNING: BLANK color does not work properly with Fade() - GuiDrawRectangle(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER + (state*3))), guiAlpha), baseColor); - GuiDrawText(textValue, GetTextBounds(VALUEBOX, bounds), TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(VALUEBOX, TEXT + (state*3))), guiAlpha)); + GuiDrawRectangle(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), GetColor(GuiGetStyle(VALUEBOX, BORDER + (state*3))), baseColor); + GuiDrawText(textValue, GetTextBounds(VALUEBOX, bounds), TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(VALUEBOX, TEXT + (state*3)))); // Draw cursor if (editMode) { // NOTE: ValueBox internal text is always centered Rectangle cursor = { bounds.x + GetTextWidth(textValue)/2 + bounds.width/2 + 1, bounds.y + 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), 4, bounds.height - 4*GuiGetStyle(VALUEBOX, BORDER_WIDTH) }; - GuiDrawRectangle(cursor, 0, BLANK, Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED)), guiAlpha)); + GuiDrawRectangle(cursor, 0, BLANK, GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED))); } // Draw text label if provided - GuiDrawText(text, textBounds, (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state*3))), guiAlpha)); - //-------------------------------------------------------------------- - - return pressed; -} - -// Text Box control with multiple lines -bool GuiTextBoxMulti(Rectangle bounds, char *text, int textSize, bool editMode) -{ - GuiState state = guiState; - bool pressed = false; - - Rectangle textAreaBounds = { - bounds.x + GuiGetStyle(TEXTBOX, BORDER_WIDTH) + GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING), - bounds.y + GuiGetStyle(TEXTBOX, BORDER_WIDTH) + GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING), - bounds.width - 2*(GuiGetStyle(TEXTBOX, BORDER_WIDTH) + GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING)), - bounds.height - 2*(GuiGetStyle(TEXTBOX, BORDER_WIDTH) + GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING)) - }; - - // Cursor position, [x, y] values should be updated - Rectangle cursor = { 0, -1, 4, (float)GuiGetStyle(DEFAULT, TEXT_SIZE) + 2 }; - - float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/(float)guiFont.baseSize; // Character rectangle scaling factor - - // Update control - //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && !guiLocked) - { - Vector2 mousePoint = GetMousePosition(); - - if (editMode) - { - state = STATE_PRESSED; - - // We get an Unicode codepoint - int codepoint = GetCharPressed(); - int textLength = (int)strlen(text); // Length in bytes (UTF-8 string) - int byteSize = 0; - const char *textUTF8 = CodepointToUTF8(codepoint, &byteSize); - - // Introduce characters - if ((textLength + byteSize) < textSize) - { - if (IsKeyPressed(KEY_ENTER)) - { - text[textLength] = '\n'; - textLength++; - } - else if (codepoint >= 32) - { - // Supports Unicode inputs -> Encoded to UTF-8 - int charUTF8Length = 0; - const char *charEncoded = CodepointToUTF8(codepoint, &charUTF8Length); - memcpy(text + textLength, charEncoded, charUTF8Length); - textLength += charUTF8Length; - } - } - - // Delete characters - if (textLength > 0) - { - if (IsKeyPressed(KEY_BACKSPACE)) - { - if ((unsigned char)text[textLength - 1] < 127) - { - // Remove ASCII equivalent character (1 byte) - textLength--; - text[textLength] = '\0'; - } - else - { - // Remove latest UTF-8 unicode character introduced (n bytes) - int charUTF8Length = 0; - while ((charUTF8Length < textLength) && ((unsigned char)text[textLength - 1 - charUTF8Length] & 0b01000000) == 0) charUTF8Length++; - - textLength -= (charUTF8Length + 1); - text[textLength] = '\0'; - } - } - } - - // Exit edit mode - if (!CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) pressed = true; - } - else - { - if (CheckCollisionPointRec(mousePoint, bounds)) - { - state = STATE_FOCUSED; - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) pressed = true; - } - } - } - //-------------------------------------------------------------------- - - // Draw control - //-------------------------------------------------------------------- - if (state == STATE_PRESSED) - { - GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_PRESSED)), guiAlpha)); - } - else if (state == STATE_DISABLED) - { - GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(TEXTBOX, BASE_COLOR_DISABLED)), guiAlpha)); - } - else GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER + (state*3))), guiAlpha), BLANK); - - int wrapMode = 1; // 0-No wrap, 1-Char wrap, 2-Word wrap - Vector2 cursorPos = { textAreaBounds.x, textAreaBounds.y }; - - //int lastSpacePos = 0; - //int lastSpaceWidth = 0; - //int lastSpaceCursorPos = 0; - - for (int i = 0, codepointSize = 0; (text != NULL) && (text[i] != '\0'); i += codepointSize) - { - int codepoint = GetCodepointNext(text + i, &codepointSize); - int index = GetGlyphIndex(guiFont, codepoint); // If requested codepoint is not found, we get '?' (0x3f) - Rectangle atlasRec = guiFont.recs[index]; - GlyphInfo glyphInfo = guiFont.glyphs[index]; // Glyph measures - - if ((codepointSize == 1) && (codepoint == '\n')) - { - cursorPos.y += (guiFont.baseSize*scaleFactor + GuiGetStyle(TEXTBOX, TEXT_LINES_SPACING)); // Line feed - cursorPos.x = textAreaBounds.x; // Carriage return - } - else - { - if (wrapMode == 1) - { - int glyphWidth = 0; - if (glyphInfo.advanceX != 0) glyphWidth += glyphInfo.advanceX; - else glyphWidth += (int)(atlasRec.width + glyphInfo.offsetX); - - // Jump line if the end of the text box area has been reached - if ((cursorPos.x + (glyphWidth*scaleFactor)) > (textAreaBounds.x + textAreaBounds.width)) - { - cursorPos.y += (guiFont.baseSize*scaleFactor + GuiGetStyle(TEXTBOX, TEXT_LINES_SPACING)); // Line feed - cursorPos.x = textAreaBounds.x; // Carriage return - } - } - else if (wrapMode == 2) - { - /* - if ((codepointSize == 1) && (codepoint == ' ')) - { - lastSpacePos = i; - lastSpaceWidth = 0; - lastSpaceCursorPos = cursorPos.x; - } - - // Jump line if last word reaches end of text box area - if ((lastSpaceCursorPos + lastSpaceWidth) > (textAreaBounds.x + textAreaBounds.width)) - { - cursorPos.y += 12; // Line feed - cursorPos.x = textAreaBounds.x; // Carriage return - } - */ - } - - // Draw current character glyph - DrawTextCodepoint(guiFont, codepoint, cursorPos, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), Fade(GetColor(GuiGetStyle(TEXTBOX, TEXT + (state*3))), guiAlpha)); - - int glyphWidth = 0; - if (glyphInfo.advanceX != 0) glyphWidth += glyphInfo.advanceX; - else glyphWidth += (int)(atlasRec.width + glyphInfo.offsetX); - - cursorPos.x += (glyphWidth*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); - //if (i > lastSpacePos) lastSpaceWidth += (atlasRec.width + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); - } - } - - cursor.x = cursorPos.x; - cursor.y = cursorPos.y; - - // Draw cursor position considering text glyphs - if (editMode) GuiDrawRectangle(cursor, 0, BLANK, Fade(GetColor(GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED)), guiAlpha)); + GuiDrawText(text, textBounds, (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT)? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(LABEL, TEXT + (state*3)))); //-------------------------------------------------------------------- - return pressed; + return result; } // Slider control with pro parameters // NOTE: Other GuiSlider*() controls use this one -float GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue, int sliderWidth) +int GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, int sliderWidth) { + int result = 0; + float oldValue = *value; GuiState state = guiState; - int sliderValue = (int)(((value - minValue)/(maxValue - minValue))*(bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH))); + float temp = (maxValue - minValue)/2.0f; + if (value == NULL) value = &temp; + + int sliderValue = (int)(((*value - minValue)/(maxValue - minValue))*(bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH))); Rectangle slider = { bounds.x, bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING), 0, bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING) }; @@ -2582,25 +2963,52 @@ float GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight { Vector2 mousePoint = GetMousePosition(); - if (CheckCollisionPointRec(mousePoint, bounds)) + if (guiSliderDragging) // Keep dragging outside of bounds + { + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + { + if (CHECK_BOUNDS_ID(bounds, guiSliderActive)) + { + state = STATE_PRESSED; + + // Get equivalent value and slider position from mousePosition.x + *value = ((maxValue - minValue)*(mousePoint.x - (float)(bounds.x + sliderWidth/2)))/(float)(bounds.width - sliderWidth) + minValue; + } + } + else + { + guiSliderDragging = false; + guiSliderActive = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds)) { if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) { state = STATE_PRESSED; + guiSliderDragging = true; + guiSliderActive = bounds; // Store bounds as an identifier when dragging starts - // Get equivalent value and slider position from mousePoint.x - value = ((maxValue - minValue)*(mousePoint.x - (float)(bounds.x + sliderWidth/2)))/(float)(bounds.width - sliderWidth) + minValue; + if (!CheckCollisionPointRec(mousePoint, slider)) + { + // Get equivalent value and slider position from mousePosition.x + *value = ((maxValue - minValue)*(mousePoint.x - (float)(bounds.x + sliderWidth/2)))/(float)(bounds.width - sliderWidth) + minValue; - if (sliderWidth > 0) slider.x = mousePoint.x - slider.width/2; // Slider - else if (sliderWidth == 0) slider.width = (float)sliderValue; // SliderBar + if (sliderWidth > 0) slider.x = mousePoint.x - slider.width/2; // Slider + else if (sliderWidth == 0) slider.width = (float)sliderValue; // SliderBar + } } else state = STATE_FOCUSED; } - if (value > maxValue) value = maxValue; - else if (value < minValue) value = minValue; + if (*value > maxValue) *value = maxValue; + else if (*value < minValue) *value = minValue; } + // Control value change check + if(oldValue == *value) result = 0; + else result = 1; + // Bar limits check if (sliderWidth > 0) // Slider { @@ -2615,11 +3023,12 @@ float GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight // Draw control //-------------------------------------------------------------------- - GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(SLIDER, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(SLIDER, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)), guiAlpha)); + GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), GetColor(GuiGetStyle(SLIDER, BORDER + (state*3))), GetColor(GuiGetStyle(SLIDER, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED))); // Draw slider internal bar (depends on state) - if ((state == STATE_NORMAL) || (state == STATE_PRESSED)) GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED)), guiAlpha)); - else if (state == STATE_FOCUSED) GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED)), guiAlpha)); + if (state == STATE_NORMAL) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED))); + else if (state == STATE_FOCUSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED))); + else if (state == STATE_PRESSED) GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_PRESSED))); // Draw left/right text if provided if (textLeft != NULL) @@ -2630,7 +3039,7 @@ float GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight textBounds.x = bounds.x - textBounds.width - GuiGetStyle(SLIDER, TEXT_PADDING); textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; - GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha)); + GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(SLIDER, TEXT + (state*3)))); } if (textRight != NULL) @@ -2641,48 +3050,76 @@ float GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight textBounds.x = bounds.x + bounds.width + GuiGetStyle(SLIDER, TEXT_PADDING); textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; - GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha)); + GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, GetColor(GuiGetStyle(SLIDER, TEXT + (state*3)))); } //-------------------------------------------------------------------- - return value; + return result; } // Slider control extended, returns selected value and has text -float GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue) +int GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue) { return GuiSliderPro(bounds, textLeft, textRight, value, minValue, maxValue, GuiGetStyle(SLIDER, SLIDER_WIDTH)); } // Slider Bar control extended, returns selected value -float GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue) +int GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue) { return GuiSliderPro(bounds, textLeft, textRight, value, minValue, maxValue, 0); } // Progress Bar control extended, shows current progress value -float GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue) +int GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue) { + int result = 0; GuiState state = guiState; + float temp = (maxValue - minValue)/2.0f; + if (value == NULL) value = &temp; + + // Progress bar Rectangle progress = { bounds.x + GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.y + GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) + GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING), 0, bounds.height - 2*GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) - 2*GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING) }; // Update control //-------------------------------------------------------------------- - if (value > maxValue) value = maxValue; + if (*value > maxValue) *value = maxValue; - if (state != STATE_DISABLED) progress.width = ((float)(value/(maxValue - minValue))*(float)(bounds.width - 2*GuiGetStyle(PROGRESSBAR, BORDER_WIDTH))); + // WARNING: Working with floats could lead to rounding issues + if ((state != STATE_DISABLED)) progress.width = (float)(*value/(maxValue - minValue))*bounds.width - ((*value >= maxValue)? (float)(2*GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)) : 0.0f); //-------------------------------------------------------------------- // Draw control //-------------------------------------------------------------------- - GuiDrawRectangle(bounds, GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(PROGRESSBAR, BORDER + (state*3))), guiAlpha), BLANK); + if (state == STATE_DISABLED) + { + GuiDrawRectangle(bounds, GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), GetColor(GuiGetStyle(PROGRESSBAR, BORDER + (state*3))), BLANK); + } + else + { + if (*value > minValue) + { + // Draw progress bar with colored border, more visual + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height - 2 }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, (int)progress.width + (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED))); + } + else GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL))); + + if (*value >= maxValue) GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + progress.width + 1, bounds.y, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_FOCUSED))); + else + { + // Draw borders not yet reached by value + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + (int)progress.width + 1, bounds.y, bounds.width - (int)progress.width - 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + (int)progress.width + 1, bounds.y + bounds.height - 1, bounds.width - (int)progress.width - 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH) }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL))); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x + bounds.width - 1, bounds.y + 1, (float)GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), bounds.height - 2 }, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BORDER_COLOR_NORMAL))); + } - // Draw slider internal progress bar (depends on state) - if ((state == STATE_NORMAL) || (state == STATE_PRESSED)) GuiDrawRectangle(progress, 0, BLANK, Fade(GetColor(GuiGetStyle(PROGRESSBAR, BASE_COLOR_PRESSED)), guiAlpha)); - else if (state == STATE_FOCUSED) GuiDrawRectangle(progress, 0, BLANK, Fade(GetColor(GuiGetStyle(PROGRESSBAR, TEXT_COLOR_FOCUSED)), guiAlpha)); + // Draw slider internal progress bar (depends on state) + GuiDrawRectangle(progress, 0, BLANK, GetColor(GuiGetStyle(PROGRESSBAR, BASE_COLOR_PRESSED))); + } // Draw left/right text if provided if (textLeft != NULL) @@ -2693,7 +3130,7 @@ float GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRig textBounds.x = bounds.x - textBounds.width - GuiGetStyle(PROGRESSBAR, TEXT_PADDING); textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; - GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(PROGRESSBAR, TEXT + (state*3))), guiAlpha)); + GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, GetColor(GuiGetStyle(PROGRESSBAR, TEXT + (state*3)))); } if (textRight != NULL) @@ -2704,34 +3141,37 @@ float GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRig textBounds.x = bounds.x + bounds.width + GuiGetStyle(PROGRESSBAR, TEXT_PADDING); textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2; - GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, Fade(GetColor(GuiGetStyle(PROGRESSBAR, TEXT + (state*3))), guiAlpha)); + GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, GetColor(GuiGetStyle(PROGRESSBAR, TEXT + (state*3)))); } //-------------------------------------------------------------------- - return value; + return result; } // Status Bar control -void GuiStatusBar(Rectangle bounds, const char *text) +int GuiStatusBar(Rectangle bounds, const char *text) { + int result = 0; GuiState state = guiState; // Draw control //-------------------------------------------------------------------- - GuiDrawRectangle(bounds, GuiGetStyle(STATUSBAR, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(STATUSBAR, (state != STATE_DISABLED)? BORDER_COLOR_NORMAL : BORDER_COLOR_DISABLED)), guiAlpha), - Fade(GetColor(GuiGetStyle(STATUSBAR, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)), guiAlpha)); - GuiDrawText(text, GetTextBounds(STATUSBAR, bounds), GuiGetStyle(STATUSBAR, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(STATUSBAR, (state != STATE_DISABLED)? TEXT_COLOR_NORMAL : TEXT_COLOR_DISABLED)), guiAlpha)); + GuiDrawRectangle(bounds, GuiGetStyle(STATUSBAR, BORDER_WIDTH), GetColor(GuiGetStyle(STATUSBAR, BORDER + (state*3))), GetColor(GuiGetStyle(STATUSBAR, BASE + (state*3)))); + GuiDrawText(text, GetTextBounds(STATUSBAR, bounds), GuiGetStyle(STATUSBAR, TEXT_ALIGNMENT), GetColor(GuiGetStyle(STATUSBAR, TEXT + (state*3)))); //-------------------------------------------------------------------- + + return result; } // Dummy rectangle control, intended for placeholding -void GuiDummyRec(Rectangle bounds, const char *text) +int GuiDummyRec(Rectangle bounds, const char *text) { + int result = 0; GuiState state = guiState; // Update control //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && !guiLocked) + if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging) { Vector2 mousePoint = GetMousePosition(); @@ -2746,28 +3186,35 @@ void GuiDummyRec(Rectangle bounds, const char *text) // Draw control //-------------------------------------------------------------------- - GuiDrawRectangle(bounds, 0, BLANK, Fade(GetColor(GuiGetStyle(DEFAULT, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)), guiAlpha)); - GuiDrawText(text, GetTextBounds(DEFAULT, bounds), TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(BUTTON, (state != STATE_DISABLED)? TEXT_COLOR_NORMAL : TEXT_COLOR_DISABLED)), guiAlpha)); + GuiDrawRectangle(bounds, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED))); + GuiDrawText(text, GetTextBounds(DEFAULT, bounds), TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(BUTTON, (state != STATE_DISABLED)? TEXT_COLOR_NORMAL : TEXT_COLOR_DISABLED))); //------------------------------------------------------------------ + + return result; } // List View control -int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int active) +int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int *active) { + int result = 0; int itemCount = 0; const char **items = NULL; if (text != NULL) items = GuiTextSplit(text, ';', &itemCount, NULL); - return GuiListViewEx(bounds, items, itemCount, NULL, scrollIndex, active); + result = GuiListViewEx(bounds, items, itemCount, scrollIndex, active, NULL); + + return result; } // List View control with extended parameters -int GuiListViewEx(Rectangle bounds, const char **text, int count, int *focus, int *scrollIndex, int active) +int GuiListViewEx(Rectangle bounds, const char **text, int count, int *scrollIndex, int *active, int *focus) { + int result = 0; GuiState state = guiState; + int itemFocused = (focus == NULL)? -1 : *focus; - int itemSelected = active; + int itemSelected = (active == NULL)? -1 : *active; // Check if we need a scroll bar bool useScrollBar = false; @@ -2791,7 +3238,7 @@ int GuiListViewEx(Rectangle bounds, const char **text, int count, int *focus, in // Update control //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && !guiLocked) + if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging) { Vector2 mousePoint = GetMousePosition(); @@ -2839,35 +3286,35 @@ int GuiListViewEx(Rectangle bounds, const char **text, int count, int *focus, in // Draw control //-------------------------------------------------------------------- - GuiDrawRectangle(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), guiAlpha), GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background + GuiDrawRectangle(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background // Draw visible items for (int i = 0; ((i < visibleItems) && (text != NULL)); i++) { if (state == STATE_DISABLED) { - if ((startIndex + i) == itemSelected) GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_DISABLED)), guiAlpha), Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_DISABLED)), guiAlpha)); + if ((startIndex + i) == itemSelected) GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_DISABLED)), GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_DISABLED))); - GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_DISABLED)), guiAlpha)); + GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_DISABLED))); } else { - if ((startIndex + i) == itemSelected) + if (((startIndex + i) == itemSelected) && (active != NULL)) { // Draw item selected - GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_PRESSED)), guiAlpha), Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_PRESSED)), guiAlpha)); - GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_PRESSED)), guiAlpha)); + GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_PRESSED)), GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_PRESSED))); + GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_PRESSED))); } - else if ((startIndex + i) == itemFocused) + else if (((startIndex + i) == itemFocused)) // && (focus != NULL)) // NOTE: We want items focused, despite not returned! { // Draw item focused - GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_FOCUSED)), guiAlpha), Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_FOCUSED)), guiAlpha)); - GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_FOCUSED)), guiAlpha)); + GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_FOCUSED)), GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_FOCUSED))); + GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_FOCUSED))); } else { // Draw item normal - GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_NORMAL)), guiAlpha)); + GuiDrawText(text[startIndex + i], GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_NORMAL))); } } @@ -2899,29 +3346,30 @@ int GuiListViewEx(Rectangle bounds, const char **text, int count, int *focus, in } //-------------------------------------------------------------------- + if (active != NULL) *active = itemSelected; if (focus != NULL) *focus = itemFocused; if (scrollIndex != NULL) *scrollIndex = startIndex; - return itemSelected; + return result; } // Color Panel control -Color GuiColorPanel(Rectangle bounds, const char *text, Color color) +int GuiColorPanel(Rectangle bounds, const char *text, Color *color) { - const Color colWhite = { 255, 255, 255, 255 }; - const Color colBlack = { 0, 0, 0, 255 }; - + int result = 0; GuiState state = guiState; Vector2 pickerSelector = { 0 }; - Vector3 vcolor = { (float)color.r/255.0f, (float)color.g/255.0f, (float)color.b/255.0f }; + const Color colWhite = { 255, 255, 255, 255 }; + const Color colBlack = { 0, 0, 0, 255 }; + + Vector3 vcolor = { (float)color->r/255.0f, (float)color->g/255.0f, (float)color->b/255.0f }; Vector3 hsv = ConvertRGBtoHSV(vcolor); pickerSelector.x = bounds.x + (float)hsv.y*bounds.width; // HSV: Saturation pickerSelector.y = bounds.y + (1.0f - (float)hsv.z)*bounds.height; // HSV: Value - float hue = -1.0f; - Vector3 maxHue = { hue >= 0.0f ? hue : hsv.x, 1.0f, 1.0f }; + Vector3 maxHue = { hsv.x, 1.0f, 1.0f }; Vector3 rgbHue = ConvertHSVtoRGB(maxHue); Color maxHueCol = { (unsigned char)(255.0f*rgbHue.x), (unsigned char)(255.0f*rgbHue.y), @@ -2929,7 +3377,7 @@ Color GuiColorPanel(Rectangle bounds, const char *text, Color color) // Update control //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && !guiLocked) + if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging) { Vector2 mousePoint = GetMousePosition(); @@ -2952,10 +3400,10 @@ Color GuiColorPanel(Rectangle bounds, const char *text, Color color) Vector3 rgb = ConvertHSVtoRGB(hsv); // NOTE: Vector3ToColor() only available on raylib 1.8.1 - color = RAYGUI_CLITERAL(Color){ (unsigned char)(255.0f*rgb.x), + *color = RAYGUI_CLITERAL(Color){ (unsigned char)(255.0f*rgb.x), (unsigned char)(255.0f*rgb.y), (unsigned char)(255.0f*rgb.z), - (unsigned char)(255.0f*(float)color.a/255.0f) }; + (unsigned char)(255.0f*(float)color->a/255.0f) }; } else state = STATE_FOCUSED; @@ -2972,29 +3420,30 @@ Color GuiColorPanel(Rectangle bounds, const char *text, Color color) // Draw color picker: selector Rectangle selector = { pickerSelector.x - GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)/2, pickerSelector.y - GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)/2, (float)GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE), (float)GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE) }; - GuiDrawRectangle(selector, 0, BLANK, Fade(colWhite, guiAlpha)); + GuiDrawRectangle(selector, 0, BLANK, colWhite); } else { DrawRectangleGradientEx(bounds, Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), guiAlpha), Fade(Fade(colBlack, 0.6f), guiAlpha), Fade(Fade(colBlack, 0.6f), guiAlpha), Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), 0.6f), guiAlpha)); } - GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), guiAlpha), BLANK); + GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK); //-------------------------------------------------------------------- - return color; + return result; } // Color Bar Alpha control // NOTE: Returns alpha value normalized [0..1] -float GuiColorBarAlpha(Rectangle bounds, const char *text, float alpha) +int GuiColorBarAlpha(Rectangle bounds, const char *text, float *alpha) { #if !defined(RAYGUI_COLORBARALPHA_CHECKED_SIZE) #define RAYGUI_COLORBARALPHA_CHECKED_SIZE 10 #endif + int result = 0; GuiState state = guiState; - Rectangle selector = { (float)bounds.x + alpha*bounds.width - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)/2, (float)bounds.y - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (float)GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT), (float)bounds.height + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)*2 }; + Rectangle selector = { (float)bounds.x + (*alpha)*bounds.width - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)/2, (float)bounds.y - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (float)GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT), (float)bounds.height + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)*2 }; // Update control //-------------------------------------------------------------------- @@ -3002,16 +3451,36 @@ float GuiColorBarAlpha(Rectangle bounds, const char *text, float alpha) { Vector2 mousePoint = GetMousePosition(); - if (CheckCollisionPointRec(mousePoint, bounds) || - CheckCollisionPointRec(mousePoint, selector)) + if (guiSliderDragging) // Keep dragging outside of bounds + { + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + { + if (CHECK_BOUNDS_ID(bounds, guiSliderActive)) + { + state = STATE_PRESSED; + + *alpha = (mousePoint.x - bounds.x)/bounds.width; + if (*alpha <= 0.0f) *alpha = 0.0f; + if (*alpha >= 1.0f) *alpha = 1.0f; + } + } + else + { + guiSliderDragging = false; + guiSliderActive = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds) || CheckCollisionPointRec(mousePoint, selector)) { if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) { state = STATE_PRESSED; + guiSliderDragging = true; + guiSliderActive = bounds; // Store bounds as an identifier when dragging starts - alpha = (mousePoint.x - bounds.x)/bounds.width; - if (alpha <= 0.0f) alpha = 0.0f; - if (alpha >= 1.0f) alpha = 1.0f; + *alpha = (mousePoint.x - bounds.x)/bounds.width; + if (*alpha <= 0.0f) *alpha = 0.0f; + if (*alpha >= 1.0f) *alpha = 1.0f; //selector.x = bounds.x + (int)(((alpha - 0)/(100 - 0))*(bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH))) - selector.width/2; } else state = STATE_FOCUSED; @@ -3033,7 +3502,7 @@ float GuiColorBarAlpha(Rectangle bounds, const char *text, float alpha) for (int y = 0; y < checksY; y++) { Rectangle check = { bounds.x + x*RAYGUI_COLORBARALPHA_CHECKED_SIZE, bounds.y + y*RAYGUI_COLORBARALPHA_CHECKED_SIZE, RAYGUI_COLORBARALPHA_CHECKED_SIZE, RAYGUI_COLORBARALPHA_CHECKED_SIZE }; - GuiDrawRectangle(check, 0, BLANK, ((x + y)%2)? Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), 0.4f), guiAlpha) : Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.4f), guiAlpha)); + GuiDrawRectangle(check, 0, BLANK, ((x + y)%2)? Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), 0.4f) : Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.4f)); } } @@ -3041,13 +3510,13 @@ float GuiColorBarAlpha(Rectangle bounds, const char *text, float alpha) } else DrawRectangleGradientEx(bounds, Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), guiAlpha), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), guiAlpha)); - GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), guiAlpha), BLANK); + GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK); // Draw alpha bar: selector - GuiDrawRectangle(selector, 0, BLANK, Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), guiAlpha)); + GuiDrawRectangle(selector, 0, BLANK, GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3))); //-------------------------------------------------------------------- - return alpha; + return result; } // Color Bar Hue control @@ -3056,10 +3525,11 @@ float GuiColorBarAlpha(Rectangle bounds, const char *text, float alpha) // Color GuiColorBarSat() [WHITE->color] // Color GuiColorBarValue() [BLACK->color], HSV/HSL // float GuiColorBarLuminance() [BLACK->WHITE] -float GuiColorBarHue(Rectangle bounds, const char *text, float hue) +int GuiColorBarHue(Rectangle bounds, const char *text, float *hue) { + int result = 0; GuiState state = guiState; - Rectangle selector = { (float)bounds.x - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (float)bounds.y + hue/360.0f*bounds.height - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)/2, (float)bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)*2, (float)GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT) }; + Rectangle selector = { (float)bounds.x - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW), (float)bounds.y + (*hue)/360.0f*bounds.height - GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)/2, (float)bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)*2, (float)GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT) }; // Update control //-------------------------------------------------------------------- @@ -3067,16 +3537,36 @@ float GuiColorBarHue(Rectangle bounds, const char *text, float hue) { Vector2 mousePoint = GetMousePosition(); - if (CheckCollisionPointRec(mousePoint, bounds) || - CheckCollisionPointRec(mousePoint, selector)) + if (guiSliderDragging) // Keep dragging outside of bounds + { + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + { + if (CHECK_BOUNDS_ID(bounds, guiSliderActive)) + { + state = STATE_PRESSED; + + *hue = (mousePoint.y - bounds.y)*360/bounds.height; + if (*hue <= 0.0f) *hue = 0.0f; + if (*hue >= 359.0f) *hue = 359.0f; + } + } + else + { + guiSliderDragging = false; + guiSliderActive = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds) || CheckCollisionPointRec(mousePoint, selector)) { if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) { state = STATE_PRESSED; + guiSliderDragging = true; + guiSliderActive = bounds; // Store bounds as an identifier when dragging starts - hue = (mousePoint.y - bounds.y)*360/bounds.height; - if (hue <= 0.0f) hue = 0.0f; - if (hue >= 359.0f) hue = 359.0f; + *hue = (mousePoint.y - bounds.y)*360/bounds.height; + if (*hue <= 0.0f) *hue = 0.0f; + if (*hue >= 359.0f) *hue = 359.0f; } else state = STATE_FOCUSED; @@ -3100,7 +3590,8 @@ float GuiColorBarHue(Rectangle bounds, const char *text, float hue) if (state != STATE_DISABLED) { // Draw hue bar:color bars - DrawRectangleGradientV((int)bounds.x, (int)(bounds.y), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 255, 0, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 255, 255, 0, 255 }, guiAlpha)); + // TODO: Use directly DrawRectangleGradientEx(bounds, color1, color2, color2, color1); + DrawRectangleGradientV((int)bounds.x, (int)(bounds.y), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 255, 0, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 255, 255, 0, 255 }, guiAlpha)); DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + bounds.height/6), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 255, 255, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 0, 255 }, guiAlpha)); DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + 2*(bounds.height/6)), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 0, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 255, 255 }, guiAlpha)); DrawRectangleGradientV((int)bounds.x, (int)(bounds.y + 3*(bounds.height/6)), (int)bounds.width, (int)ceilf(bounds.height/6), Fade(RAYGUI_CLITERAL(Color){ 0, 255, 255, 255 }, guiAlpha), Fade(RAYGUI_CLITERAL(Color){ 0, 0, 255, 255 }, guiAlpha)); @@ -3109,13 +3600,13 @@ float GuiColorBarHue(Rectangle bounds, const char *text, float hue) } else DrawRectangleGradientV((int)bounds.x, (int)bounds.y, (int)bounds.width, (int)bounds.height, Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), guiAlpha), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), guiAlpha)); - GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), guiAlpha), BLANK); + GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK); // Draw hue bar: selector - GuiDrawRectangle(selector, 0, BLANK, Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), guiAlpha)); + GuiDrawRectangle(selector, 0, BLANK, GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3))); //-------------------------------------------------------------------- - return hue; + return result; } // Color Picker control @@ -3124,21 +3615,126 @@ float GuiColorBarHue(Rectangle bounds, const char *text, float hue) // float GuiColorBarAlpha(Rectangle bounds, float alpha) // float GuiColorBarHue(Rectangle bounds, float value) // NOTE: bounds define GuiColorPanel() size -Color GuiColorPicker(Rectangle bounds, const char *text, Color color) +int GuiColorPicker(Rectangle bounds, const char *text, Color *color) { - color = GuiColorPanel(bounds, NULL, color); + int result = 0; + + Color temp = { 200, 0, 0, 255 }; + if (color == NULL) color = &temp; + + GuiColorPanel(bounds, NULL, color); Rectangle boundsHue = { (float)bounds.x + bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_PADDING), (float)bounds.y, (float)GuiGetStyle(COLORPICKER, HUEBAR_WIDTH), (float)bounds.height }; //Rectangle boundsAlpha = { bounds.x, bounds.y + bounds.height + GuiGetStyle(COLORPICKER, BARS_PADDING), bounds.width, GuiGetStyle(COLORPICKER, BARS_THICK) }; - Vector3 hsv = ConvertRGBtoHSV(RAYGUI_CLITERAL(Vector3){ color.r/255.0f, color.g/255.0f, color.b/255.0f }); - hsv.x = GuiColorBarHue(boundsHue, NULL, hsv.x); + Vector3 hsv = ConvertRGBtoHSV(RAYGUI_CLITERAL(Vector3){ (*color).r/255.0f, (*color).g/255.0f, (*color).b/255.0f }); + + GuiColorBarHue(boundsHue, NULL, &hsv.x); + //color.a = (unsigned char)(GuiColorBarAlpha(boundsAlpha, (float)color.a/255.0f)*255.0f); Vector3 rgb = ConvertHSVtoRGB(hsv); - color = RAYGUI_CLITERAL(Color){ (unsigned char)roundf(rgb.x*255.0f), (unsigned char)roundf(rgb.y*255.0f), (unsigned char)roundf(rgb.z*255.0f), color.a }; + *color = RAYGUI_CLITERAL(Color){ (unsigned char)roundf(rgb.x*255.0f), (unsigned char)roundf(rgb.y*255.0f), (unsigned char)roundf(rgb.z*255.0f), (*color).a }; - return color; + return result; +} + +// Color Picker control that avoids conversion to RGB and back to HSV on each call, thus avoiding jittering. +// The user can call ConvertHSVtoRGB() to convert *colorHsv value to RGB. +// NOTE: It's divided in multiple controls: +// int GuiColorPanelHSV(Rectangle bounds, const char *text, Vector3 *colorHsv) +// int GuiColorBarAlpha(Rectangle bounds, const char *text, float *alpha) +// float GuiColorBarHue(Rectangle bounds, float value) +// NOTE: bounds define GuiColorPanelHSV() size +int GuiColorPickerHSV(Rectangle bounds, const char *text, Vector3 *colorHsv) +{ + int result = 0; + + Vector3 tempHsv = { 0 }; + + if (colorHsv == NULL) + { + const Vector3 tempColor = { 200.0f/255.0f, 0.0f, 0.0f }; + tempHsv = ConvertRGBtoHSV(tempColor); + colorHsv = &tempHsv; + } + + GuiColorPanelHSV(bounds, NULL, colorHsv); + + const Rectangle boundsHue = { (float)bounds.x + bounds.width + GuiGetStyle(COLORPICKER, HUEBAR_PADDING), (float)bounds.y, (float)GuiGetStyle(COLORPICKER, HUEBAR_WIDTH), (float)bounds.height }; + + GuiColorBarHue(boundsHue, NULL, &colorHsv->x); + + return result; +} + +// Color Panel control, returns HSV color value in *colorHsv. +// Used by GuiColorPickerHSV() +int GuiColorPanelHSV(Rectangle bounds, const char *text, Vector3 *colorHsv) +{ + int result = 0; + GuiState state = guiState; + Vector2 pickerSelector = { 0 }; + + const Color colWhite = { 255, 255, 255, 255 }; + const Color colBlack = { 0, 0, 0, 255 }; + + pickerSelector.x = bounds.x + (float)colorHsv->y*bounds.width; // HSV: Saturation + pickerSelector.y = bounds.y + (1.0f - (float)colorHsv->z)*bounds.height; // HSV: Value + + Vector3 maxHue = { colorHsv->x, 1.0f, 1.0f }; + Vector3 rgbHue = ConvertHSVtoRGB(maxHue); + Color maxHueCol = { (unsigned char)(255.0f*rgbHue.x), + (unsigned char)(255.0f*rgbHue.y), + (unsigned char)(255.0f*rgbHue.z), 255 }; + + // Update control + //-------------------------------------------------------------------- + if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging) + { + Vector2 mousePoint = GetMousePosition(); + + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + { + state = STATE_PRESSED; + pickerSelector = mousePoint; + + // Calculate color from picker + Vector2 colorPick = { pickerSelector.x - bounds.x, pickerSelector.y - bounds.y }; + + colorPick.x /= (float)bounds.width; // Get normalized value on x + colorPick.y /= (float)bounds.height; // Get normalized value on y + + colorHsv->y = colorPick.x; + colorHsv->z = 1.0f - colorPick.y; + } + else state = STATE_FOCUSED; + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (state != STATE_DISABLED) + { + DrawRectangleGradientEx(bounds, Fade(colWhite, guiAlpha), Fade(colWhite, guiAlpha), Fade(maxHueCol, guiAlpha), Fade(maxHueCol, guiAlpha)); + DrawRectangleGradientEx(bounds, Fade(colBlack, 0), Fade(colBlack, guiAlpha), Fade(colBlack, guiAlpha), Fade(colBlack, 0)); + + // Draw color picker: selector + Rectangle selector = { pickerSelector.x - GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)/2, pickerSelector.y - GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)/2, (float)GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE), (float)GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE) }; + GuiDrawRectangle(selector, 0, BLANK, colWhite); + } + else + { + DrawRectangleGradientEx(bounds, Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED)), 0.1f), guiAlpha), Fade(Fade(colBlack, 0.6f), guiAlpha), Fade(Fade(colBlack, 0.6f), guiAlpha), Fade(Fade(GetColor(GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED)), 0.6f), guiAlpha)); + } + + GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), GetColor(GuiGetStyle(COLORPICKER, BORDER + state*3)), BLANK); + //-------------------------------------------------------------------- + + return result; } // Message Box control @@ -3151,7 +3747,7 @@ int GuiMessageBox(Rectangle bounds, const char *title, const char *message, cons #define RAYGUI_MESSAGEBOX_BUTTON_PADDING 12 #endif - int clicked = -1; // Returns clicked button from buttons list, 0 refers to closed window button + int result = -1; // Returns clicked button from buttons list, 0 refers to closed window button int buttonCount = 0; const char **buttonsText = GuiTextSplit(buttons, ';', &buttonCount, NULL); @@ -3161,7 +3757,7 @@ int GuiMessageBox(Rectangle bounds, const char *title, const char *message, cons buttonBounds.width = (bounds.width - RAYGUI_MESSAGEBOX_BUTTON_PADDING*(buttonCount + 1))/buttonCount; buttonBounds.height = RAYGUI_MESSAGEBOX_BUTTON_HEIGHT; - int textWidth = GetTextWidth(message); + int textWidth = GetTextWidth(message) + 2; Rectangle textBounds = { 0 }; textBounds.x = bounds.x + bounds.width/2 - textWidth/2; @@ -3171,7 +3767,7 @@ int GuiMessageBox(Rectangle bounds, const char *title, const char *message, cons // Draw control //-------------------------------------------------------------------- - if (GuiWindowBox(bounds, title)) clicked = 0; + if (GuiWindowBox(bounds, title)) result = 0; int prevTextAlignment = GuiGetStyle(LABEL, TEXT_ALIGNMENT); GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); @@ -3183,18 +3779,18 @@ int GuiMessageBox(Rectangle bounds, const char *title, const char *message, cons for (int i = 0; i < buttonCount; i++) { - if (GuiButton(buttonBounds, buttonsText[i])) clicked = i + 1; + if (GuiButton(buttonBounds, buttonsText[i])) result = i + 1; buttonBounds.x += (buttonBounds.width + RAYGUI_MESSAGEBOX_BUTTON_PADDING); } GuiSetStyle(BUTTON, TEXT_ALIGNMENT, prevTextAlignment); //-------------------------------------------------------------------- - return clicked; + return result; } // Text Input Box control, ask for text -int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text, int textMaxSize, int *secretViewActive) +int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text, int textMaxSize, bool *secretViewActive) { #if !defined(RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT) #define RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT 24 @@ -3210,7 +3806,7 @@ int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, co // WARNING: No more than one GuiTextInputBox() should be open at the same time static bool textEditMode = false; - int btnIndex = -1; + int result = -1; int buttonCount = 0; const char **buttonsText = GuiTextSplit(buttons, ';', &buttonCount, NULL); @@ -3225,7 +3821,7 @@ int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, co Rectangle textBounds = { 0 }; if (message != NULL) { - int textSize = GetTextWidth(message); + int textSize = GetTextWidth(message) + 2; textBounds.x = bounds.x + bounds.width/2 - textSize/2; textBounds.y = bounds.y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT + messageInputHeight/4 - (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/2; @@ -3243,7 +3839,7 @@ int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, co // Draw control //-------------------------------------------------------------------- - if (GuiWindowBox(bounds, title)) btnIndex = 0; + if (GuiWindowBox(bounds, title)) result = 0; // Draw message if available if (message != NULL) @@ -3260,7 +3856,7 @@ int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, co if (GuiTextBox(RAYGUI_CLITERAL(Rectangle){ textBoxBounds.x, textBoxBounds.y, textBoxBounds.width - 4 - RAYGUI_TEXTINPUTBOX_HEIGHT, textBoxBounds.height }, ((*secretViewActive == 1) || textEditMode)? text : stars, textMaxSize, textEditMode)) textEditMode = !textEditMode; - *secretViewActive = GuiToggle(RAYGUI_CLITERAL(Rectangle){ textBoxBounds.x + textBoxBounds.width - RAYGUI_TEXTINPUTBOX_HEIGHT, textBoxBounds.y, RAYGUI_TEXTINPUTBOX_HEIGHT, RAYGUI_TEXTINPUTBOX_HEIGHT }, (*secretViewActive == 1)? "#44#" : "#45#", *secretViewActive); + GuiToggle(RAYGUI_CLITERAL(Rectangle){ textBoxBounds.x + textBoxBounds.width - RAYGUI_TEXTINPUTBOX_HEIGHT, textBoxBounds.y, RAYGUI_TEXTINPUTBOX_HEIGHT, RAYGUI_TEXTINPUTBOX_HEIGHT }, (*secretViewActive == 1)? "#44#" : "#45#", secretViewActive); } else { @@ -3272,77 +3868,77 @@ int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, co for (int i = 0; i < buttonCount; i++) { - if (GuiButton(buttonBounds, buttonsText[i])) btnIndex = i + 1; + if (GuiButton(buttonBounds, buttonsText[i])) result = i + 1; buttonBounds.x += (buttonBounds.width + RAYGUI_MESSAGEBOX_BUTTON_PADDING); } + if (result >= 0) textEditMode = false; + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, prevBtnTextAlignment); //-------------------------------------------------------------------- - return btnIndex; + return result; // Result is the pressed button index } // Grid control // NOTE: Returns grid mouse-hover selected cell // About drawing lines at subpixel spacing, simple put, not easy solution: // https://stackoverflow.com/questions/4435450/2d-opengl-drawing-lines-that-dont-exactly-fit-pixel-raster -Vector2 GuiGrid(Rectangle bounds, const char *text, float spacing, int subdivs) +int GuiGrid(Rectangle bounds, const char *text, float spacing, int subdivs, Vector2 *mouseCell) { // Grid lines alpha amount #if !defined(RAYGUI_GRID_ALPHA) #define RAYGUI_GRID_ALPHA 0.15f #endif + int result = 0; GuiState state = guiState; + Vector2 mousePoint = GetMousePosition(); - Vector2 currentCell = { -1, -1 }; + Vector2 currentMouseCell = { -1, -1 }; - int linesV = ((int)(bounds.width/spacing))*subdivs + 1; - int linesH = ((int)(bounds.height/spacing))*subdivs + 1; + float spaceWidth = spacing/(float)subdivs; + int linesV = (int)(bounds.width/spaceWidth) + 1; + int linesH = (int)(bounds.height/spaceWidth) + 1; + + int color = GuiGetStyle(DEFAULT, LINE_COLOR); // Update control //-------------------------------------------------------------------- - if ((state != STATE_DISABLED) && !guiLocked) + if ((state != STATE_DISABLED) && !guiLocked && !guiSliderDragging) { if (CheckCollisionPointRec(mousePoint, bounds)) { // NOTE: Cell values must be the upper left of the cell the mouse is in - currentCell.x = floorf((mousePoint.x - bounds.x)/spacing); - currentCell.y = floorf((mousePoint.y - bounds.y)/spacing); + currentMouseCell.x = floorf((mousePoint.x - bounds.x)/spacing); + currentMouseCell.y = floorf((mousePoint.y - bounds.y)/spacing); } } //-------------------------------------------------------------------- // Draw control //-------------------------------------------------------------------- + if (state == STATE_DISABLED) color = GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED); - // TODO: Draw background panel? - - switch (state) + if (subdivs > 0) { - case STATE_NORMAL: + // Draw vertical grid lines + for (int i = 0; i < linesV; i++) { - if (subdivs > 0) - { - // Draw vertical grid lines - for (int i = 0; i < linesV; i++) - { - Rectangle lineV = { bounds.x + spacing*i/subdivs, bounds.y, 1, bounds.height }; - GuiDrawRectangle(lineV, 0, BLANK, ((i%subdivs) == 0) ? Fade(GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)), RAYGUI_GRID_ALPHA*4) : Fade(GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)), RAYGUI_GRID_ALPHA)); - } + Rectangle lineV = { bounds.x + spacing*i/subdivs, bounds.y, 1, bounds.height }; + GuiDrawRectangle(lineV, 0, BLANK, ((i%subdivs) == 0)? GuiFade(GetColor(color), RAYGUI_GRID_ALPHA*4) : GuiFade(GetColor(color), RAYGUI_GRID_ALPHA)); + } - // Draw horizontal grid lines - for (int i = 0; i < linesH; i++) - { - Rectangle lineH = { bounds.x, bounds.y + spacing*i/subdivs, bounds.width, 1 }; - GuiDrawRectangle(lineH, 0, BLANK, ((i%subdivs) == 0) ? Fade(GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)), RAYGUI_GRID_ALPHA*4) : Fade(GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)), RAYGUI_GRID_ALPHA)); - } - } - } break; - default: break; + // Draw horizontal grid lines + for (int i = 0; i < linesH; i++) + { + Rectangle lineH = { bounds.x, bounds.y + spacing*i/subdivs, bounds.width, 1 }; + GuiDrawRectangle(lineH, 0, BLANK, ((i%subdivs) == 0)? GuiFade(GetColor(color), RAYGUI_GRID_ALPHA*4) : GuiFade(GetColor(color), RAYGUI_GRID_ALPHA)); + } } - return currentCell; + if (mouseCell != NULL) *mouseCell = currentMouseCell; + return result; } //---------------------------------------------------------------------------------- @@ -3408,34 +4004,37 @@ void GuiLoadStyle(const char *fileName) sscanf(buffer, "f %d %s %[^\r\n]s", &fontSize, charmapFileName, fontFileName); Font font = { 0 }; + int *codepoints = NULL; + int codepointCount = 0; if (charmapFileName[0] != '0') { - // Load characters from charmap file, - // expected '\n' separated list of integer values - char *charValues = LoadFileText(charmapFileName); - if (charValues != NULL) - { - int glyphCount = 0; - const char **chars = TextSplit(charValues, '\n', &glyphCount); - - int *values = (int *)RAYGUI_MALLOC(glyphCount*sizeof(int)); - for (int i = 0; i < glyphCount; i++) values[i] = TextToInteger(chars[i]); - - if (font.texture.id != GetFontDefault().texture.id) UnloadTexture(font.texture); - font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), fontFileName), fontSize, values, glyphCount); - if (font.texture.id == 0) font = GetFontDefault(); - - RAYGUI_FREE(values); - } + // Load text data from file + // NOTE: Expected an UTF-8 array of codepoints, no separation + char *textData = LoadFileText(TextFormat("%s/%s", GetDirectoryPath(fileName), charmapFileName)); + codepoints = LoadCodepoints(textData, &codepointCount); + UnloadFileText(textData); } - else + + if (fontFileName[0] != '\0') { + // In case a font is already loaded and it is not default internal font, unload it if (font.texture.id != GetFontDefault().texture.id) UnloadTexture(font.texture); - font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), fontFileName), fontSize, NULL, 0); - if (font.texture.id == 0) font = GetFontDefault(); + + if (codepointCount > 0) font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), fontFileName), fontSize, codepoints, codepointCount); + else font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), fontFileName), fontSize, NULL, 0); // Default to 95 standard codepoints } + // If font texture not properly loaded, revert to default font and size/spacing + if (font.texture.id == 0) + { + font = GetFontDefault(); + GuiSetStyle(DEFAULT, TEXT_SIZE, 10); + GuiSetStyle(DEFAULT, TEXT_SPACING, 1); + } + + UnloadCodepoints(codepoints); + if ((font.texture.id > 0) && (font.glyphCount > 0)) GuiSetFont(font); } break; @@ -3454,125 +4053,24 @@ void GuiLoadStyle(const char *fileName) { rgsFile = fopen(fileName, "rb"); - if (rgsFile == NULL) return; - - char signature[5] = { 0 }; - short version = 0; - short reserved = 0; - int propertyCount = 0; - - fread(signature, 1, 4, rgsFile); - fread(&version, sizeof(short), 1, rgsFile); - fread(&reserved, sizeof(short), 1, rgsFile); - fread(&propertyCount, sizeof(int), 1, rgsFile); - - if ((signature[0] == 'r') && - (signature[1] == 'G') && - (signature[2] == 'S') && - (signature[3] == ' ')) + if (rgsFile != NULL) { - short controlId = 0; - short propertyId = 0; - unsigned int propertyValue = 0; + fseek(rgsFile, 0, SEEK_END); + int fileDataSize = ftell(rgsFile); + fseek(rgsFile, 0, SEEK_SET); - for (int i = 0; i < propertyCount; i++) + if (fileDataSize > 0) { - fread(&controlId, sizeof(short), 1, rgsFile); - fread(&propertyId, sizeof(short), 1, rgsFile); - fread(&propertyValue, sizeof(unsigned int), 1, rgsFile); + unsigned char *fileData = (unsigned char *)RAYGUI_MALLOC(fileDataSize*sizeof(unsigned char)); + fread(fileData, sizeof(unsigned char), fileDataSize, rgsFile); - if (controlId == 0) // DEFAULT control - { - // If a DEFAULT property is loaded, it is propagated to all controls - // NOTE: All DEFAULT properties should be defined first in the file - GuiSetStyle(0, (int)propertyId, propertyValue); + GuiLoadStyleFromMemory(fileData, fileDataSize); - if (propertyId < RAYGUI_MAX_PROPS_BASE) for (int i = 1; i < RAYGUI_MAX_CONTROLS; i++) GuiSetStyle(i, (int)propertyId, propertyValue); - } - else GuiSetStyle((int)controlId, (int)propertyId, propertyValue); + RAYGUI_FREE(fileData); } - // Font loading is highly dependant on raylib API to load font data and image -#if !defined(RAYGUI_STANDALONE) - // Load custom font if available - int fontDataSize = 0; - fread(&fontDataSize, sizeof(int), 1, rgsFile); - - if (fontDataSize > 0) - { - Font font = { 0 }; - int fontType = 0; // 0-Normal, 1-SDF - Rectangle whiteRec = { 0 }; - - fread(&font.baseSize, sizeof(int), 1, rgsFile); - fread(&font.glyphCount, sizeof(int), 1, rgsFile); - fread(&fontType, sizeof(int), 1, rgsFile); - - // Load font white rectangle - fread(&whiteRec, sizeof(Rectangle), 1, rgsFile); - - // Load font image parameters - int fontImageUncompSize = 0; - int fontImageCompSize = 0; - fread(&fontImageUncompSize, sizeof(int), 1, rgsFile); - fread(&fontImageCompSize, sizeof(int), 1, rgsFile); - - Image imFont = { 0 }; - imFont.mipmaps = 1; - fread(&imFont.width, sizeof(int), 1, rgsFile); - fread(&imFont.height, sizeof(int), 1, rgsFile); - fread(&imFont.format, sizeof(int), 1, rgsFile); - - if (fontImageCompSize < fontImageUncompSize) - { - // Compressed font atlas image data (DEFLATE), it requires DecompressData() - int dataUncompSize = 0; - unsigned char *compData = (unsigned char *)RAYGUI_MALLOC(fontImageCompSize); - fread(compData, 1, fontImageCompSize, rgsFile); - imFont.data = DecompressData(compData, fontImageCompSize, &dataUncompSize); - - // Security check, dataUncompSize must match the provided fontImageUncompSize - if (dataUncompSize != fontImageUncompSize) RAYGUI_LOG("WARNING: Uncompressed font atlas image data could be corrupted"); - - RAYGUI_FREE(compData); - } - else - { - // Font atlas image data is not compressed - imFont.data = (unsigned char *)RAYGUI_MALLOC(fontImageUncompSize); - fread(imFont.data, 1, fontImageUncompSize, rgsFile); - } - - if (font.texture.id != GetFontDefault().texture.id) UnloadTexture(font.texture); - font.texture = LoadTextureFromImage(imFont); - if (font.texture.id == 0) font = GetFontDefault(); - - RAYGUI_FREE(imFont.data); - - // Load font recs data - font.recs = (Rectangle *)RAYGUI_CALLOC(font.glyphCount, sizeof(Rectangle)); - for (int i = 0; i < font.glyphCount; i++) fread(&font.recs[i], sizeof(Rectangle), 1, rgsFile); - - // Load font chars info data - font.glyphs = (GlyphInfo *)RAYGUI_CALLOC(font.glyphCount, sizeof(GlyphInfo)); - for (int i = 0; i < font.glyphCount; i++) - { - fread(&font.glyphs[i].value, sizeof(int), 1, rgsFile); - fread(&font.glyphs[i].offsetX, sizeof(int), 1, rgsFile); - fread(&font.glyphs[i].offsetY, sizeof(int), 1, rgsFile); - fread(&font.glyphs[i].advanceX, sizeof(int), 1, rgsFile); - } - - GuiSetFont(font); - - // Set font texture source rectangle to be used as white texture to draw shapes - // NOTE: This way, all gui can be draw using a single draw call - if ((whiteRec.width != 0) && (whiteRec.height != 0)) SetShapesTexture(font.texture, whiteRec); - } -#endif + fclose(rgsFile); } - - fclose(rgsFile); } } @@ -3584,6 +4082,8 @@ void GuiLoadStyleDefault(void) guiStyleLoaded = true; // Initialize default LIGHT style property values + // WARNING: Default value are applied to all controls on set but + // they can be overwritten later on for every custom control GuiSetStyle(DEFAULT, BORDER_COLOR_NORMAL, 0x838383ff); GuiSetStyle(DEFAULT, BASE_COLOR_NORMAL, 0xc9c9c9ff); GuiSetStyle(DEFAULT, TEXT_COLOR_NORMAL, 0x686868ff); @@ -3596,17 +4096,29 @@ void GuiLoadStyleDefault(void) GuiSetStyle(DEFAULT, BORDER_COLOR_DISABLED, 0xb5c1c2ff); GuiSetStyle(DEFAULT, BASE_COLOR_DISABLED, 0xe6e9e9ff); GuiSetStyle(DEFAULT, TEXT_COLOR_DISABLED, 0xaeb7b8ff); - GuiSetStyle(DEFAULT, BORDER_WIDTH, 1); // WARNING: Some controls use other values - GuiSetStyle(DEFAULT, TEXT_PADDING, 0); // WARNING: Some controls use other values - GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); // WARNING: Some controls use other values + GuiSetStyle(DEFAULT, BORDER_WIDTH, 1); + GuiSetStyle(DEFAULT, TEXT_PADDING, 0); + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); + + // Initialize default extended property values + // NOTE: By default, extended property values are initialized to 0 + GuiSetStyle(DEFAULT, TEXT_SIZE, 10); // DEFAULT, shared by all controls + GuiSetStyle(DEFAULT, TEXT_SPACING, 1); // DEFAULT, shared by all controls + GuiSetStyle(DEFAULT, LINE_COLOR, 0x90abb5ff); // DEFAULT specific property + GuiSetStyle(DEFAULT, BACKGROUND_COLOR, 0xf5f5f5ff); // DEFAULT specific property + GuiSetStyle(DEFAULT, TEXT_LINE_SPACING, 15); // DEFAULT, 15 pixels between lines + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_MIDDLE); // DEFAULT, text aligned vertically to middle of text-bounds // Initialize control-specific property values // NOTE: Those properties are in default list but require specific values by control type GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); GuiSetStyle(BUTTON, BORDER_WIDTH, 2); GuiSetStyle(SLIDER, TEXT_PADDING, 4); + GuiSetStyle(PROGRESSBAR, TEXT_PADDING, 4); GuiSetStyle(CHECKBOX, TEXT_PADDING, 4); GuiSetStyle(CHECKBOX, TEXT_ALIGNMENT, TEXT_ALIGN_RIGHT); + GuiSetStyle(DROPDOWNBOX, TEXT_PADDING, 0); + GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER); GuiSetStyle(TEXTBOX, TEXT_PADDING, 4); GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT); GuiSetStyle(VALUEBOX, TEXT_PADDING, 0); @@ -3618,10 +4130,6 @@ void GuiLoadStyleDefault(void) // Initialize extended property values // NOTE: By default, extended property values are initialized to 0 - GuiSetStyle(DEFAULT, TEXT_SIZE, 10); // DEFAULT, shared by all controls - GuiSetStyle(DEFAULT, TEXT_SPACING, 1); // DEFAULT, shared by all controls - GuiSetStyle(DEFAULT, LINE_COLOR, 0x90abb5ff); // DEFAULT specific property - GuiSetStyle(DEFAULT, BACKGROUND_COLOR, 0xf5f5f5ff); // DEFAULT specific property GuiSetStyle(TOGGLE, GROUP_PADDING, 2); GuiSetStyle(SLIDER, SLIDER_WIDTH, 16); GuiSetStyle(SLIDER, SLIDER_PADDING, 1); @@ -3631,8 +4139,6 @@ void GuiLoadStyleDefault(void) GuiSetStyle(COMBOBOX, COMBO_BUTTON_SPACING, 2); GuiSetStyle(DROPDOWNBOX, ARROW_PADDING, 16); GuiSetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_SPACING, 2); - GuiSetStyle(TEXTBOX, TEXT_LINES_SPACING, 4); - GuiSetStyle(TEXTBOX, TEXT_INNER_PADDING, 4); GuiSetStyle(SPINNER, SPIN_BUTTON_WIDTH, 24); GuiSetStyle(SPINNER, SPIN_BUTTON_SPACING, 2); GuiSetStyle(SCROLLBAR, BORDER_WIDTH, 0); @@ -3656,13 +4162,19 @@ void GuiLoadStyleDefault(void) { // Unload previous font texture UnloadTexture(guiFont.texture); + RL_FREE(guiFont.recs); + RL_FREE(guiFont.glyphs); + guiFont.recs = NULL; + guiFont.glyphs = NULL; // Setup default raylib font guiFont = GetFontDefault(); - // Setup default raylib font rectangle - Rectangle whiteChar = { 41, 46, 2, 8 }; - SetShapesTexture(guiFont.texture, whiteChar); + // NOTE: Default raylib font character 95 is a white square + Rectangle whiteChar = guiFont.recs[95]; + + // NOTE: We set up a 1px padding on char rectangle to avoid pixel bleeding on MSAA filtering + SetShapesTexture(guiFont.texture, RAYGUI_CLITERAL(Rectangle){ whiteChar.x + 1, whiteChar.y + 1, whiteChar.width - 2, whiteChar.height - 2 }); } } @@ -3675,7 +4187,7 @@ const char *GuiIconText(int iconId, const char *text) return NULL; #else static char buffer[1024] = { 0 }; - static char iconBuffer[6] = { 0 }; + static char iconBuffer[16] = { 0 }; if (text != NULL) { @@ -3692,7 +4204,7 @@ const char *GuiIconText(int iconId, const char *text) } else { - sprintf(iconBuffer, "#%03i#", iconId & 0x1ff); + sprintf(iconBuffer, "#%03i#", iconId); return iconBuffer; } @@ -3789,7 +4301,7 @@ void GuiDrawIcon(int iconId, int posX, int posY, int pixelSize, Color color) if (BIT_CHECK(guiIconsPtr[iconId*RAYGUI_ICON_DATA_ELEMENTS + i], k)) { #if !defined(RAYGUI_STANDALONE) - DrawRectangle(posX + (k%RAYGUI_ICON_SIZE)*pixelSize, posY + y*pixelSize, pixelSize, pixelSize, color); + GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ (float)posX + (k%RAYGUI_ICON_SIZE)*pixelSize, (float)posY + y*pixelSize, (float)pixelSize, (float)pixelSize }, 0, BLANK, color); #endif } @@ -3809,6 +4321,229 @@ void GuiSetIconScale(int scale) //---------------------------------------------------------------------------------- // Module specific Functions Definition //---------------------------------------------------------------------------------- + +// Load style from memory +// WARNING: Binary files only +static void GuiLoadStyleFromMemory(const unsigned char *fileData, int dataSize) +{ + unsigned char *fileDataPtr = (unsigned char *)fileData; + + char signature[5] = { 0 }; + short version = 0; + short reserved = 0; + int propertyCount = 0; + + memcpy(signature, fileDataPtr, 4); + memcpy(&version, fileDataPtr + 4, sizeof(short)); + memcpy(&reserved, fileDataPtr + 4 + 2, sizeof(short)); + memcpy(&propertyCount, fileDataPtr + 4 + 2 + 2, sizeof(int)); + fileDataPtr += 12; + + if ((signature[0] == 'r') && + (signature[1] == 'G') && + (signature[2] == 'S') && + (signature[3] == ' ')) + { + short controlId = 0; + short propertyId = 0; + unsigned int propertyValue = 0; + + for (int i = 0; i < propertyCount; i++) + { + memcpy(&controlId, fileDataPtr, sizeof(short)); + memcpy(&propertyId, fileDataPtr + 2, sizeof(short)); + memcpy(&propertyValue, fileDataPtr + 2 + 2, sizeof(unsigned int)); + fileDataPtr += 8; + + if (controlId == 0) // DEFAULT control + { + // If a DEFAULT property is loaded, it is propagated to all controls + // NOTE: All DEFAULT properties should be defined first in the file + GuiSetStyle(0, (int)propertyId, propertyValue); + + if (propertyId < RAYGUI_MAX_PROPS_BASE) for (int i = 1; i < RAYGUI_MAX_CONTROLS; i++) GuiSetStyle(i, (int)propertyId, propertyValue); + } + else GuiSetStyle((int)controlId, (int)propertyId, propertyValue); + } + + // Font loading is highly dependant on raylib API to load font data and image + +#if !defined(RAYGUI_STANDALONE) + // Load custom font if available + int fontDataSize = 0; + memcpy(&fontDataSize, fileDataPtr, sizeof(int)); + fileDataPtr += 4; + + if (fontDataSize > 0) + { + Font font = { 0 }; + int fontType = 0; // 0-Normal, 1-SDF + + memcpy(&font.baseSize, fileDataPtr, sizeof(int)); + memcpy(&font.glyphCount, fileDataPtr + 4, sizeof(int)); + memcpy(&fontType, fileDataPtr + 4 + 4, sizeof(int)); + fileDataPtr += 12; + + // Load font white rectangle + Rectangle fontWhiteRec = { 0 }; + memcpy(&fontWhiteRec, fileDataPtr, sizeof(Rectangle)); + fileDataPtr += 16; + + // Load font image parameters + int fontImageUncompSize = 0; + int fontImageCompSize = 0; + memcpy(&fontImageUncompSize, fileDataPtr, sizeof(int)); + memcpy(&fontImageCompSize, fileDataPtr + 4, sizeof(int)); + fileDataPtr += 8; + + Image imFont = { 0 }; + imFont.mipmaps = 1; + memcpy(&imFont.width, fileDataPtr, sizeof(int)); + memcpy(&imFont.height, fileDataPtr + 4, sizeof(int)); + memcpy(&imFont.format, fileDataPtr + 4 + 4, sizeof(int)); + fileDataPtr += 12; + + if ((fontImageCompSize > 0) && (fontImageCompSize != fontImageUncompSize)) + { + // Compressed font atlas image data (DEFLATE), it requires DecompressData() + int dataUncompSize = 0; + unsigned char *compData = (unsigned char *)RAYGUI_MALLOC(fontImageCompSize); + memcpy(compData, fileDataPtr, fontImageCompSize); + fileDataPtr += fontImageCompSize; + + imFont.data = DecompressData(compData, fontImageCompSize, &dataUncompSize); + + // Security check, dataUncompSize must match the provided fontImageUncompSize + if (dataUncompSize != fontImageUncompSize) RAYGUI_LOG("WARNING: Uncompressed font atlas image data could be corrupted"); + + RAYGUI_FREE(compData); + } + else + { + // Font atlas image data is not compressed + imFont.data = (unsigned char *)RAYGUI_MALLOC(fontImageUncompSize); + memcpy(imFont.data, fileDataPtr, fontImageUncompSize); + fileDataPtr += fontImageUncompSize; + } + + if (font.texture.id != GetFontDefault().texture.id) UnloadTexture(font.texture); + font.texture = LoadTextureFromImage(imFont); + + RAYGUI_FREE(imFont.data); + + // Validate font atlas texture was loaded correctly + if (font.texture.id != 0) + { + // Load font recs data + int recsDataSize = font.glyphCount*sizeof(Rectangle); + int recsDataCompressedSize = 0; + + // WARNING: Version 400 adds the compression size parameter + if (version >= 400) + { + // RGS files version 400 support compressed recs data + memcpy(&recsDataCompressedSize, fileDataPtr, sizeof(int)); + fileDataPtr += sizeof(int); + } + + if ((recsDataCompressedSize > 0) && (recsDataCompressedSize != recsDataSize)) + { + // Recs data is compressed, uncompress it + unsigned char *recsDataCompressed = (unsigned char *)RAYGUI_MALLOC(recsDataCompressedSize); + + memcpy(recsDataCompressed, fileDataPtr, recsDataCompressedSize); + fileDataPtr += recsDataCompressedSize; + + int recsDataUncompSize = 0; + font.recs = (Rectangle *)DecompressData(recsDataCompressed, recsDataCompressedSize, &recsDataUncompSize); + + // Security check, data uncompressed size must match the expected original data size + if (recsDataUncompSize != recsDataSize) RAYGUI_LOG("WARNING: Uncompressed font recs data could be corrupted"); + + RAYGUI_FREE(recsDataCompressed); + } + else + { + // Recs data is uncompressed + font.recs = (Rectangle *)RAYGUI_CALLOC(font.glyphCount, sizeof(Rectangle)); + for (int i = 0; i < font.glyphCount; i++) + { + memcpy(&font.recs[i], fileDataPtr, sizeof(Rectangle)); + fileDataPtr += sizeof(Rectangle); + } + } + + // Load font glyphs info data + int glyphsDataSize = font.glyphCount*16; // 16 bytes data per glyph + int glyphsDataCompressedSize = 0; + + // WARNING: Version 400 adds the compression size parameter + if (version >= 400) + { + // RGS files version 400 support compressed glyphs data + memcpy(&glyphsDataCompressedSize, fileDataPtr, sizeof(int)); + fileDataPtr += sizeof(int); + } + + // Allocate required glyphs space to fill with data + font.glyphs = (GlyphInfo *)RAYGUI_CALLOC(font.glyphCount, sizeof(GlyphInfo)); + + if ((glyphsDataCompressedSize > 0) && (glyphsDataCompressedSize != glyphsDataSize)) + { + // Glyphs data is compressed, uncompress it + unsigned char *glypsDataCompressed = (unsigned char *)RAYGUI_MALLOC(glyphsDataCompressedSize); + + memcpy(glypsDataCompressed, fileDataPtr, glyphsDataCompressedSize); + fileDataPtr += glyphsDataCompressedSize; + + int glyphsDataUncompSize = 0; + unsigned char *glyphsDataUncomp = DecompressData(glypsDataCompressed, glyphsDataCompressedSize, &glyphsDataUncompSize); + + // Security check, data uncompressed size must match the expected original data size + if (glyphsDataUncompSize != glyphsDataSize) RAYGUI_LOG("WARNING: Uncompressed font glyphs data could be corrupted"); + + unsigned char *glyphsDataUncompPtr = glyphsDataUncomp; + + for (int i = 0; i < font.glyphCount; i++) + { + memcpy(&font.glyphs[i].value, glyphsDataUncompPtr, sizeof(int)); + memcpy(&font.glyphs[i].offsetX, glyphsDataUncompPtr + 4, sizeof(int)); + memcpy(&font.glyphs[i].offsetY, glyphsDataUncompPtr + 8, sizeof(int)); + memcpy(&font.glyphs[i].advanceX, glyphsDataUncompPtr + 12, sizeof(int)); + glyphsDataUncompPtr += 16; + } + + RAYGUI_FREE(glypsDataCompressed); + RAYGUI_FREE(glyphsDataUncomp); + } + else + { + // Glyphs data is uncompressed + for (int i = 0; i < font.glyphCount; i++) + { + memcpy(&font.glyphs[i].value, fileDataPtr, sizeof(int)); + memcpy(&font.glyphs[i].offsetX, fileDataPtr + 4, sizeof(int)); + memcpy(&font.glyphs[i].offsetY, fileDataPtr + 8, sizeof(int)); + memcpy(&font.glyphs[i].advanceX, fileDataPtr + 12, sizeof(int)); + fileDataPtr += 16; + } + } + } + else font = GetFontDefault(); // Fallback in case of errors loading font atlas texture + + GuiSetFont(font); + + // Set font texture source rectangle to be used as white texture to draw shapes + // NOTE: It makes possible to draw shapes and text (full UI) in a single draw call + if ((fontWhiteRec.x > 0) && + (fontWhiteRec.y > 0) && + (fontWhiteRec.width > 0) && + (fontWhiteRec.height > 0)) SetShapesTexture(font.texture, fontWhiteRec); + } +#endif + } +} + // Gui get text width considering icon static int GetTextWidth(const char *text) { @@ -3823,7 +4558,7 @@ static int GetTextWidth(const char *text) { if (text[0] == '#') { - for (int i = 1; (text[i] != '\0') && (i < 5); i++) + for (int i = 1; (i < 5) && (text[i] != '\0'); i++) { if (text[i] == '#') { @@ -3858,10 +4593,10 @@ static int GetTextWidth(const char *text) int codepoint = GetCodepointNext(&text[i], &codepointSize); int codepointIndex = GetGlyphIndex(guiFont, codepoint); - if (guiFont.glyphs[codepointIndex].advanceX == 0) glyphWidth = ((float)guiFont.recs[codepointIndex].width*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); - else glyphWidth = ((float)guiFont.glyphs[codepointIndex].advanceX*scaleFactor + GuiGetStyle(DEFAULT, TEXT_SPACING)); + if (guiFont.glyphs[codepointIndex].advanceX == 0) glyphWidth = ((float)guiFont.recs[codepointIndex].width*scaleFactor); + else glyphWidth = ((float)guiFont.glyphs[codepointIndex].advanceX*scaleFactor); - textSize.x += glyphWidth; + textSize.x += (glyphWidth + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); } } @@ -3877,27 +4612,31 @@ static Rectangle GetTextBounds(int control, Rectangle bounds) Rectangle textBounds = bounds; textBounds.x = bounds.x + GuiGetStyle(control, BORDER_WIDTH); - textBounds.y = bounds.y + GuiGetStyle(control, BORDER_WIDTH); + textBounds.y = bounds.y + GuiGetStyle(control, BORDER_WIDTH) + GuiGetStyle(control, TEXT_PADDING); textBounds.width = bounds.width - 2*GuiGetStyle(control, BORDER_WIDTH) - 2*GuiGetStyle(control, TEXT_PADDING); - textBounds.height = bounds.height - 2*GuiGetStyle(control, BORDER_WIDTH); + textBounds.height = bounds.height - 2*GuiGetStyle(control, BORDER_WIDTH) - 2*GuiGetStyle(control, TEXT_PADDING); // NOTE: Text is processed line per line! - // Consider TEXT_PADDING properly, depends on control type and TEXT_ALIGNMENT + // Depending on control, TEXT_PADDING and TEXT_ALIGNMENT properties could affect the text-bounds switch (control) { - case COMBOBOX: textBounds.width -= (GuiGetStyle(control, COMBO_BUTTON_WIDTH) + GuiGetStyle(control, COMBO_BUTTON_SPACING)); break; - //case VALUEBOX: break; // NOTE: ValueBox text value always centered, text padding applies to label + case COMBOBOX: + case DROPDOWNBOX: + case LISTVIEW: + // TODO: Special cases (no label): COMBOBOX, DROPDOWNBOX, LISTVIEW + case SLIDER: + case CHECKBOX: + case VALUEBOX: + case SPINNER: + // TODO: More special cases (label on side): SLIDER, CHECKBOX, VALUEBOX, SPINNER default: { + // TODO: WARNING: TEXT_ALIGNMENT is already considered in GuiDrawText() if (GuiGetStyle(control, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT) textBounds.x -= GuiGetStyle(control, TEXT_PADDING); else textBounds.x += GuiGetStyle(control, TEXT_PADDING); - textBounds.width -= 2 * GuiGetStyle(control, TEXT_PADDING); } break; } - // TODO: Special cases (no label): COMBOBOX, DROPDOWNBOX, LISTVIEW (scrollbar?) - // More special cases (label on side): CHECKBOX, SLIDER, VALUEBOX, SPINNER - return textBounds; } @@ -3945,13 +4684,13 @@ const char **GetTextLines(const char *text, int *count) lines[0] = text; int len = 0; *count = 1; - int lineSize = 0; // Stores current line size, not returned + //int lineSize = 0; // Stores current line size, not returned for (int i = 0, k = 0; (i < textSize) && (*count < RAYGUI_MAX_TEXT_LINES); i++) { if (text[i] == '\n') { - lineSize = len; + //lineSize = len; k++; lines[k] = &text[i + 1]; // WARNING: next value is valid? len = 0; @@ -3965,8 +4704,37 @@ const char **GetTextLines(const char *text, int *count) return lines; } +// Get text width to next space for provided string +static float GetNextSpaceWidth(const char *text, int *nextSpaceIndex) +{ + float width = 0; + int codepointByteCount = 0; + int codepoint = 0; + int index = 0; + float glyphWidth = 0; + float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/guiFont.baseSize; + + for (int i = 0; text[i] != '\0'; i++) + { + if (text[i] != ' ') + { + codepoint = GetCodepoint(&text[i], &codepointByteCount); + index = GetGlyphIndex(guiFont, codepoint); + glyphWidth = (guiFont.glyphs[index].advanceX == 0)? guiFont.recs[index].width*scaleFactor : guiFont.glyphs[index].advanceX*scaleFactor; + width += (glyphWidth + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + } + else + { + *nextSpaceIndex = i; + break; + } + } + + return width; +} + // Gui draw text using default font -static void GuiDrawText(const char *text, Rectangle bounds, int alignment, Color tint) +static void GuiDrawText(const char *text, Rectangle textBounds, int alignment, Color tint) { #define TEXT_VALIGN_PIXEL_OFFSET(h) ((int)h%2) // Vertical alignment for pixel perfect @@ -3974,118 +4742,191 @@ static void GuiDrawText(const char *text, Rectangle bounds, int alignment, Color #define ICON_TEXT_PADDING 4 #endif - // We process the text lines one by one - if ((text != NULL) && (text[0] != '\0')) + if ((text == NULL) || (text[0] == '\0')) return; // Security check + + // PROCEDURE: + // - Text is processed line per line + // - For every line, horizontal alignment is defined + // - For all text, vertical alignment is defined (multiline text only) + // - For every line, wordwrap mode is checked (useful for GuitextBox(), read-only) + + // Get text lines (using '\n' as delimiter) to be processed individually + // WARNING: We can't use GuiTextSplit() function because it can be already used + // before the GuiDrawText() call and its buffer is static, it would be overriden :( + int lineCount = 0; + const char **lines = GetTextLines(text, &lineCount); + + // Text style variables + //int alignment = GuiGetStyle(DEFAULT, TEXT_ALIGNMENT); + int alignmentVertical = GuiGetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL); + int wrapMode = GuiGetStyle(DEFAULT, TEXT_WRAP_MODE); // Wrap-mode only available in read-only mode, no for text editing + + // TODO: WARNING: This totalHeight is not valid for vertical alignment in case of word-wrap + float totalHeight = (float)(lineCount*GuiGetStyle(DEFAULT, TEXT_SIZE) + (lineCount - 1)*GuiGetStyle(DEFAULT, TEXT_SIZE)/2); + float posOffsetY = 0.0f; + + for (int i = 0; i < lineCount; i++) { - // Get text lines ('\n' delimiter) to process lines individually - // NOTE: We can't use GuiTextSplit() because it can be already use before calling - // GuiDrawText() and static buffer would be overriden :( - int lineCount = 0; - const char **lines = GetTextLines(text, &lineCount); + int iconId = 0; + lines[i] = GetTextIcon(lines[i], &iconId); // Check text for icon and move cursor - //Rectangle textBounds = GetTextBounds(LABEL, bounds); - float totalHeight = (float)(lineCount*GuiGetStyle(DEFAULT, TEXT_SIZE) + (lineCount - 1)*GuiGetStyle(DEFAULT, TEXT_SIZE)/2); - float posOffsetY = 0; + // Get text position depending on alignment and iconId + //--------------------------------------------------------------------------------- + Vector2 textBoundsPosition = { textBounds.x, textBounds.y }; - for (int i = 0; i < lineCount; i++) + // NOTE: We get text size after icon has been processed + // WARNING: GetTextWidth() also processes text icon to get width! -> Really needed? + int textSizeX = GetTextWidth(lines[i]); + + // If text requires an icon, add size to measure + if (iconId >= 0) { - int iconId = 0; - lines[i] = GetTextIcon(lines[i], &iconId); // Check text for icon and move cursor + textSizeX += RAYGUI_ICON_SIZE*guiIconScale; - // Get text position depending on alignment and iconId - //--------------------------------------------------------------------------------- - Vector2 position = { bounds.x, bounds.y }; + // WARNING: If only icon provided, text could be pointing to EOF character: '\0' +#if !defined(RAYGUI_NO_ICONS) + if ((lines[i] != NULL) && (lines[i][0] != '\0')) textSizeX += ICON_TEXT_PADDING; +#endif + } - // TODO: We get text size after icon has been processed - // WARNING: GetTextWidth() also processes text icon to get width! -> Really needed? - int textSizeX = GetTextWidth(lines[i]); + // Check guiTextAlign global variables + switch (alignment) + { + case TEXT_ALIGN_LEFT: textBoundsPosition.x = textBounds.x; break; + case TEXT_ALIGN_CENTER: textBoundsPosition.x = textBounds.x + textBounds.width/2 - textSizeX/2; break; + case TEXT_ALIGN_RIGHT: textBoundsPosition.x = textBounds.x + textBounds.width - textSizeX; break; + default: break; + } - // If text requires an icon, add size to measure - if (iconId >= 0) - { - textSizeX += RAYGUI_ICON_SIZE*guiIconScale; + switch (alignmentVertical) + { + // Only valid in case of wordWrap = 0; + case TEXT_ALIGN_TOP: textBoundsPosition.y = textBounds.y + posOffsetY; break; + case TEXT_ALIGN_MIDDLE: textBoundsPosition.y = textBounds.y + posOffsetY + textBounds.height/2 - totalHeight/2 + TEXT_VALIGN_PIXEL_OFFSET(textBounds.height); break; + case TEXT_ALIGN_BOTTOM: textBoundsPosition.y = textBounds.y + posOffsetY + textBounds.height - totalHeight + TEXT_VALIGN_PIXEL_OFFSET(textBounds.height); break; + default: break; + } - // WARNING: If only icon provided, text could be pointing to EOF character: '\0' - if ((lines[i] != NULL) && (lines[i][0] != '\0')) textSizeX += ICON_TEXT_PADDING; - } + // NOTE: Make sure we get pixel-perfect coordinates, + // In case of decimals we got weird text positioning + textBoundsPosition.x = (float)((int)textBoundsPosition.x); + textBoundsPosition.y = (float)((int)textBoundsPosition.y); + //--------------------------------------------------------------------------------- - // Check guiTextAlign global variables - switch (alignment) - { - case TEXT_ALIGN_LEFT: - { - position.x = bounds.x; - position.y = bounds.y + posOffsetY + bounds.height/2 - totalHeight/2 + TEXT_VALIGN_PIXEL_OFFSET(bounds.height); - } break; - case TEXT_ALIGN_CENTER: - { - position.x = bounds.x + bounds.width/2 - textSizeX/2; - position.y = bounds.y + posOffsetY + bounds.height/2 - totalHeight/2 + TEXT_VALIGN_PIXEL_OFFSET(bounds.height); - } break; - case TEXT_ALIGN_RIGHT: - { - position.x = bounds.x + bounds.width - textSizeX; - position.y = bounds.y + posOffsetY + bounds.height/2 - totalHeight/2 + TEXT_VALIGN_PIXEL_OFFSET(bounds.height); - } break; - default: break; - } + // Draw text (with icon if available) + //--------------------------------------------------------------------------------- +#if !defined(RAYGUI_NO_ICONS) + if (iconId >= 0) + { + // NOTE: We consider icon height, probably different than text size + GuiDrawIcon(iconId, (int)textBoundsPosition.x, (int)(textBounds.y + textBounds.height/2 - RAYGUI_ICON_SIZE*guiIconScale/2 + TEXT_VALIGN_PIXEL_OFFSET(textBounds.height)), guiIconScale, tint); + textBoundsPosition.x += (RAYGUI_ICON_SIZE*guiIconScale + ICON_TEXT_PADDING); + } +#endif + // Get size in bytes of text, + // considering end of line and line break + int lineSize = 0; + for (int c = 0; (lines[i][c] != '\0') && (lines[i][c] != '\n') && (lines[i][c] != '\r'); c++, lineSize++){ } + float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/guiFont.baseSize; + + int lastSpaceIndex = 0; + bool tempWrapCharMode = false; + + int textOffsetY = 0; + float textOffsetX = 0.0f; + float glyphWidth = 0; + for (int c = 0, codepointSize = 0; c < lineSize; c += codepointSize) + { + int codepoint = GetCodepointNext(&lines[i][c], &codepointSize); + int index = GetGlyphIndex(guiFont, codepoint); - // NOTE: Make sure we get pixel-perfect coordinates, - // In case of decimals we got weird text positioning - position.x = (float)((int)position.x); - position.y = (float)((int)position.y); - //--------------------------------------------------------------------------------- + // NOTE: Normally we exit the decoding sequence as soon as a bad byte is found (and return 0x3f) + // but we need to draw all of the bad bytes using the '?' symbol moving one byte + if (codepoint == 0x3f) codepointSize = 1; // TODO: Review not recognized codepoints size - // Draw text (with icon if available) - //--------------------------------------------------------------------------------- -#if !defined(RAYGUI_NO_ICONS) - if (iconId >= 0) + // Wrap mode text measuring, to validate if + // it can be drawn or a new line is required + if (wrapMode == TEXT_WRAP_CHAR) { - // NOTE: We consider icon height, probably different than text size - GuiDrawIcon(iconId, (int)position.x, (int)(bounds.y + bounds.height/2 - RAYGUI_ICON_SIZE*guiIconScale/2 + TEXT_VALIGN_PIXEL_OFFSET(bounds.height)), guiIconScale, tint); - position.x += (RAYGUI_ICON_SIZE*guiIconScale + ICON_TEXT_PADDING); - } -#endif - //DrawTextEx(guiFont, text, position, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), (float)GuiGetStyle(DEFAULT, TEXT_SPACING), tint); + // Get glyph width to check if it goes out of bounds + if (guiFont.glyphs[index].advanceX == 0) glyphWidth = ((float)guiFont.recs[index].width*scaleFactor); + else glyphWidth = (float)guiFont.glyphs[index].advanceX*scaleFactor; - // Get size in bytes of text, - // considering end of line and line break - int size = 0; - for (int c = 0; (lines[i][c] != '\0') && (lines[i][c] != '\n'); c++, size++){ } - float scaleFactor = (float)GuiGetStyle(DEFAULT, TEXT_SIZE)/guiFont.baseSize; + // Jump to next line if current character reach end of the box limits + if ((textOffsetX + glyphWidth) > textBounds.width) + { + textOffsetX = 0.0f; + textOffsetY += GuiGetStyle(DEFAULT, TEXT_LINE_SPACING); - int textOffsetY = 0; - float textOffsetX = 0.0f; - for (int c = 0, codepointSize = 0; c < size; c += codepointSize) + if (tempWrapCharMode) // Wrap at char level when too long words + { + wrapMode = TEXT_WRAP_WORD; + tempWrapCharMode = false; + } + } + } + else if (wrapMode == TEXT_WRAP_WORD) { - int codepoint = GetCodepointNext(&lines[i][c], &codepointSize); - int index = GetGlyphIndex(guiFont, codepoint); + if (codepoint == 32) lastSpaceIndex = c; - // NOTE: Normally we exit the decoding sequence as soon as a bad byte is found (and return 0x3f) - // but we need to draw all of the bad bytes using the '?' symbol moving one byte - if (codepoint == 0x3f) codepointSize = 1; + // Get width to next space in line + int nextSpaceIndex = 0; + float nextSpaceWidth = GetNextSpaceWidth(lines[i] + c, &nextSpaceIndex); - if (codepoint == '\n') break; // WARNING: Lines are already processed manually, no need to keep drawing after this codepoint - else + int nextSpaceIndex2 = 0; + float nextWordSize = GetNextSpaceWidth(lines[i] + lastSpaceIndex + 1, &nextSpaceIndex2); + + if (nextWordSize > textBounds.width) + { + // Considering the case the next word is longer than bounds + tempWrapCharMode = true; + wrapMode = TEXT_WRAP_CHAR; + } + else if ((textOffsetX + nextSpaceWidth) > textBounds.width) + { + textOffsetX = 0.0f; + textOffsetY += GuiGetStyle(DEFAULT, TEXT_LINE_SPACING); + } + } + + if (codepoint == '\n') break; // WARNING: Lines are already processed manually, no need to keep drawing after this codepoint + else + { + // TODO: There are multiple types of spaces in Unicode, + // maybe it's a good idea to add support for more: http://jkorpela.fi/chars/spaces.html + if ((codepoint != ' ') && (codepoint != '\t')) // Do not draw codepoints with no glyph { - if ((codepoint != ' ') && (codepoint != '\t')) + if (wrapMode == TEXT_WRAP_NONE) { - // TODO: Draw only required text glyphs fitting the bounds.width, '...' can be appended at the end of the text - if (textOffsetX < bounds.width) + // Draw only required text glyphs fitting the textBounds.width + if (textOffsetX <= (textBounds.width - glyphWidth)) { - DrawTextCodepoint(guiFont, codepoint, RAYGUI_CLITERAL(Vector2){ position.x + textOffsetX, position.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), tint); + DrawTextCodepoint(guiFont, codepoint, RAYGUI_CLITERAL(Vector2){ textBoundsPosition.x + textOffsetX, textBoundsPosition.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), GuiFade(tint, guiAlpha)); + } + } + else if ((wrapMode == TEXT_WRAP_CHAR) || (wrapMode == TEXT_WRAP_WORD)) + { + // Draw only glyphs inside the bounds + if ((textBoundsPosition.y + textOffsetY) <= (textBounds.y + textBounds.height - GuiGetStyle(DEFAULT, TEXT_SIZE))) + { + DrawTextCodepoint(guiFont, codepoint, RAYGUI_CLITERAL(Vector2){ textBoundsPosition.x + textOffsetX, textBoundsPosition.y + textOffsetY }, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), GuiFade(tint, guiAlpha)); } } - - if (guiFont.glyphs[index].advanceX == 0) textOffsetX += ((float)guiFont.recs[index].width*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); - else textOffsetX += ((float)guiFont.glyphs[index].advanceX*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); } - } - posOffsetY += (float)GuiGetStyle(DEFAULT, TEXT_SIZE)*1.5f; // TODO: GuiGetStyle(DEFAULT, TEXT_LINE_SPACING)? - //--------------------------------------------------------------------------------- + if (guiFont.glyphs[index].advanceX == 0) textOffsetX += ((float)guiFont.recs[index].width*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + else textOffsetX += ((float)guiFont.glyphs[index].advanceX*scaleFactor + (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); + } } + + if (wrapMode == TEXT_WRAP_NONE) posOffsetY += (float)GuiGetStyle(DEFAULT, TEXT_LINE_SPACING); + else if ((wrapMode == TEXT_WRAP_CHAR) || (wrapMode == TEXT_WRAP_WORD)) posOffsetY += (textOffsetY + (float)GuiGetStyle(DEFAULT, TEXT_LINE_SPACING)); + //--------------------------------------------------------------------------------- } + +#if defined(RAYGUI_DEBUG_TEXT_BOUNDS) + GuiDrawRectangle(textBounds, 0, WHITE, Fade(BLUE, 0.4f)); +#endif } // Gui draw rectangle using default raygui plain style with borders @@ -4094,25 +4935,29 @@ static void GuiDrawRectangle(Rectangle rec, int borderWidth, Color borderColor, if (color.a > 0) { // Draw rectangle filled with color - DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, (int)rec.height, color); + DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, (int)rec.height, GuiFade(color, guiAlpha)); } if (borderWidth > 0) { // Draw rectangle border lines with color - DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, borderWidth, borderColor); - DrawRectangle((int)rec.x, (int)rec.y + borderWidth, borderWidth, (int)rec.height - 2*borderWidth, borderColor); - DrawRectangle((int)rec.x + (int)rec.width - borderWidth, (int)rec.y + borderWidth, borderWidth, (int)rec.height - 2*borderWidth, borderColor); - DrawRectangle((int)rec.x, (int)rec.y + (int)rec.height - borderWidth, (int)rec.width, borderWidth, borderColor); + DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, borderWidth, GuiFade(borderColor, guiAlpha)); + DrawRectangle((int)rec.x, (int)rec.y + borderWidth, borderWidth, (int)rec.height - 2*borderWidth, GuiFade(borderColor, guiAlpha)); + DrawRectangle((int)rec.x + (int)rec.width - borderWidth, (int)rec.y + borderWidth, borderWidth, (int)rec.height - 2*borderWidth, GuiFade(borderColor, guiAlpha)); + DrawRectangle((int)rec.x, (int)rec.y + (int)rec.height - borderWidth, (int)rec.width, borderWidth, GuiFade(borderColor, guiAlpha)); } + +#if defined(RAYGUI_DEBUG_RECS_BOUNDS) + DrawRectangle((int)rec.x, (int)rec.y, (int)rec.width, (int)rec.height, Fade(RED, 0.4f)); +#endif } // Draw tooltip using control bounds static void GuiTooltip(Rectangle controlRec) { - if (!guiLocked && guiTooltip && (guiTooltipPtr != NULL)) + if (!guiLocked && guiTooltip && (guiTooltipPtr != NULL) && !guiSliderDragging) { - Vector2 textSize = MeasureTextEx(GuiGetFont(), guiTooltipPtr, GuiGetStyle(DEFAULT, TEXT_SIZE), GuiGetStyle(DEFAULT, TEXT_SPACING)); + Vector2 textSize = MeasureTextEx(GuiGetFont(), guiTooltipPtr, (float)GuiGetStyle(DEFAULT, TEXT_SIZE), (float)GuiGetStyle(DEFAULT, TEXT_SPACING)); if ((controlRec.x + textSize.x + 16) > GetScreenWidth()) controlRec.x -= (textSize.x + 16 - controlRec.width); @@ -4139,7 +4984,7 @@ static const char **GuiTextSplit(const char *text, char delimiter, int *count, i // 2. Maximum size of text to split is RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE // NOTE: Those definitions could be externally provided if required - // WARNING: HACK: TODO: Review! + // TODO: HACK: GuiTextSplit() - Review how textRows are returned to user // textRow is an externally provided array of integers that stores row number for every splitted string #if !defined(RAYGUI_TEXTSPLIT_MAX_ITEMS) @@ -4336,7 +5181,7 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue) if (value > maxValue) value = maxValue; if (value < minValue) value = minValue; - const int range = maxValue - minValue; + const int valueRange = maxValue - minValue; int sliderSize = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE); // Calculate rectangles for all of the components @@ -4349,15 +5194,27 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue) { arrowDownRight = RAYGUI_CLITERAL(Rectangle){ (float)bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)bounds.y + bounds.height - spinnerSize - GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)spinnerSize, (float)spinnerSize }; scrollbar = RAYGUI_CLITERAL(Rectangle){ bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING), arrowUpLeft.y + arrowUpLeft.height, bounds.width - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING)), bounds.height - arrowUpLeft.height - arrowDownRight.height - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH) }; - sliderSize = (sliderSize >= scrollbar.height)? ((int)scrollbar.height - 2) : sliderSize; // Make sure the slider won't get outside of the scrollbar - slider = RAYGUI_CLITERAL(Rectangle){ (float)bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING), (float)scrollbar.y + (int)(((float)(value - minValue)/range)*(scrollbar.height - sliderSize)), (float)bounds.width - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)), (float)sliderSize }; + + // Make sure the slider won't get outside of the scrollbar + sliderSize = (sliderSize >= scrollbar.height)? ((int)scrollbar.height - 2) : sliderSize; + slider = RAYGUI_CLITERAL(Rectangle){ + bounds.x + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING), + scrollbar.y + (int)(((float)(value - minValue)/valueRange)*(scrollbar.height - sliderSize)), + bounds.width - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)), + (float)sliderSize }; } else // horizontal { arrowDownRight = RAYGUI_CLITERAL(Rectangle){ (float)bounds.x + bounds.width - spinnerSize - GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH), (float)spinnerSize, (float)spinnerSize }; scrollbar = RAYGUI_CLITERAL(Rectangle){ arrowUpLeft.x + arrowUpLeft.width, bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING), bounds.width - arrowUpLeft.width - arrowDownRight.width - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH), bounds.height - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING)) }; - sliderSize = (sliderSize >= scrollbar.width)? ((int)scrollbar.width - 2) : sliderSize; // Make sure the slider won't get outside of the scrollbar - slider = RAYGUI_CLITERAL(Rectangle){ (float)scrollbar.x + (int)(((float)(value - minValue)/range)*(scrollbar.width - sliderSize)), (float)bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING), (float)sliderSize, (float)bounds.height - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)) }; + + // Make sure the slider won't get outside of the scrollbar + sliderSize = (sliderSize >= scrollbar.width)? ((int)scrollbar.width - 2) : sliderSize; + slider = RAYGUI_CLITERAL(Rectangle){ + scrollbar.x + (int)(((float)(value - minValue)/valueRange)*(scrollbar.width - sliderSize)), + bounds.y + GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING), + (float)sliderSize, + bounds.height - 2*(GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)) }; } // Update control @@ -4366,7 +5223,27 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue) { Vector2 mousePoint = GetMousePosition(); - if (CheckCollisionPointRec(mousePoint, bounds)) + if (guiSliderDragging) // Keep dragging outside of bounds + { + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON) && + !CheckCollisionPointRec(mousePoint, arrowUpLeft) && + !CheckCollisionPointRec(mousePoint, arrowDownRight)) + { + if (CHECK_BOUNDS_ID(bounds, guiSliderActive)) + { + state = STATE_PRESSED; + + if (isVertical) value = (int)(((float)(mousePoint.y - scrollbar.y - slider.height/2)*valueRange)/(scrollbar.height - slider.height) + minValue); + else value = (int)(((float)(mousePoint.x - scrollbar.x - slider.width/2)*valueRange)/(scrollbar.width - slider.width) + minValue); + } + } + else + { + guiSliderDragging = false; + guiSliderActive = RAYGUI_CLITERAL(Rectangle){ 0, 0, 0, 0 }; + } + } + else if (CheckCollisionPointRec(mousePoint, bounds)) { state = STATE_FOCUSED; @@ -4374,26 +5251,38 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue) int wheel = (int)GetMouseWheelMove(); if (wheel != 0) value += wheel; + // Handle mouse button down if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) { - if (CheckCollisionPointRec(mousePoint, arrowUpLeft)) value -= range/GuiGetStyle(SCROLLBAR, SCROLL_SPEED); - else if (CheckCollisionPointRec(mousePoint, arrowDownRight)) value += range/GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + guiSliderDragging = true; + guiSliderActive = bounds; // Store bounds as an identifier when dragging starts + + // Check arrows click + if (CheckCollisionPointRec(mousePoint, arrowUpLeft)) value -= valueRange/GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + else if (CheckCollisionPointRec(mousePoint, arrowDownRight)) value += valueRange/GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + else if (!CheckCollisionPointRec(mousePoint, slider)) + { + // If click on scrollbar position but not on slider, place slider directly on that position + if (isVertical) value = (int)(((float)(mousePoint.y - scrollbar.y - slider.height/2)*valueRange)/(scrollbar.height - slider.height) + minValue); + else value = (int)(((float)(mousePoint.x - scrollbar.x - slider.width/2)*valueRange)/(scrollbar.width - slider.width) + minValue); + } state = STATE_PRESSED; } - else if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + + // Keyboard control on mouse hover scrollbar + /* + if (isVertical) { - if (!isVertical) - { - Rectangle scrollArea = { arrowUpLeft.x + arrowUpLeft.width, arrowUpLeft.y, scrollbar.width, bounds.height - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH) }; - if (CheckCollisionPointRec(mousePoint, scrollArea)) value = (int)(((float)(mousePoint.x - scrollArea.x - slider.width/2)*range)/(scrollArea.width - slider.width) + minValue); - } - else - { - Rectangle scrollArea = { arrowUpLeft.x, arrowUpLeft.y+arrowUpLeft.height, bounds.width - 2*GuiGetStyle(SCROLLBAR, BORDER_WIDTH), scrollbar.height }; - if (CheckCollisionPointRec(mousePoint, scrollArea)) value = (int)(((float)(mousePoint.y - scrollArea.y - slider.height/2)*range)/(scrollArea.height - slider.height) + minValue); - } + if (IsKeyDown(KEY_DOWN)) value += 5; + else if (IsKeyDown(KEY_UP)) value -= 5; } + else + { + if (IsKeyDown(KEY_RIGHT)) value += 5; + else if (IsKeyDown(KEY_LEFT)) value -= 5; + } + */ } // Normalize value @@ -4404,10 +5293,10 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue) // Draw control //-------------------------------------------------------------------- - GuiDrawRectangle(bounds, GuiGetStyle(SCROLLBAR, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), guiAlpha), Fade(GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED)), guiAlpha)); // Draw the background + GuiDrawRectangle(bounds, GuiGetStyle(SCROLLBAR, BORDER_WIDTH), GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED))); // Draw the background - GuiDrawRectangle(scrollbar, 0, BLANK, Fade(GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL)), guiAlpha)); // Draw the scrollbar active area background - GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, BORDER + state*3)), guiAlpha)); // Draw the slider bar + GuiDrawRectangle(scrollbar, 0, BLANK, GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL))); // Draw the scrollbar active area background + GuiDrawRectangle(slider, 0, BLANK, GetColor(GuiGetStyle(SLIDER, BORDER + state*3))); // Draw the slider bar // Draw arrows (using icon if available) if (GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE)) @@ -4415,17 +5304,17 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue) #if defined(RAYGUI_NO_ICONS) GuiDrawText(isVertical? "^" : "<", RAYGUI_CLITERAL(Rectangle){ arrowUpLeft.x, arrowUpLeft.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height }, - TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))), guiAlpha)); + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3)))); GuiDrawText(isVertical? "v" : ">", RAYGUI_CLITERAL(Rectangle){ arrowDownRight.x, arrowDownRight.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height }, - TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))), guiAlpha)); + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3)))); #else GuiDrawText(isVertical? "#121#" : "#118#", RAYGUI_CLITERAL(Rectangle){ arrowUpLeft.x, arrowUpLeft.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height }, - TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(SCROLLBAR, TEXT + state*3)), guiAlpha)); // ICON_ARROW_UP_FILL / ICON_ARROW_LEFT_FILL + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(SCROLLBAR, TEXT + state*3))); // ICON_ARROW_UP_FILL / ICON_ARROW_LEFT_FILL GuiDrawText(isVertical? "#120#" : "#119#", RAYGUI_CLITERAL(Rectangle){ arrowDownRight.x, arrowDownRight.y, isVertical? bounds.width : bounds.height, isVertical? bounds.width : bounds.height }, - TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(SCROLLBAR, TEXT + state*3)), guiAlpha)); // ICON_ARROW_DOWN_FILL / ICON_ARROW_RIGHT_FILL + TEXT_ALIGN_CENTER, GetColor(GuiGetStyle(SCROLLBAR, TEXT + state*3))); // ICON_ARROW_DOWN_FILL / ICON_ARROW_RIGHT_FILL #endif } //-------------------------------------------------------------------- @@ -4433,6 +5322,18 @@ static int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue) return value; } +// Color fade-in or fade-out, alpha goes from 0.0f to 1.0f +// WARNING: It multiplies current alpha by alpha scale factor +static Color GuiFade(Color color, float alpha) +{ + if (alpha < 0.0f) alpha = 0.0f; + else if (alpha > 1.0f) alpha = 1.0f; + + Color result = { color.r, color.g, color.b, (unsigned char)(color.a*alpha) }; + + return result; +} + #if defined(RAYGUI_STANDALONE) // Returns a Color struct from hexadecimal value static Color GetColor(int hexValue) @@ -4464,17 +5365,6 @@ static bool CheckCollisionPointRec(Vector2 point, Rectangle rec) return collision; } -// Color fade-in or fade-out, alpha goes from 0.0f to 1.0f -static Color Fade(Color color, float alpha) -{ - if (alpha < 0.0f) alpha = 0.0f; - else if (alpha > 1.0f) alpha = 1.0f; - - Color result = { color.r, color.g, color.b, (unsigned char)(255.0f*alpha) }; - - return result; -} - // Formatting of text with variables to 'embed' static const char *TextFormat(const char *text, ...) { @@ -4510,7 +5400,7 @@ const char **TextSplit(const char *text, char delimiter, int *count) // 2. Maximum size of text to split is RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE #if !defined(RAYGUI_TEXTSPLIT_MAX_ITEMS) - #define RAYGUI_TEXTSPLIT_MAX_ITEMS 128 + #define RAYGUI_TEXTSPLIT_MAX_ITEMS 128 #endif #if !defined(RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE) #define RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE 1024 @@ -4612,34 +5502,38 @@ static int GetCodepointNext(const char *text, int *codepointSize) { const char *ptr = text; int codepoint = 0x3f; // Codepoint (defaults to '?') - *codepointSize = 0; + *codepointSize = 1; // Get current codepoint and bytes processed if (0xf0 == (0xf8 & ptr[0])) { // 4 byte UTF-8 codepoint + if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80) || ((ptr[3] & 0xC0) ^ 0x80)) { return codepoint; } //10xxxxxx checks codepoint = ((0x07 & ptr[0]) << 18) | ((0x3f & ptr[1]) << 12) | ((0x3f & ptr[2]) << 6) | (0x3f & ptr[3]); *codepointSize = 4; } else if (0xe0 == (0xf0 & ptr[0])) { // 3 byte UTF-8 codepoint */ + if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80)) { return codepoint; } //10xxxxxx checks codepoint = ((0x0f & ptr[0]) << 12) | ((0x3f & ptr[1]) << 6) | (0x3f & ptr[2]); *codepointSize = 3; } else if (0xc0 == (0xe0 & ptr[0])) { // 2 byte UTF-8 codepoint + if((ptr[1] & 0xC0) ^ 0x80) { return codepoint; } //10xxxxxx checks codepoint = ((0x1f & ptr[0]) << 6) | (0x3f & ptr[1]); *codepointSize = 2; } - else + else if (0x00 == (0x80 & ptr[0])) { // 1 byte UTF-8 codepoint codepoint = ptr[0]; *codepointSize = 1; } + return codepoint; } #endif // RAYGUI_STANDALONE diff --git a/src/extras/rlgl.h b/src/extras/rlgl.h index 86208de..6cf9c7e 100644 --- a/src/extras/rlgl.h +++ b/src/extras/rlgl.h @@ -2,82 +2,83 @@ * * rlgl v4.5 - A multi-OpenGL abstraction layer with an immediate-mode style API * -* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0) -* that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...) +* DESCRIPTION: +* An abstraction layer for multiple OpenGL versions (1.1, 2.1, 3.3 Core, 4.3 Core, ES 2.0) +* that provides a pseudo-OpenGL 1.1 immediate-mode style API (rlVertex, rlTranslate, rlRotate...) * -* When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are -* initialized on rlglInit() to accumulate vertex data. +* ADDITIONAL NOTES: +* When choosing an OpenGL backend different than OpenGL 1.1, some internal buffer are +* initialized on rlglInit() to accumulate vertex data. * -* When an internal state change is required all the stored vertex data is renderer in batch, -* additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch. +* When an internal state change is required all the stored vertex data is renderer in batch, +* additionally, rlDrawRenderBatchActive() could be called to force flushing of the batch. * -* Some additional resources are also loaded for convenience, here the complete list: -* - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data -* - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8 -* - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs) -* -* Internal buffer (and additional resources) must be manually unloaded calling rlglClose(). +* Some resources are also loaded for convenience, here the complete list: +* - Default batch (RLGL.defaultBatch): RenderBatch system to accumulate vertex data +* - Default texture (RLGL.defaultTextureId): 1x1 white pixel R8G8B8A8 +* - Default shader (RLGL.State.defaultShaderId, RLGL.State.defaultShaderLocs) * +* Internal buffer (and resources) must be manually unloaded calling rlglClose(). * * CONFIGURATION: +* #define GRAPHICS_API_OPENGL_11 +* #define GRAPHICS_API_OPENGL_21 +* #define GRAPHICS_API_OPENGL_33 +* #define GRAPHICS_API_OPENGL_43 +* #define GRAPHICS_API_OPENGL_ES2 +* #define GRAPHICS_API_OPENGL_ES3 +* Use selected OpenGL graphics backend, should be supported by platform +* Those preprocessor defines are only used on rlgl module, if OpenGL version is +* required by any other module, use rlGetVersion() to check it * -* #define GRAPHICS_API_OPENGL_11 -* #define GRAPHICS_API_OPENGL_21 -* #define GRAPHICS_API_OPENGL_33 -* #define GRAPHICS_API_OPENGL_43 -* #define GRAPHICS_API_OPENGL_ES2 -* Use selected OpenGL graphics backend, should be supported by platform -* Those preprocessor defines are only used on rlgl module, if OpenGL version is -* required by any other module, use rlGetVersion() to check it -* -* #define RLGL_IMPLEMENTATION -* Generates the implementation of the library into the included file. -* If not defined, the library is in header only mode and can be included in other headers -* or source files without problems. But only ONE file should hold the implementation. +* #define RLGL_IMPLEMENTATION +* Generates the implementation of the library into the included file. +* If not defined, the library is in header only mode and can be included in other headers +* or source files without problems. But only ONE file should hold the implementation. * -* #define RLGL_RENDER_TEXTURES_HINT -* Enable framebuffer objects (fbo) support (enabled by default) -* Some GPUs could not support them despite the OpenGL version +* #define RLGL_RENDER_TEXTURES_HINT +* Enable framebuffer objects (fbo) support (enabled by default) +* Some GPUs could not support them despite the OpenGL version * -* #define RLGL_SHOW_GL_DETAILS_INFO -* Show OpenGL extensions and capabilities detailed logs on init +* #define RLGL_SHOW_GL_DETAILS_INFO +* Show OpenGL extensions and capabilities detailed logs on init * -* #define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT -* Enable debug context (only available on OpenGL 4.3) +* #define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT +* Enable debug context (only available on OpenGL 4.3) * -* rlgl capabilities could be customized just defining some internal -* values before library inclusion (default values listed): +* rlgl capabilities could be customized just defining some internal +* values before library inclusion (default values listed): * -* #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 // Default internal render batch elements limits -* #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) -* #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) -* #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) +* #define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 8192 // Default internal render batch elements limits +* #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) +* #define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) +* #define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) * -* #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack -* #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported -* #define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance -* #define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance +* #define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack +* #define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported +* #define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance +* #define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance * -* When loading a shader, the following vertex attribute and uniform -* location names are tried to be set automatically: +* When loading a shader, the following vertex attributes and uniform +* location names are tried to be set automatically: * -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: 0 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: 1 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: 2 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: 3 -* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: 4 -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) -* #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) -* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) -* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) -* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: 0 +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: 1 +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: 2 +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: 3 +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: 4 +* #define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: 5 +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) +* #define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) +* #define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) * * DEPENDENCIES: -* * - OpenGL libraries (depending on platform and OpenGL version selected) * - GLAD OpenGL extensions loading library (only for OpenGL 3.3 Core, 4.3 Core) * @@ -148,7 +149,8 @@ !defined(GRAPHICS_API_OPENGL_21) && \ !defined(GRAPHICS_API_OPENGL_33) && \ !defined(GRAPHICS_API_OPENGL_43) && \ - !defined(GRAPHICS_API_OPENGL_ES2) + !defined(GRAPHICS_API_OPENGL_ES2) && \ + !defined(GRAPHICS_API_OPENGL_ES3) #define GRAPHICS_API_OPENGL_33 #endif @@ -179,6 +181,11 @@ #define GRAPHICS_API_OPENGL_33 #endif +// OpenGL ES 3.0 uses OpenGL ES 2.0 functionality (and more) +#if defined(GRAPHICS_API_OPENGL_ES3) + #define GRAPHICS_API_OPENGL_ES2 +#endif + // Support framebuffer objects by default // NOTE: Some driver implementation do not support it, despite they should #define RLGL_RENDER_TEXTURES_HINT @@ -383,7 +390,8 @@ typedef enum { RL_OPENGL_21, // OpenGL 2.1 (GLSL 120) RL_OPENGL_33, // OpenGL 3.3 (GLSL 330) RL_OPENGL_43, // OpenGL 4.3 (using GLSL 330) - RL_OPENGL_ES_20 // OpenGL ES 2.0 (GLSL 100) + RL_OPENGL_ES_20, // OpenGL ES 2.0 (GLSL 100) + RL_OPENGL_ES_30 // OpenGL ES 3.0 (GLSL 300 es) } rlGlVersion; // Trace log level @@ -412,6 +420,9 @@ typedef enum { RL_PIXELFORMAT_UNCOMPRESSED_R32, // 32 bpp (1 channel - float) RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, // 32*3 bpp (3 channels - float) RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32, // 32*4 bpp (4 channels - float) + RL_PIXELFORMAT_UNCOMPRESSED_R16, // 16 bpp (1 channel - half float) + RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16, // 16*3 bpp (3 channels - half float) + RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16, // 16*4 bpp (4 channels - half float) RL_PIXELFORMAT_COMPRESSED_DXT1_RGB, // 4 bpp (no alpha) RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA, // 4 bpp (1 bit alpha) RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA, // 8 bpp @@ -506,28 +517,28 @@ typedef enum { // Framebuffer attachment type // NOTE: By default up to 8 color channels defined, but it can be more typedef enum { - RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0 - RL_ATTACHMENT_COLOR_CHANNEL1, // Framebuffer attachment type: color 1 - RL_ATTACHMENT_COLOR_CHANNEL2, // Framebuffer attachment type: color 2 - RL_ATTACHMENT_COLOR_CHANNEL3, // Framebuffer attachment type: color 3 - RL_ATTACHMENT_COLOR_CHANNEL4, // Framebuffer attachment type: color 4 - RL_ATTACHMENT_COLOR_CHANNEL5, // Framebuffer attachment type: color 5 - RL_ATTACHMENT_COLOR_CHANNEL6, // Framebuffer attachment type: color 6 - RL_ATTACHMENT_COLOR_CHANNEL7, // Framebuffer attachment type: color 7 - RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth - RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil + RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0 + RL_ATTACHMENT_COLOR_CHANNEL1 = 1, // Framebuffer attachment type: color 1 + RL_ATTACHMENT_COLOR_CHANNEL2 = 2, // Framebuffer attachment type: color 2 + RL_ATTACHMENT_COLOR_CHANNEL3 = 3, // Framebuffer attachment type: color 3 + RL_ATTACHMENT_COLOR_CHANNEL4 = 4, // Framebuffer attachment type: color 4 + RL_ATTACHMENT_COLOR_CHANNEL5 = 5, // Framebuffer attachment type: color 5 + RL_ATTACHMENT_COLOR_CHANNEL6 = 6, // Framebuffer attachment type: color 6 + RL_ATTACHMENT_COLOR_CHANNEL7 = 7, // Framebuffer attachment type: color 7 + RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth + RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil } rlFramebufferAttachType; // Framebuffer texture attachment type typedef enum { - RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side - RL_ATTACHMENT_CUBEMAP_NEGATIVE_X, // Framebuffer texture attachment type: cubemap, -X side - RL_ATTACHMENT_CUBEMAP_POSITIVE_Y, // Framebuffer texture attachment type: cubemap, +Y side - RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y, // Framebuffer texture attachment type: cubemap, -Y side - RL_ATTACHMENT_CUBEMAP_POSITIVE_Z, // Framebuffer texture attachment type: cubemap, +Z side - RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z, // Framebuffer texture attachment type: cubemap, -Z side - RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d - RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer + RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1, // Framebuffer texture attachment type: cubemap, -X side + RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2, // Framebuffer texture attachment type: cubemap, +Y side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3, // Framebuffer texture attachment type: cubemap, -Y side + RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4, // Framebuffer texture attachment type: cubemap, +Z side + RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5, // Framebuffer texture attachment type: cubemap, -Z side + RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d + RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer } rlFramebufferAttachTextureType; // Face culling mode @@ -607,6 +618,7 @@ RLAPI void rlDisableShader(void); // Disable shader progra RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo) RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers +RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer // General render state RLAPI void rlEnableColorBlend(void); // Enable color blending @@ -622,7 +634,8 @@ RLAPI void rlEnableScissorTest(void); // Enable scissor test RLAPI void rlDisableScissorTest(void); // Disable scissor test RLAPI void rlScissor(int x, int y, int width, int height); // Scissor test RLAPI void rlEnableWireMode(void); // Enable wire mode -RLAPI void rlDisableWireMode(void); // Disable wire mode +RLAPI void rlEnablePointMode(void); // Enable point mode +RLAPI void rlDisableWireMode(void); // Disable wire mode ( and point ) maybe rename RLAPI void rlSetLineWidth(float width); // Set the line drawing width RLAPI float rlGetLineWidth(void); // Get the line drawing width RLAPI void rlEnableSmoothLines(void); // Enable line aliasing @@ -787,13 +800,17 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #define GLAD_FREE RL_FREE #define GLAD_GL_IMPLEMENTATION - #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers + #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers #endif -#if defined(GRAPHICS_API_OPENGL_ES2) +#if defined(GRAPHICS_API_OPENGL_ES3) + #include // OpenGL ES 3.0 library + #define GL_GLEXT_PROTOTYPES + #include // OpenGL ES 2.0 extensions library +#elif defined(GRAPHICS_API_OPENGL_ES2) // NOTE: OpenGL ES 2.0 can be enabled on PLATFORM_DESKTOP, // in that case, functions are loaded from a custom glad for OpenGL ES 2.0 - #if defined(PLATFORM_DESKTOP) + #if defined(PLATFORM_DESKTOP) || defined(PLATFORM_DESKTOP_SDL) #define GLAD_GLES2_IMPLEMENTATION #include "external/glad_gles2.h" #else @@ -805,7 +822,7 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad // It seems OpenGL ES 2.0 instancing entry points are not defined on Raspberry Pi // provided headers (despite being defined in official Khronos GLES2 headers) - #if defined(PLATFORM_RPI) || defined(PLATFORM_DRM) + #if defined(PLATFORM_DRM) typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); @@ -887,8 +904,10 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #if defined(GRAPHICS_API_OPENGL_ES2) #define glClearDepth glClearDepthf - #define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER - #define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER + #if !defined(GRAPHICS_API_OPENGL_ES3) + #define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER + #define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER + #endif #endif // Default shader vertex attribute names to set location points @@ -999,6 +1018,7 @@ typedef struct rlglData { bool texDepth; // Depth textures supported (GL_ARB_depth_texture, GL_OES_depth_texture) bool texDepthWebGL; // Depth textures supported WebGL specific (GL_WEBGL_depth_texture) bool texFloat32; // float textures support (32 bit per channel) (GL_OES_texture_float) + bool texFloat16; // half float textures support (16 bit per channel) (GL_OES_texture_half_float) bool texCompDXT; // DDS texture compression support (GL_EXT_texture_compression_s3tc, GL_WEBGL_compressed_texture_s3tc, GL_WEBKIT_WEBGL_compressed_texture_s3tc) bool texCompETC1; // ETC1 texture compression support (GL_OES_compressed_ETC1_RGB8_texture, GL_WEBGL_compressed_texture_etc1) bool texCompETC2; // ETC2/EAC texture compression support (GL_ARB_ES3_compatibility) @@ -1026,7 +1046,7 @@ typedef void *(*rlglLoadProc)(const char *name); // OpenGL extension functions static rlglData RLGL = { 0 }; #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 -#if defined(GRAPHICS_API_OPENGL_ES2) +#if defined(GRAPHICS_API_OPENGL_ES2) && !defined(GRAPHICS_API_OPENGL_ES3) // NOTE: VAO functionality is exposed through extensions (OES) static PFNGLGENVERTEXARRAYSOESPROC glGenVertexArrays = NULL; static PFNGLBINDVERTEXARRAYOESPROC glBindVertexArray = NULL; @@ -1045,7 +1065,7 @@ static PFNGLVERTEXATTRIBDIVISOREXTPROC glVertexAttribDivisor = NULL; static void rlLoadShaderDefault(void); // Load default shader static void rlUnloadShaderDefault(void); // Unload default shader #if defined(RLGL_SHOW_GL_DETAILS_INFO) -static char *rlGetCompressedFormatName(int format); // Get compressed format official GL identifier name +static const char *rlGetCompressedFormatName(int format); // Get compressed format official GL identifier name #endif // RLGL_SHOW_GL_DETAILS_INFO #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 @@ -1416,8 +1436,7 @@ void rlVertex3f(float x, float y, float z) RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx; RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy; - // TODO: Add current normal - // By default rlVertexBuffer type does not store normals + // WARNING: By default rlVertexBuffer struct does not store normals // Add current color RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr; @@ -1702,11 +1721,19 @@ void rlDisableFramebuffer(void) #endif } +// Blit active framebuffer to main framebuffer +void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask) +{ +#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT) + glBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask, GL_NEAREST); +#endif +} + // Activate multiple draw color buffers // NOTE: One color buffer is always active by default void rlActiveDrawBuffers(int count) { -#if (defined(GRAPHICS_API_OPENGL_33) && defined(RLGL_RENDER_TEXTURES_HINT)) +#if ((defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT)) // NOTE: Maximum number of draw buffers supported is implementation dependant, // it can be queried with glGet*() but it must be at least 8 //GLint maxDrawBuffers = 0; @@ -1718,6 +1745,16 @@ void rlActiveDrawBuffers(int count) else { unsigned int buffers[8] = { +#if defined(GRAPHICS_API_OPENGL_ES3) + GL_COLOR_ATTACHMENT0_EXT, + GL_COLOR_ATTACHMENT1_EXT, + GL_COLOR_ATTACHMENT2_EXT, + GL_COLOR_ATTACHMENT3_EXT, + GL_COLOR_ATTACHMENT4_EXT, + GL_COLOR_ATTACHMENT5_EXT, + GL_COLOR_ATTACHMENT6_EXT, + GL_COLOR_ATTACHMENT7_EXT, +#else GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2, @@ -1726,9 +1763,14 @@ void rlActiveDrawBuffers(int count) GL_COLOR_ATTACHMENT5, GL_COLOR_ATTACHMENT6, GL_COLOR_ATTACHMENT7, +#endif }; +#if defined(GRAPHICS_API_OPENGL_ES3) + glDrawBuffersEXT(count, buffers); +#else glDrawBuffers(count, buffers); +#endif } } else TRACELOG(LOG_WARNING, "GL: One color buffer active by default"); @@ -1792,6 +1834,14 @@ void rlEnableWireMode(void) #endif } +void rlEnablePointMode(void) +{ +#if defined(GRAPHICS_API_OPENGL_11) || defined(GRAPHICS_API_OPENGL_33) + // NOTE: glPolygonMode() not available on OpenGL ES + glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); + glEnable(GL_PROGRAM_POINT_SIZE); +#endif +} // Disable wire mode void rlDisableWireMode(void) { @@ -2047,7 +2097,7 @@ void rlglInit(int width, int height) if ((glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL)) { glDebugMessageCallback(rlDebugMessageCallback, 0); - // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); // TODO: Filter message + // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); // Debug context options: // - GL_DEBUG_OUTPUT - Faster version but not useful for breakpoints @@ -2168,6 +2218,7 @@ void rlLoadExtensions(void *loader) RLGL.ExtSupported.instancing = (GLAD_GL_EXT_draw_instanced && GLAD_GL_ARB_instanced_arrays); RLGL.ExtSupported.texNPOT = GLAD_GL_ARB_texture_non_power_of_two; RLGL.ExtSupported.texFloat32 = GLAD_GL_ARB_texture_float; + RLGL.ExtSupported.texFloat16 = GLAD_GL_ARB_texture_float; RLGL.ExtSupported.texDepth = GLAD_GL_ARB_depth_texture; RLGL.ExtSupported.maxDepthBits = 32; RLGL.ExtSupported.texAnisoFilter = GLAD_GL_EXT_texture_filter_anisotropic; @@ -2179,6 +2230,7 @@ void rlLoadExtensions(void *loader) RLGL.ExtSupported.instancing = true; RLGL.ExtSupported.texNPOT = true; RLGL.ExtSupported.texFloat32 = true; + RLGL.ExtSupported.texFloat16 = true; RLGL.ExtSupported.texDepth = true; RLGL.ExtSupported.maxDepthBits = 32; RLGL.ExtSupported.texAnisoFilter = true; @@ -2196,11 +2248,35 @@ void rlLoadExtensions(void *loader) #endif // GRAPHICS_API_OPENGL_33 -#if defined(GRAPHICS_API_OPENGL_ES2) - - #if defined(PLATFORM_DESKTOP) +#if defined(GRAPHICS_API_OPENGL_ES3) + // Register supported extensions flags + // OpenGL ES 3.0 extensions supported by default (or it should be) + RLGL.ExtSupported.vao = true; + RLGL.ExtSupported.instancing = true; + RLGL.ExtSupported.texNPOT = true; + RLGL.ExtSupported.texFloat32 = true; + RLGL.ExtSupported.texFloat16 = true; + RLGL.ExtSupported.texDepth = true; + RLGL.ExtSupported.texDepthWebGL = true; + RLGL.ExtSupported.maxDepthBits = 24; + RLGL.ExtSupported.texAnisoFilter = true; + RLGL.ExtSupported.texMirrorClamp = true; + // TODO: Check for additional OpenGL ES 3.0 supported extensions: + //RLGL.ExtSupported.texCompDXT = true; + //RLGL.ExtSupported.texCompETC1 = true; + //RLGL.ExtSupported.texCompETC2 = true; + //RLGL.ExtSupported.texCompPVRT = true; + //RLGL.ExtSupported.texCompASTC = true; + //RLGL.ExtSupported.maxAnisotropyLevel = true; + //RLGL.ExtSupported.computeShader = true; + //RLGL.ExtSupported.ssbo = true; + +#elif defined(GRAPHICS_API_OPENGL_ES2) + + #if defined(PLATFORM_DESKTOP) || defined(PLATFORM_DESKTOP_SDL) + // TODO: Support GLAD loader for OpenGL ES 3.0 if (gladLoadGLES2((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL ES2.0 functions"); - else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES2.0 loaded successfully"); + else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES 2.0 loaded successfully"); #endif // Get supported extensions list @@ -2276,6 +2352,7 @@ void rlLoadExtensions(void *loader) // Check texture float support if (strcmp(extList[i], (const char *)"GL_OES_texture_float") == 0) RLGL.ExtSupported.texFloat32 = true; + if (strcmp(extList[i], (const char *)"GL_OES_texture_half_float") == 0) RLGL.ExtSupported.texFloat16 = true; // Check depth texture support if (strcmp(extList[i], (const char *)"GL_OES_depth_texture") == 0) RLGL.ExtSupported.texDepth = true; @@ -2391,15 +2468,17 @@ int rlGetVersion(void) #endif #if defined(GRAPHICS_API_OPENGL_21) glVersion = RL_OPENGL_21; +#elif defined(GRAPHICS_API_OPENGL_43) + glVersion = RL_OPENGL_43; #elif defined(GRAPHICS_API_OPENGL_33) glVersion = RL_OPENGL_33; #endif -#if defined(GRAPHICS_API_OPENGL_43) - glVersion = RL_OPENGL_43; -#endif -#if defined(GRAPHICS_API_OPENGL_ES2) +#if defined(GRAPHICS_API_OPENGL_ES3) + glVersion = RL_OPENGL_ES_30; +#elif defined(GRAPHICS_API_OPENGL_ES2) glVersion = RL_OPENGL_ES_20; #endif + return glVersion; } @@ -2648,7 +2727,7 @@ void rlDrawRenderBatch(rlRenderBatch *batch) // Update batch vertex buffers //------------------------------------------------------------------------------------------------------------ // NOTE: If there is not vertex data, buffers doesn't need to be updated (vertexCount > 0) - // TODO: If no data changed on the CPU arrays --> No need to re-update GPU arrays (change flag required) + // TODO: If no data changed on the CPU arrays --> No need to re-update GPU arrays (use a change detector flag?) if (RLGL.State.vertexCounter > 0) { // Activate elements VAO @@ -2943,7 +3022,11 @@ unsigned int rlLoadTexture(const void *data, int width, int height, int format, int mipWidth = width; int mipHeight = height; - int mipOffset = 0; // Mipmap data offset + int mipOffset = 0; // Mipmap data offset, only used for tracelog + + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned char *dataPtr = NULL; + if (data != NULL) dataPtr = (unsigned char *)data; // Load the different mipmap levels for (int i = 0; i < mipmapCount; i++) @@ -2955,11 +3038,11 @@ unsigned int rlLoadTexture(const void *data, int width, int height, int format, TRACELOGD("TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset); - if (glInternalFormat != -1) + if (glInternalFormat != 0) { - if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, glFormat, glType, (unsigned char *)data + mipOffset); + if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) glTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, glFormat, glType, dataPtr); #if !defined(GRAPHICS_API_OPENGL_11) - else glCompressedTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, mipSize, (unsigned char *)data + mipOffset); + else glCompressedTexImage2D(GL_TEXTURE_2D, i, glInternalFormat, mipWidth, mipHeight, 0, mipSize, dataPtr); #endif #if defined(GRAPHICS_API_OPENGL_33) @@ -2982,7 +3065,8 @@ unsigned int rlLoadTexture(const void *data, int width, int height, int format, mipWidth /= 2; mipHeight /= 2; - mipOffset += mipSize; + mipOffset += mipSize; // Increment offset position to next mipmap + if (data != NULL) dataPtr += mipSize; // Increment data pointer to next mipmap // Security check for NPOT textures if (mipWidth < 1) mipWidth = 1; @@ -3049,7 +3133,7 @@ unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer) // Possible formats: GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32 and GL_DEPTH_COMPONENT32F unsigned int glInternalFormat = GL_DEPTH_COMPONENT; -#if defined(GRAPHICS_API_OPENGL_ES2) +#if (defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_ES3)) // WARNING: WebGL platform requires unsized internal format definition (GL_DEPTH_COMPONENT) // while other platforms using OpenGL ES 2.0 require/support sized internal formats depending on the GPU capabilities if (!RLGL.ExtSupported.texDepthWebGL || useRenderBuffer) @@ -3108,7 +3192,7 @@ unsigned int rlLoadTextureCubemap(const void *data, int size, int format) unsigned int glInternalFormat, glFormat, glType; rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - if (glInternalFormat != -1) + if (glInternalFormat != 0) { // Load cubemap faces for (unsigned int i = 0; i < 6; i++) @@ -3117,13 +3201,9 @@ unsigned int rlLoadTextureCubemap(const void *data, int size, int format) { if (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB) { - if (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32) - { - // Instead of using a sized internal texture format (GL_RGB16F, GL_RGB32F), we let the driver to choose the better format for us (GL_RGB) - if (RLGL.ExtSupported.texFloat32) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, size, size, 0, GL_RGB, GL_FLOAT, NULL); - else TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); - } - else if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32)) TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); + if ((format == RL_PIXELFORMAT_UNCOMPRESSED_R32) || (format == RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32) + || (format == RL_PIXELFORMAT_UNCOMPRESSED_R16) || (format == RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16)) + TRACELOG(RL_LOG_WARNING, "TEXTURES: Cubemap requested format not supported"); else glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, size, size, 0, glFormat, glType, NULL); } else TRACELOG(RL_LOG_WARNING, "TEXTURES: Empty cubemap creation does not support compressed format"); @@ -3180,7 +3260,7 @@ void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int h unsigned int glInternalFormat, glFormat, glType; rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - if ((glInternalFormat != -1) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) + if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) { glTexSubImage2D(GL_TEXTURE_2D, 0, offsetX, offsetY, width, height, glFormat, glType, data); } @@ -3206,9 +3286,27 @@ void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned case RL_PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_SHORT_4_4_4_4; break; case RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_UNSIGNED_BYTE; break; #if !defined(GRAPHICS_API_OPENGL_11) - case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float - case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + #if defined(GRAPHICS_API_OPENGL_ES3) + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F_EXT; *glFormat = GL_RED_EXT; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F_EXT; *glFormat = GL_RGB; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F_EXT; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F_EXT; *glFormat = GL_RED_EXT; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F_EXT; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F_EXT; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; + #else + case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; // NOTE: Requires extension OES_texture_float + #if defined(GRAPHICS_API_OPENGL_21) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_ARB; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_ARB; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_ARB; break; + #else // defined(GRAPHICS_API_OPENGL_ES2) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_LUMINANCE; *glFormat = GL_LUMINANCE; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT_OES; break; // NOTE: Requires extension OES_texture_half_float + #endif + #endif #endif #elif defined(GRAPHICS_API_OPENGL_33) case RL_PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: *glInternalFormat = GL_R8; *glFormat = GL_RED; *glType = GL_UNSIGNED_BYTE; break; @@ -3221,6 +3319,9 @@ void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned case RL_PIXELFORMAT_UNCOMPRESSED_R32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_R32F; *glFormat = GL_RED; *glType = GL_FLOAT; break; case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGB32F; *glFormat = GL_RGB; *glType = GL_FLOAT; break; case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: if (RLGL.ExtSupported.texFloat32) *glInternalFormat = GL_RGBA32F; *glFormat = GL_RGBA; *glType = GL_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_R16F; *glFormat = GL_RED; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGB16F; *glFormat = GL_RGB; *glType = GL_HALF_FLOAT; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: if (RLGL.ExtSupported.texFloat16) *glInternalFormat = GL_RGBA16F; *glFormat = GL_RGBA; *glType = GL_HALF_FLOAT; break; #endif #if !defined(GRAPHICS_API_OPENGL_11) case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: if (RLGL.ExtSupported.texCompDXT) *glInternalFormat = GL_COMPRESSED_RGB_S3TC_DXT1_EXT; break; @@ -3303,7 +3404,7 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format) rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); unsigned int size = rlGetPixelDataSize(width, height, format); - if ((glInternalFormat != -1) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) + if ((glInternalFormat != 0) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) { pixels = RL_MALLOC(size); glGetTexImage(GL_TEXTURE_2D, 0, glFormat, glType, pixels); @@ -3466,11 +3567,14 @@ bool rlFramebufferComplete(unsigned int id) void rlUnloadFramebuffer(unsigned int id) { #if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)) && defined(RLGL_RENDER_TEXTURES_HINT) - // Query depth attachment to automatically delete texture/renderbuffer int depthType = 0, depthId = 0; glBindFramebuffer(GL_FRAMEBUFFER, id); // Bind framebuffer to query depth texture type glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &depthType); + + // TODO: Review warning retrieving object name in WebGL + // WARNING: WebGL: INVALID_ENUM: getFramebufferAttachmentParameter: invalid parameter name + // https://registry.khronos.org/webgl/specs/latest/1.0/ glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &depthId); unsigned int depthIdU = (unsigned int)depthId; @@ -3616,7 +3720,11 @@ void rlDrawVertexArray(int offset, int count) // Draw vertex array elements void rlDrawVertexArrayElements(int offset, int count, const void *buffer) { - glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)buffer + offset); + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned short *bufferPtr = (unsigned short *)buffer; + if (offset > 0) bufferPtr += offset; + + glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr); } // Draw vertex array instanced @@ -3631,7 +3739,11 @@ void rlDrawVertexArrayInstanced(int offset, int count, int instances) void rlDrawVertexArrayElementsInstanced(int offset, int count, const void *buffer, int instances) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)buffer + offset, instances); + // NOTE: Added pointer math separately from function to avoid UBSAN complaining + unsigned short *bufferPtr = (unsigned short *)buffer; + if (offset > 0) bufferPtr += offset; + + glDrawElementsInstanced(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, (const unsigned short *)bufferPtr, instances); #endif } @@ -3923,8 +4035,8 @@ int rlGetLocationUniform(unsigned int shaderId, const char *uniformName) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) location = glGetUniformLocation(shaderId, uniformName); - if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader uniform: %s", shaderId, uniformName); - else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader uniform (%s) set at location: %i", shaderId, uniformName, location); + //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader uniform: %s", shaderId, uniformName); + //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader uniform (%s) set at location: %i", shaderId, uniformName, location); #endif return location; } @@ -3936,8 +4048,8 @@ int rlGetLocationAttrib(unsigned int shaderId, const char *attribName) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) location = glGetAttribLocation(shaderId, attribName); - if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader attribute: %s", shaderId, attribName); - else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader attribute (%s) set at location: %i", shaderId, attribName, location); + //if (location == -1) TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to find shader attribute: %s", shaderId, attribName); + //else TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Shader attribute (%s) set at location: %i", shaderId, attribName, location); #endif return location; } @@ -4091,7 +4203,7 @@ unsigned int rlLoadShaderBuffer(unsigned int size, const void *data, int usageHi glGenBuffers(1, &ssbo); glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo); glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, usageHint? usageHint : RL_STREAM_COPY); - glClearBufferData(GL_SHADER_STORAGE_BUFFER, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, 0); + if (data == NULL) glClearBufferData(GL_SHADER_STORAGE_BUFFER, GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, NULL); // Clear buffer data to 0 glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); #endif @@ -4162,7 +4274,7 @@ void rlBindImageTexture(unsigned int id, unsigned int index, int format, bool re unsigned int glInternalFormat = 0, glFormat = 0, glType = 0; rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); - glBindImageTexture(index, id, 0, 0, 0, readonly ? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat); + glBindImageTexture(index, id, 0, 0, 0, readonly? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat); #endif } @@ -4428,6 +4540,9 @@ const char *rlGetPixelFormatName(unsigned int format) case RL_PIXELFORMAT_UNCOMPRESSED_R32: return "R32"; break; // 32 bpp (1 channel - float) case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: return "R32G32B32"; break; // 32*3 bpp (3 channels - float) case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: return "R32G32B32A32"; break; // 32*4 bpp (4 channels - float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16: return "R16"; break; // 16 bpp (1 channel - half float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: return "R16G16B16"; break; // 16*3 bpp (3 channels - half float) + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: return "R16G16B16A16"; break; // 16*4 bpp (4 channels - half float) case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: return "DXT1_RGB"; break; // 4 bpp (no alpha) case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: return "DXT1_RGBA"; break; // 4 bpp (1 bit alpha) case RL_PIXELFORMAT_COMPRESSED_DXT3_RGBA: return "DXT3_RGBA"; break; // 8 bpp @@ -4476,6 +4591,7 @@ static void rlLoadShaderDefault(void) #endif #if defined(GRAPHICS_API_OPENGL_ES2) "#version 100 \n" + "precision mediump float; \n" // Precision required for OpenGL ES2 (WebGL) (on some browsers) "attribute vec3 vertexPosition; \n" "attribute vec2 vertexTexCoord; \n" "attribute vec4 vertexColor; \n" @@ -4574,7 +4690,7 @@ static void rlUnloadShaderDefault(void) #if defined(RLGL_SHOW_GL_DETAILS_INFO) // Get compressed format official GL identifier name -static char *rlGetCompressedFormatName(int format) +static const char *rlGetCompressedFormatName(int format) { switch (format) { @@ -4669,6 +4785,9 @@ static int rlGetPixelDataSize(int width, int height, int format) case RL_PIXELFORMAT_UNCOMPRESSED_R32: bpp = 32; break; case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32: bpp = 32*3; break; case RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: bpp = 32*4; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16: bpp = 16; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16: bpp = 16*3; break; + case RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16A16: bpp = 16*4; break; case RL_PIXELFORMAT_COMPRESSED_DXT1_RGB: case RL_PIXELFORMAT_COMPRESSED_DXT1_RGBA: case RL_PIXELFORMAT_COMPRESSED_ETC1_RGB: From 951ad555e165e8e94af713e42473396d464a7519 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Sun, 19 Nov 2023 22:27:08 -0600 Subject: [PATCH 4/7] Fix tests --- package-lock.json | 4882 +++++++++++++++++++++++++++++++++++++- package.json | 2 +- test/node-raylib.test.js | 2 +- 3 files changed, 4878 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1023595..8d85579 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "raylib", "version": "0.14.0", - "lockfileVersion": 3, + "lockfileVersion": 2, "requires": true, "packages": { "": { @@ -17,7 +17,7 @@ "raylib": "bin/node-raylib" }, "devDependencies": { - "@raylib/api": "RobLoach/raylib-api#raylib5", + "@raylib/api": "^5.0.0", "@vitest/ui": "^0.29.7", "archiver": "^5.3.1", "jsdoc-to-markdown": "^8.0.0", @@ -639,10 +639,10 @@ "dev": true }, "node_modules/@raylib/api": { - "version": "4.5.1", - "resolved": "git+ssh://git@github.com/RobLoach/raylib-api.git#a6bff23b6f9e6ea4f26ba1a47ba7010d7038fcd7", - "dev": true, - "license": "Zlib" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@raylib/api/-/api-5.0.0.tgz", + "integrity": "sha512-zpPsQqfurgHLf+W4kdsYNSs5RoOgs4x8YkmjDQ5ZsXUT8lPDDTekoryBf5W9pqlK5P9oXdP2AIrortx2JvzEtw==", + "dev": true }, "node_modules/@types/chai": { "version": "4.3.10", @@ -6761,5 +6761,4875 @@ "node": ">= 10" } } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, + "@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "requires": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/parser": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", + "dev": true + }, + "@babel/types": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + } + }, + "@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "dev": true, + "optional": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@eslint/js": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@jsdoc/salty": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.6.tgz", + "integrity": "sha512-aA+awb5yoml8TQ3CzI5Ue7sM3VMRC4l1zJJW4fgZ8OCL1wshJZhNzaf0PL85DSnOUw6QuFgeHGD/eq/xwwAF2g==", + "dev": true, + "requires": { + "lodash": "^4.17.21" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@polka/url": { + "version": "1.0.0-next.23", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", + "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", + "dev": true + }, + "@raylib/api": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@raylib/api/-/api-5.0.0.tgz", + "integrity": "sha512-zpPsQqfurgHLf+W4kdsYNSs5RoOgs4x8YkmjDQ5ZsXUT8lPDDTekoryBf5W9pqlK5P9oXdP2AIrortx2JvzEtw==", + "dev": true + }, + "@types/chai": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", + "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", + "dev": true, + "requires": { + "@types/chai": "*" + } + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/linkify-it": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz", + "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==", + "dev": true + }, + "@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "dev": true, + "requires": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "@types/mdurl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz", + "integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==", + "dev": true + }, + "@types/node": { + "version": "20.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.2.tgz", + "integrity": "sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "@vitest/expect": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.29.8.tgz", + "integrity": "sha512-xlcVXn5I5oTq6NiZSY3ykyWixBxr5mG8HYtjvpgg6KaqHm0mvhX18xuwl5YGxIRNt/A5jidd7CWcNHrSvgaQqQ==", + "dev": true, + "requires": { + "@vitest/spy": "0.29.8", + "@vitest/utils": "0.29.8", + "chai": "^4.3.7" + } + }, + "@vitest/runner": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.29.8.tgz", + "integrity": "sha512-FzdhnRDwEr/A3Oo1jtIk/B952BBvP32n1ObMEb23oEJNO+qO5cBet6M2XWIDQmA7BDKGKvmhUf2naXyp/2JEwQ==", + "dev": true, + "requires": { + "@vitest/utils": "0.29.8", + "p-limit": "^4.0.0", + "pathe": "^1.1.0" + }, + "dependencies": { + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true + } + } + }, + "@vitest/spy": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.29.8.tgz", + "integrity": "sha512-VdjBe9w34vOMl5I5mYEzNX8inTxrZ+tYUVk9jxaZJmHFwmDFC/GV3KBFTA/JKswr3XHvZL+FE/yq5EVhb6pSAw==", + "dev": true, + "requires": { + "tinyspy": "^1.0.2" + } + }, + "@vitest/ui": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.29.8.tgz", + "integrity": "sha512-+vbLd+c1R/XUWfzJsWeyjeiw13fwJ95I5tguxaqXRg61y9iYUKesVljg7Pttp2uo7VK+kAjvY91J41NZ1Vx3vg==", + "dev": true, + "requires": { + "fast-glob": "^3.2.12", + "flatted": "^3.2.7", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "sirv": "^2.0.2" + } + }, + "@vitest/utils": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.29.8.tgz", + "integrity": "sha512-qGzuf3vrTbnoY+RjjVVIBYfuWMjn3UMUqyQtdGNZ6ZIIyte7B37exj6LaVkrZiUTvzSadVvO/tJm8AEgbGCBPg==", + "dev": true, + "requires": { + "cli-truncate": "^3.1.0", + "diff": "^5.1.0", + "loupe": "^2.3.6", + "pretty-format": "^27.5.1" + } + }, + "acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", + "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-escape-sequences": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", + "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", + "dev": true, + "requires": { + "array-back": "^3.0.1" + }, + "dependencies": { + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "archiver": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", + "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", + "dev": true, + "requires": { + "archiver-utils": "^2.1.0", + "async": "^3.2.4", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + } + }, + "archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "requires": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.tosorted": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + } + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, + "asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.3" + } + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "requires": { + "semver": "^7.0.0" + } + }, + "cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true + }, + "cache-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", + "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", + "dev": true, + "requires": { + "array-back": "^4.0.1", + "fs-then-native": "^2.0.0", + "mkdirp2": "^1.0.4" + }, + "dependencies": { + "array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true + } + } + }, + "call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "chai": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "requires": { + "get-func-name": "^2.0.2" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "requires": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "collect-all": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", + "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", + "dev": true, + "requires": { + "stream-connect": "^1.0.2", + "stream-via": "^1.0.4" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "requires": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "dependencies": { + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true + }, + "typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true + } + } + }, + "command-line-tool": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", + "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "command-line-args": "^5.0.0", + "command-line-usage": "^4.1.0", + "typical": "^2.6.1" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "^2.6.1" + } + } + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "table-layout": "^0.4.2", + "typical": "^2.6.1" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "^2.6.1" + } + } + } + }, + "common-sequence": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", + "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", + "dev": true + }, + "compress-commons": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", + "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "config-master": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", + "integrity": "sha512-n7LBL1zBzYdTpF1mx5DNcZnZn05CWIdsdvtPL4MosvqbBUK3Rq6VWEtGUuF3Y0s9/CIhMejezqlSkP6TnCJ/9g==", + "dev": true, + "requires": { + "walk-back": "^2.0.1" + }, + "dependencies": { + "walk-back": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", + "integrity": "sha512-Nb6GvBR8UWX1D+Le+xUq0+Q1kFmRBIWVrfLnQAOmcpEzA9oAxwJ9gIr36t9TWYfzvWRvuMtjHiVsJYEkXWaTAQ==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true + }, + "crc32-stream": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", + "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", + "dev": true, + "requires": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + } + }, + "cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "requires": { + "node-fetch": "^2.6.12" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "requires": { + "mimic-response": "^3.1.0" + } + }, + "deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "dev": true + }, + "diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dmd": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.2.0.tgz", + "integrity": "sha512-uXWxLF1H7TkUAuoHK59/h/ts5cKavm2LnhrIgJWisip4BVzPoXavlwyoprFFn2CzcahKYgvkfaebS6oxzgflkg==", + "dev": true, + "requires": { + "array-back": "^6.2.2", + "cache-point": "^2.0.0", + "common-sequence": "^2.0.2", + "file-set": "^4.0.2", + "handlebars": "^4.7.7", + "marked": "^4.2.3", + "object-get": "^2.1.1", + "reduce-flatten": "^3.0.1", + "reduce-unique": "^2.0.1", + "reduce-without": "^1.0.1", + "test-value": "^3.0.0", + "walk-back": "^5.1.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + } + }, + "es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dev": true, + "requires": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, + "es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "eslint": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.54.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + } + } + }, + "eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "requires": {} + }, + "eslint-config-standard-jsx": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz", + "integrity": "sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==", + "dev": true, + "requires": {} + }, + "eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + } + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "dev": true, + "requires": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", + "dev": true, + "requires": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "dependencies": { + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + } + } + }, + "eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "requires": {} + }, + "eslint-plugin-react": { + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "dev": true, + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + }, + "espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-set": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", + "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", + "dev": true, + "requires": { + "array-back": "^5.0.0", + "glob": "^7.1.6" + }, + "dependencies": { + "array-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "dev": true + } + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "requires": { + "array-back": "^3.0.1" + }, + "dependencies": { + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true + } + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "requires": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-then-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", + "integrity": "sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "dev": true + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.2" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + } + }, + "into-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", + "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "dev": true, + "requires": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.11" + } + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "requires": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "dev": true, + "requires": { + "xmlcreate": "^2.0.4" + } + }, + "jsdoc": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz", + "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.15", + "@jsdoc/salty": "^0.2.1", + "@types/markdown-it": "^12.2.3", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^3.0.0", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "underscore": "~1.13.2" + } + }, + "jsdoc-api": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-8.0.0.tgz", + "integrity": "sha512-Rnhor0suB1Ds1abjmFkFfKeD+kSMRN9oHMTMZoJVUrmtCGDwXty+sWMA9sa4xbe4UyxuPjhC7tavZ40mDKK6QQ==", + "dev": true, + "requires": { + "array-back": "^6.2.2", + "cache-point": "^2.0.0", + "collect-all": "^1.0.4", + "file-set": "^4.0.2", + "fs-then-native": "^2.0.0", + "jsdoc": "^4.0.0", + "object-to-spawn-args": "^2.0.1", + "temp-path": "^1.0.0", + "walk-back": "^5.1.0" + } + }, + "jsdoc-parse": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.0.tgz", + "integrity": "sha512-Afu1fQBEb7QHt6QWX/6eUWvYHJofB90Fjx7FuJYF7mnG9z5BkAIpms1wsnvYLytfmqpEENHs/fax9p8gvMj7dw==", + "dev": true, + "requires": { + "array-back": "^6.2.2", + "lodash.omit": "^4.5.0", + "lodash.pick": "^4.4.0", + "reduce-extract": "^1.0.0", + "sort-array": "^4.1.5", + "test-value": "^3.0.0" + } + }, + "jsdoc-to-markdown": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-8.0.0.tgz", + "integrity": "sha512-2FQvYkg491+FP6s15eFlgSSWs69CvQrpbABGYBtvAvGWy/lWo8IKKToarT283w59rQFrpcjHl3YdhHCa3l7gXg==", + "dev": true, + "requires": { + "array-back": "^6.2.2", + "command-line-tool": "^0.8.0", + "config-master": "^3.1.0", + "dmd": "^6.2.0", + "jsdoc-api": "^8.0.0", + "jsdoc-parse": "^6.2.0", + "walk-back": "^5.1.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + } + }, + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "dependencies": { + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + } + } + }, + "local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", + "dev": true + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", + "dev": true + }, + "lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "requires": { + "get-func-name": "^2.0.1" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "requires": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + } + }, + "markdown-it-anchor": { + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "dev": true, + "requires": {} + }, + "marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "mkdirp2": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz", + "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==", + "dev": true + }, + "mlly": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", + "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", + "dev": true, + "requires": { + "acorn": "^8.10.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "ufo": "^1.3.0" + } + }, + "module-alias": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.3.tgz", + "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==" + }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multistream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", + "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", + "dev": true, + "requires": { + "once": "^1.4.0", + "readable-stream": "^3.6.0" + } + }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true + }, + "napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-abi": { + "version": "3.51.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.51.0.tgz", + "integrity": "sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==", + "dev": true, + "requires": { + "semver": "^7.3.5" + } + }, + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-get": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", + "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", + "dev": true + }, + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-to-spawn-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz", + "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "object.hasown": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "dev": true, + "requires": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pathe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "dev": true + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", + "integrity": "sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==", + "dev": true, + "requires": { + "@babel/generator": "7.18.2", + "@babel/parser": "7.18.4", + "@babel/types": "7.19.0", + "chalk": "^4.1.2", + "fs-extra": "^9.1.0", + "globby": "^11.1.0", + "into-stream": "^6.0.0", + "is-core-module": "2.9.0", + "minimist": "^1.2.6", + "multistream": "^4.1.0", + "pkg-fetch": "3.4.2", + "prebuild-install": "7.1.1", + "resolve": "^1.22.0", + "stream-meter": "^1.0.4" + }, + "dependencies": { + "@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "dev": true + } + } + }, + "pkg-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + } + } + }, + "pkg-fetch": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", + "integrity": "sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==", + "dev": true, + "requires": { + "chalk": "^4.1.2", + "fs-extra": "^9.1.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.6", + "progress": "^2.0.3", + "semver": "^7.3.5", + "tar-fs": "^2.1.1", + "yargs": "^16.2.0" + } + }, + "pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dev": true, + "requires": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "dev": true, + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "prebuild-install": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "dev": true, + "requires": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + } + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "dev": true, + "requires": { + "minimatch": "^5.1.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "reduce-extract": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", + "integrity": "sha512-QF8vjWx3wnRSL5uFMyCjDeDc5EBMiryoT9tz94VvgjKfzecHAVnqmXAwQDcr7X4JmLc2cjkjFGCVzhMqDjgR9g==", + "dev": true, + "requires": { + "test-value": "^1.0.1" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "dev": true, + "requires": { + "typical": "^2.6.0" + } + }, + "test-value": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", + "integrity": "sha512-wrsbRo7qP+2Je8x8DsK8ovCGyxe3sYfQwOraIY/09A2gFXU9DYKiTF14W4ki/01AEh56kMzAmlj9CaHGDDUBJA==", + "dev": true, + "requires": { + "array-back": "^1.0.2", + "typical": "^2.4.2" + } + } + } + }, + "reduce-flatten": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", + "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", + "dev": true + }, + "reduce-unique": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", + "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", + "dev": true + }, + "reduce-without": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", + "integrity": "sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==", + "dev": true, + "requires": { + "test-value": "^2.0.0" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "dev": true, + "requires": { + "typical": "^2.6.0" + } + }, + "test-value": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", + "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", + "dev": true, + "requires": { + "array-back": "^1.0.3", + "typical": "^2.6.0" + } + } + } + }, + "reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + } + }, + "regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "requizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", + "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", + "dev": true, + "requires": { + "lodash": "^4.17.21" + } + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "dependencies": { + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true + }, + "simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "dev": true, + "requires": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "sirv": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", + "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^3.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + } + } + }, + "sort-array": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz", + "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==", + "dev": true, + "requires": { + "array-back": "^5.0.0", + "typical": "^6.0.1" + }, + "dependencies": { + "array-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "dev": true + }, + "typical": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", + "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", + "dev": true + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/standard/-/standard-17.1.0.tgz", + "integrity": "sha512-jaDqlNSzLtWYW4lvQmU0EnxWMUGQiwHasZl5ZEIwx3S/ijZDjZOzs1y1QqKwKs5vqnFpGtizo4NOYX2s0Voq/g==", + "dev": true, + "requires": { + "eslint": "^8.41.0", + "eslint-config-standard": "17.1.0", + "eslint-config-standard-jsx": "^11.0.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-react": "^7.32.2", + "standard-engine": "^15.0.0", + "version-guard": "^1.1.1" + } + }, + "standard-engine": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.1.0.tgz", + "integrity": "sha512-VHysfoyxFu/ukT+9v49d4BRXIokFRZuH3z1VRxzFArZdjSCFpro6rEIU3ji7e4AoAtuSfKBkiOmsrDqKW5ZSRw==", + "dev": true, + "requires": { + "get-stdin": "^8.0.0", + "minimist": "^1.2.6", + "pkg-conf": "^3.1.0", + "xdg-basedir": "^4.0.0" + } + }, + "std-env": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.5.0.tgz", + "integrity": "sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==", + "dev": true + }, + "stream-connect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", + "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==", + "dev": true, + "requires": { + "array-back": "^1.0.2" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "dev": true, + "requires": { + "typical": "^2.6.0" + } + } + } + }, + "stream-meter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", + "integrity": "sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==", + "dev": true, + "requires": { + "readable-stream": "^2.1.4" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-via": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", + "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "string.prototype.matchall": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "strip-literal": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", + "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", + "dev": true, + "requires": { + "acorn": "^8.10.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "table-layout": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", + "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "deep-extend": "~0.6.0", + "lodash.padend": "^4.6.1", + "typical": "^2.6.1", + "wordwrapjs": "^3.0.0" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "^2.6.1" + } + } + } + }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, + "temp-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", + "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==", + "dev": true + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "typical": "^2.6.1" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "^2.6.1" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "tinybench": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz", + "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==", + "dev": true + }, + "tinypool": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.4.0.tgz", + "integrity": "sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==", + "dev": true + }, + "tinyspy": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.1.1.tgz", + "integrity": "sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "ufo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "dev": true + }, + "uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "dev": true + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "version-guard": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/version-guard/-/version-guard-1.1.1.tgz", + "integrity": "sha512-MGQLX89UxmYHgDvcXyjBI0cbmoW+t/dANDppNPrno64rYr8nH4SHSuElQuSYdXGEs0mUzdQe1BY+FhVPNsAmJQ==", + "dev": true + }, + "vite": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "dev": true, + "requires": { + "esbuild": "^0.18.10", + "fsevents": "~2.3.2", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + } + }, + "vite-node": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.29.8.tgz", + "integrity": "sha512-b6OtCXfk65L6SElVM20q5G546yu10/kNrhg08afEoWlFRJXFq9/6glsvSVY+aI6YeC1tu2TtAqI2jHEQmOmsFw==", + "dev": true, + "requires": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "mlly": "^1.1.0", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "vite": "^3.0.0 || ^4.0.0" + } + }, + "vitest": { + "version": "0.29.8", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.29.8.tgz", + "integrity": "sha512-JIAVi2GK5cvA6awGpH0HvH/gEG9PZ0a/WoxdiV3PmqK+3CjQMf8c+J/Vhv4mdZ2nRyXFw66sAg6qz7VNkaHfDQ==", + "dev": true, + "requires": { + "@types/chai": "^4.3.4", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "@vitest/expect": "0.29.8", + "@vitest/runner": "0.29.8", + "@vitest/spy": "0.29.8", + "@vitest/utils": "0.29.8", + "acorn": "^8.8.1", + "acorn-walk": "^8.2.0", + "cac": "^6.7.14", + "chai": "^4.3.7", + "debug": "^4.3.4", + "local-pkg": "^0.4.2", + "pathe": "^1.1.0", + "picocolors": "^1.0.0", + "source-map": "^0.6.1", + "std-env": "^3.3.1", + "strip-literal": "^1.0.0", + "tinybench": "^2.3.1", + "tinypool": "^0.4.0", + "tinyspy": "^1.0.2", + "vite": "^3.0.0 || ^4.0.0", + "vite-node": "0.29.8", + "why-is-node-running": "^2.2.2" + } + }, + "walk-back": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz", + "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "requires": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "requires": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "^1.0.1", + "typical": "^2.6.1" + }, + "dependencies": { + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", + "dev": true + } + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + }, + "zip-stream": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", + "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", + "dev": true, + "requires": { + "archiver-utils": "^3.0.4", + "compress-commons": "^4.1.2", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "dev": true, + "requires": { + "glob": "^7.2.3", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + } + } + } + } } } diff --git a/package.json b/package.json index 8607616..0869f41 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "module-alias": "^2.2.2" }, "devDependencies": { - "@raylib/api": "RobLoach/raylib-api#raylib5", + "@raylib/api": "^5.0.0", "@vitest/ui": "^0.29.7", "archiver": "^5.3.1", "jsdoc-to-markdown": "^8.0.0", diff --git a/test/node-raylib.test.js b/test/node-raylib.test.js index 38298df..23dc306 100644 --- a/test/node-raylib.test.js +++ b/test/node-raylib.test.js @@ -44,7 +44,7 @@ describe('raylib', () => { expect(r.KEY_A).toBe(65) }) it('PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA', () => { - expect(r.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA).toBe(20) + expect(r.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA).toBe(23) }) }) From b46277efebd88588905610a30678534c728fdf74 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Sun, 19 Nov 2023 22:57:44 -0600 Subject: [PATCH 5/7] Add int[4] --- docs/API.md | 1422 ++++++++++++----- package-lock.json | 4 +- package.json | 2 +- src/generated/node-raylib.cc | 2 +- .../node-raylib-bindings.js | 3 + 5 files changed, 1031 insertions(+), 402 deletions(-) diff --git a/docs/API.md b/docs/API.md index ab2e930..edee1b1 100644 --- a/docs/API.md +++ b/docs/API.md @@ -4,12 +4,12 @@
InitWindow(width, height, title) ⇒ undefined

Initialize window and OpenGL context

-
WindowShouldClose() ⇒ boolean
-

Check if KEY_ESCAPE pressed or Close icon pressed

-
CloseWindow() ⇒ undefined

Close window and unload OpenGL context

+
WindowShouldClose() ⇒ boolean
+

Check if application should close (KEY_ESCAPE pressed or windows close icon clicked)

+
IsWindowReady() ⇒ boolean

Check if window has been initialized successfully

@@ -43,6 +43,9 @@
ToggleFullscreen() ⇒ undefined

Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP)

+
ToggleBorderlessWindowed() ⇒ undefined
+

Toggle window state: borderless windowed (only PLATFORM_DESKTOP)

+
MaximizeWindow() ⇒ undefined

Set window state: maximized, if resizable (only PLATFORM_DESKTOP)

@@ -59,23 +62,29 @@

Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP)

SetWindowTitle(title) ⇒ undefined
-

Set title for window (only PLATFORM_DESKTOP)

+

Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB)

SetWindowPosition(x, y) ⇒ undefined

Set window position on screen (only PLATFORM_DESKTOP)

SetWindowMonitor(monitor) ⇒ undefined
-

Set monitor for the current window (fullscreen mode)

+

Set monitor for the current window

SetWindowMinSize(width, height) ⇒ undefined

Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)

+
SetWindowMaxSize(width, height) ⇒ undefined
+

Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE)

+
SetWindowSize(width, height) ⇒ undefined

Set window dimensions

SetWindowOpacity(opacity) ⇒ undefined

Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP)

+
SetWindowFocused() ⇒ undefined
+

Set window focused (only PLATFORM_DESKTOP)

+
GetWindowHandle() ⇒ number

Get native window handle

@@ -122,7 +131,7 @@

Get window scale DPI factor

GetMonitorName(monitor) ⇒ string
-

Get the human-readable, UTF-8 encoded name of the primary monitor

+

Get the human-readable, UTF-8 encoded name of the specified monitor

SetClipboardText(text) ⇒ undefined

Set clipboard text content

@@ -136,15 +145,6 @@
DisableEventWaiting() ⇒ undefined

Disable waiting for events on EndDrawing(), automatic events polling

-
SwapScreenBuffer() ⇒ undefined
-

Swap back buffer with front buffer (screen drawing)

-
-
PollInputEvents() ⇒ undefined
-

Register all input events

-
-
WaitTime(seconds) ⇒ undefined
-

Wait for some time (halt program execution)

-
ShowCursor() ⇒ undefined

Shows cursor

@@ -259,27 +259,45 @@
SetTargetFPS(fps) ⇒ undefined

Set target FPS (maximum)

-
GetFPS() ⇒ number
-

Get current FPS

-
GetFrameTime() ⇒ number

Get time in seconds for last frame drawn (delta time)

GetTime() ⇒ number

Get elapsed time in seconds since InitWindow()

-
GetRandomValue(min, max) ⇒ number
-

Get a random value between min and max (both included)

+
GetFPS() ⇒ number
+

Get current FPS

+
+
SwapScreenBuffer() ⇒ undefined
+

Swap back buffer with front buffer (screen drawing)

+
+
PollInputEvents() ⇒ undefined
+

Register all input events

+
+
WaitTime(seconds) ⇒ undefined
+

Wait for some time (halt program execution)

SetRandomSeed(seed) ⇒ undefined

Set the seed for the random number generator

+
GetRandomValue(min, max) ⇒ number
+

Get a random value between min and max (both included)

+
+
LoadRandomSequence(count, min, max) ⇒ number
+

Load random values sequence, no values repeated

+
+
UnloadRandomSequence(sequence) ⇒ undefined
+

Unload random values sequence

+
TakeScreenshot(fileName) ⇒ undefined

Takes a screenshot of current screen (filename extension defines format)

SetConfigFlags(flags) ⇒ undefined

Setup init configuration flags (view FLAGS)

+
OpenURL(url) ⇒ undefined
+

Open URL with default system browser (if available)

+
SetTraceLogLevel(logLevel) ⇒ undefined

Set the current threshold (minimum) log level

@@ -292,19 +310,16 @@
MemFree(ptr) ⇒ undefined

Internal memory free

-
OpenURL(url) ⇒ undefined
-

Open URL with default system browser (if available)

-
-
LoadFileData(fileName, bytesRead) ⇒ Buffer
+
LoadFileData(fileName, dataSize) ⇒ Buffer

Load file data as byte array (read)

UnloadFileData(data) ⇒ undefined

Unload file data allocated by LoadFileData()

-
SaveFileData(fileName, data, bytesToWrite) ⇒ boolean
+
SaveFileData(fileName, data, dataSize) ⇒ boolean

Save data to file from byte array (write), returns true on success

-
ExportDataAsCode(data, size, fileName) ⇒ boolean
+
ExportDataAsCode(data, dataSize, fileName) ⇒ boolean

Export data to code (.h), returns true on success

LoadFileText(fileName) ⇒ string
@@ -347,7 +362,7 @@

Get current working directory (uses static string)

GetApplicationDirectory() ⇒ string
-

Get the directory if the running application (uses static string)

+

Get the directory of the running application (uses static string)

ChangeDirectory(dir) ⇒ boolean

Change working directory, return true on success

@@ -388,9 +403,36 @@
DecodeDataBase64(data, outputSize) ⇒ Buffer

Decode Base64 string data, memory must be MemFree()

+
LoadAutomationEventList(fileName) ⇒ AutomationEventList
+

Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS

+
+
UnloadAutomationEventList(list) ⇒ undefined
+

Unload automation events list from file

+
+
ExportAutomationEventList(list, fileName) ⇒ boolean
+

Export automation events list as text file

+
+
SetAutomationEventList(list) ⇒ undefined
+

Set automation event list to record to

+
+
SetAutomationEventBaseFrame(frame) ⇒ undefined
+

Set automation event internal base frame to start recording

+
+
StartAutomationEventRecording() ⇒ undefined
+

Start recording automation events (AutomationEventList must be set)

+
+
StopAutomationEventRecording() ⇒ undefined
+

Stop recording automation events

+
+
PlayAutomationEvent(event) ⇒ undefined
+

Play a recorded automation event

+
IsKeyPressed(key) ⇒ boolean

Check if a key has been pressed once

+
IsKeyPressedRepeat(key) ⇒ boolean
+

Check if a key has been pressed again (Only PLATFORM_DESKTOP)

+
IsKeyDown(key) ⇒ boolean

Check if a key is being pressed

@@ -400,15 +442,15 @@
IsKeyUp(key) ⇒ boolean

Check if a key is NOT being pressed

-
SetExitKey(key) ⇒ undefined
-

Set a custom key to exit program (default is ESC)

-
GetKeyPressed() ⇒ number

Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty

GetCharPressed() ⇒ number

Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty

+
SetExitKey(key) ⇒ undefined
+

Set a custom key to exit program (default is ESC)

+
IsGamepadAvailable(gamepad) ⇒ boolean

Check if a gamepad is available

@@ -536,22 +578,16 @@

Draw a line

DrawLineV(startPos, endPos, color) ⇒ undefined
-

Draw a line (Vector version)

+

Draw a line (using gl lines)

DrawLineEx(startPos, endPos, thick, color) ⇒ undefined
-

Draw a line defining thickness

-
-
DrawLineBezier(startPos, endPos, thick, color) ⇒ undefined
-

Draw a line using cubic-bezier curves in-out

-
-
DrawLineBezierQuad(startPos, endPos, controlPos, thick, color) ⇒ undefined
-

Draw line using quadratic bezier curves with a control point

-
-
DrawLineBezierCubic(startPos, endPos, startControlPos, endControlPos, thick, color) ⇒ undefined
-

Draw line using cubic bezier curves with 2 control points

+

Draw a line (using triangles/quads)

DrawLineStrip(points, pointCount, color) ⇒ undefined
-

Draw lines sequence

+

Draw lines sequence (using gl lines)

+
+
DrawLineBezier(startPos, endPos, thick, color) ⇒ undefined
+

Draw line segment cubic-bezier in-out interpolation

DrawCircle(centerX, centerY, radius, color) ⇒ undefined

Draw a color-filled circle

@@ -571,6 +607,9 @@
DrawCircleLines(centerX, centerY, radius, color) ⇒ undefined

Draw circle outline

+
DrawCircleLinesV(center, radius, color) ⇒ undefined
+

Draw circle outline (Vector version)

+
DrawEllipse(centerX, centerY, radiusH, radiusV, color) ⇒ undefined

Draw ellipse

@@ -637,6 +676,51 @@
DrawPolyLinesEx(center, sides, radius, rotation, lineThick, color) ⇒ undefined

Draw a polygon outline of n sides with extended parameters

+
DrawSplineLinear(points, pointCount, thick, color) ⇒ undefined
+

Draw spline: Linear, minimum 2 points

+
+
DrawSplineBasis(points, pointCount, thick, color) ⇒ undefined
+

Draw spline: B-Spline, minimum 4 points

+
+
DrawSplineCatmullRom(points, pointCount, thick, color) ⇒ undefined
+

Draw spline: Catmull-Rom, minimum 4 points

+
+
DrawSplineBezierQuadratic(points, pointCount, thick, color) ⇒ undefined
+

Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...]

+
+
DrawSplineBezierCubic(points, pointCount, thick, color) ⇒ undefined
+

Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...]

+
+
DrawSplineSegmentLinear(p1, p2, thick, color) ⇒ undefined
+

Draw spline segment: Linear, 2 points

+
+
DrawSplineSegmentBasis(p1, p2, p3, p4, thick, color) ⇒ undefined
+

Draw spline segment: B-Spline, 4 points

+
+
DrawSplineSegmentCatmullRom(p1, p2, p3, p4, thick, color) ⇒ undefined
+

Draw spline segment: Catmull-Rom, 4 points

+
+
DrawSplineSegmentBezierQuadratic(p1, c2, p3, thick, color) ⇒ undefined
+

Draw spline segment: Quadratic Bezier, 2 points, 1 control point

+
+
DrawSplineSegmentBezierCubic(p1, c2, c3, p4, thick, color) ⇒ undefined
+

Draw spline segment: Cubic Bezier, 2 points, 2 control points

+
+
GetSplinePointLinear(startPos, endPos, t) ⇒ Vector2
+

Get (evaluate) spline point: Linear

+
+
GetSplinePointBasis(p1, p2, p3, p4, t) ⇒ Vector2
+

Get (evaluate) spline point: B-Spline

+
+
GetSplinePointCatmullRom(p1, p2, p3, p4, t) ⇒ Vector2
+

Get (evaluate) spline point: Catmull-Rom

+
+
GetSplinePointBezierQuad(p1, c2, p3, t) ⇒ Vector2
+

Get (evaluate) spline point: Quadratic Bezier

+
+
GetSplinePointBezierCubic(p1, c2, c3, p4, t) ⇒ Vector2
+

Get (evaluate) spline point: Cubic Bezier

+
CheckCollisionRecs(rec1, rec2) ⇒ boolean

Check collision between two rectangles

@@ -673,6 +757,9 @@
LoadImageRaw(fileName, width, height, format, headerSize) ⇒ Image

Load image from RAW file data

+
LoadImageSvg(fileNameOrString, width, height) ⇒ Image
+

Load image from SVG file data or string with specified size

+
LoadImageAnim(fileName, frames) ⇒ Image

Load image sequence from file (frames appended to image.data)

@@ -694,21 +781,24 @@
ExportImage(image, fileName) ⇒ boolean

Export image data to file, returns true on success

+
ExportImageToMemory(image, fileType, fileSize) ⇒ Buffer
+

Export image to memory buffer

+
ExportImageAsCode(image, fileName) ⇒ boolean

Export image as code file defining an array of bytes, returns true on success

GenImageColor(width, height, color) ⇒ Image

Generate image: plain color

-
GenImageGradientV(width, height, top, bottom) ⇒ Image
-

Generate image: vertical gradient

-
-
GenImageGradientH(width, height, left, right) ⇒ Image
-

Generate image: horizontal gradient

+
GenImageGradientLinear(width, height, direction, start, end) ⇒ Image
+

Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient

GenImageGradientRadial(width, height, density, inner, outer) ⇒ Image

Generate image: radial gradient

+
GenImageGradientSquare(width, height, density, inner, outer) ⇒ Image
+

Generate image: square gradient

+
GenImageChecked(width, height, checksX, checksY, col1, col2) ⇒ Image

Generate image: checked

@@ -739,6 +829,9 @@
ImageBlurGaussian(image, blurSize) ⇒ undefined

Apply Gaussian blur using a box blur approximation

+
ImageRotate(image, degrees) ⇒ undefined
+

Rotate image by input angle in degrees (-359 to 359)

+
LoadImageColors(image) ⇒ number

Load color data from image as a Color array (RGBA - 32bit)

@@ -868,25 +961,25 @@
LoadFont(fileName) ⇒ Font

Load font from file into GPU memory (VRAM)

-
LoadFontEx(fileName, fontSize, fontChars, glyphCount) ⇒ Font
-

Load font from file with extended parameters, use NULL for fontChars and 0 for glyphCount to load the default character set

+
LoadFontEx(fileName, fontSize, codepoints, codepointCount) ⇒ Font
+

Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont

LoadFontFromImage(image, key, firstChar) ⇒ Font

Load font from Image (XNA style)

-
LoadFontFromMemory(fileType, fileData, dataSize, fontSize, fontChars, glyphCount) ⇒ Font
+
LoadFontFromMemory(fileType, fileData, dataSize, fontSize, codepoints, codepointCount) ⇒ Font

Load font from memory buffer, fileType refers to extension: i.e. '.ttf'

IsFontReady(font) ⇒ boolean

Check if a font is ready

-
LoadFontData(fileData, dataSize, fontSize, fontChars, glyphCount, type) ⇒ number
+
LoadFontData(fileData, dataSize, fontSize, codepoints, codepointCount, type) ⇒ number

Load font data for further use

-
GenImageFontAtlas(chars, recs, glyphCount, fontSize, padding, packMethod) ⇒ Image
+
GenImageFontAtlas(glyphs, glyphRecs, glyphCount, fontSize, padding, packMethod) ⇒ Image

Generate image font atlas using chars info

-
UnloadFontData(chars, glyphCount) ⇒ undefined
+
UnloadFontData(glyphs, glyphCount) ⇒ undefined

Unload font chars info data (RAM)

UnloadFont(font) ⇒ undefined
@@ -910,9 +1003,12 @@
DrawTextCodepoint(font, codepoint, position, fontSize, tint) ⇒ undefined

Draw one character (codepoint)

-
DrawTextCodepoints(font, codepoints, count, position, fontSize, spacing, tint) ⇒ undefined
+
DrawTextCodepoints(font, codepoints, codepointCount, position, fontSize, spacing, tint) ⇒ undefined

Draw multiple character (codepoint)

+
SetTextLineSpacing(spacing) ⇒ undefined
+

Set vertical line spacing when drawing with line-breaks

+
MeasureText(text, fontSize) ⇒ number

Measure string width for default font

@@ -1153,7 +1249,7 @@
UnloadModelAnimation(anim) ⇒ undefined

Unload animation data

-
UnloadModelAnimations(animations, count) ⇒ undefined
+
UnloadModelAnimations(animations, animCount) ⇒ undefined

Unload animation array data

IsModelAnimationValid(model, anim) ⇒ boolean
@@ -1195,6 +1291,9 @@
SetMasterVolume(volume) ⇒ undefined

Set master volume (listener)

+
GetMasterVolume() ⇒ number
+

Get master volume (listener)

+
LoadWave(fileName) ⇒ Wave

Load wave data from file

@@ -1210,6 +1309,9 @@
LoadSoundFromWave(wave) ⇒ Sound

Load sound from wave data

+
LoadSoundAlias(source) ⇒ Sound
+

Create a new sound that shares the same sample data as the source sound, does not own the sound data

+
IsSoundReady(sound) ⇒ boolean

Checks if a sound is ready

@@ -1222,6 +1324,9 @@
UnloadSound(sound) ⇒ undefined

Unload sound

+
UnloadSoundAlias(alias) ⇒ undefined
+

Unload a sound alias (does not deallocate sample data)

+
ExportWave(wave, fileName) ⇒ boolean

Export wave data to file, returns true on success

@@ -1450,7 +1555,7 @@
GuiIsLocked() ⇒ boolean

Check if gui is locked (global state)

-
GuiFade(alpha) ⇒ undefined
+
GuiSetAlpha(alpha) ⇒ undefined

Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f

GuiSetState(state) ⇒ undefined
@@ -1471,60 +1576,90 @@
GuiGetStyle(control, property) ⇒ number

Get one style property

-
GuiWindowBox(bounds, title) ⇒ boolean
+
GuiLoadStyle(fileName) ⇒ undefined
+

Load style file over global style variable (.rgs)

+
+
GuiLoadStyleDefault() ⇒ undefined
+

Load style default over global style

+
+
GuiEnableTooltip() ⇒ undefined
+

Enable gui tooltips (global state)

+
+
GuiDisableTooltip() ⇒ undefined
+

Disable gui tooltips (global state)

+
+
GuiSetTooltip(tooltip) ⇒ undefined
+

Set tooltip string

+
+
GuiIconText(iconId, text) ⇒ string
+

Get text with icon id prepended (if supported)

+
+
GuiSetIconScale(scale) ⇒ undefined
+

Set default icon drawing size

+
+
GuiGetIcons() ⇒ number
+

Get raygui icons data pointer

+
+
GuiLoadIcons(fileName, loadIconsName) ⇒ number
+

Load raygui icons file (.rgi) into internal icons data

+
+
GuiDrawIcon(iconId, posX, posY, pixelSize, color) ⇒ undefined
+

Draw icon using pixel size at specified position

+
+
GuiWindowBox(bounds, title) ⇒ number

Window Box control, shows a window that can be closed

-
GuiGroupBox(bounds, text) ⇒ undefined
+
GuiGroupBox(bounds, text) ⇒ number

Group Box control with text name

-
GuiLine(bounds, text) ⇒ undefined
+
GuiLine(bounds, text) ⇒ number

Line separator control, could contain text

-
GuiPanel(bounds, text) ⇒ undefined
+
GuiPanel(bounds, text) ⇒ number

Panel control, useful to group controls

GuiTabBar(bounds, text, count, active) ⇒ number

Tab Bar control, returns TAB to be closed or -1

-
GuiScrollPanel(bounds, text, content, scroll) ⇒ Rectangle
+
GuiScrollPanel(bounds, text, content, scroll, view) ⇒ number

Scroll Panel control

-
GuiLabel(bounds, text) ⇒ undefined
+
GuiLabel(bounds, text) ⇒ number

Label control, shows text

-
GuiButton(bounds, text) ⇒ boolean
+
GuiButton(bounds, text) ⇒ number

Button control, returns true when clicked

-
GuiLabelButton(bounds, text) ⇒ boolean
+
GuiLabelButton(bounds, text) ⇒ number

Label button control, show true when clicked

-
GuiToggle(bounds, text, active) ⇒ boolean
+
GuiToggle(bounds, text, active) ⇒ number

Toggle Button control, returns true when active

GuiToggleGroup(bounds, text, active) ⇒ number

Toggle Group control, returns active toggle index

-
GuiCheckBox(bounds, text, checked) ⇒ boolean
+
GuiToggleSlider(bounds, text, active) ⇒ number
+

Toggle Slider control, returns true when clicked

+
+
GuiCheckBox(bounds, text, checked) ⇒ number

Check Box control, returns true when active

GuiComboBox(bounds, text, active) ⇒ number

Combo Box control, returns selected item index

-
GuiDropdownBox(bounds, text, active, editMode) ⇒ boolean
+
GuiDropdownBox(bounds, text, active, editMode) ⇒ number

Dropdown Box control, returns selected item

-
GuiSpinner(bounds, text, value, minValue, maxValue, editMode) ⇒ boolean
+
GuiSpinner(bounds, text, value, minValue, maxValue, editMode) ⇒ number

Spinner control, returns selected value

-
GuiValueBox(bounds, text, value, minValue, maxValue, editMode) ⇒ boolean
+
GuiValueBox(bounds, text, value, minValue, maxValue, editMode) ⇒ number

Value Box control, updates input text with numbers

-
GuiTextBox(bounds, text, textSize, editMode) ⇒ boolean
+
GuiTextBox(bounds, text, textSize, editMode) ⇒ number

Text Box control, updates input text

-
GuiTextBoxMulti(bounds, text, textSize, editMode) ⇒ boolean
-

Text Box control with multiple lines

-
GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number

Slider control, returns selected value

@@ -1534,19 +1669,19 @@
GuiProgressBar(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number

Progress Bar control, shows current progress value

-
GuiStatusBar(bounds, text) ⇒ undefined
+
GuiStatusBar(bounds, text) ⇒ number

Status Bar control, shows info text

-
GuiDummyRec(bounds, text) ⇒ undefined
+
GuiDummyRec(bounds, text) ⇒ number

Dummy control for placeholders

-
GuiGrid(bounds, text, spacing, subdivs) ⇒ Vector2
+
GuiGrid(bounds, text, spacing, subdivs, mouseCell) ⇒ number

Grid control, returns mouse cell position

GuiListView(bounds, text, scrollIndex, active) ⇒ number

List View control, returns selected list item index

-
GuiListViewEx(bounds, text, count, focus, scrollIndex, active) ⇒ number
+
GuiListViewEx(bounds, text, count, scrollIndex, active, focus) ⇒ number

List View with extended parameters

GuiMessageBox(bounds, title, message, buttons) ⇒ number
@@ -1555,10 +1690,10 @@
GuiTextInputBox(bounds, title, message, buttons, text, textMaxSize, secretViewActive) ⇒ number

Text Input Box control, ask for text, supports secret

-
GuiColorPicker(bounds, text, color) ⇒ Color
+
GuiColorPicker(bounds, text, color) ⇒ number

Color Picker control (multiple color controls)

-
GuiColorPanel(bounds, text, color) ⇒ Color
+
GuiColorPanel(bounds, text, color) ⇒ number

Color Panel control

GuiColorBarAlpha(bounds, text, alpha) ⇒ number
@@ -1567,32 +1702,11 @@
GuiColorBarHue(bounds, text, value) ⇒ number

Color Bar Hue control

-
GuiLoadStyle(fileName) ⇒ undefined
-

Load style file over global style variable (.rgs)

-
-
GuiLoadStyleDefault() ⇒ undefined
-

Load style default over global style

-
-
GuiEnableTooltip() ⇒ undefined
-

Enable gui tooltips (global state)

-
-
GuiDisableTooltip() ⇒ undefined
-

Disable gui tooltips (global state)

-
-
GuiSetTooltip(tooltip) ⇒ undefined
-

Set tooltip string

-
-
GuiIconText(iconId, text) ⇒ string
-

Get text with icon id prepended (if supported)

-
-
GuiGetIcons() ⇒ number
-

Get raygui icons data pointer

-
-
GuiLoadIcons(fileName, loadIconsName) ⇒ number
-

Load raygui icons file (.rgi) into internal icons data

+
GuiColorPickerHSV(bounds, text, colorHsv) ⇒ number
+

Color Picker control that avoids conversion to RGB on each call (multiple color controls)

-
GuiSetIconScale(scale) ⇒ undefined
-

Set icon drawing size

+
GuiColorPanelHSV(bounds, text, colorHsv) ⇒ number
+

Color Panel control that returns HSV color value, used by GuiColorPickerHSV()

rlMatrixMode(mode) ⇒ undefined

Choose the current matrix to be transformed

@@ -1711,6 +1825,9 @@
rlActiveDrawBuffers(count) ⇒ undefined

Activate multiple draw color buffers

+
rlBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask) ⇒ undefined
+

Blit active framebuffer to main framebuffer

+
rlEnableColorBlend() ⇒ undefined

Enable color blending

@@ -1750,8 +1867,11 @@
rlEnableWireMode() ⇒ undefined

Enable wire mode

+
rlEnablePointMode() ⇒ undefined
+

Enable point mode

+
rlDisableWireMode() ⇒ undefined
-

Disable wire mode

+

Disable wire mode ( and point ) maybe rename

rlSetLineWidth(width) ⇒ undefined

Set the line drawing width

@@ -2179,19 +2299,19 @@ Initialize window and OpenGL context | height | number | | title | string | - - -## WindowShouldClose() ⇒ boolean -Check if KEY_ESCAPE pressed or Close icon pressed - -**Kind**: global function -**Returns**: boolean - The resulting bool. ## CloseWindow() ⇒ undefined Close window and unload OpenGL context **Kind**: global function + + +## WindowShouldClose() ⇒ boolean +Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) + +**Kind**: global function +**Returns**: boolean - The resulting bool. ## IsWindowReady() ⇒ boolean @@ -2280,6 +2400,12 @@ Clear window configuration state flags ## ToggleFullscreen() ⇒ undefined Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP) +**Kind**: global function + + +## ToggleBorderlessWindowed() ⇒ undefined +Toggle window state: borderless windowed (only PLATFORM_DESKTOP) + **Kind**: global function @@ -2325,7 +2451,7 @@ Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP) ## SetWindowTitle(title) ⇒ undefined -Set title for window (only PLATFORM_DESKTOP) +Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB) **Kind**: global function @@ -2348,7 +2474,7 @@ Set window position on screen (only PLATFORM_DESKTOP) ## SetWindowMonitor(monitor) ⇒ undefined -Set monitor for the current window (fullscreen mode) +Set monitor for the current window **Kind**: global function @@ -2368,6 +2494,18 @@ Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) | width | number | | height | number | + + +## SetWindowMaxSize(width, height) ⇒ undefined +Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) + +**Kind**: global function + +| Param | Type | +| --- | --- | +| width | number | +| height | number | + ## SetWindowSize(width, height) ⇒ undefined @@ -2391,6 +2529,12 @@ Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP) | --- | --- | | opacity | number | + + +## SetWindowFocused() ⇒ undefined +Set window focused (only PLATFORM_DESKTOP) + +**Kind**: global function ## GetWindowHandle() ⇒ number @@ -2529,7 +2673,7 @@ Get window scale DPI factor ## GetMonitorName(monitor) ⇒ string -Get the human-readable, UTF-8 encoded name of the primary monitor +Get the human-readable, UTF-8 encoded name of the specified monitor **Kind**: global function **Returns**: string - The resulting const char *. @@ -2568,29 +2712,6 @@ Enable waiting for events on EndDrawing(), no automatic event polling Disable waiting for events on EndDrawing(), automatic events polling **Kind**: global function - - -## SwapScreenBuffer() ⇒ undefined -Swap back buffer with front buffer (screen drawing) - -**Kind**: global function - - -## PollInputEvents() ⇒ undefined -Register all input events - -**Kind**: global function - - -## WaitTime(seconds) ⇒ undefined -Wait for some time (halt program execution) - -**Kind**: global function - -| Param | Type | -| --- | --- | -| seconds | number | - ## ShowCursor() ⇒ undefined @@ -2966,13 +3087,6 @@ Set target FPS (maximum) | --- | --- | | fps | number | - - -## GetFPS() ⇒ number -Get current FPS - -**Kind**: global function -**Returns**: number - The resulting int. ## GetFrameTime() ⇒ number @@ -2987,18 +3101,35 @@ Get elapsed time in seconds since InitWindow() **Kind**: global function **Returns**: number - The resulting double. - + -## GetRandomValue(min, max) ⇒ number -Get a random value between min and max (both included) +## GetFPS() ⇒ number +Get current FPS **Kind**: global function **Returns**: number - The resulting int. + + +## SwapScreenBuffer() ⇒ undefined +Swap back buffer with front buffer (screen drawing) + +**Kind**: global function + + +## PollInputEvents() ⇒ undefined +Register all input events + +**Kind**: global function + + +## WaitTime(seconds) ⇒ undefined +Wait for some time (halt program execution) + +**Kind**: global function | Param | Type | | --- | --- | -| min | number | -| max | number | +| seconds | number | @@ -3011,43 +3142,92 @@ Set the seed for the random number generator | --- | --- | | seed | number | - + -## TakeScreenshot(fileName) ⇒ undefined -Takes a screenshot of current screen (filename extension defines format) +## GetRandomValue(min, max) ⇒ number +Get a random value between min and max (both included) **Kind**: global function +**Returns**: number - The resulting int. | Param | Type | | --- | --- | -| fileName | string | +| min | number | +| max | number | - + -## SetConfigFlags(flags) ⇒ undefined -Setup init configuration flags (view FLAGS) +## LoadRandomSequence(count, min, max) ⇒ number +Load random values sequence, no values repeated **Kind**: global function +**Returns**: number - The resulting int *. | Param | Type | | --- | --- | -| flags | number | +| count | number | +| min | number | +| max | number | - + -## SetTraceLogLevel(logLevel) ⇒ undefined -Set the current threshold (minimum) log level +## UnloadRandomSequence(sequence) ⇒ undefined +Unload random values sequence **Kind**: global function | Param | Type | | --- | --- | -| logLevel | number | +| sequence | number | - + -## MemAlloc(size) ⇒ number -Internal memory allocator +## TakeScreenshot(fileName) ⇒ undefined +Takes a screenshot of current screen (filename extension defines format) + +**Kind**: global function + +| Param | Type | +| --- | --- | +| fileName | string | + + + +## SetConfigFlags(flags) ⇒ undefined +Setup init configuration flags (view FLAGS) + +**Kind**: global function + +| Param | Type | +| --- | --- | +| flags | number | + + + +## OpenURL(url) ⇒ undefined +Open URL with default system browser (if available) + +**Kind**: global function + +| Param | Type | +| --- | --- | +| url | string | + + + +## SetTraceLogLevel(logLevel) ⇒ undefined +Set the current threshold (minimum) log level + +**Kind**: global function + +| Param | Type | +| --- | --- | +| logLevel | number | + + + +## MemAlloc(size) ⇒ number +Internal memory allocator **Kind**: global function **Returns**: number - The resulting void *. @@ -3080,20 +3260,9 @@ Internal memory free | --- | --- | | ptr | number | - - -## OpenURL(url) ⇒ undefined -Open URL with default system browser (if available) - -**Kind**: global function - -| Param | Type | -| --- | --- | -| url | string | - -## LoadFileData(fileName, bytesRead) ⇒ Buffer +## LoadFileData(fileName, dataSize) ⇒ Buffer Load file data as byte array (read) **Kind**: global function @@ -3102,7 +3271,7 @@ Load file data as byte array (read) | Param | Type | | --- | --- | | fileName | string | -| bytesRead | number | +| dataSize | number | @@ -3117,7 +3286,7 @@ Unload file data allocated by LoadFileData() -## SaveFileData(fileName, data, bytesToWrite) ⇒ boolean +## SaveFileData(fileName, data, dataSize) ⇒ boolean Save data to file from byte array (write), returns true on success **Kind**: global function @@ -3127,11 +3296,11 @@ Save data to file from byte array (write), returns true on success | --- | --- | | fileName | string | | data | number | -| bytesToWrite | number | +| dataSize | number | -## ExportDataAsCode(data, size, fileName) ⇒ boolean +## ExportDataAsCode(data, dataSize, fileName) ⇒ boolean Export data to code (.h), returns true on success **Kind**: global function @@ -3140,7 +3309,7 @@ Export data to code (.h), returns true on success | Param | Type | | --- | --- | | data | Buffer | -| size | number | +| dataSize | number | | fileName | string | @@ -3298,7 +3467,7 @@ Get current working directory (uses static string) ## GetApplicationDirectory() ⇒ string -Get the directory if the running application (uses static string) +Get the directory of the running application (uses static string) **Kind**: global function **Returns**: string - The resulting const char *. @@ -3455,6 +3624,87 @@ Decode Base64 string data, memory must be MemFree() | data | Buffer | | outputSize | number | + + +## LoadAutomationEventList(fileName) ⇒ AutomationEventList +Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS + +**Kind**: global function +**Returns**: AutomationEventList - The resulting AutomationEventList. + +| Param | Type | +| --- | --- | +| fileName | string | + + + +## UnloadAutomationEventList(list) ⇒ undefined +Unload automation events list from file + +**Kind**: global function + +| Param | Type | +| --- | --- | +| list | number | + + + +## ExportAutomationEventList(list, fileName) ⇒ boolean +Export automation events list as text file + +**Kind**: global function +**Returns**: boolean - The resulting bool. + +| Param | Type | +| --- | --- | +| list | AutomationEventList | +| fileName | string | + + + +## SetAutomationEventList(list) ⇒ undefined +Set automation event list to record to + +**Kind**: global function + +| Param | Type | +| --- | --- | +| list | number | + + + +## SetAutomationEventBaseFrame(frame) ⇒ undefined +Set automation event internal base frame to start recording + +**Kind**: global function + +| Param | Type | +| --- | --- | +| frame | number | + + + +## StartAutomationEventRecording() ⇒ undefined +Start recording automation events (AutomationEventList must be set) + +**Kind**: global function + + +## StopAutomationEventRecording() ⇒ undefined +Stop recording automation events + +**Kind**: global function + + +## PlayAutomationEvent(event) ⇒ undefined +Play a recorded automation event + +**Kind**: global function + +| Param | Type | +| --- | --- | +| event | AutomationEvent | + ## IsKeyPressed(key) ⇒ boolean @@ -3467,6 +3717,18 @@ Check if a key has been pressed once | --- | --- | | key | number | + + +## IsKeyPressedRepeat(key) ⇒ boolean +Check if a key has been pressed again (Only PLATFORM_DESKTOP) + +**Kind**: global function +**Returns**: boolean - The resulting bool. + +| Param | Type | +| --- | --- | +| key | number | + ## IsKeyDown(key) ⇒ boolean @@ -3503,17 +3765,6 @@ Check if a key is NOT being pressed | --- | --- | | key | number | - - -## SetExitKey(key) ⇒ undefined -Set a custom key to exit program (default is ESC) - -**Kind**: global function - -| Param | Type | -| --- | --- | -| key | number | - ## GetKeyPressed() ⇒ number @@ -3528,6 +3779,17 @@ Get char pressed (unicode), call it multiple times for chars queued, returns 0 w **Kind**: global function **Returns**: number - The resulting int. + + +## SetExitKey(key) ⇒ undefined +Set a custom key to exit program (default is ESC) + +**Kind**: global function + +| Param | Type | +| --- | --- | +| key | number | + ## IsGamepadAvailable(gamepad) ⇒ boolean @@ -3964,7 +4226,7 @@ Draw a line ## DrawLineV(startPos, endPos, color) ⇒ undefined -Draw a line (Vector version) +Draw a line (using gl lines) **Kind**: global function @@ -3977,21 +4239,7 @@ Draw a line (Vector version) ## DrawLineEx(startPos, endPos, thick, color) ⇒ undefined -Draw a line defining thickness - -**Kind**: global function - -| Param | Type | -| --- | --- | -| startPos | [Vector2](#Vector2) | -| endPos | [Vector2](#Vector2) | -| thick | number | -| color | [Color](#Color) | - - - -## DrawLineBezier(startPos, endPos, thick, color) ⇒ undefined -Draw a line using cubic-bezier curves in-out +Draw a line (using triangles/quads) **Kind**: global function @@ -4002,25 +4250,23 @@ Draw a line using cubic-bezier curves in-out | thick | number | | color | [Color](#Color) | - + -## DrawLineBezierQuad(startPos, endPos, controlPos, thick, color) ⇒ undefined -Draw line using quadratic bezier curves with a control point +## DrawLineStrip(points, pointCount, color) ⇒ undefined +Draw lines sequence (using gl lines) **Kind**: global function | Param | Type | | --- | --- | -| startPos | [Vector2](#Vector2) | -| endPos | [Vector2](#Vector2) | -| controlPos | [Vector2](#Vector2) | -| thick | number | +| points | number | +| pointCount | number | | color | [Color](#Color) | - + -## DrawLineBezierCubic(startPos, endPos, startControlPos, endControlPos, thick, color) ⇒ undefined -Draw line using cubic bezier curves with 2 control points +## DrawLineBezier(startPos, endPos, thick, color) ⇒ undefined +Draw line segment cubic-bezier in-out interpolation **Kind**: global function @@ -4028,24 +4274,9 @@ Draw line using cubic bezier curves with 2 control points | --- | --- | | startPos | [Vector2](#Vector2) | | endPos | [Vector2](#Vector2) | -| startControlPos | [Vector2](#Vector2) | -| endControlPos | [Vector2](#Vector2) | | thick | number | | color | [Color](#Color) | - - -## DrawLineStrip(points, pointCount, color) ⇒ undefined -Draw lines sequence - -**Kind**: global function - -| Param | Type | -| --- | --- | -| points | number | -| pointCount | number | -| color | [Color](#Color) | - ## DrawCircle(centerX, centerY, radius, color) ⇒ undefined @@ -4134,6 +4365,19 @@ Draw circle outline | radius | number | | color | [Color](#Color) | + + +## DrawCircleLinesV(center, radius, color) ⇒ undefined +Draw circle outline (Vector version) + +**Kind**: global function + +| Param | Type | +| --- | --- | +| center | [Vector2](#Vector2) | +| radius | number | +| color | [Color](#Color) | + ## DrawEllipse(centerX, centerY, radiusH, radiusV, color) ⇒ undefined @@ -4456,6 +4700,230 @@ Draw a polygon outline of n sides with extended parameters | lineThick | number | | color | [Color](#Color) | + + +## DrawSplineLinear(points, pointCount, thick, color) ⇒ undefined +Draw spline: Linear, minimum 2 points + +**Kind**: global function + +| Param | Type | +| --- | --- | +| points | number | +| pointCount | number | +| thick | number | +| color | [Color](#Color) | + + + +## DrawSplineBasis(points, pointCount, thick, color) ⇒ undefined +Draw spline: B-Spline, minimum 4 points + +**Kind**: global function + +| Param | Type | +| --- | --- | +| points | number | +| pointCount | number | +| thick | number | +| color | [Color](#Color) | + + + +## DrawSplineCatmullRom(points, pointCount, thick, color) ⇒ undefined +Draw spline: Catmull-Rom, minimum 4 points + +**Kind**: global function + +| Param | Type | +| --- | --- | +| points | number | +| pointCount | number | +| thick | number | +| color | [Color](#Color) | + + + +## DrawSplineBezierQuadratic(points, pointCount, thick, color) ⇒ undefined +Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] + +**Kind**: global function + +| Param | Type | +| --- | --- | +| points | number | +| pointCount | number | +| thick | number | +| color | [Color](#Color) | + + + +## DrawSplineBezierCubic(points, pointCount, thick, color) ⇒ undefined +Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] + +**Kind**: global function + +| Param | Type | +| --- | --- | +| points | number | +| pointCount | number | +| thick | number | +| color | [Color](#Color) | + + + +## DrawSplineSegmentLinear(p1, p2, thick, color) ⇒ undefined +Draw spline segment: Linear, 2 points + +**Kind**: global function + +| Param | Type | +| --- | --- | +| p1 | [Vector2](#Vector2) | +| p2 | [Vector2](#Vector2) | +| thick | number | +| color | [Color](#Color) | + + + +## DrawSplineSegmentBasis(p1, p2, p3, p4, thick, color) ⇒ undefined +Draw spline segment: B-Spline, 4 points + +**Kind**: global function + +| Param | Type | +| --- | --- | +| p1 | [Vector2](#Vector2) | +| p2 | [Vector2](#Vector2) | +| p3 | [Vector2](#Vector2) | +| p4 | [Vector2](#Vector2) | +| thick | number | +| color | [Color](#Color) | + + + +## DrawSplineSegmentCatmullRom(p1, p2, p3, p4, thick, color) ⇒ undefined +Draw spline segment: Catmull-Rom, 4 points + +**Kind**: global function + +| Param | Type | +| --- | --- | +| p1 | [Vector2](#Vector2) | +| p2 | [Vector2](#Vector2) | +| p3 | [Vector2](#Vector2) | +| p4 | [Vector2](#Vector2) | +| thick | number | +| color | [Color](#Color) | + + + +## DrawSplineSegmentBezierQuadratic(p1, c2, p3, thick, color) ⇒ undefined +Draw spline segment: Quadratic Bezier, 2 points, 1 control point + +**Kind**: global function + +| Param | Type | +| --- | --- | +| p1 | [Vector2](#Vector2) | +| c2 | [Vector2](#Vector2) | +| p3 | [Vector2](#Vector2) | +| thick | number | +| color | [Color](#Color) | + + + +## DrawSplineSegmentBezierCubic(p1, c2, c3, p4, thick, color) ⇒ undefined +Draw spline segment: Cubic Bezier, 2 points, 2 control points + +**Kind**: global function + +| Param | Type | +| --- | --- | +| p1 | [Vector2](#Vector2) | +| c2 | [Vector2](#Vector2) | +| c3 | [Vector2](#Vector2) | +| p4 | [Vector2](#Vector2) | +| thick | number | +| color | [Color](#Color) | + + + +## GetSplinePointLinear(startPos, endPos, t) ⇒ [Vector2](#Vector2) +Get (evaluate) spline point: Linear + +**Kind**: global function +**Returns**: [Vector2](#Vector2) - The resulting Vector2. + +| Param | Type | +| --- | --- | +| startPos | [Vector2](#Vector2) | +| endPos | [Vector2](#Vector2) | +| t | number | + + + +## GetSplinePointBasis(p1, p2, p3, p4, t) ⇒ [Vector2](#Vector2) +Get (evaluate) spline point: B-Spline + +**Kind**: global function +**Returns**: [Vector2](#Vector2) - The resulting Vector2. + +| Param | Type | +| --- | --- | +| p1 | [Vector2](#Vector2) | +| p2 | [Vector2](#Vector2) | +| p3 | [Vector2](#Vector2) | +| p4 | [Vector2](#Vector2) | +| t | number | + + + +## GetSplinePointCatmullRom(p1, p2, p3, p4, t) ⇒ [Vector2](#Vector2) +Get (evaluate) spline point: Catmull-Rom + +**Kind**: global function +**Returns**: [Vector2](#Vector2) - The resulting Vector2. + +| Param | Type | +| --- | --- | +| p1 | [Vector2](#Vector2) | +| p2 | [Vector2](#Vector2) | +| p3 | [Vector2](#Vector2) | +| p4 | [Vector2](#Vector2) | +| t | number | + + + +## GetSplinePointBezierQuad(p1, c2, p3, t) ⇒ [Vector2](#Vector2) +Get (evaluate) spline point: Quadratic Bezier + +**Kind**: global function +**Returns**: [Vector2](#Vector2) - The resulting Vector2. + +| Param | Type | +| --- | --- | +| p1 | [Vector2](#Vector2) | +| c2 | [Vector2](#Vector2) | +| p3 | [Vector2](#Vector2) | +| t | number | + + + +## GetSplinePointBezierCubic(p1, c2, c3, p4, t) ⇒ [Vector2](#Vector2) +Get (evaluate) spline point: Cubic Bezier + +**Kind**: global function +**Returns**: [Vector2](#Vector2) - The resulting Vector2. + +| Param | Type | +| --- | --- | +| p1 | [Vector2](#Vector2) | +| c2 | [Vector2](#Vector2) | +| c3 | [Vector2](#Vector2) | +| p4 | [Vector2](#Vector2) | +| t | number | + ## CheckCollisionRecs(rec1, rec2) ⇒ boolean @@ -4626,6 +5094,20 @@ Load image from RAW file data | format | number | | headerSize | number | + + +## LoadImageSvg(fileNameOrString, width, height) ⇒ Image +Load image from SVG file data or string with specified size + +**Kind**: global function +**Returns**: Image - The resulting Image. + +| Param | Type | +| --- | --- | +| fileNameOrString | string | +| width | number | +| height | number | + ## LoadImageAnim(fileName, frames) ⇒ Image @@ -4708,6 +5190,20 @@ Export image data to file, returns true on success | image | Image | | fileName | string | + + +## ExportImageToMemory(image, fileType, fileSize) ⇒ Buffer +Export image to memory buffer + +**Kind**: global function +**Returns**: Buffer - The resulting unsigned char *. + +| Param | Type | +| --- | --- | +| image | Image | +| fileType | string | +| fileSize | number | + ## ExportImageAsCode(image, fileName) ⇒ boolean @@ -4735,10 +5231,10 @@ Generate image: plain color | height | number | | color | [Color](#Color) | - + -## GenImageGradientV(width, height, top, bottom) ⇒ Image -Generate image: vertical gradient +## GenImageGradientLinear(width, height, direction, start, end) ⇒ Image +Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient **Kind**: global function **Returns**: Image - The resulting Image. @@ -4747,13 +5243,14 @@ Generate image: vertical gradient | --- | --- | | width | number | | height | number | -| top | [Color](#Color) | -| bottom | [Color](#Color) | +| direction | number | +| start | [Color](#Color) | +| end | [Color](#Color) | - + -## GenImageGradientH(width, height, left, right) ⇒ Image -Generate image: horizontal gradient +## GenImageGradientRadial(width, height, density, inner, outer) ⇒ Image +Generate image: radial gradient **Kind**: global function **Returns**: Image - The resulting Image. @@ -4762,13 +5259,14 @@ Generate image: horizontal gradient | --- | --- | | width | number | | height | number | -| left | [Color](#Color) | -| right | [Color](#Color) | +| density | number | +| inner | [Color](#Color) | +| outer | [Color](#Color) | - + -## GenImageGradientRadial(width, height, density, inner, outer) ⇒ Image -Generate image: radial gradient +## GenImageGradientSquare(width, height, density, inner, outer) ⇒ Image +Generate image: square gradient **Kind**: global function **Returns**: Image - The resulting Image. @@ -4923,6 +5421,18 @@ Apply Gaussian blur using a box blur approximation | image | number | | blurSize | number | + + +## ImageRotate(image, degrees) ⇒ undefined +Rotate image by input angle in degrees (-359 to 359) + +**Kind**: global function + +| Param | Type | +| --- | --- | +| image | number | +| degrees | number | + ## LoadImageColors(image) ⇒ number @@ -5474,8 +5984,8 @@ Load font from file into GPU memory (VRAM) -## LoadFontEx(fileName, fontSize, fontChars, glyphCount) ⇒ Font -Load font from file with extended parameters, use NULL for fontChars and 0 for glyphCount to load the default character set +## LoadFontEx(fileName, fontSize, codepoints, codepointCount) ⇒ Font +Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont **Kind**: global function **Returns**: Font - The resulting Font. @@ -5484,8 +5994,8 @@ Load font from file with extended parameters, use NULL for fontChars and 0 for g | --- | --- | | fileName | string | | fontSize | number | -| fontChars | number | -| glyphCount | number | +| codepoints | number | +| codepointCount | number | @@ -5503,7 +6013,7 @@ Load font from Image (XNA style) -## LoadFontFromMemory(fileType, fileData, dataSize, fontSize, fontChars, glyphCount) ⇒ Font +## LoadFontFromMemory(fileType, fileData, dataSize, fontSize, codepoints, codepointCount) ⇒ Font Load font from memory buffer, fileType refers to extension: i.e. '.ttf' **Kind**: global function @@ -5515,8 +6025,8 @@ Load font from memory buffer, fileType refers to extension: i.e. '.ttf' | fileData | Buffer | | dataSize | number | | fontSize | number | -| fontChars | number | -| glyphCount | number | +| codepoints | number | +| codepointCount | number | @@ -5532,7 +6042,7 @@ Check if a font is ready -## LoadFontData(fileData, dataSize, fontSize, fontChars, glyphCount, type) ⇒ number +## LoadFontData(fileData, dataSize, fontSize, codepoints, codepointCount, type) ⇒ number Load font data for further use **Kind**: global function @@ -5543,13 +6053,13 @@ Load font data for further use | fileData | Buffer | | dataSize | number | | fontSize | number | -| fontChars | number | -| glyphCount | number | +| codepoints | number | +| codepointCount | number | | type | number | -## GenImageFontAtlas(chars, recs, glyphCount, fontSize, padding, packMethod) ⇒ Image +## GenImageFontAtlas(glyphs, glyphRecs, glyphCount, fontSize, padding, packMethod) ⇒ Image Generate image font atlas using chars info **Kind**: global function @@ -5557,8 +6067,8 @@ Generate image font atlas using chars info | Param | Type | | --- | --- | -| chars | number | -| recs | number | +| glyphs | number | +| glyphRecs | number | | glyphCount | number | | fontSize | number | | padding | number | @@ -5566,14 +6076,14 @@ Generate image font atlas using chars info -## UnloadFontData(chars, glyphCount) ⇒ undefined +## UnloadFontData(glyphs, glyphCount) ⇒ undefined Unload font chars info data (RAM) **Kind**: global function | Param | Type | | --- | --- | -| chars | number | +| glyphs | number | | glyphCount | number | @@ -5678,7 +6188,7 @@ Draw one character (codepoint) -## DrawTextCodepoints(font, codepoints, count, position, fontSize, spacing, tint) ⇒ undefined +## DrawTextCodepoints(font, codepoints, codepointCount, position, fontSize, spacing, tint) ⇒ undefined Draw multiple character (codepoint) **Kind**: global function @@ -5687,12 +6197,23 @@ Draw multiple character (codepoint) | --- | --- | | font | Font | | codepoints | number | -| count | number | +| codepointCount | number | | position | [Vector2](#Vector2) | | fontSize | number | | spacing | number | | tint | [Color](#Color) | + + +## SetTextLineSpacing(spacing) ⇒ undefined +Set vertical line spacing when drawing with line-breaks + +**Kind**: global function + +| Param | Type | +| --- | --- | +| spacing | number | + ## MeasureText(text, fontSize) ⇒ number @@ -6778,7 +7299,7 @@ Unload animation data -## UnloadModelAnimations(animations, count) ⇒ undefined +## UnloadModelAnimations(animations, animCount) ⇒ undefined Unload animation array data **Kind**: global function @@ -6786,7 +7307,7 @@ Unload animation array data | Param | Type | | --- | --- | | animations | number | -| count | number | +| animCount | number | @@ -6945,6 +7466,13 @@ Set master volume (listener) | --- | --- | | volume | number | + + +## GetMasterVolume() ⇒ number +Get master volume (listener) + +**Kind**: global function +**Returns**: number - The resulting float. ## LoadWave(fileName) ⇒ Wave @@ -7005,7 +7533,19 @@ Load sound from wave data | Param | Type | | --- | --- | -| wave | Wave | +| wave | Wave | + + + +## LoadSoundAlias(source) ⇒ Sound +Create a new sound that shares the same sample data as the source sound, does not own the sound data + +**Kind**: global function +**Returns**: Sound - The resulting Sound. + +| Param | Type | +| --- | --- | +| source | Sound | @@ -7054,6 +7594,17 @@ Unload sound | --- | --- | | sound | Sound | + + +## UnloadSoundAlias(alias) ⇒ undefined +Unload a sound alias (does not deallocate sample data) + +**Kind**: global function + +| Param | Type | +| --- | --- | +| alias | Sound | + ## ExportWave(wave, fileName) ⇒ boolean @@ -8011,9 +8562,9 @@ Check if gui is locked (global state) **Kind**: global function **Returns**: boolean - The resulting bool. - + -## GuiFade(alpha) ⇒ undefined +## GuiSetAlpha(alpha) ⇒ undefined Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f **Kind**: global function @@ -8084,13 +8635,112 @@ Get one style property | control | number | | property | number | + + +## GuiLoadStyle(fileName) ⇒ undefined +Load style file over global style variable (.rgs) + +**Kind**: global function + +| Param | Type | +| --- | --- | +| fileName | string | + + + +## GuiLoadStyleDefault() ⇒ undefined +Load style default over global style + +**Kind**: global function + + +## GuiEnableTooltip() ⇒ undefined +Enable gui tooltips (global state) + +**Kind**: global function + + +## GuiDisableTooltip() ⇒ undefined +Disable gui tooltips (global state) + +**Kind**: global function + + +## GuiSetTooltip(tooltip) ⇒ undefined +Set tooltip string + +**Kind**: global function + +| Param | Type | +| --- | --- | +| tooltip | string | + + + +## GuiIconText(iconId, text) ⇒ string +Get text with icon id prepended (if supported) + +**Kind**: global function +**Returns**: string - The resulting const char *. + +| Param | Type | +| --- | --- | +| iconId | number | +| text | string | + + + +## GuiSetIconScale(scale) ⇒ undefined +Set default icon drawing size + +**Kind**: global function + +| Param | Type | +| --- | --- | +| scale | number | + + + +## GuiGetIcons() ⇒ number +Get raygui icons data pointer + +**Kind**: global function +**Returns**: number - The resulting unsigned int *. + + +## GuiLoadIcons(fileName, loadIconsName) ⇒ number +Load raygui icons file (.rgi) into internal icons data + +**Kind**: global function +**Returns**: number - The resulting char **. + +| Param | Type | +| --- | --- | +| fileName | string | +| loadIconsName | boolean | + + + +## GuiDrawIcon(iconId, posX, posY, pixelSize, color) ⇒ undefined +Draw icon using pixel size at specified position + +**Kind**: global function + +| Param | Type | +| --- | --- | +| iconId | number | +| posX | number | +| posY | number | +| pixelSize | number | +| color | [Color](#Color) | + -## GuiWindowBox(bounds, title) ⇒ boolean +## GuiWindowBox(bounds, title) ⇒ number Window Box control, shows a window that can be closed **Kind**: global function -**Returns**: boolean - The resulting bool. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8099,10 +8749,11 @@ Window Box control, shows a window that can be closed -## GuiGroupBox(bounds, text) ⇒ undefined +## GuiGroupBox(bounds, text) ⇒ number Group Box control with text name **Kind**: global function +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8111,10 +8762,11 @@ Group Box control with text name -## GuiLine(bounds, text) ⇒ undefined +## GuiLine(bounds, text) ⇒ number Line separator control, could contain text **Kind**: global function +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8123,10 +8775,11 @@ Line separator control, could contain text -## GuiPanel(bounds, text) ⇒ undefined +## GuiPanel(bounds, text) ⇒ number Panel control, useful to group controls **Kind**: global function +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8150,11 +8803,11 @@ Tab Bar control, returns TAB to be closed or -1 -## GuiScrollPanel(bounds, text, content, scroll) ⇒ [Rectangle](#Rectangle) +## GuiScrollPanel(bounds, text, content, scroll, view) ⇒ number Scroll Panel control **Kind**: global function -**Returns**: [Rectangle](#Rectangle) - The resulting Rectangle. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8162,13 +8815,15 @@ Scroll Panel control | text | string | | content | [Rectangle](#Rectangle) | | scroll | number | +| view | number | -## GuiLabel(bounds, text) ⇒ undefined +## GuiLabel(bounds, text) ⇒ number Label control, shows text **Kind**: global function +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8177,11 +8832,11 @@ Label control, shows text -## GuiButton(bounds, text) ⇒ boolean +## GuiButton(bounds, text) ⇒ number Button control, returns true when clicked **Kind**: global function -**Returns**: boolean - The resulting bool. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8190,11 +8845,11 @@ Button control, returns true when clicked -## GuiLabelButton(bounds, text) ⇒ boolean +## GuiLabelButton(bounds, text) ⇒ number Label button control, show true when clicked **Kind**: global function -**Returns**: boolean - The resulting bool. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8203,17 +8858,17 @@ Label button control, show true when clicked -## GuiToggle(bounds, text, active) ⇒ boolean +## GuiToggle(bounds, text, active) ⇒ number Toggle Button control, returns true when active **Kind**: global function -**Returns**: boolean - The resulting bool. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | | bounds | [Rectangle](#Rectangle) | | text | string | -| active | boolean | +| active | number | @@ -8229,19 +8884,33 @@ Toggle Group control, returns active toggle index | text | string | | active | number | + + +## GuiToggleSlider(bounds, text, active) ⇒ number +Toggle Slider control, returns true when clicked + +**Kind**: global function +**Returns**: number - The resulting int. + +| Param | Type | +| --- | --- | +| bounds | [Rectangle](#Rectangle) | +| text | string | +| active | number | + -## GuiCheckBox(bounds, text, checked) ⇒ boolean +## GuiCheckBox(bounds, text, checked) ⇒ number Check Box control, returns true when active **Kind**: global function -**Returns**: boolean - The resulting bool. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | | bounds | [Rectangle](#Rectangle) | | text | string | -| checked | boolean | +| checked | number | @@ -8259,11 +8928,11 @@ Combo Box control, returns selected item index -## GuiDropdownBox(bounds, text, active, editMode) ⇒ boolean +## GuiDropdownBox(bounds, text, active, editMode) ⇒ number Dropdown Box control, returns selected item **Kind**: global function -**Returns**: boolean - The resulting bool. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8274,11 +8943,11 @@ Dropdown Box control, returns selected item -## GuiSpinner(bounds, text, value, minValue, maxValue, editMode) ⇒ boolean +## GuiSpinner(bounds, text, value, minValue, maxValue, editMode) ⇒ number Spinner control, returns selected value **Kind**: global function -**Returns**: boolean - The resulting bool. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8291,11 +8960,11 @@ Spinner control, returns selected value -## GuiValueBox(bounds, text, value, minValue, maxValue, editMode) ⇒ boolean +## GuiValueBox(bounds, text, value, minValue, maxValue, editMode) ⇒ number Value Box control, updates input text with numbers **Kind**: global function -**Returns**: boolean - The resulting bool. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8308,26 +8977,11 @@ Value Box control, updates input text with numbers -## GuiTextBox(bounds, text, textSize, editMode) ⇒ boolean +## GuiTextBox(bounds, text, textSize, editMode) ⇒ number Text Box control, updates input text **Kind**: global function -**Returns**: boolean - The resulting bool. - -| Param | Type | -| --- | --- | -| bounds | [Rectangle](#Rectangle) | -| text | string | -| textSize | number | -| editMode | boolean | - - - -## GuiTextBoxMulti(bounds, text, textSize, editMode) ⇒ boolean -Text Box control with multiple lines - -**Kind**: global function -**Returns**: boolean - The resulting bool. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8342,7 +8996,7 @@ Text Box control with multiple lines Slider control, returns selected value **Kind**: global function -**Returns**: number - The resulting float. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8359,7 +9013,7 @@ Slider control, returns selected value Slider Bar control, returns selected value **Kind**: global function -**Returns**: number - The resulting float. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8376,7 +9030,7 @@ Slider Bar control, returns selected value Progress Bar control, shows current progress value **Kind**: global function -**Returns**: number - The resulting float. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8389,10 +9043,11 @@ Progress Bar control, shows current progress value -## GuiStatusBar(bounds, text) ⇒ undefined +## GuiStatusBar(bounds, text) ⇒ number Status Bar control, shows info text **Kind**: global function +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8401,10 +9056,11 @@ Status Bar control, shows info text -## GuiDummyRec(bounds, text) ⇒ undefined +## GuiDummyRec(bounds, text) ⇒ number Dummy control for placeholders **Kind**: global function +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8413,11 +9069,11 @@ Dummy control for placeholders -## GuiGrid(bounds, text, spacing, subdivs) ⇒ [Vector2](#Vector2) +## GuiGrid(bounds, text, spacing, subdivs, mouseCell) ⇒ number Grid control, returns mouse cell position **Kind**: global function -**Returns**: [Vector2](#Vector2) - The resulting Vector2. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8425,6 +9081,7 @@ Grid control, returns mouse cell position | text | string | | spacing | number | | subdivs | number | +| mouseCell | number | @@ -8443,7 +9100,7 @@ List View control, returns selected list item index -## GuiListViewEx(bounds, text, count, focus, scrollIndex, active) ⇒ number +## GuiListViewEx(bounds, text, count, scrollIndex, active, focus) ⇒ number List View with extended parameters **Kind**: global function @@ -8454,9 +9111,9 @@ List View with extended parameters | bounds | [Rectangle](#Rectangle) | | text | number | | count | number | -| focus | number | | scrollIndex | number | | active | number | +| focus | number | @@ -8493,31 +9150,31 @@ Text Input Box control, ask for text, supports secret -## GuiColorPicker(bounds, text, color) ⇒ [Color](#Color) +## GuiColorPicker(bounds, text, color) ⇒ number Color Picker control (multiple color controls) **Kind**: global function -**Returns**: [Color](#Color) - The resulting Color. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | | bounds | [Rectangle](#Rectangle) | | text | string | -| color | [Color](#Color) | +| color | number | -## GuiColorPanel(bounds, text, color) ⇒ [Color](#Color) +## GuiColorPanel(bounds, text, color) ⇒ number Color Panel control **Kind**: global function -**Returns**: [Color](#Color) - The resulting Color. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | | bounds | [Rectangle](#Rectangle) | | text | string | -| color | [Color](#Color) | +| color | number | @@ -8525,7 +9182,7 @@ Color Panel control Color Bar Alpha control **Kind**: global function -**Returns**: number - The resulting float. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8539,7 +9196,7 @@ Color Bar Alpha control Color Bar Hue control **Kind**: global function -**Returns**: number - The resulting float. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | @@ -8547,89 +9204,33 @@ Color Bar Hue control | text | string | | value | number | - - -## GuiLoadStyle(fileName) ⇒ undefined -Load style file over global style variable (.rgs) - -**Kind**: global function - -| Param | Type | -| --- | --- | -| fileName | string | - - - -## GuiLoadStyleDefault() ⇒ undefined -Load style default over global style - -**Kind**: global function - - -## GuiEnableTooltip() ⇒ undefined -Enable gui tooltips (global state) - -**Kind**: global function - - -## GuiDisableTooltip() ⇒ undefined -Disable gui tooltips (global state) - -**Kind**: global function - - -## GuiSetTooltip(tooltip) ⇒ undefined -Set tooltip string - -**Kind**: global function + -| Param | Type | -| --- | --- | -| tooltip | string | - - - -## GuiIconText(iconId, text) ⇒ string -Get text with icon id prepended (if supported) +## GuiColorPickerHSV(bounds, text, colorHsv) ⇒ number +Color Picker control that avoids conversion to RGB on each call (multiple color controls) **Kind**: global function -**Returns**: string - The resulting const char *. +**Returns**: number - The resulting int. | Param | Type | | --- | --- | -| iconId | number | +| bounds | [Rectangle](#Rectangle) | | text | string | +| colorHsv | number | - - -## GuiGetIcons() ⇒ number -Get raygui icons data pointer - -**Kind**: global function -**Returns**: number - The resulting unsigned int *. - - -## GuiLoadIcons(fileName, loadIconsName) ⇒ number -Load raygui icons file (.rgi) into internal icons data - -**Kind**: global function -**Returns**: number - The resulting char **. - -| Param | Type | -| --- | --- | -| fileName | string | -| loadIconsName | boolean | - - + -## GuiSetIconScale(scale) ⇒ undefined -Set icon drawing size +## GuiColorPanelHSV(bounds, text, colorHsv) ⇒ number +Color Panel control that returns HSV color value, used by GuiColorPickerHSV() **Kind**: global function +**Returns**: number - The resulting int. | Param | Type | | --- | --- | -| scale | number | +| bounds | [Rectangle](#Rectangle) | +| text | string | +| colorHsv | number | @@ -9035,6 +9636,25 @@ Activate multiple draw color buffers | --- | --- | | count | number | + + +## rlBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask) ⇒ undefined +Blit active framebuffer to main framebuffer + +**Kind**: global function + +| Param | Type | +| --- | --- | +| srcX | number | +| srcY | number | +| srcWidth | number | +| srcHeight | number | +| dstX | number | +| dstY | number | +| dstWidth | number | +| dstHeight | number | +| bufferMask | number | + ## rlEnableColorBlend() ⇒ undefined @@ -9125,11 +9745,17 @@ Scissor test ## rlEnableWireMode() ⇒ undefined Enable wire mode +**Kind**: global function + + +## rlEnablePointMode() ⇒ undefined +Enable point mode + **Kind**: global function ## rlDisableWireMode() ⇒ undefined -Disable wire mode +Disable wire mode ( and point ) maybe rename **Kind**: global function diff --git a/package-lock.json b/package-lock.json index 8d85579..bc71075 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "raylib", - "version": "0.14.0", + "version": "0.15.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "raylib", - "version": "0.14.0", + "version": "0.15.0", "hasInstallScript": true, "license": "Zlib", "dependencies": { diff --git a/package.json b/package.json index 0869f41..f82e41d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "raylib", - "version": "0.14.0", + "version": "0.15.0", "description": "Node.js bindings for raylib.", "main": "index.js", "types": "src/generated/node-raylib.d.ts", diff --git a/src/generated/node-raylib.cc b/src/generated/node-raylib.cc index 2acd06d..2a3d414 100644 --- a/src/generated/node-raylib.cc +++ b/src/generated/node-raylib.cc @@ -392,7 +392,7 @@ inline AutomationEvent AutomationEventFromValue(const Napi::CallbackInfo& info, return { unsignedintFromValue(info, index + 0), unsignedintFromValue(info, index + 1), - int[4]FromValue(info, index + 2) + pointerFromValue(info, index + 2) }; } diff --git a/tools/generate_templates/node-raylib-bindings.js b/tools/generate_templates/node-raylib-bindings.js index 68f90c9..1e92364 100644 --- a/tools/generate_templates/node-raylib-bindings.js +++ b/tools/generate_templates/node-raylib-bindings.js @@ -20,6 +20,9 @@ const SanitizeTypeName = name => { if (name === 'unsigned int[4]') { return '(unsigned int) pointer' } + if (name === 'int[4]') { + return 'pointer' + } if (name === 'Matrix[2]') { return 'pointer' } From 1f31b6f2db4828ace1ee6c488451d8d3af1216b4 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Fri, 8 Nov 2024 02:37:26 -0500 Subject: [PATCH 6/7] Update dependencies --- package-lock.json | 6958 ++++++++++++++++++++++++++------------------- package.json | 16 +- 2 files changed, 4042 insertions(+), 2932 deletions(-) diff --git a/package-lock.json b/package-lock.json index bc71075..243a3fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,20 +10,20 @@ "hasInstallScript": true, "license": "Zlib", "dependencies": { - "cross-fetch": "^3.1.5", - "module-alias": "^2.2.2" + "cross-fetch": "^4.0.0", + "module-alias": "^2.2.3" }, "bin": { "raylib": "bin/node-raylib" }, "devDependencies": { - "@raylib/api": "^5.0.0", - "@vitest/ui": "^0.29.7", - "archiver": "^5.3.1", - "jsdoc-to-markdown": "^8.0.0", + "@raylib/api": "^5.0.1", + "@vitest/ui": "^2.1.4", + "archiver": "^7.0.1", + "jsdoc-to-markdown": "^9.0.5", "pkg": "^5.8.1", - "standard": "^17.0.0", - "vitest": "^0.29.7" + "standard": "^17.1.2", + "vitest": "^2.1.4" }, "engines": { "node": ">=10" @@ -53,28 +53,34 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", - "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -82,6 +88,20 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/parser/node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/types": { "version": "7.19.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", @@ -96,14 +116,32 @@ "node": ">=6.9.0" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -113,13 +151,14 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -129,13 +168,14 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -145,13 +185,14 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -161,13 +202,14 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -177,13 +219,14 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -193,13 +236,14 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -209,13 +253,14 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -225,13 +270,14 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -241,13 +287,14 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -257,13 +304,14 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -273,13 +321,14 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -289,13 +338,14 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -305,13 +355,14 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -321,13 +372,14 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -337,13 +389,14 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -353,13 +406,14 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -369,13 +423,14 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -385,13 +440,14 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" @@ -401,13 +457,14 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -417,13 +474,14 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -433,13 +491,14 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -537,6 +596,84 @@ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -570,10 +707,11 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.20", @@ -586,10 +724,11 @@ } }, "node_modules/@jsdoc/salty": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.6.tgz", - "integrity": "sha512-aA+awb5yoml8TQ3CzI5Ue7sM3VMRC4l1zJJW4fgZ8OCL1wshJZhNzaf0PL85DSnOUw6QuFgeHGD/eq/xwwAF2g==", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", + "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "lodash": "^4.17.21" }, @@ -632,193 +771,500 @@ "node": ">= 8" } }, - "node_modules/@polka/url": { - "version": "1.0.0-next.23", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", - "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", - "dev": true - }, - "node_modules/@raylib/api": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@raylib/api/-/api-5.0.0.tgz", - "integrity": "sha512-zpPsQqfurgHLf+W4kdsYNSs5RoOgs4x8YkmjDQ5ZsXUT8lPDDTekoryBf5W9pqlK5P9oXdP2AIrortx2JvzEtw==", - "dev": true - }, - "node_modules/@types/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==", - "dev": true - }, - "node_modules/@types/chai-subset": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", - "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, - "dependencies": { - "@types/chai": "*" + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" } }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/linkify-it": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz", - "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==", - "dev": true - }, - "node_modules/@types/markdown-it": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", - "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "node_modules/@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", "dev": true, - "dependencies": { - "@types/linkify-it": "*", - "@types/mdurl": "*" - } + "license": "MIT" }, - "node_modules/@types/mdurl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz", - "integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==", - "dev": true + "node_modules/@raylib/api": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@raylib/api/-/api-5.0.1.tgz", + "integrity": "sha512-HX2JBaEW3KdSTrG59ceqcBrvWd2r0vAcYVDDQAXs38FiMxLZn6YYN2M1IG/HMWPM4xlFHo2KzaNxGrnhEnjR2Q==", + "dev": true, + "license": "Zlib" }, - "node_modules/@types/node": { - "version": "20.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.2.tgz", - "integrity": "sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.4.tgz", + "integrity": "sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.4.tgz", + "integrity": "sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@vitest/expect": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.29.8.tgz", - "integrity": "sha512-xlcVXn5I5oTq6NiZSY3ykyWixBxr5mG8HYtjvpgg6KaqHm0mvhX18xuwl5YGxIRNt/A5jidd7CWcNHrSvgaQqQ==", + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.4.tgz", + "integrity": "sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@vitest/spy": "0.29.8", - "@vitest/utils": "0.29.8", - "chai": "^4.3.7" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@vitest/runner": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.29.8.tgz", - "integrity": "sha512-FzdhnRDwEr/A3Oo1jtIk/B952BBvP32n1ObMEb23oEJNO+qO5cBet6M2XWIDQmA7BDKGKvmhUf2naXyp/2JEwQ==", + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.4.tgz", + "integrity": "sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@vitest/utils": "0.29.8", - "p-limit": "^4.0.0", - "pathe": "^1.1.0" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@vitest/runner/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.4.tgz", + "integrity": "sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@vitest/runner/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.4.tgz", + "integrity": "sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==", + "cpu": [ + "x64" + ], "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@vitest/spy": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.29.8.tgz", - "integrity": "sha512-VdjBe9w34vOMl5I5mYEzNX8inTxrZ+tYUVk9jxaZJmHFwmDFC/GV3KBFTA/JKswr3XHvZL+FE/yq5EVhb6pSAw==", + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.4.tgz", + "integrity": "sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "tinyspy": "^1.0.2" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@vitest/ui": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.29.8.tgz", - "integrity": "sha512-+vbLd+c1R/XUWfzJsWeyjeiw13fwJ95I5tguxaqXRg61y9iYUKesVljg7Pttp2uo7VK+kAjvY91J41NZ1Vx3vg==", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.4.tgz", + "integrity": "sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "fast-glob": "^3.2.12", - "flatted": "^3.2.7", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "sirv": "^2.0.2" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@vitest/utils": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.29.8.tgz", - "integrity": "sha512-qGzuf3vrTbnoY+RjjVVIBYfuWMjn3UMUqyQtdGNZ6ZIIyte7B37exj6LaVkrZiUTvzSadVvO/tJm8AEgbGCBPg==", + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.4.tgz", + "integrity": "sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "cli-truncate": "^3.1.0", - "diff": "^5.1.0", - "loupe": "^2.3.6", - "pretty-format": "^27.5.1" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.4.tgz", + "integrity": "sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==", + "cpu": [ + "arm64" + ], "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.4.tgz", + "integrity": "sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==", + "cpu": [ + "ppc64" + ], "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.4.tgz", + "integrity": "sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==", + "cpu": [ + "riscv64" + ], "dev": true, - "engines": { - "node": ">=0.4.0" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.4.tgz", + "integrity": "sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.4.tgz", + "integrity": "sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.4.tgz", + "integrity": "sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.4.tgz", + "integrity": "sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.4.tgz", + "integrity": "sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.4.tgz", + "integrity": "sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitest/expect": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.4.tgz", + "integrity": "sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.4", + "@vitest/utils": "2.1.4", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.4.tgz", + "integrity": "sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.4.tgz", + "integrity": "sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.4.tgz", + "integrity": "sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.1.4", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.4.tgz", + "integrity": "sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.4", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.4.tgz", + "integrity": "sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/ui": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-2.1.4.tgz", + "integrity": "sha512-Zd9e5oU063c+j9N9XzGJagCLNvG71x/2tOme3Js4JEZKX55zsgxhJwUgLI8hkN6NjMLpdJO8d7nVUUuPGAA58Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.1.4", + "fflate": "^0.8.2", + "flatted": "^3.3.1", + "pathe": "^1.1.2", + "sirv": "^3.0.0", + "tinyglobby": "^0.2.9", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "2.1.4" + } + }, + "node_modules/@vitest/utils": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.4.tgz", + "integrity": "sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.4", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "dependencies": { "debug": "4" @@ -843,27 +1289,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", - "dev": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ansi-escape-sequences/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -889,78 +1314,184 @@ } }, "node_modules/archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", "dev": true, + "license": "MIT", "dependencies": { - "archiver-utils": "^2.1.0", + "archiver-utils": "^5.0.2", "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" }, "engines": { - "node": ">= 10" + "node": ">= 14" } }, "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.1.4", + "glob": "^10.0.0", "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", + "lodash": "^4.17.15", "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, - "node_modules/archiver-utils/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "node_modules/archiver-utils/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/archiver-utils/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, + "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/archiver-utils/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "node_modules/archiver/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/archiver/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, + "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/archiver/node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, "node_modules/argparse": { @@ -974,33 +1505,40 @@ "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -1019,6 +1557,27 @@ "node": ">=8" } }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.findlastindex": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", @@ -1075,30 +1634,36 @@ } }, "node_modules/array.prototype.tosorted": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -1109,12 +1674,13 @@ } }, "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">=12" } }, "node_modules/async": { @@ -1123,15 +1689,6 @@ "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, - "node_modules/asynciterator.prototype": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - } - }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -1142,10 +1699,14 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -1153,12 +1714,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/bare-events": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", + "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", + "dev": true, + "license": "Apache-2.0", + "optional": true + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -1194,7 +1770,8 @@ "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -1243,12 +1820,13 @@ } }, "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">=8.0.0" } }, "node_modules/builtins": { @@ -1265,42 +1843,47 @@ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cache-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", - "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-3.0.0.tgz", + "integrity": "sha512-LDGNWYv/tqRWAAZxMy75PIYynaIuhcyoyjJtwA7X5uMZjdzvGm+XmTey/GXUy2EJ+lwc2eBFzFYxjvNYyE/0Iw==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^4.0.1", - "fs-then-native": "^2.0.0", - "mkdirp2": "^1.0.4" + "array-back": "^6.2.2" }, "engines": { - "node": ">=8" - } - }, - "node_modules/cache-point/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">=12.17" + }, + "peerDependencies": { + "@75lb/nature": "^0.1.1" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, + "license": "MIT", "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1320,6 +1903,7 @@ "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.15" }, @@ -1328,21 +1912,20 @@ } }, "node_modules/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, + "license": "MIT", "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, "node_modules/chalk": { @@ -1361,16 +1944,30 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", "dev": true, + "license": "MIT", "dependencies": { - "get-func-name": "^2.0.2" + "chalk": "^4.1.2" }, "engines": { - "node": "*" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" } }, "node_modules/chownr": { @@ -1379,22 +1976,6 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, - "node_modules/cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dev": true, - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -1412,15 +1993,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -1435,19 +2007,6 @@ "node": ">=8" } }, - "node_modules/collect-all": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", - "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", - "dev": true, - "dependencies": { - "stream-connect": "^1.0.2", - "stream-via": "^1.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1467,91 +2026,43 @@ "dev": true }, "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.1.tgz", + "integrity": "sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", + "array-back": "^6.2.2", + "find-replace": "^5.0.2", "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" + "typical": "^7.2.0" }, "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-args/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/command-line-args/node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/command-line-tool": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", - "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", - "dev": true, - "dependencies": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "command-line-args": "^5.0.0", - "command-line-usage": "^4.1.0", - "typical": "^2.6.1" + "node": ">=12.20" }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-tool/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "dependencies": { - "typical": "^2.6.1" + "peerDependencies": { + "@75lb/nature": "latest" }, - "engines": { - "node": ">=4" + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", - "dev": true, - "dependencies": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz", + "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==", "dev": true, + "license": "MIT", "dependencies": { - "typical": "^2.6.1" + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^4.1.0", + "typical": "^7.1.1" }, "engines": { - "node": ">=4" + "node": ">=12.20.0" } }, "node_modules/common-sequence": { @@ -1559,23 +2070,68 @@ "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", "dev": true, + "license": "MIT", "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">= 14" + } + }, + "node_modules/compress-commons/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/compress-commons/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/concat-map": { @@ -1613,6 +2169,7 @@ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", "dev": true, + "license": "Apache-2.0", "bin": { "crc32": "bin/crc32.njs" }, @@ -1621,22 +2178,66 @@ } }, "node_modules/crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", "dev": true, + "license": "MIT", "dependencies": { "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">= 14" + } + }, + "node_modules/crc32-stream/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/crc32-stream/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "license": "MIT", "dependencies": { "node-fetch": "^2.6.12" } @@ -1655,13 +2256,78 @@ "node": ">= 8" } }, + "node_modules/current-module-paths": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/current-module-paths/-/current-module-paths-1.1.2.tgz", + "integrity": "sha512-H4s4arcLx/ugbu1XkkgSvcUZax0L6tXUqnppGniQb8l5VjUKGHoayXE5RiriiPhYDd+kjZnaok1Uig13PKtKYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1688,13 +2354,11 @@ } }, "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, + "license": "MIT", "engines": { "node": ">=6" } @@ -1715,17 +2379,21 @@ "dev": true }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { @@ -1754,15 +2422,6 @@ "node": ">=8" } }, - "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -1776,26 +2435,30 @@ } }, "node_modules/dmd": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.2.0.tgz", - "integrity": "sha512-uXWxLF1H7TkUAuoHK59/h/ts5cKavm2LnhrIgJWisip4BVzPoXavlwyoprFFn2CzcahKYgvkfaebS6oxzgflkg==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/dmd/-/dmd-7.0.7.tgz", + "integrity": "sha512-UXNLJkci/tiVNct+JgrpfTlSs8cSyLbR3q4xkYQ4do6cRCUPj0HodfMsBLPhC7KG3qGRp1YJgfNjdgCrYEcHWQ==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^6.2.2", - "cache-point": "^2.0.0", + "cache-point": "^3.0.0", "common-sequence": "^2.0.2", - "file-set": "^4.0.2", - "handlebars": "^4.7.7", - "marked": "^4.2.3", - "object-get": "^2.1.1", - "reduce-flatten": "^3.0.1", - "reduce-unique": "^2.0.1", - "reduce-without": "^1.0.1", - "test-value": "^3.0.0", - "walk-back": "^5.1.0" + "file-set": "^5.2.2", + "handlebars": "^4.7.8", + "marked": "^4.3.0", + "walk-back": "^5.1.1" }, "engines": { - "node": ">=12" + "node": ">=12.17" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/doctrine": { @@ -1814,13 +2477,15 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/end-of-stream": { "version": "1.4.4", @@ -1832,10 +2497,14 @@ } }, "node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -1850,50 +2519,58 @@ } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -1902,37 +2579,79 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, + "license": "MIT", "dependencies": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -1965,11 +2684,12 @@ } }, "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -1977,28 +2697,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/escalade": { @@ -2015,6 +2736,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2351,33 +3073,36 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", + "es-iterator-helpers": "^1.1.0", "estraverse": "^5.3.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", + "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "node_modules/eslint-plugin-react/node_modules/doctrine": { @@ -2559,6 +3284,16 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -2568,6 +3303,26 @@ "node": ">=0.10.0" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -2577,12 +3332,29 @@ "node": ">=6" } }, + "node_modules/expect-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", + "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -2620,6 +3392,13 @@ "reusify": "^1.0.4" } }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "dev": true, + "license": "MIT" + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -2633,25 +3412,25 @@ } }, "node_modules/file-set": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", - "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-5.2.2.tgz", + "integrity": "sha512-/KgJI1V/QaDK4enOk/E2xMFk1cTWJghEr7UmWiRZfZ6upt6gQCfMn4jJ7aOm64OKurj4TaVnSSgSDqv5ZKYA3A==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^5.0.0", - "glob": "^7.1.6" + "array-back": "^6.2.2", + "fast-glob": "^3.3.2" }, "engines": { - "node": ">=10" - } - }, - "node_modules/file-set/node_modules/array-back": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", - "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", - "dev": true, - "engines": { - "node": ">=10" + "node": ">=12.17" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/fill-range": { @@ -2667,24 +3446,21 @@ } }, "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-replace/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz", + "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=14" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/find-up": { @@ -2718,20 +3494,39 @@ } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", @@ -2799,15 +3594,6 @@ "node": ">=10" } }, - "node_modules/fs-then-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", - "integrity": "sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2820,6 +3606,7 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2873,26 +3660,22 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, + "license": "MIT", "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2910,13 +3693,15 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -2979,12 +3764,14 @@ } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -3042,6 +3829,7 @@ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", @@ -3086,22 +3874,24 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3122,12 +3912,13 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -3137,10 +3928,11 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -3238,12 +4030,13 @@ "dev": true }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2", + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, @@ -3268,14 +4061,17 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3292,6 +4088,7 @@ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -3354,6 +4151,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -3383,6 +4196,7 @@ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -3391,15 +4205,13 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/is-generator-function": { @@ -3407,6 +4219,7 @@ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -3430,19 +4243,24 @@ } }, "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3488,6 +4306,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -3500,26 +4319,47 @@ } }, "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -3551,12 +4391,13 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, + "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -3566,10 +4407,14 @@ } }, "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3587,13 +4432,17 @@ } }, "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3603,7 +4452,8 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", @@ -3612,16 +4462,36 @@ "dev": true }, "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.2.1", "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", "reflect.getprototypeof": "^1.0.4", "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/js-tokens": { @@ -3647,26 +4517,28 @@ "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "xmlcreate": "^2.0.4" } }, "node_modules/jsdoc": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz", - "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.4.tgz", + "integrity": "sha512-zeFezwyXeG4syyYHbvh1A967IAqq/67yXtXvuL5wnqCkFZe8I0vKfm+EO+YEvLguo6w9CDUbrAXVtJSHh2E8rw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@babel/parser": "^7.20.15", "@jsdoc/salty": "^0.2.1", - "@types/markdown-it": "^12.2.3", + "@types/markdown-it": "^14.1.1", "bluebird": "^3.7.2", "catharsis": "^0.9.0", "escape-string-regexp": "^2.0.0", "js2xmlparser": "^4.0.2", "klaw": "^3.0.0", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.4.1", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^8.6.7", "marked": "^4.0.10", "mkdirp": "^1.0.4", "requizzle": "^0.2.3", @@ -3681,61 +4553,77 @@ } }, "node_modules/jsdoc-api": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-8.0.0.tgz", - "integrity": "sha512-Rnhor0suB1Ds1abjmFkFfKeD+kSMRN9oHMTMZoJVUrmtCGDwXty+sWMA9sa4xbe4UyxuPjhC7tavZ40mDKK6QQ==", + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-9.3.4.tgz", + "integrity": "sha512-di8lggLACEttpyAZ6WjKKafUP4wC4prAGjt40nMl7quDpp2nD7GmLt6/WxhRu9Q6IYoAAySsNeidBXYVAMwlqg==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^6.2.2", - "cache-point": "^2.0.0", - "collect-all": "^1.0.4", - "file-set": "^4.0.2", - "fs-then-native": "^2.0.0", - "jsdoc": "^4.0.0", + "cache-point": "^3.0.0", + "current-module-paths": "^1.1.2", + "file-set": "^5.2.2", + "jsdoc": "^4.0.4", "object-to-spawn-args": "^2.0.1", - "temp-path": "^1.0.0", - "walk-back": "^5.1.0" + "walk-back": "^5.1.1" }, "engines": { "node": ">=12.17" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/jsdoc-parse": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.0.tgz", - "integrity": "sha512-Afu1fQBEb7QHt6QWX/6eUWvYHJofB90Fjx7FuJYF7mnG9z5BkAIpms1wsnvYLytfmqpEENHs/fax9p8gvMj7dw==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.4.tgz", + "integrity": "sha512-MQA+lCe3ioZd0uGbyB3nDCDZcKgKC7m/Ivt0LgKZdUoOlMJxUWJQ3WI6GeyHp9ouznKaCjlp7CU9sw5k46yZTw==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^6.2.2", + "find-replace": "^5.0.1", "lodash.omit": "^4.5.0", - "lodash.pick": "^4.4.0", - "reduce-extract": "^1.0.0", - "sort-array": "^4.1.5", - "test-value": "^3.0.0" + "sort-array": "^5.0.0" }, "engines": { "node": ">=12" } }, "node_modules/jsdoc-to-markdown": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-8.0.0.tgz", - "integrity": "sha512-2FQvYkg491+FP6s15eFlgSSWs69CvQrpbABGYBtvAvGWy/lWo8IKKToarT283w59rQFrpcjHl3YdhHCa3l7gXg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-9.0.5.tgz", + "integrity": "sha512-lqvKgSva+wGUusRz6xtImdM92lrjHNmyi7LyWdLMQBijCnoFwTZjNF3zUqm6uahsSaRALQNyzGXmjaef6IUE4g==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^6.2.2", - "command-line-tool": "^0.8.0", + "command-line-args": "^6.0.1", + "command-line-usage": "^7.0.3", "config-master": "^3.1.0", - "dmd": "^6.2.0", - "jsdoc-api": "^8.0.0", - "jsdoc-parse": "^6.2.0", - "walk-back": "^5.1.0" + "dmd": "^7.0.7", + "jsdoc-api": "^9.3.4", + "jsdoc-parse": "^6.2.4", + "walk-back": "^5.1.1" }, "bin": { "jsdoc2md": "bin/cli.js" }, "engines": { "node": ">=12.17" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/jsesc": { @@ -3786,12 +4674,6 @@ "json5": "lib/cli.js" } }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -3833,6 +4715,7 @@ "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.9" } @@ -3842,6 +4725,7 @@ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^2.0.5" }, @@ -3853,13 +4737,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lazystream/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -3874,13 +4760,15 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lazystream/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -3899,12 +4787,13 @@ } }, "node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, + "license": "MIT", "dependencies": { - "uc.micro": "^1.0.1" + "uc.micro": "^2.0.0" } }, "node_modules/load-json-file": { @@ -3932,18 +4821,6 @@ "node": ">=6" } }, - "node_modules/local-pkg": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -3962,38 +4839,16 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", @@ -4005,25 +4860,8 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", - "dev": true - }, - "node_modules/lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", - "dev": true - }, - "node_modules/lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", - "dev": true - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", @@ -4038,13 +4876,11 @@ } }, "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", "dev": true, - "dependencies": { - "get-func-name": "^2.0.1" - } + "license": "MIT" }, "node_modules/lru-cache": { "version": "6.0.0", @@ -4058,20 +4894,32 @@ "node": ">=10" } }, + "node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, "bin": { - "markdown-it": "bin/markdown-it.js" + "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/markdown-it-anchor": { @@ -4079,6 +4927,7 @@ "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", "dev": true, + "license": "Unlicense", "peerDependencies": { "@types/markdown-it": "*", "markdown-it": "*" @@ -4089,6 +4938,7 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "dev": true, + "license": "MIT", "bin": { "marked": "bin/marked.js" }, @@ -4097,10 +4947,11 @@ } }, "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", @@ -4157,11 +5008,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -4175,43 +5037,27 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, - "node_modules/mkdirp2": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz", - "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==", - "dev": true - }, - "node_modules/mlly": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", - "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", - "dev": true, - "dependencies": { - "acorn": "^8.10.0", - "pathe": "^1.1.1", - "pkg-types": "^1.0.3", - "ufo": "^1.3.0" - } - }, "node_modules/module-alias": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.3.tgz", "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==" }, "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/multistream": { "version": "4.1.0", @@ -4248,6 +5094,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -4271,7 +5118,8 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-abi": { "version": "3.51.0", @@ -4309,6 +5157,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4322,17 +5171,15 @@ "node": ">=0.10.0" } }, - "node_modules/object-get": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", - "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", - "dev": true - }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4351,18 +5198,20 @@ "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz", "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -4374,28 +5223,31 @@ } }, "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -4416,28 +5268,16 @@ "get-intrinsic": "^1.2.1" } }, - "node_modules/object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -4520,6 +5360,13 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -4578,6 +5425,30 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -4588,25 +5459,28 @@ } }, "node_modules/pathe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" }, "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">= 14.16" } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -4755,17 +5629,6 @@ "pkg-fetch": "lib-es5/bin.js" } }, - "node_modules/pkg-types": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", - "dev": true, - "dependencies": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0" - } - }, "node_modules/pkg/node_modules/@babel/parser": { "version": "7.18.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", @@ -4778,10 +5641,20 @@ "node": ">=6.0.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "dev": true, "funding": [ { @@ -4797,10 +5670,11 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -4841,38 +5715,16 @@ "node": ">= 0.8.0" } }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 0.6.0" } }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -4918,6 +5770,16 @@ "node": ">=6" } }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -4938,6 +5800,13 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true, + "license": "MIT" + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -5012,108 +5881,18 @@ "node": ">=10" } }, - "node_modules/reduce-extract": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", - "integrity": "sha512-QF8vjWx3wnRSL5uFMyCjDeDc5EBMiryoT9tz94VvgjKfzecHAVnqmXAwQDcr7X4JmLc2cjkjFGCVzhMqDjgR9g==", - "dev": true, - "dependencies": { - "test-value": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/reduce-extract/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/reduce-extract/node_modules/test-value": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", - "integrity": "sha512-wrsbRo7qP+2Je8x8DsK8ovCGyxe3sYfQwOraIY/09A2gFXU9DYKiTF14W4ki/01AEh56kMzAmlj9CaHGDDUBJA==", - "dev": true, - "dependencies": { - "array-back": "^1.0.2", - "typical": "^2.4.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/reduce-flatten": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", - "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/reduce-unique": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", - "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/reduce-without": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", - "integrity": "sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==", - "dev": true, - "dependencies": { - "test-value": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/reduce-without/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/reduce-without/node_modules/test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", - "dev": true, - "dependencies": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" }, @@ -5125,14 +5904,16 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -5167,6 +5948,7 @@ "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.21" } @@ -5235,18 +6017,40 @@ } }, "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz", + "integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==", "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.4", + "@rollup/rollup-android-arm64": "4.24.4", + "@rollup/rollup-darwin-arm64": "4.24.4", + "@rollup/rollup-darwin-x64": "4.24.4", + "@rollup/rollup-freebsd-arm64": "4.24.4", + "@rollup/rollup-freebsd-x64": "4.24.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.4", + "@rollup/rollup-linux-arm-musleabihf": "4.24.4", + "@rollup/rollup-linux-arm64-gnu": "4.24.4", + "@rollup/rollup-linux-arm64-musl": "4.24.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.4", + "@rollup/rollup-linux-riscv64-gnu": "4.24.4", + "@rollup/rollup-linux-s390x-gnu": "4.24.4", + "@rollup/rollup-linux-x64-gnu": "4.24.4", + "@rollup/rollup-linux-x64-musl": "4.24.4", + "@rollup/rollup-win32-arm64-msvc": "4.24.4", + "@rollup/rollup-win32-ia32-msvc": "4.24.4", + "@rollup/rollup-win32-x64-msvc": "4.24.4", "fsevents": "~2.3.2" } }, @@ -5274,13 +6078,14 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -5312,15 +6117,19 @@ ] }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5341,29 +6150,34 @@ } }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5391,14 +6205,19 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5408,7 +6227,21 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/simple-concat": { "version": "1.0.1", @@ -5456,85 +6289,49 @@ } }, "node_modules/sirv": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", - "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", - "dev": true, - "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz", + "integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=18" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=8" } }, "node_modules/sort-array": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz", - "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-5.0.0.tgz", + "integrity": "sha512-Sg9MzajSGprcSrMIxsXyNT0e0JB47RJRfJspC+7co4Z5BdNsNl8FmWI+lXEpyKq+vkMG6pHgAhqyCO+bkDTfFQ==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^5.0.0", - "typical": "^6.0.1" + "array-back": "^6.2.2", + "typical": "^7.1.1" }, "engines": { - "node": ">=10" - } - }, - "node_modules/sort-array/node_modules/array-back": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", - "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/sort-array/node_modules/typical": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", - "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", - "dev": true, - "engines": { - "node": ">=10" + "node": ">=12.17" + }, + "peerDependencies": { + "@75lb/nature": "^0.1.1" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/source-map": { @@ -5542,15 +6339,17 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -5559,12 +6358,13 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/standard": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/standard/-/standard-17.1.0.tgz", - "integrity": "sha512-jaDqlNSzLtWYW4lvQmU0EnxWMUGQiwHasZl5ZEIwx3S/ijZDjZOzs1y1QqKwKs5vqnFpGtizo4NOYX2s0Voq/g==", + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/standard/-/standard-17.1.2.tgz", + "integrity": "sha512-WLm12WoXveKkvnPnPnaFUUHuOB2cUdAsJ4AiGHL2G0UNMrcRAWY2WriQaV8IQ3oRmYr0AWUbLNr94ekYFAHOrA==", "dev": true, "funding": [ { @@ -5580,6 +6380,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "eslint": "^8.41.0", "eslint-config-standard": "17.1.0", @@ -5587,8 +6388,8 @@ "eslint-plugin-import": "^2.27.5", "eslint-plugin-n": "^15.7.0", "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-react": "^7.32.2", - "standard-engine": "^15.0.0", + "eslint-plugin-react": "^7.36.1", + "standard-engine": "^15.1.0", "version-guard": "^1.1.1" }, "bin": { @@ -5628,34 +6429,11 @@ } }, "node_modules/std-env": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.5.0.tgz", - "integrity": "sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==", - "dev": true - }, - "node_modules/stream-connect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", - "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==", - "dev": true, - "dependencies": { - "array-back": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-connect/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", "dev": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } + "license": "MIT" }, "node_modules/stream-meter": { "version": "1.0.4", @@ -5702,13 +6480,19 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/stream-via": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", - "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", + "node_modules/streamx": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz", + "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" } }, "node_modules/string_decoder": { @@ -5725,6 +6509,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -5737,11 +6522,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -5754,6 +6563,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -5765,34 +6575,54 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "regexp.prototype.flags": "^1.5.0", - "set-function-name": "^2.0.0", - "side-channel": "^1.0.4" + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -5802,28 +6632,33 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5841,6 +6676,20 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -5862,18 +6711,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-literal": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", - "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", - "dev": true, - "dependencies": { - "acorn": "^8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -5899,31 +6736,17 @@ } }, "node_modules/table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", - "dev": true, - "dependencies": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/table-layout/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz", + "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==", "dev": true, + "license": "MIT", "dependencies": { - "typical": "^2.6.1" + "array-back": "^6.2.2", + "wordwrapjs": "^5.1.0" }, "engines": { - "node": ">=4" + "node": ">=12.17" } }, "node_modules/tar-fs": { @@ -5954,63 +6777,101 @@ "node": ">=6" } }, - "node_modules/temp-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", - "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==", + "node_modules/text-decoder": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz", + "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/test-value": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", - "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", + "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz", + "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==", + "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^2.0.0", - "typical": "^2.6.1" + "fdir": "^6.4.2", + "picomatch": "^4.0.2" }, "engines": { - "node": ">=4.0.0" + "node": ">=12.0.0" } }, - "node_modules/test-value/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", "dev": true, - "dependencies": { - "typical": "^2.6.1" + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" }, - "engines": { - "node": ">=4" + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/tinybench": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz", - "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==", - "dev": true + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, "node_modules/tinypool": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.4.0.tgz", - "integrity": "sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz", + "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/tinyspy": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.1.1.tgz", - "integrity": "sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -6041,6 +6902,7 @@ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -6086,15 +6948,6 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -6108,29 +6961,32 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -6140,16 +6996,18 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -6159,42 +7017,49 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", - "dev": true + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.2.0.tgz", + "integrity": "sha512-W1+HdVRUl8fS3MZ9ogD51GOb46xMmhAZzR0WPw5jcgIZQJVvkddYzAl4YTU6g5w33Y1iRQLdIi2/1jhi2RNL0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } }, "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "node_modules/ufo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", - "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" }, "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "dev": true, + "license": "BSD-2-Clause", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -6219,16 +7084,11 @@ } }, "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", - "dev": true - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", + "dev": true, + "license": "MIT" }, "node_modules/universalify": { "version": "2.0.1", @@ -6264,32 +7124,34 @@ } }, "node_modules/vite": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "version": "5.4.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", + "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -6307,6 +7169,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -6319,82 +7184,79 @@ } }, "node_modules/vite-node": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.29.8.tgz", - "integrity": "sha512-b6OtCXfk65L6SElVM20q5G546yu10/kNrhg08afEoWlFRJXFq9/6glsvSVY+aI6YeC1tu2TtAqI2jHEQmOmsFw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.4.tgz", + "integrity": "sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==", "dev": true, + "license": "MIT", "dependencies": { "cac": "^6.7.14", - "debug": "^4.3.4", - "mlly": "^1.1.0", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "vite": "^3.0.0 || ^4.0.0" + "debug": "^4.3.7", + "pathe": "^1.1.2", + "vite": "^5.0.0" }, "bin": { "vite-node": "vite-node.mjs" }, "engines": { - "node": ">=v14.16.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/sponsors/antfu" + "url": "https://opencollective.com/vitest" } }, "node_modules/vitest": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.29.8.tgz", - "integrity": "sha512-JIAVi2GK5cvA6awGpH0HvH/gEG9PZ0a/WoxdiV3PmqK+3CjQMf8c+J/Vhv4mdZ2nRyXFw66sAg6qz7VNkaHfDQ==", - "dev": true, - "dependencies": { - "@types/chai": "^4.3.4", - "@types/chai-subset": "^1.3.3", - "@types/node": "*", - "@vitest/expect": "0.29.8", - "@vitest/runner": "0.29.8", - "@vitest/spy": "0.29.8", - "@vitest/utils": "0.29.8", - "acorn": "^8.8.1", - "acorn-walk": "^8.2.0", - "cac": "^6.7.14", - "chai": "^4.3.7", - "debug": "^4.3.4", - "local-pkg": "^0.4.2", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "source-map": "^0.6.1", - "std-env": "^3.3.1", - "strip-literal": "^1.0.0", - "tinybench": "^2.3.1", - "tinypool": "^0.4.0", - "tinyspy": "^1.0.2", - "vite": "^3.0.0 || ^4.0.0", - "vite-node": "0.29.8", - "why-is-node-running": "^2.2.2" + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.4.tgz", + "integrity": "sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.4", + "@vitest/mocker": "2.1.4", + "@vitest/pretty-format": "^2.1.4", + "@vitest/runner": "2.1.4", + "@vitest/snapshot": "2.1.4", + "@vitest/spy": "2.1.4", + "@vitest/utils": "2.1.4", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.7.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.4", + "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": ">=v14.16.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/sponsors/antfu" + "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@vitest/browser": "*", - "@vitest/ui": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.4", + "@vitest/ui": "2.1.4", "happy-dom": "*", - "jsdom": "*", - "playwright": "*", - "safaridriver": "*", - "webdriverio": "*" + "jsdom": "*" }, "peerDependenciesMeta": { "@edge-runtime/vm": { "optional": true }, + "@types/node": { + "optional": true + }, "@vitest/browser": { "optional": true }, @@ -6406,23 +7268,15 @@ }, "jsdom": { "optional": true - }, - "playwright": { - "optional": true - }, - "safaridriver": { - "optional": true - }, - "webdriverio": { - "optional": true } } }, "node_modules/walk-back": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz", - "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.1.tgz", + "integrity": "sha512-e/FRLDVdZQWFrAzU6Hdvpm7D7m2ina833gIKLptQykRK49mmCYHLHq7UqjPDbxbKLZkTkW1rFqbengdE3sLfdw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } @@ -6473,13 +7327,14 @@ } }, "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", "dev": true, + "license": "MIT", "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.0.5", "is-finalizationregistry": "^1.0.2", @@ -6488,8 +7343,8 @@ "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -6499,31 +7354,36 @@ } }, "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, + "license": "MIT", "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6533,10 +7393,11 @@ } }, "node_modules/why-is-node-running": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, + "license": "MIT", "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" @@ -6552,35 +7413,43 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wordwrapjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", + "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", "dev": true, - "dependencies": { - "reduce-flatten": "^1.0.1", - "typical": "^2.6.1" - }, + "license": "MIT", "engines": { - "node": ">=4.0.0" + "node": ">=12.17" } }, - "node_modules/wordwrapjs/node_modules/reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi": { + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -6593,21 +7462,34 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { "node": ">=8" } }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "node_modules/wrap-ansi/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -6641,7 +7523,8 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/y18n": { "version": "5.0.8", @@ -6691,15 +7574,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -6727,38 +7601,60 @@ } }, "node_modules/zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", "dev": true, + "license": "MIT", "dependencies": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">= 14" } }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "node_modules/zip-stream/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/zip-stream/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">= 10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } } }, @@ -6781,22 +7677,37 @@ } }, "@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true }, "@babel/parser": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", - "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", - "dev": true + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "dev": true, + "requires": { + "@babel/types": "^7.26.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + } + } + } }, "@babel/types": { "version": "7.19.0", @@ -6809,157 +7720,164 @@ "to-fast-properties": "^2.0.0" } }, + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dev": true, + "optional": true + }, "@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "dev": true, "optional": true }, @@ -7024,6 +7942,54 @@ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, "@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -7048,9 +8014,9 @@ "dev": true }, "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "@jridgewell/trace-mapping": { @@ -7064,9 +8030,9 @@ } }, "@jsdoc/salty": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.6.tgz", - "integrity": "sha512-aA+awb5yoml8TQ3CzI5Ue7sM3VMRC4l1zJJW4fgZ8OCL1wshJZhNzaf0PL85DSnOUw6QuFgeHGD/eq/xwwAF2g==", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", + "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", "dev": true, "requires": { "lodash": "^4.17.21" @@ -7098,32 +8064,156 @@ "fastq": "^1.6.0" } }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true + }, "@polka/url": { - "version": "1.0.0-next.23", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", - "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", "dev": true }, "@raylib/api": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@raylib/api/-/api-5.0.0.tgz", - "integrity": "sha512-zpPsQqfurgHLf+W4kdsYNSs5RoOgs4x8YkmjDQ5ZsXUT8lPDDTekoryBf5W9pqlK5P9oXdP2AIrortx2JvzEtw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@raylib/api/-/api-5.0.1.tgz", + "integrity": "sha512-HX2JBaEW3KdSTrG59ceqcBrvWd2r0vAcYVDDQAXs38FiMxLZn6YYN2M1IG/HMWPM4xlFHo2KzaNxGrnhEnjR2Q==", "dev": true }, - "@types/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==", - "dev": true + "@rollup/rollup-android-arm-eabi": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.4.tgz", + "integrity": "sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==", + "dev": true, + "optional": true }, - "@types/chai-subset": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", - "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", + "@rollup/rollup-android-arm64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.4.tgz", + "integrity": "sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==", "dev": true, - "requires": { - "@types/chai": "*" - } + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.4.tgz", + "integrity": "sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.4.tgz", + "integrity": "sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-arm64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.4.tgz", + "integrity": "sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-x64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.4.tgz", + "integrity": "sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.4.tgz", + "integrity": "sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.4.tgz", + "integrity": "sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.4.tgz", + "integrity": "sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.4.tgz", + "integrity": "sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.4.tgz", + "integrity": "sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.4.tgz", + "integrity": "sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.4.tgz", + "integrity": "sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.4.tgz", + "integrity": "sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.4.tgz", + "integrity": "sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.4.tgz", + "integrity": "sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.4.tgz", + "integrity": "sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.4.tgz", + "integrity": "sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==", + "dev": true, + "optional": true + }, + "@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true }, "@types/json5": { "version": "0.0.29", @@ -7132,36 +8222,27 @@ "dev": true }, "@types/linkify-it": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz", - "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", "dev": true }, "@types/markdown-it": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", - "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", "dev": true, "requires": { - "@types/linkify-it": "*", - "@types/mdurl": "*" + "@types/linkify-it": "^5", + "@types/mdurl": "^2" } }, "@types/mdurl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz", - "integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", "dev": true }, - "@types/node": { - "version": "20.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.2.tgz", - "integrity": "sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==", - "dev": true, - "requires": { - "undici-types": "~5.26.4" - } - }, "@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -7169,76 +8250,100 @@ "dev": true }, "@vitest/expect": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.29.8.tgz", - "integrity": "sha512-xlcVXn5I5oTq6NiZSY3ykyWixBxr5mG8HYtjvpgg6KaqHm0mvhX18xuwl5YGxIRNt/A5jidd7CWcNHrSvgaQqQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.4.tgz", + "integrity": "sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==", + "dev": true, + "requires": { + "@vitest/spy": "2.1.4", + "@vitest/utils": "2.1.4", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + } + }, + "@vitest/mocker": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.4.tgz", + "integrity": "sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==", + "dev": true, + "requires": { + "@vitest/spy": "2.1.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + } + }, + "@vitest/pretty-format": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.4.tgz", + "integrity": "sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==", "dev": true, "requires": { - "@vitest/spy": "0.29.8", - "@vitest/utils": "0.29.8", - "chai": "^4.3.7" + "tinyrainbow": "^1.2.0" } }, "@vitest/runner": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.29.8.tgz", - "integrity": "sha512-FzdhnRDwEr/A3Oo1jtIk/B952BBvP32n1ObMEb23oEJNO+qO5cBet6M2XWIDQmA7BDKGKvmhUf2naXyp/2JEwQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.4.tgz", + "integrity": "sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==", "dev": true, "requires": { - "@vitest/utils": "0.29.8", - "p-limit": "^4.0.0", - "pathe": "^1.1.0" - }, - "dependencies": { - "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true - } + "@vitest/utils": "2.1.4", + "pathe": "^1.1.2" + } + }, + "@vitest/snapshot": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.4.tgz", + "integrity": "sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==", + "dev": true, + "requires": { + "@vitest/pretty-format": "2.1.4", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" } }, "@vitest/spy": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.29.8.tgz", - "integrity": "sha512-VdjBe9w34vOMl5I5mYEzNX8inTxrZ+tYUVk9jxaZJmHFwmDFC/GV3KBFTA/JKswr3XHvZL+FE/yq5EVhb6pSAw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.4.tgz", + "integrity": "sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==", "dev": true, "requires": { - "tinyspy": "^1.0.2" + "tinyspy": "^3.0.2" } }, "@vitest/ui": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.29.8.tgz", - "integrity": "sha512-+vbLd+c1R/XUWfzJsWeyjeiw13fwJ95I5tguxaqXRg61y9iYUKesVljg7Pttp2uo7VK+kAjvY91J41NZ1Vx3vg==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-2.1.4.tgz", + "integrity": "sha512-Zd9e5oU063c+j9N9XzGJagCLNvG71x/2tOme3Js4JEZKX55zsgxhJwUgLI8hkN6NjMLpdJO8d7nVUUuPGAA58Q==", "dev": true, "requires": { - "fast-glob": "^3.2.12", - "flatted": "^3.2.7", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "sirv": "^2.0.2" + "@vitest/utils": "2.1.4", + "fflate": "^0.8.2", + "flatted": "^3.3.1", + "pathe": "^1.1.2", + "sirv": "^3.0.0", + "tinyglobby": "^0.2.9", + "tinyrainbow": "^1.2.0" } }, "@vitest/utils": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.29.8.tgz", - "integrity": "sha512-qGzuf3vrTbnoY+RjjVVIBYfuWMjn3UMUqyQtdGNZ6ZIIyte7B37exj6LaVkrZiUTvzSadVvO/tJm8AEgbGCBPg==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.4.tgz", + "integrity": "sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==", + "dev": true, + "requires": { + "@vitest/pretty-format": "2.1.4", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + } + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dev": true, "requires": { - "cli-truncate": "^3.1.0", - "diff": "^5.1.0", - "loupe": "^2.3.6", - "pretty-format": "^27.5.1" + "event-target-shim": "^5.0.0" } }, "acorn": { @@ -7254,12 +8359,6 @@ "dev": true, "requires": {} }, - "acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", - "dev": true - }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -7281,23 +8380,6 @@ "uri-js": "^4.2.2" } }, - "ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", - "dev": true, - "requires": { - "array-back": "^3.0.1" - }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - } - } - }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -7314,72 +8396,124 @@ } }, "archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", "dev": true, "requires": { - "archiver-utils": "^2.1.0", + "archiver-utils": "^5.0.2", "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, + "requires": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + } + }, + "tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "requires": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + } } }, "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", "dev": true, "requires": { - "glob": "^7.1.4", + "glob": "^10.0.0", "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", + "lodash": "^4.17.15", "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" + "readable-stream": "^4.0.0" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "brace-expansion": "^2.0.1" + } + }, + "readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, + "requires": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" } } } @@ -7397,25 +8531,26 @@ "dev": true }, "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" } }, "array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" } }, @@ -7425,6 +8560,20 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, + "array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + } + }, "array.prototype.findlastindex": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", @@ -7463,37 +8612,38 @@ } }, "array.prototype.tosorted": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" } }, "arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "requires": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" } }, "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true }, "async": { @@ -7502,15 +8652,6 @@ "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, - "asynciterator.prototype": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.3" - } - }, "at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -7518,9 +8659,18 @@ "dev": true }, "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "requires": { + "possible-typed-array-names": "^1.0.0" + } + }, + "b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", "dev": true }, "balanced-match": { @@ -7529,6 +8679,13 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "bare-events": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", + "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", + "dev": true, + "optional": true + }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -7582,9 +8739,9 @@ } }, "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", "dev": true }, "builtins": { @@ -7603,33 +8760,25 @@ "dev": true }, "cache-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", - "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-3.0.0.tgz", + "integrity": "sha512-LDGNWYv/tqRWAAZxMy75PIYynaIuhcyoyjJtwA7X5uMZjdzvGm+XmTey/GXUy2EJ+lwc2eBFzFYxjvNYyE/0Iw==", "dev": true, "requires": { - "array-back": "^4.0.1", - "fs-then-native": "^2.0.0", - "mkdirp2": "^1.0.4" - }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true - } + "array-back": "^6.2.2" } }, "call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" } }, "callsites": { @@ -7648,18 +8797,16 @@ } }, "chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" } }, "chalk": { @@ -7672,31 +8819,27 @@ "supports-color": "^7.1.0" } }, - "check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", "dev": true, "requires": { - "get-func-name": "^2.0.2" + "chalk": "^4.1.2" } }, + "check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true + }, "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, - "cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dev": true, - "requires": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - } - }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -7714,12 +8857,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -7733,16 +8870,6 @@ } } }, - "collect-all": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", - "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", - "dev": true, - "requires": { - "stream-connect": "^1.0.2", - "stream-via": "^1.0.4" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -7759,76 +8886,27 @@ "dev": true }, "command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.1.tgz", + "integrity": "sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==", "dev": true, "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", + "array-back": "^6.2.2", + "find-replace": "^5.0.2", "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - }, - "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true - } - } - }, - "command-line-tool": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", - "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", - "dev": true, - "requires": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "command-line-args": "^5.0.0", - "command-line-usage": "^4.1.0", - "typical": "^2.6.1" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } + "typical": "^7.2.0" } }, "command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz", + "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==", "dev": true, "requires": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^4.1.0", + "typical": "^7.1.1" } }, "common-sequence": { @@ -7838,15 +8916,41 @@ "dev": true }, "compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", "dev": true, "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" + "readable-stream": "^4.0.0" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, + "requires": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + } + } } }, "concat-map": { @@ -7885,19 +8989,44 @@ "dev": true }, "crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", "dev": true, "requires": { "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" + "readable-stream": "^4.0.0" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, + "requires": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + } + } } }, "cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", "requires": { "node-fetch": "^2.6.12" } @@ -7913,13 +9042,52 @@ "which": "^2.0.1" } }, + "current-module-paths": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/current-module-paths/-/current-module-paths-1.1.2.tgz", + "integrity": "sha512-H4s4arcLx/ugbu1XkkgSvcUZax0L6tXUqnppGniQb8l5VjUKGHoayXE5RiriiPhYDd+kjZnaok1Uig13PKtKYQ==", + "dev": true + }, + "data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.3" } }, "decompress-response": { @@ -7932,13 +9100,10 @@ } }, "deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true }, "deep-extend": { "version": "0.6.0", @@ -7953,14 +9118,14 @@ "dev": true }, "define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "requires": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" } }, "define-properties": { @@ -7980,12 +9145,6 @@ "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "dev": true }, - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true - }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -7996,23 +9155,18 @@ } }, "dmd": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.2.0.tgz", - "integrity": "sha512-uXWxLF1H7TkUAuoHK59/h/ts5cKavm2LnhrIgJWisip4BVzPoXavlwyoprFFn2CzcahKYgvkfaebS6oxzgflkg==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/dmd/-/dmd-7.0.7.tgz", + "integrity": "sha512-UXNLJkci/tiVNct+JgrpfTlSs8cSyLbR3q4xkYQ4do6cRCUPj0HodfMsBLPhC7KG3qGRp1YJgfNjdgCrYEcHWQ==", "dev": true, "requires": { "array-back": "^6.2.2", - "cache-point": "^2.0.0", + "cache-point": "^3.0.0", "common-sequence": "^2.0.2", - "file-set": "^4.0.2", - "handlebars": "^4.7.7", - "marked": "^4.2.3", - "object-get": "^2.1.1", - "reduce-flatten": "^3.0.1", - "reduce-unique": "^2.0.1", - "reduce-without": "^1.0.1", - "test-value": "^3.0.0", - "walk-back": "^5.1.0" + "file-set": "^5.2.2", + "handlebars": "^4.7.8", + "marked": "^4.3.0", + "walk-back": "^5.1.1" } }, "doctrine": { @@ -8046,9 +9200,9 @@ } }, "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true }, "error-ex": { @@ -8061,83 +9215,115 @@ } }, "es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.15" + } + }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.4" } }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true + }, "es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", "dev": true, "requires": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + } + }, + "es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "requires": { + "es-errors": "^1.3.0" } }, "es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "requires": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" } }, "es-shim-unscopables": { @@ -8161,33 +9347,34 @@ } }, "esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "escalade": { @@ -8452,27 +9639,29 @@ "requires": {} }, "eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", "dev": true, "requires": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", + "es-iterator-helpers": "^1.1.0", "estraverse": "^5.3.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", + "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" }, "dependencies": { "doctrine": { @@ -8580,24 +9769,57 @@ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0" + } + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, "expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", "dev": true }, + "expect-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", + "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", + "dev": true + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -8632,6 +9854,12 @@ "reusify": "^1.0.4" } }, + "fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "dev": true + }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -8642,21 +9870,13 @@ } }, "file-set": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", - "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-5.2.2.tgz", + "integrity": "sha512-/KgJI1V/QaDK4enOk/E2xMFk1cTWJghEr7UmWiRZfZ6upt6gQCfMn4jJ7aOm64OKurj4TaVnSSgSDqv5ZKYA3A==", "dev": true, "requires": { - "array-back": "^5.0.0", - "glob": "^7.1.6" - }, - "dependencies": { - "array-back": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", - "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", - "dev": true - } + "array-back": "^6.2.2", + "fast-glob": "^3.3.2" } }, "fill-range": { @@ -8669,21 +9889,11 @@ } }, "find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz", + "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==", "dev": true, - "requires": { - "array-back": "^3.0.1" - }, - "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - } - } + "requires": {} }, "find-up": { "version": "5.0.0", @@ -8707,9 +9917,9 @@ } }, "flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "for-each": { @@ -8721,6 +9931,16 @@ "is-callable": "^1.1.3" } }, + "foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + } + }, "from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", @@ -8787,12 +10007,6 @@ "universalify": "^2.0.0" } }, - "fs-then-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", - "integrity": "sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==", - "dev": true - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -8836,18 +10050,13 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true - }, "get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "requires": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", @@ -8861,13 +10070,14 @@ "dev": true }, "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" } }, "github-from-package": { @@ -8909,12 +10119,13 @@ } }, "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "requires": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" } }, "globby": { @@ -8984,18 +10195,18 @@ "dev": true }, "has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "requires": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" } }, "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true }, "has-symbols": { @@ -9005,18 +10216,18 @@ "dev": true }, "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "requires": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" } }, "hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "requires": { "function-bind": "^1.1.2" @@ -9083,12 +10294,12 @@ "dev": true }, "internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "requires": { - "get-intrinsic": "^1.2.2", + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" } @@ -9104,14 +10315,13 @@ } }, "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" } }, "is-arrayish": { @@ -9163,6 +10373,15 @@ "has": "^1.0.3" } }, + "is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "requires": { + "is-typed-array": "^1.1.13" + } + }, "is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -9188,9 +10407,9 @@ } }, "is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-generator-function": { @@ -9212,15 +10431,15 @@ } }, "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true }, "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true }, "is-number": { @@ -9255,20 +10474,26 @@ } }, "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true }, "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "requires": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" } }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, "is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -9288,18 +10513,18 @@ } }, "is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "requires": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" } }, "is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true }, "is-weakref": { @@ -9312,13 +10537,13 @@ } }, "is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" } }, "isarray": { @@ -9334,9 +10559,9 @@ "dev": true }, "iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", "dev": true, "requires": { "define-properties": "^1.2.1", @@ -9346,6 +10571,16 @@ "set-function-name": "^2.0.1" } }, + "jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -9371,21 +10606,21 @@ } }, "jsdoc": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz", - "integrity": "sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.4.tgz", + "integrity": "sha512-zeFezwyXeG4syyYHbvh1A967IAqq/67yXtXvuL5wnqCkFZe8I0vKfm+EO+YEvLguo6w9CDUbrAXVtJSHh2E8rw==", "dev": true, "requires": { "@babel/parser": "^7.20.15", "@jsdoc/salty": "^0.2.1", - "@types/markdown-it": "^12.2.3", + "@types/markdown-it": "^14.1.1", "bluebird": "^3.7.2", "catharsis": "^0.9.0", "escape-string-regexp": "^2.0.0", "js2xmlparser": "^4.0.2", "klaw": "^3.0.0", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.4.1", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^8.6.7", "marked": "^4.0.10", "mkdirp": "^1.0.4", "requizzle": "^0.2.3", @@ -9394,49 +10629,46 @@ } }, "jsdoc-api": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-8.0.0.tgz", - "integrity": "sha512-Rnhor0suB1Ds1abjmFkFfKeD+kSMRN9oHMTMZoJVUrmtCGDwXty+sWMA9sa4xbe4UyxuPjhC7tavZ40mDKK6QQ==", + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-9.3.4.tgz", + "integrity": "sha512-di8lggLACEttpyAZ6WjKKafUP4wC4prAGjt40nMl7quDpp2nD7GmLt6/WxhRu9Q6IYoAAySsNeidBXYVAMwlqg==", "dev": true, "requires": { "array-back": "^6.2.2", - "cache-point": "^2.0.0", - "collect-all": "^1.0.4", - "file-set": "^4.0.2", - "fs-then-native": "^2.0.0", - "jsdoc": "^4.0.0", + "cache-point": "^3.0.0", + "current-module-paths": "^1.1.2", + "file-set": "^5.2.2", + "jsdoc": "^4.0.4", "object-to-spawn-args": "^2.0.1", - "temp-path": "^1.0.0", - "walk-back": "^5.1.0" + "walk-back": "^5.1.1" } }, "jsdoc-parse": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.0.tgz", - "integrity": "sha512-Afu1fQBEb7QHt6QWX/6eUWvYHJofB90Fjx7FuJYF7mnG9z5BkAIpms1wsnvYLytfmqpEENHs/fax9p8gvMj7dw==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.4.tgz", + "integrity": "sha512-MQA+lCe3ioZd0uGbyB3nDCDZcKgKC7m/Ivt0LgKZdUoOlMJxUWJQ3WI6GeyHp9ouznKaCjlp7CU9sw5k46yZTw==", "dev": true, "requires": { "array-back": "^6.2.2", + "find-replace": "^5.0.1", "lodash.omit": "^4.5.0", - "lodash.pick": "^4.4.0", - "reduce-extract": "^1.0.0", - "sort-array": "^4.1.5", - "test-value": "^3.0.0" + "sort-array": "^5.0.0" } }, "jsdoc-to-markdown": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-8.0.0.tgz", - "integrity": "sha512-2FQvYkg491+FP6s15eFlgSSWs69CvQrpbABGYBtvAvGWy/lWo8IKKToarT283w59rQFrpcjHl3YdhHCa3l7gXg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-9.0.5.tgz", + "integrity": "sha512-lqvKgSva+wGUusRz6xtImdM92lrjHNmyi7LyWdLMQBijCnoFwTZjNF3zUqm6uahsSaRALQNyzGXmjaef6IUE4g==", "dev": true, "requires": { "array-back": "^6.2.2", - "command-line-tool": "^0.8.0", + "command-line-args": "^6.0.1", + "command-line-usage": "^7.0.3", "config-master": "^3.1.0", - "dmd": "^6.2.0", - "jsdoc-api": "^8.0.0", - "jsdoc-parse": "^6.2.0", - "walk-back": "^5.1.0" + "dmd": "^7.0.7", + "jsdoc-api": "^9.3.4", + "jsdoc-parse": "^6.2.4", + "walk-back": "^5.1.1" } }, "jsesc": { @@ -9478,12 +10710,6 @@ "minimist": "^1.2.0" } }, - "jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -9582,12 +10808,12 @@ } }, "linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, "requires": { - "uc.micro": "^1.0.1" + "uc.micro": "^2.0.0" } }, "load-json-file": { @@ -9611,12 +10837,6 @@ } } }, - "local-pkg": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", - "dev": true - }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -9638,30 +10858,6 @@ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "dev": true }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -9674,24 +10870,6 @@ "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", "dev": true }, - "lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", - "dev": true - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", - "dev": true - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true - }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -9702,13 +10880,10 @@ } }, "loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "requires": { - "get-func-name": "^2.0.1" - } + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "dev": true }, "lru-cache": { "version": "6.0.0", @@ -9719,17 +10894,27 @@ "yallist": "^4.0.0" } }, + "magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, "requires": { "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" } }, "markdown-it-anchor": { @@ -9746,9 +10931,9 @@ "dev": true }, "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "dev": true }, "merge2": { @@ -9788,6 +10973,12 @@ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -9800,39 +10991,21 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, - "mkdirp2": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz", - "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==", - "dev": true - }, - "mlly": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", - "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", - "dev": true, - "requires": { - "acorn": "^8.10.0", - "pathe": "^1.1.1", - "pkg-types": "^1.0.3", - "ufo": "^1.3.0" - } - }, "module-alias": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.3.tgz", "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==" }, "mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", "dev": true }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "multistream": { @@ -9898,16 +11071,10 @@ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true }, - "object-get": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", - "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", - "dev": true - }, "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true }, "object-keys": { @@ -9923,37 +11090,38 @@ "dev": true }, "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, "object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" } }, "object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" } }, "object.groupby": { @@ -9968,25 +11136,15 @@ "get-intrinsic": "^1.2.1" } }, - "object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", - "dev": true, - "requires": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, "object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" } }, "once": { @@ -10042,6 +11200,12 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -10085,6 +11249,24 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "requires": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + } + } + }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -10092,21 +11274,21 @@ "dev": true }, "pathe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true }, "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "picomatch": { @@ -10222,26 +11404,21 @@ "yargs": "^16.2.0" } }, - "pkg-types": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", - "dev": true, - "requires": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0" - } + "possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true }, "postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "dev": true, "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" } }, "prebuild-install": { @@ -10270,30 +11447,11 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true }, "process-nextick-args": { "version": "2.0.1", @@ -10334,12 +11492,24 @@ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true }, + "punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -10397,110 +11567,40 @@ }, "minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "reduce-extract": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", - "integrity": "sha512-QF8vjWx3wnRSL5uFMyCjDeDc5EBMiryoT9tz94VvgjKfzecHAVnqmXAwQDcr7X4JmLc2cjkjFGCVzhMqDjgR9g==", - "dev": true, - "requires": { - "test-value": "^1.0.1" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - }, - "test-value": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", - "integrity": "sha512-wrsbRo7qP+2Je8x8DsK8ovCGyxe3sYfQwOraIY/09A2gFXU9DYKiTF14W4ki/01AEh56kMzAmlj9CaHGDDUBJA==", - "dev": true, - "requires": { - "array-back": "^1.0.2", - "typical": "^2.4.2" - } - } - } - }, - "reduce-flatten": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", - "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", - "dev": true - }, - "reduce-unique": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", - "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", - "dev": true - }, - "reduce-without": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", - "integrity": "sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==", - "dev": true, - "requires": { - "test-value": "^2.0.0" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - }, - "test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "requires": { - "array-back": "^1.0.3", - "typical": "^2.6.0" + "brace-expansion": "^2.0.1" } } } }, "reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" } }, "regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" } }, "regexpp": { @@ -10568,11 +11668,30 @@ } }, "rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", - "dev": true, - "requires": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz", + "integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.24.4", + "@rollup/rollup-android-arm64": "4.24.4", + "@rollup/rollup-darwin-arm64": "4.24.4", + "@rollup/rollup-darwin-x64": "4.24.4", + "@rollup/rollup-freebsd-arm64": "4.24.4", + "@rollup/rollup-freebsd-x64": "4.24.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.4", + "@rollup/rollup-linux-arm-musleabihf": "4.24.4", + "@rollup/rollup-linux-arm64-gnu": "4.24.4", + "@rollup/rollup-linux-arm64-musl": "4.24.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.4", + "@rollup/rollup-linux-riscv64-gnu": "4.24.4", + "@rollup/rollup-linux-s390x-gnu": "4.24.4", + "@rollup/rollup-linux-x64-gnu": "4.24.4", + "@rollup/rollup-linux-x64-musl": "4.24.4", + "@rollup/rollup-win32-arm64-msvc": "4.24.4", + "@rollup/rollup-win32-ia32-msvc": "4.24.4", + "@rollup/rollup-win32-x64-msvc": "4.24.4", + "@types/estree": "1.0.6", "fsevents": "~2.3.2" } }, @@ -10586,13 +11705,13 @@ } }, "safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" } @@ -10604,13 +11723,13 @@ "dev": true }, "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" } }, @@ -10624,26 +11743,29 @@ } }, "set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "requires": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" } }, "set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "requires": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" } }, "shebang-command": { @@ -10662,14 +11784,15 @@ "dev": true }, "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" } }, "siginfo": { @@ -10678,6 +11801,12 @@ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", "dev": true }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + }, "simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -10696,13 +11825,13 @@ } }, "sirv": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", - "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz", + "integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==", "dev": true, "requires": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, @@ -10712,46 +11841,14 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - } - } - }, "sort-array": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz", - "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-5.0.0.tgz", + "integrity": "sha512-Sg9MzajSGprcSrMIxsXyNT0e0JB47RJRfJspC+7co4Z5BdNsNl8FmWI+lXEpyKq+vkMG6pHgAhqyCO+bkDTfFQ==", "dev": true, "requires": { - "array-back": "^5.0.0", - "typical": "^6.0.1" - }, - "dependencies": { - "array-back": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", - "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", - "dev": true - }, - "typical": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", - "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", - "dev": true - } + "array-back": "^6.2.2", + "typical": "^7.1.1" } }, "source-map": { @@ -10761,9 +11858,9 @@ "dev": true }, "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true }, "stackback": { @@ -10773,9 +11870,9 @@ "dev": true }, "standard": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/standard/-/standard-17.1.0.tgz", - "integrity": "sha512-jaDqlNSzLtWYW4lvQmU0EnxWMUGQiwHasZl5ZEIwx3S/ijZDjZOzs1y1QqKwKs5vqnFpGtizo4NOYX2s0Voq/g==", + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/standard/-/standard-17.1.2.tgz", + "integrity": "sha512-WLm12WoXveKkvnPnPnaFUUHuOB2cUdAsJ4AiGHL2G0UNMrcRAWY2WriQaV8IQ3oRmYr0AWUbLNr94ekYFAHOrA==", "dev": true, "requires": { "eslint": "^8.41.0", @@ -10784,8 +11881,8 @@ "eslint-plugin-import": "^2.27.5", "eslint-plugin-n": "^15.7.0", "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-react": "^7.32.2", - "standard-engine": "^15.0.0", + "eslint-plugin-react": "^7.36.1", + "standard-engine": "^15.1.0", "version-guard": "^1.1.1" } }, @@ -10802,31 +11899,11 @@ } }, "std-env": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.5.0.tgz", - "integrity": "sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", "dev": true }, - "stream-connect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", - "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==", - "dev": true, - "requires": { - "array-back": "^1.0.2" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - } - } - }, "stream-meter": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", @@ -10874,11 +11951,17 @@ } } }, - "stream-via": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", - "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", - "dev": true + "streamx": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz", + "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==", + "dev": true, + "requires": { + "bare-events": "^2.2.0", + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + } }, "string_decoder": { "version": "1.3.0", @@ -10901,9 +11984,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "strip-ansi": { @@ -10917,54 +12000,87 @@ } } }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + } + } + }, "string.prototype.matchall": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "regexp.prototype.flags": "^1.5.0", - "set-function-name": "^2.0.0", - "side-channel": "^1.0.4" + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + } + }, + "string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, "string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" } }, "string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" } }, "string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" } }, "strip-ansi": { @@ -10976,6 +12092,15 @@ "ansi-regex": "^5.0.1" } }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -10988,15 +12113,6 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, - "strip-literal": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", - "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", - "dev": true, - "requires": { - "acorn": "^8.10.0" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11013,27 +12129,13 @@ "dev": true }, "table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz", + "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==", "dev": true, "requires": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } + "array-back": "^6.2.2", + "wordwrapjs": "^5.1.0" } }, "tar-fs": { @@ -11061,33 +12163,12 @@ "readable-stream": "^3.1.1" } }, - "temp-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", - "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==", + "text-decoder": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz", + "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==", "dev": true }, - "test-value": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", - "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", - "dev": true, - "requires": { - "array-back": "^2.0.0", - "typical": "^2.6.1" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } - } - }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -11095,21 +12176,58 @@ "dev": true }, "tinybench": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz", - "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true + }, + "tinyexec": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", + "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", "dev": true }, + "tinyglobby": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz", + "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==", + "dev": true, + "requires": { + "fdir": "^6.4.2", + "picomatch": "^4.0.2" + }, + "dependencies": { + "fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", + "dev": true, + "requires": {} + }, + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true + } + } + }, "tinypool": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.4.0.tgz", - "integrity": "sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz", + "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==", + "dev": true + }, + "tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", "dev": true }, "tinyspy": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.1.1.tgz", - "integrity": "sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", "dev": true }, "to-fast-properties": { @@ -11168,12 +12286,6 @@ "prelude-ls": "^1.2.1" } }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -11181,74 +12293,73 @@ "dev": true }, "typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" } }, "typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "requires": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" } }, "typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" } }, "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "requires": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" } }, "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.2.0.tgz", + "integrity": "sha512-W1+HdVRUl8fS3MZ9ogD51GOb46xMmhAZzR0WPw5jcgIZQJVvkddYzAl4YTU6g5w33Y1iRQLdIi2/1jhi2RNL0g==", "dev": true }, "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "ufo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", - "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true }, "uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "dev": true, "optional": true }, @@ -11265,15 +12376,9 @@ } }, "underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", - "dev": true - }, - "undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true }, "universalify": { @@ -11304,67 +12409,61 @@ "dev": true }, "vite": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "version": "5.4.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", + "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", "dev": true, "requires": { - "esbuild": "^0.18.10", - "fsevents": "~2.3.2", - "postcss": "^8.4.27", - "rollup": "^3.27.1" + "esbuild": "^0.21.3", + "fsevents": "~2.3.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" } }, "vite-node": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.29.8.tgz", - "integrity": "sha512-b6OtCXfk65L6SElVM20q5G546yu10/kNrhg08afEoWlFRJXFq9/6glsvSVY+aI6YeC1tu2TtAqI2jHEQmOmsFw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.4.tgz", + "integrity": "sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==", "dev": true, "requires": { "cac": "^6.7.14", - "debug": "^4.3.4", - "mlly": "^1.1.0", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "vite": "^3.0.0 || ^4.0.0" + "debug": "^4.3.7", + "pathe": "^1.1.2", + "vite": "^5.0.0" } }, "vitest": { - "version": "0.29.8", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.29.8.tgz", - "integrity": "sha512-JIAVi2GK5cvA6awGpH0HvH/gEG9PZ0a/WoxdiV3PmqK+3CjQMf8c+J/Vhv4mdZ2nRyXFw66sAg6qz7VNkaHfDQ==", - "dev": true, - "requires": { - "@types/chai": "^4.3.4", - "@types/chai-subset": "^1.3.3", - "@types/node": "*", - "@vitest/expect": "0.29.8", - "@vitest/runner": "0.29.8", - "@vitest/spy": "0.29.8", - "@vitest/utils": "0.29.8", - "acorn": "^8.8.1", - "acorn-walk": "^8.2.0", - "cac": "^6.7.14", - "chai": "^4.3.7", - "debug": "^4.3.4", - "local-pkg": "^0.4.2", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "source-map": "^0.6.1", - "std-env": "^3.3.1", - "strip-literal": "^1.0.0", - "tinybench": "^2.3.1", - "tinypool": "^0.4.0", - "tinyspy": "^1.0.2", - "vite": "^3.0.0 || ^4.0.0", - "vite-node": "0.29.8", - "why-is-node-running": "^2.2.2" + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.4.tgz", + "integrity": "sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==", + "dev": true, + "requires": { + "@vitest/expect": "2.1.4", + "@vitest/mocker": "2.1.4", + "@vitest/pretty-format": "^2.1.4", + "@vitest/runner": "2.1.4", + "@vitest/snapshot": "2.1.4", + "@vitest/spy": "2.1.4", + "@vitest/utils": "2.1.4", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.7.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.4", + "why-is-node-running": "^2.3.0" } }, "walk-back": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz", - "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.1.tgz", + "integrity": "sha512-e/FRLDVdZQWFrAzU6Hdvpm7D7m2ina833gIKLptQykRK49mmCYHLHq7UqjPDbxbKLZkTkW1rFqbengdE3sLfdw==", "dev": true }, "webidl-conversions": { @@ -11404,13 +12503,13 @@ } }, "which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", "dev": true, "requires": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.0.5", "is-finalizationregistry": "^1.0.2", @@ -11419,39 +12518,39 @@ "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" } }, "which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "requires": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" } }, "which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" } }, "why-is-node-running": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, "requires": { "siginfo": "^2.0.0", @@ -11465,25 +12564,43 @@ "dev": true }, "wordwrapjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", + "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { - "reduce-flatten": "^1.0.1", - "typical": "^2.6.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } } } }, - "wrap-ansi": { - "version": "7.0.0", + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, @@ -11499,12 +12616,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -11569,12 +12680,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -11601,32 +12706,37 @@ "dev": true }, "zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", "dev": true, "requires": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" }, "dependencies": { - "archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "dev": true, "requires": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" } } } diff --git a/package.json b/package.json index f82e41d..60c5988 100644 --- a/package.json +++ b/package.json @@ -62,17 +62,17 @@ }, "homepage": "https://github.com/RobLoach/node-raylib", "dependencies": { - "cross-fetch": "^3.1.5", - "module-alias": "^2.2.2" + "cross-fetch": "^4.0.0", + "module-alias": "^2.2.3" }, "devDependencies": { - "@raylib/api": "^5.0.0", - "@vitest/ui": "^0.29.7", - "archiver": "^5.3.1", - "jsdoc-to-markdown": "^8.0.0", + "@raylib/api": "^5.0.1", + "@vitest/ui": "^2.1.4", + "archiver": "^7.0.1", + "jsdoc-to-markdown": "^9.0.5", "pkg": "^5.8.1", - "standard": "^17.0.0", - "vitest": "^0.29.7" + "standard": "^17.1.2", + "vitest": "^2.1.4" }, "jsdoc2md": { "files": [ From 4ae0ea94756823c9da10511f9b81a8f638c87329 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Fri, 8 Nov 2024 02:47:24 -0500 Subject: [PATCH 7/7] Remove raygui for now --- docs/API.md | 79 +- src/generated/node-raylib-drm.js | 9845 ++++++++++-------------------- src/generated/node-raylib.cc | 573 -- src/generated/node-raylib.d.ts | 838 +-- src/generated/node-raylib.js | 9845 ++++++++++-------------------- tools/generate.js | 7 +- 6 files changed, 6172 insertions(+), 15015 deletions(-) diff --git a/docs/API.md b/docs/API.md index edee1b1..38e810a 100644 --- a/docs/API.md +++ b/docs/API.md @@ -962,7 +962,7 @@

Load font from file into GPU memory (VRAM)

LoadFontEx(fileName, fontSize, codepoints, codepointCount) ⇒ Font
-

Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont

+

Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set

LoadFontFromImage(image, key, firstChar) ⇒ Font

Load font from Image (XNA style)

@@ -1625,49 +1625,52 @@

Scroll Panel control

GuiLabel(bounds, text) ⇒ number
-

Label control, shows text

+

Label control

GuiButton(bounds, text) ⇒ number

Button control, returns true when clicked

GuiLabelButton(bounds, text) ⇒ number
-

Label button control, show true when clicked

+

Label button control, returns true when clicked

GuiToggle(bounds, text, active) ⇒ number
-

Toggle Button control, returns true when active

+

Toggle Button control

GuiToggleGroup(bounds, text, active) ⇒ number
-

Toggle Group control, returns active toggle index

+

Toggle Group control

GuiToggleSlider(bounds, text, active) ⇒ number
-

Toggle Slider control, returns true when clicked

+

Toggle Slider control

GuiCheckBox(bounds, text, checked) ⇒ number

Check Box control, returns true when active

GuiComboBox(bounds, text, active) ⇒ number
-

Combo Box control, returns selected item index

+

Combo Box control

GuiDropdownBox(bounds, text, active, editMode) ⇒ number
-

Dropdown Box control, returns selected item

+

Dropdown Box control

GuiSpinner(bounds, text, value, minValue, maxValue, editMode) ⇒ number
-

Spinner control, returns selected value

+

Spinner control

GuiValueBox(bounds, text, value, minValue, maxValue, editMode) ⇒ number

Value Box control, updates input text with numbers

+
GuiValueBoxFloat(bounds, text, textValue, value, editMode) ⇒ number
+

Value box control for float values

+
GuiTextBox(bounds, text, textSize, editMode) ⇒ number

Text Box control, updates input text

GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number
-

Slider control, returns selected value

+

Slider control

GuiSliderBar(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number
-

Slider Bar control, returns selected value

+

Slider Bar control

GuiProgressBar(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number
-

Progress Bar control, shows current progress value

+

Progress Bar control

GuiStatusBar(bounds, text) ⇒ number

Status Bar control, shows info text

@@ -1676,10 +1679,10 @@

Dummy control for placeholders

GuiGrid(bounds, text, spacing, subdivs, mouseCell) ⇒ number
-

Grid control, returns mouse cell position

+

Grid control

GuiListView(bounds, text, scrollIndex, active) ⇒ number
-

List View control, returns selected list item index

+

List View control

GuiListViewEx(bounds, text, count, scrollIndex, active, focus) ⇒ number

List View with extended parameters

@@ -1706,7 +1709,7 @@

Color Picker control that avoids conversion to RGB on each call (multiple color controls)

GuiColorPanelHSV(bounds, text, colorHsv) ⇒ number
-

Color Panel control that returns HSV color value, used by GuiColorPickerHSV()

+

Color Panel control that updates Hue-Saturation-Value color value, used by GuiColorPickerHSV()

rlMatrixMode(mode) ⇒ undefined

Choose the current matrix to be transformed

@@ -5985,7 +5988,7 @@ Load font from file into GPU memory (VRAM) ## LoadFontEx(fileName, fontSize, codepoints, codepointCount) ⇒ Font -Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont +Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set **Kind**: global function **Returns**: Font - The resulting Font. @@ -8820,7 +8823,7 @@ Scroll Panel control ## GuiLabel(bounds, text) ⇒ number -Label control, shows text +Label control **Kind**: global function **Returns**: number - The resulting int. @@ -8846,7 +8849,7 @@ Button control, returns true when clicked ## GuiLabelButton(bounds, text) ⇒ number -Label button control, show true when clicked +Label button control, returns true when clicked **Kind**: global function **Returns**: number - The resulting int. @@ -8859,7 +8862,7 @@ Label button control, show true when clicked ## GuiToggle(bounds, text, active) ⇒ number -Toggle Button control, returns true when active +Toggle Button control **Kind**: global function **Returns**: number - The resulting int. @@ -8873,7 +8876,7 @@ Toggle Button control, returns true when active ## GuiToggleGroup(bounds, text, active) ⇒ number -Toggle Group control, returns active toggle index +Toggle Group control **Kind**: global function **Returns**: number - The resulting int. @@ -8887,7 +8890,7 @@ Toggle Group control, returns active toggle index ## GuiToggleSlider(bounds, text, active) ⇒ number -Toggle Slider control, returns true when clicked +Toggle Slider control **Kind**: global function **Returns**: number - The resulting int. @@ -8915,7 +8918,7 @@ Check Box control, returns true when active ## GuiComboBox(bounds, text, active) ⇒ number -Combo Box control, returns selected item index +Combo Box control **Kind**: global function **Returns**: number - The resulting int. @@ -8929,7 +8932,7 @@ Combo Box control, returns selected item index ## GuiDropdownBox(bounds, text, active, editMode) ⇒ number -Dropdown Box control, returns selected item +Dropdown Box control **Kind**: global function **Returns**: number - The resulting int. @@ -8944,7 +8947,7 @@ Dropdown Box control, returns selected item ## GuiSpinner(bounds, text, value, minValue, maxValue, editMode) ⇒ number -Spinner control, returns selected value +Spinner control **Kind**: global function **Returns**: number - The resulting int. @@ -8975,6 +8978,22 @@ Value Box control, updates input text with numbers | maxValue | number | | editMode | boolean | + + +## GuiValueBoxFloat(bounds, text, textValue, value, editMode) ⇒ number +Value box control for float values + +**Kind**: global function +**Returns**: number - The resulting int. + +| Param | Type | +| --- | --- | +| bounds | [Rectangle](#Rectangle) | +| text | string | +| textValue | string | +| value | number | +| editMode | boolean | + ## GuiTextBox(bounds, text, textSize, editMode) ⇒ number @@ -8993,7 +9012,7 @@ Text Box control, updates input text ## GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number -Slider control, returns selected value +Slider control **Kind**: global function **Returns**: number - The resulting int. @@ -9010,7 +9029,7 @@ Slider control, returns selected value ## GuiSliderBar(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number -Slider Bar control, returns selected value +Slider Bar control **Kind**: global function **Returns**: number - The resulting int. @@ -9027,7 +9046,7 @@ Slider Bar control, returns selected value ## GuiProgressBar(bounds, textLeft, textRight, value, minValue, maxValue) ⇒ number -Progress Bar control, shows current progress value +Progress Bar control **Kind**: global function **Returns**: number - The resulting int. @@ -9070,7 +9089,7 @@ Dummy control for placeholders ## GuiGrid(bounds, text, spacing, subdivs, mouseCell) ⇒ number -Grid control, returns mouse cell position +Grid control **Kind**: global function **Returns**: number - The resulting int. @@ -9086,7 +9105,7 @@ Grid control, returns mouse cell position ## GuiListView(bounds, text, scrollIndex, active) ⇒ number -List View control, returns selected list item index +List View control **Kind**: global function **Returns**: number - The resulting int. @@ -9221,7 +9240,7 @@ Color Picker control that avoids conversion to RGB on each call (multiple color ## GuiColorPanelHSV(bounds, text, colorHsv) ⇒ number -Color Panel control that returns HSV color value, used by GuiColorPickerHSV() +Color Panel control that updates Hue-Saturation-Value color value, used by GuiColorPickerHSV() **Kind**: global function **Returns**: number - The resulting int. diff --git a/src/generated/node-raylib-drm.js b/src/generated/node-raylib-drm.js index e3d1de4..70e7675 100644 --- a/src/generated/node-raylib-drm.js +++ b/src/generated/node-raylib-drm.js @@ -5594,7 +5594,7 @@ function LoadFont(fileName) { raylib.LoadFont = LoadFont /** - * Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont + * Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set * * @param {string} fileName * @param {number} fontSize @@ -11247,9811 +11247,6084 @@ function QuaternionEquals(p, q) { raylib.QuaternionEquals = QuaternionEquals /** - * Enable gui controls (global state) + * Choose the current matrix to be transformed * - * @return {undefined} - */ -function GuiEnable() { - return r.BindGuiEnable() -} -raylib.GuiEnable = GuiEnable - -/** - * Disable gui controls (global state) + * @param {number} mode * * @return {undefined} */ -function GuiDisable() { - return r.BindGuiDisable() +function rlMatrixMode(mode) { + return r.BindrlMatrixMode( + mode + ) } -raylib.GuiDisable = GuiDisable +raylib.rlMatrixMode = rlMatrixMode /** - * Lock gui controls (global state) + * Push the current matrix to stack * * @return {undefined} */ -function GuiLock() { - return r.BindGuiLock() +function rlPushMatrix() { + return r.BindrlPushMatrix() } -raylib.GuiLock = GuiLock +raylib.rlPushMatrix = rlPushMatrix /** - * Unlock gui controls (global state) + * Pop latest inserted matrix from stack * * @return {undefined} */ -function GuiUnlock() { - return r.BindGuiUnlock() +function rlPopMatrix() { + return r.BindrlPopMatrix() } -raylib.GuiUnlock = GuiUnlock +raylib.rlPopMatrix = rlPopMatrix /** - * Check if gui is locked (global state) + * Reset current matrix to identity matrix * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function GuiIsLocked() { - return r.BindGuiIsLocked() +function rlLoadIdentity() { + return r.BindrlLoadIdentity() } -raylib.GuiIsLocked = GuiIsLocked +raylib.rlLoadIdentity = rlLoadIdentity /** - * Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f + * Multiply the current matrix by a translation matrix * - * @param {number} alpha + * @param {number} x + * @param {number} y + * @param {number} z * * @return {undefined} */ -function GuiSetAlpha(alpha) { - return r.BindGuiSetAlpha( - alpha +function rlTranslatef(x, y, z) { + return r.BindrlTranslatef( + x, + y, + z ) } -raylib.GuiSetAlpha = GuiSetAlpha +raylib.rlTranslatef = rlTranslatef /** - * Set gui state (global state) + * Multiply the current matrix by a rotation matrix * - * @param {number} state + * @param {number} angle + * @param {number} x + * @param {number} y + * @param {number} z * * @return {undefined} */ -function GuiSetState(state) { - return r.BindGuiSetState( - state +function rlRotatef(angle, x, y, z) { + return r.BindrlRotatef( + angle, + x, + y, + z ) } -raylib.GuiSetState = GuiSetState +raylib.rlRotatef = rlRotatef /** - * Get gui state (global state) + * Multiply the current matrix by a scaling matrix * - * @return {number} The resulting int. + * @param {number} x + * @param {number} y + * @param {number} z + * + * @return {undefined} */ -function GuiGetState() { - return r.BindGuiGetState() +function rlScalef(x, y, z) { + return r.BindrlScalef( + x, + y, + z + ) } -raylib.GuiGetState = GuiGetState +raylib.rlScalef = rlScalef /** - * Set gui custom font (global state) + * Multiply the current matrix by another matrix * - * @param {Font} font + * @param {number} matf * * @return {undefined} */ -function GuiSetFont(font) { - return r.BindGuiSetFont( - font.baseSize, - font.glyphCount, - font.glyphPadding, - font.texture.id, - font.texture.width, - font.texture.height, - font.texture.mipmaps, - font.texture.format, - font.recs, - font.glyphs +function rlMultMatrixf(matf) { + return r.BindrlMultMatrixf( + matf ) } -raylib.GuiSetFont = GuiSetFont +raylib.rlMultMatrixf = rlMultMatrixf -/** - * Get gui custom font (global state) - * - * @return {Font} The resulting Font. - */ -function GuiGetFont() { - return r.BindGuiGetFont() +function rlFrustum(left, right, bottom, top, znear, zfar) { + return r.BindrlFrustum( + left, + right, + bottom, + top, + znear, + zfar + ) } -raylib.GuiGetFont = GuiGetFont +raylib.rlFrustum = rlFrustum -/** - * Set one style property - * - * @param {number} control - * @param {number} property - * @param {number} value - * - * @return {undefined} - */ -function GuiSetStyle(control, property, value) { - return r.BindGuiSetStyle( - control, - property, - value +function rlOrtho(left, right, bottom, top, znear, zfar) { + return r.BindrlOrtho( + left, + right, + bottom, + top, + znear, + zfar ) } -raylib.GuiSetStyle = GuiSetStyle +raylib.rlOrtho = rlOrtho /** - * Get one style property + * Set the viewport area * - * @param {number} control - * @param {number} property + * @param {number} x + * @param {number} y + * @param {number} width + * @param {number} height * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiGetStyle(control, property) { - return r.BindGuiGetStyle( - control, - property +function rlViewport(x, y, width, height) { + return r.BindrlViewport( + x, + y, + width, + height ) } -raylib.GuiGetStyle = GuiGetStyle +raylib.rlViewport = rlViewport /** - * Load style file over global style variable (.rgs) + * Initialize drawing mode (how to organize vertex) * - * @param {string} fileName + * @param {number} mode * * @return {undefined} */ -function GuiLoadStyle(fileName) { - return r.BindGuiLoadStyle( - fileName +function rlBegin(mode) { + return r.BindrlBegin( + mode ) } -raylib.GuiLoadStyle = GuiLoadStyle +raylib.rlBegin = rlBegin /** - * Load style default over global style + * Finish vertex providing * * @return {undefined} */ -function GuiLoadStyleDefault() { - return r.BindGuiLoadStyleDefault() +function rlEnd() { + return r.BindrlEnd() } -raylib.GuiLoadStyleDefault = GuiLoadStyleDefault +raylib.rlEnd = rlEnd /** - * Enable gui tooltips (global state) + * Define one vertex (position) - 2 int * - * @return {undefined} - */ -function GuiEnableTooltip() { - return r.BindGuiEnableTooltip() -} -raylib.GuiEnableTooltip = GuiEnableTooltip - -/** - * Disable gui tooltips (global state) + * @param {number} x + * @param {number} y * * @return {undefined} */ -function GuiDisableTooltip() { - return r.BindGuiDisableTooltip() +function rlVertex2i(x, y) { + return r.BindrlVertex2i( + x, + y + ) } -raylib.GuiDisableTooltip = GuiDisableTooltip +raylib.rlVertex2i = rlVertex2i /** - * Set tooltip string + * Define one vertex (position) - 2 float * - * @param {string} tooltip + * @param {number} x + * @param {number} y * * @return {undefined} */ -function GuiSetTooltip(tooltip) { - return r.BindGuiSetTooltip( - tooltip +function rlVertex2f(x, y) { + return r.BindrlVertex2f( + x, + y ) } -raylib.GuiSetTooltip = GuiSetTooltip +raylib.rlVertex2f = rlVertex2f /** - * Get text with icon id prepended (if supported) + * Define one vertex (position) - 3 float * - * @param {number} iconId - * @param {string} text + * @param {number} x + * @param {number} y + * @param {number} z * - * @return {string} The resulting const char *. + * @return {undefined} */ -function GuiIconText(iconId, text) { - return r.BindGuiIconText( - iconId, - text +function rlVertex3f(x, y, z) { + return r.BindrlVertex3f( + x, + y, + z ) } -raylib.GuiIconText = GuiIconText +raylib.rlVertex3f = rlVertex3f /** - * Set default icon drawing size + * Define one vertex (texture coordinate) - 2 float * - * @param {number} scale + * @param {number} x + * @param {number} y * * @return {undefined} */ -function GuiSetIconScale(scale) { - return r.BindGuiSetIconScale( - scale +function rlTexCoord2f(x, y) { + return r.BindrlTexCoord2f( + x, + y ) } -raylib.GuiSetIconScale = GuiSetIconScale +raylib.rlTexCoord2f = rlTexCoord2f /** - * Get raygui icons data pointer + * Define one vertex (normal) - 3 float * - * @return {number} The resulting unsigned int *. + * @param {number} x + * @param {number} y + * @param {number} z + * + * @return {undefined} */ -function GuiGetIcons() { - return r.BindGuiGetIcons() +function rlNormal3f(x, y, z) { + return r.BindrlNormal3f( + x, + y, + z + ) } -raylib.GuiGetIcons = GuiGetIcons +raylib.rlNormal3f = rlNormal3f /** - * Load raygui icons file (.rgi) into internal icons data + * Define one vertex (color) - 4 byte * - * @param {string} fileName - * @param {boolean} loadIconsName + * @param {number} r + * @param {number} g + * @param {number} b + * @param {number} a * - * @return {number} The resulting char **. + * @return {undefined} */ -function GuiLoadIcons(fileName, loadIconsName) { - return r.BindGuiLoadIcons( - fileName, - loadIconsName +function rlColor4ub(r, g, b, a) { + return r.BindrlColor4ub( + r, + g, + b, + a ) } -raylib.GuiLoadIcons = GuiLoadIcons +raylib.rlColor4ub = rlColor4ub /** - * Draw icon using pixel size at specified position + * Define one vertex (color) - 3 float * - * @param {number} iconId - * @param {number} posX - * @param {number} posY - * @param {number} pixelSize - * @param {Color} color + * @param {number} x + * @param {number} y + * @param {number} z * * @return {undefined} */ -function GuiDrawIcon(iconId, posX, posY, pixelSize, color) { - return r.BindGuiDrawIcon( - iconId, - posX, - posY, - pixelSize, - color.r, - color.g, - color.b, - color.a +function rlColor3f(x, y, z) { + return r.BindrlColor3f( + x, + y, + z ) } -raylib.GuiDrawIcon = GuiDrawIcon +raylib.rlColor3f = rlColor3f /** - * Window Box control, shows a window that can be closed + * Define one vertex (color) - 4 float * - * @param {Rectangle} bounds - * @param {string} title + * @param {number} x + * @param {number} y + * @param {number} z + * @param {number} w * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiWindowBox(bounds, title) { - return r.BindGuiWindowBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - title +function rlColor4f(x, y, z, w) { + return r.BindrlColor4f( + x, + y, + z, + w ) } -raylib.GuiWindowBox = GuiWindowBox +raylib.rlColor4f = rlColor4f /** - * Group Box control with text name + * Enable vertex array (VAO, if supported) * - * @param {Rectangle} bounds - * @param {string} text + * @param {number} vaoId * - * @return {number} The resulting int. + * @return {boolean} The resulting bool. */ -function GuiGroupBox(bounds, text) { - return r.BindGuiGroupBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text +function rlEnableVertexArray(vaoId) { + return r.BindrlEnableVertexArray( + vaoId ) } -raylib.GuiGroupBox = GuiGroupBox +raylib.rlEnableVertexArray = rlEnableVertexArray /** - * Line separator control, could contain text - * - * @param {Rectangle} bounds - * @param {string} text + * Disable vertex array (VAO, if supported) * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiLine(bounds, text) { - return r.BindGuiLine( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text - ) +function rlDisableVertexArray() { + return r.BindrlDisableVertexArray() } -raylib.GuiLine = GuiLine +raylib.rlDisableVertexArray = rlDisableVertexArray /** - * Panel control, useful to group controls + * Enable vertex buffer (VBO) * - * @param {Rectangle} bounds - * @param {string} text + * @param {number} id * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiPanel(bounds, text) { - return r.BindGuiPanel( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text +function rlEnableVertexBuffer(id) { + return r.BindrlEnableVertexBuffer( + id ) } -raylib.GuiPanel = GuiPanel +raylib.rlEnableVertexBuffer = rlEnableVertexBuffer /** - * Tab Bar control, returns TAB to be closed or -1 - * - * @param {Rectangle} bounds - * @param {number} text - * @param {number} count - * @param {number} active + * Disable vertex buffer (VBO) * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiTabBar(bounds, text, count, active) { - return r.BindGuiTabBar( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - count, - active - ) +function rlDisableVertexBuffer() { + return r.BindrlDisableVertexBuffer() } -raylib.GuiTabBar = GuiTabBar +raylib.rlDisableVertexBuffer = rlDisableVertexBuffer /** - * Scroll Panel control + * Enable vertex buffer element (VBO element) * - * @param {Rectangle} bounds - * @param {string} text - * @param {Rectangle} content - * @param {number} scroll - * @param {number} view + * @param {number} id * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiScrollPanel(bounds, text, content, scroll, view) { - return r.BindGuiScrollPanel( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - content.x, - content.y, - content.width, - content.height, - scroll, - view +function rlEnableVertexBufferElement(id) { + return r.BindrlEnableVertexBufferElement( + id ) } -raylib.GuiScrollPanel = GuiScrollPanel +raylib.rlEnableVertexBufferElement = rlEnableVertexBufferElement /** - * Label control, shows text - * - * @param {Rectangle} bounds - * @param {string} text + * Disable vertex buffer element (VBO element) * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiLabel(bounds, text) { - return r.BindGuiLabel( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text - ) +function rlDisableVertexBufferElement() { + return r.BindrlDisableVertexBufferElement() } -raylib.GuiLabel = GuiLabel +raylib.rlDisableVertexBufferElement = rlDisableVertexBufferElement /** - * Button control, returns true when clicked + * Enable vertex attribute index * - * @param {Rectangle} bounds - * @param {string} text + * @param {number} index * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiButton(bounds, text) { - return r.BindGuiButton( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text +function rlEnableVertexAttribute(index) { + return r.BindrlEnableVertexAttribute( + index ) } -raylib.GuiButton = GuiButton +raylib.rlEnableVertexAttribute = rlEnableVertexAttribute /** - * Label button control, show true when clicked + * Disable vertex attribute index * - * @param {Rectangle} bounds - * @param {string} text + * @param {number} index * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiLabelButton(bounds, text) { - return r.BindGuiLabelButton( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text +function rlDisableVertexAttribute(index) { + return r.BindrlDisableVertexAttribute( + index ) } -raylib.GuiLabelButton = GuiLabelButton +raylib.rlDisableVertexAttribute = rlDisableVertexAttribute /** - * Toggle Button control, returns true when active + * Select and active a texture slot * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} active + * @param {number} slot * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiToggle(bounds, text, active) { - return r.BindGuiToggle( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - active +function rlActiveTextureSlot(slot) { + return r.BindrlActiveTextureSlot( + slot ) } -raylib.GuiToggle = GuiToggle +raylib.rlActiveTextureSlot = rlActiveTextureSlot /** - * Toggle Group control, returns active toggle index + * Enable texture * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} active + * @param {number} id * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiToggleGroup(bounds, text, active) { - return r.BindGuiToggleGroup( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - active +function rlEnableTexture(id) { + return r.BindrlEnableTexture( + id ) } -raylib.GuiToggleGroup = GuiToggleGroup +raylib.rlEnableTexture = rlEnableTexture /** - * Toggle Slider control, returns true when clicked - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} active + * Disable texture * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiToggleSlider(bounds, text, active) { - return r.BindGuiToggleSlider( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - active - ) +function rlDisableTexture() { + return r.BindrlDisableTexture() } -raylib.GuiToggleSlider = GuiToggleSlider +raylib.rlDisableTexture = rlDisableTexture /** - * Check Box control, returns true when active + * Enable texture cubemap * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} checked + * @param {number} id * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiCheckBox(bounds, text, checked) { - return r.BindGuiCheckBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - checked +function rlEnableTextureCubemap(id) { + return r.BindrlEnableTextureCubemap( + id ) } -raylib.GuiCheckBox = GuiCheckBox +raylib.rlEnableTextureCubemap = rlEnableTextureCubemap /** - * Combo Box control, returns selected item index - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} active + * Disable texture cubemap * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiComboBox(bounds, text, active) { - return r.BindGuiComboBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - active - ) +function rlDisableTextureCubemap() { + return r.BindrlDisableTextureCubemap() } -raylib.GuiComboBox = GuiComboBox +raylib.rlDisableTextureCubemap = rlDisableTextureCubemap /** - * Dropdown Box control, returns selected item + * Set texture parameters (filter, wrap) * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} active - * @param {boolean} editMode + * @param {number} id + * @param {number} param + * @param {number} value * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiDropdownBox(bounds, text, active, editMode) { - return r.BindGuiDropdownBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - active, - editMode +function rlTextureParameters(id, param, value) { + return r.BindrlTextureParameters( + id, + param, + value ) } -raylib.GuiDropdownBox = GuiDropdownBox +raylib.rlTextureParameters = rlTextureParameters /** - * Spinner control, returns selected value + * Set cubemap parameters (filter, wrap) * - * @param {Rectangle} bounds - * @param {string} text + * @param {number} id + * @param {number} param * @param {number} value - * @param {number} minValue - * @param {number} maxValue - * @param {boolean} editMode * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiSpinner(bounds, text, value, minValue, maxValue, editMode) { - return r.BindGuiSpinner( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - value, - minValue, - maxValue, - editMode +function rlCubemapParameters(id, param, value) { + return r.BindrlCubemapParameters( + id, + param, + value ) } -raylib.GuiSpinner = GuiSpinner +raylib.rlCubemapParameters = rlCubemapParameters /** - * Value Box control, updates input text with numbers + * Enable shader program * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} value - * @param {number} minValue - * @param {number} maxValue - * @param {boolean} editMode + * @param {number} id * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiValueBox(bounds, text, value, minValue, maxValue, editMode) { - return r.BindGuiValueBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - value, - minValue, - maxValue, - editMode +function rlEnableShader(id) { + return r.BindrlEnableShader( + id ) } -raylib.GuiValueBox = GuiValueBox +raylib.rlEnableShader = rlEnableShader /** - * Text Box control, updates input text - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} textSize - * @param {boolean} editMode + * Disable shader program * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiTextBox(bounds, text, textSize, editMode) { - return r.BindGuiTextBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - textSize, - editMode - ) +function rlDisableShader() { + return r.BindrlDisableShader() } -raylib.GuiTextBox = GuiTextBox +raylib.rlDisableShader = rlDisableShader /** - * Slider control, returns selected value + * Enable render texture (fbo) * - * @param {Rectangle} bounds - * @param {string} textLeft - * @param {string} textRight - * @param {number} value - * @param {number} minValue - * @param {number} maxValue + * @param {number} id * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue) { - return r.BindGuiSlider( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - textLeft, - textRight, - value, - minValue, - maxValue +function rlEnableFramebuffer(id) { + return r.BindrlEnableFramebuffer( + id ) } -raylib.GuiSlider = GuiSlider +raylib.rlEnableFramebuffer = rlEnableFramebuffer /** - * Slider Bar control, returns selected value - * - * @param {Rectangle} bounds - * @param {string} textLeft - * @param {string} textRight - * @param {number} value - * @param {number} minValue - * @param {number} maxValue + * Disable render texture (fbo), return to default framebuffer * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiSliderBar(bounds, textLeft, textRight, value, minValue, maxValue) { - return r.BindGuiSliderBar( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - textLeft, - textRight, - value, - minValue, - maxValue - ) +function rlDisableFramebuffer() { + return r.BindrlDisableFramebuffer() } -raylib.GuiSliderBar = GuiSliderBar +raylib.rlDisableFramebuffer = rlDisableFramebuffer /** - * Progress Bar control, shows current progress value + * Activate multiple draw color buffers * - * @param {Rectangle} bounds - * @param {string} textLeft - * @param {string} textRight - * @param {number} value - * @param {number} minValue - * @param {number} maxValue + * @param {number} count * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiProgressBar(bounds, textLeft, textRight, value, minValue, maxValue) { - return r.BindGuiProgressBar( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - textLeft, - textRight, - value, - minValue, - maxValue +function rlActiveDrawBuffers(count) { + return r.BindrlActiveDrawBuffers( + count ) } -raylib.GuiProgressBar = GuiProgressBar +raylib.rlActiveDrawBuffers = rlActiveDrawBuffers /** - * Status Bar control, shows info text + * Blit active framebuffer to main framebuffer * - * @param {Rectangle} bounds - * @param {string} text + * @param {number} srcX + * @param {number} srcY + * @param {number} srcWidth + * @param {number} srcHeight + * @param {number} dstX + * @param {number} dstY + * @param {number} dstWidth + * @param {number} dstHeight + * @param {number} bufferMask * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiStatusBar(bounds, text) { - return r.BindGuiStatusBar( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text +function rlBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask) { + return r.BindrlBlitFramebuffer( + srcX, + srcY, + srcWidth, + srcHeight, + dstX, + dstY, + dstWidth, + dstHeight, + bufferMask ) } -raylib.GuiStatusBar = GuiStatusBar +raylib.rlBlitFramebuffer = rlBlitFramebuffer /** - * Dummy control for placeholders - * - * @param {Rectangle} bounds - * @param {string} text + * Enable color blending * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiDummyRec(bounds, text) { - return r.BindGuiDummyRec( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text - ) +function rlEnableColorBlend() { + return r.BindrlEnableColorBlend() } -raylib.GuiDummyRec = GuiDummyRec +raylib.rlEnableColorBlend = rlEnableColorBlend /** - * Grid control, returns mouse cell position - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} spacing - * @param {number} subdivs - * @param {number} mouseCell + * Disable color blending * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiGrid(bounds, text, spacing, subdivs, mouseCell) { - return r.BindGuiGrid( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - spacing, - subdivs, - mouseCell - ) +function rlDisableColorBlend() { + return r.BindrlDisableColorBlend() } -raylib.GuiGrid = GuiGrid +raylib.rlDisableColorBlend = rlDisableColorBlend /** - * List View control, returns selected list item index - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} scrollIndex - * @param {number} active + * Enable depth test * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiListView(bounds, text, scrollIndex, active) { - return r.BindGuiListView( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - scrollIndex, - active - ) +function rlEnableDepthTest() { + return r.BindrlEnableDepthTest() } -raylib.GuiListView = GuiListView +raylib.rlEnableDepthTest = rlEnableDepthTest /** - * List View with extended parameters - * - * @param {Rectangle} bounds - * @param {number} text - * @param {number} count - * @param {number} scrollIndex - * @param {number} active - * @param {number} focus + * Disable depth test * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiListViewEx(bounds, text, count, scrollIndex, active, focus) { - return r.BindGuiListViewEx( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - count, - scrollIndex, - active, - focus - ) +function rlDisableDepthTest() { + return r.BindrlDisableDepthTest() } -raylib.GuiListViewEx = GuiListViewEx +raylib.rlDisableDepthTest = rlDisableDepthTest /** - * Message Box control, displays a message + * Enable depth write * - * @param {Rectangle} bounds - * @param {string} title - * @param {string} message - * @param {string} buttons + * @return {undefined} + */ +function rlEnableDepthMask() { + return r.BindrlEnableDepthMask() +} +raylib.rlEnableDepthMask = rlEnableDepthMask + +/** + * Disable depth write * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiMessageBox(bounds, title, message, buttons) { - return r.BindGuiMessageBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - title, - message, - buttons - ) +function rlDisableDepthMask() { + return r.BindrlDisableDepthMask() } -raylib.GuiMessageBox = GuiMessageBox +raylib.rlDisableDepthMask = rlDisableDepthMask /** - * Text Input Box control, ask for text, supports secret + * Enable backface culling * - * @param {Rectangle} bounds - * @param {string} title - * @param {string} message - * @param {string} buttons - * @param {string} text - * @param {number} textMaxSize - * @param {number} secretViewActive + * @return {undefined} + */ +function rlEnableBackfaceCulling() { + return r.BindrlEnableBackfaceCulling() +} +raylib.rlEnableBackfaceCulling = rlEnableBackfaceCulling + +/** + * Disable backface culling * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiTextInputBox(bounds, title, message, buttons, text, textMaxSize, secretViewActive) { - return r.BindGuiTextInputBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - title, - message, - buttons, - text, - textMaxSize, - secretViewActive - ) +function rlDisableBackfaceCulling() { + return r.BindrlDisableBackfaceCulling() } -raylib.GuiTextInputBox = GuiTextInputBox +raylib.rlDisableBackfaceCulling = rlDisableBackfaceCulling /** - * Color Picker control (multiple color controls) + * Set face culling mode * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} color + * @param {number} mode * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiColorPicker(bounds, text, color) { - return r.BindGuiColorPicker( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - color +function rlSetCullFace(mode) { + return r.BindrlSetCullFace( + mode ) } -raylib.GuiColorPicker = GuiColorPicker +raylib.rlSetCullFace = rlSetCullFace /** - * Color Panel control + * Enable scissor test * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} color + * @return {undefined} + */ +function rlEnableScissorTest() { + return r.BindrlEnableScissorTest() +} +raylib.rlEnableScissorTest = rlEnableScissorTest + +/** + * Disable scissor test * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiColorPanel(bounds, text, color) { - return r.BindGuiColorPanel( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - color - ) +function rlDisableScissorTest() { + return r.BindrlDisableScissorTest() } -raylib.GuiColorPanel = GuiColorPanel +raylib.rlDisableScissorTest = rlDisableScissorTest /** - * Color Bar Alpha control + * Scissor test * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} alpha + * @param {number} x + * @param {number} y + * @param {number} width + * @param {number} height * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiColorBarAlpha(bounds, text, alpha) { - return r.BindGuiColorBarAlpha( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - alpha +function rlScissor(x, y, width, height) { + return r.BindrlScissor( + x, + y, + width, + height ) } -raylib.GuiColorBarAlpha = GuiColorBarAlpha +raylib.rlScissor = rlScissor /** - * Color Bar Hue control - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} value + * Enable wire mode * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiColorBarHue(bounds, text, value) { - return r.BindGuiColorBarHue( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - value - ) +function rlEnableWireMode() { + return r.BindrlEnableWireMode() } -raylib.GuiColorBarHue = GuiColorBarHue +raylib.rlEnableWireMode = rlEnableWireMode /** - * Color Picker control that avoids conversion to RGB on each call (multiple color controls) + * Enable point mode * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} colorHsv + * @return {undefined} + */ +function rlEnablePointMode() { + return r.BindrlEnablePointMode() +} +raylib.rlEnablePointMode = rlEnablePointMode + +/** + * Disable wire mode ( and point ) maybe rename * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiColorPickerHSV(bounds, text, colorHsv) { - return r.BindGuiColorPickerHSV( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - colorHsv - ) +function rlDisableWireMode() { + return r.BindrlDisableWireMode() } -raylib.GuiColorPickerHSV = GuiColorPickerHSV +raylib.rlDisableWireMode = rlDisableWireMode /** - * Color Panel control that returns HSV color value, used by GuiColorPickerHSV() + * Set the line drawing width * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} colorHsv + * @param {number} width * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiColorPanelHSV(bounds, text, colorHsv) { - return r.BindGuiColorPanelHSV( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - colorHsv +function rlSetLineWidth(width) { + return r.BindrlSetLineWidth( + width ) } -raylib.GuiColorPanelHSV = GuiColorPanelHSV +raylib.rlSetLineWidth = rlSetLineWidth /** - * Choose the current matrix to be transformed + * Get the line drawing width * - * @param {number} mode + * @return {number} The resulting float. + */ +function rlGetLineWidth() { + return r.BindrlGetLineWidth() +} +raylib.rlGetLineWidth = rlGetLineWidth + +/** + * Enable line aliasing * * @return {undefined} */ -function rlMatrixMode(mode) { - return r.BindrlMatrixMode( - mode - ) +function rlEnableSmoothLines() { + return r.BindrlEnableSmoothLines() } -raylib.rlMatrixMode = rlMatrixMode +raylib.rlEnableSmoothLines = rlEnableSmoothLines /** - * Push the current matrix to stack + * Disable line aliasing * * @return {undefined} */ -function rlPushMatrix() { - return r.BindrlPushMatrix() +function rlDisableSmoothLines() { + return r.BindrlDisableSmoothLines() } -raylib.rlPushMatrix = rlPushMatrix +raylib.rlDisableSmoothLines = rlDisableSmoothLines /** - * Pop latest inserted matrix from stack + * Enable stereo rendering * * @return {undefined} */ -function rlPopMatrix() { - return r.BindrlPopMatrix() +function rlEnableStereoRender() { + return r.BindrlEnableStereoRender() } -raylib.rlPopMatrix = rlPopMatrix +raylib.rlEnableStereoRender = rlEnableStereoRender /** - * Reset current matrix to identity matrix + * Disable stereo rendering * * @return {undefined} */ -function rlLoadIdentity() { - return r.BindrlLoadIdentity() +function rlDisableStereoRender() { + return r.BindrlDisableStereoRender() } -raylib.rlLoadIdentity = rlLoadIdentity +raylib.rlDisableStereoRender = rlDisableStereoRender /** - * Multiply the current matrix by a translation matrix - * - * @param {number} x - * @param {number} y - * @param {number} z + * Check if stereo render is enabled * - * @return {undefined} + * @return {boolean} The resulting bool. */ -function rlTranslatef(x, y, z) { - return r.BindrlTranslatef( - x, - y, - z - ) +function rlIsStereoRenderEnabled() { + return r.BindrlIsStereoRenderEnabled() } -raylib.rlTranslatef = rlTranslatef +raylib.rlIsStereoRenderEnabled = rlIsStereoRenderEnabled /** - * Multiply the current matrix by a rotation matrix + * Clear color buffer with color * - * @param {number} angle - * @param {number} x - * @param {number} y - * @param {number} z + * @param {number} r + * @param {number} g + * @param {number} b + * @param {number} a * * @return {undefined} */ -function rlRotatef(angle, x, y, z) { - return r.BindrlRotatef( - angle, - x, - y, - z +function rlClearColor(r, g, b, a) { + return r.BindrlClearColor( + r, + g, + b, + a ) } -raylib.rlRotatef = rlRotatef +raylib.rlClearColor = rlClearColor /** - * Multiply the current matrix by a scaling matrix + * Clear used screen buffers (color and depth) * - * @param {number} x - * @param {number} y - * @param {number} z + * @return {undefined} + */ +function rlClearScreenBuffers() { + return r.BindrlClearScreenBuffers() +} +raylib.rlClearScreenBuffers = rlClearScreenBuffers + +/** + * Check and log OpenGL error codes * * @return {undefined} */ -function rlScalef(x, y, z) { - return r.BindrlScalef( - x, - y, - z - ) +function rlCheckErrors() { + return r.BindrlCheckErrors() } -raylib.rlScalef = rlScalef +raylib.rlCheckErrors = rlCheckErrors /** - * Multiply the current matrix by another matrix + * Set blending mode * - * @param {number} matf + * @param {number} mode * * @return {undefined} */ -function rlMultMatrixf(matf) { - return r.BindrlMultMatrixf( - matf +function rlSetBlendMode(mode) { + return r.BindrlSetBlendMode( + mode ) } -raylib.rlMultMatrixf = rlMultMatrixf - -function rlFrustum(left, right, bottom, top, znear, zfar) { - return r.BindrlFrustum( - left, - right, - bottom, - top, - znear, - zfar - ) -} -raylib.rlFrustum = rlFrustum - -function rlOrtho(left, right, bottom, top, znear, zfar) { - return r.BindrlOrtho( - left, - right, - bottom, - top, - znear, - zfar - ) -} -raylib.rlOrtho = rlOrtho +raylib.rlSetBlendMode = rlSetBlendMode /** - * Set the viewport area + * Set blending mode factor and equation (using OpenGL factors) * - * @param {number} x - * @param {number} y - * @param {number} width - * @param {number} height + * @param {number} glSrcFactor + * @param {number} glDstFactor + * @param {number} glEquation * * @return {undefined} */ -function rlViewport(x, y, width, height) { - return r.BindrlViewport( - x, - y, - width, - height +function rlSetBlendFactors(glSrcFactor, glDstFactor, glEquation) { + return r.BindrlSetBlendFactors( + glSrcFactor, + glDstFactor, + glEquation ) } -raylib.rlViewport = rlViewport +raylib.rlSetBlendFactors = rlSetBlendFactors /** - * Initialize drawing mode (how to organize vertex) + * Set blending mode factors and equations separately (using OpenGL factors) * - * @param {number} mode + * @param {number} glSrcRGB + * @param {number} glDstRGB + * @param {number} glSrcAlpha + * @param {number} glDstAlpha + * @param {number} glEqRGB + * @param {number} glEqAlpha * * @return {undefined} */ -function rlBegin(mode) { - return r.BindrlBegin( - mode +function rlSetBlendFactorsSeparate(glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha) { + return r.BindrlSetBlendFactorsSeparate( + glSrcRGB, + glDstRGB, + glSrcAlpha, + glDstAlpha, + glEqRGB, + glEqAlpha ) } -raylib.rlBegin = rlBegin +raylib.rlSetBlendFactorsSeparate = rlSetBlendFactorsSeparate /** - * Finish vertex providing + * Initialize rlgl (buffers, shaders, textures, states) + * + * @param {number} width + * @param {number} height * * @return {undefined} */ -function rlEnd() { - return r.BindrlEnd() +function rlglInit(width, height) { + return r.BindrlglInit( + width, + height + ) } -raylib.rlEnd = rlEnd +raylib.rlglInit = rlglInit /** - * Define one vertex (position) - 2 int - * - * @param {number} x - * @param {number} y + * De-initialize rlgl (buffers, shaders, textures) * * @return {undefined} */ -function rlVertex2i(x, y) { - return r.BindrlVertex2i( - x, - y - ) +function rlglClose() { + return r.BindrlglClose() } -raylib.rlVertex2i = rlVertex2i +raylib.rlglClose = rlglClose /** - * Define one vertex (position) - 2 float + * Load OpenGL extensions (loader function required) * - * @param {number} x - * @param {number} y + * @param {number} loader * * @return {undefined} */ -function rlVertex2f(x, y) { - return r.BindrlVertex2f( - x, - y +function rlLoadExtensions(loader) { + return r.BindrlLoadExtensions( + loader ) } -raylib.rlVertex2f = rlVertex2f +raylib.rlLoadExtensions = rlLoadExtensions /** - * Define one vertex (position) - 3 float - * - * @param {number} x - * @param {number} y - * @param {number} z + * Get current OpenGL version * - * @return {undefined} + * @return {number} The resulting int. */ -function rlVertex3f(x, y, z) { - return r.BindrlVertex3f( - x, - y, - z - ) +function rlGetVersion() { + return r.BindrlGetVersion() } -raylib.rlVertex3f = rlVertex3f +raylib.rlGetVersion = rlGetVersion /** - * Define one vertex (texture coordinate) - 2 float + * Set current framebuffer width * - * @param {number} x - * @param {number} y + * @param {number} width * * @return {undefined} */ -function rlTexCoord2f(x, y) { - return r.BindrlTexCoord2f( - x, - y +function rlSetFramebufferWidth(width) { + return r.BindrlSetFramebufferWidth( + width ) } -raylib.rlTexCoord2f = rlTexCoord2f +raylib.rlSetFramebufferWidth = rlSetFramebufferWidth /** - * Define one vertex (normal) - 3 float - * - * @param {number} x - * @param {number} y - * @param {number} z + * Get default framebuffer width * - * @return {undefined} + * @return {number} The resulting int. */ -function rlNormal3f(x, y, z) { - return r.BindrlNormal3f( - x, - y, - z - ) +function rlGetFramebufferWidth() { + return r.BindrlGetFramebufferWidth() } -raylib.rlNormal3f = rlNormal3f +raylib.rlGetFramebufferWidth = rlGetFramebufferWidth /** - * Define one vertex (color) - 4 byte + * Set current framebuffer height * - * @param {number} r - * @param {number} g - * @param {number} b - * @param {number} a + * @param {number} height * * @return {undefined} */ -function rlColor4ub(r, g, b, a) { - return r.BindrlColor4ub( - r, - g, - b, - a +function rlSetFramebufferHeight(height) { + return r.BindrlSetFramebufferHeight( + height ) } -raylib.rlColor4ub = rlColor4ub +raylib.rlSetFramebufferHeight = rlSetFramebufferHeight /** - * Define one vertex (color) - 3 float - * - * @param {number} x - * @param {number} y - * @param {number} z + * Get default framebuffer height * - * @return {undefined} + * @return {number} The resulting int. */ -function rlColor3f(x, y, z) { - return r.BindrlColor3f( - x, - y, - z - ) +function rlGetFramebufferHeight() { + return r.BindrlGetFramebufferHeight() } -raylib.rlColor3f = rlColor3f +raylib.rlGetFramebufferHeight = rlGetFramebufferHeight /** - * Define one vertex (color) - 4 float - * - * @param {number} x - * @param {number} y - * @param {number} z - * @param {number} w + * Get default texture id * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlColor4f(x, y, z, w) { - return r.BindrlColor4f( - x, - y, - z, - w - ) +function rlGetTextureIdDefault() { + return r.BindrlGetTextureIdDefault() } -raylib.rlColor4f = rlColor4f +raylib.rlGetTextureIdDefault = rlGetTextureIdDefault /** - * Enable vertex array (VAO, if supported) - * - * @param {number} vaoId + * Get default shader id * - * @return {boolean} The resulting bool. + * @return {number} The resulting unsigned int. */ -function rlEnableVertexArray(vaoId) { - return r.BindrlEnableVertexArray( - vaoId - ) +function rlGetShaderIdDefault() { + return r.BindrlGetShaderIdDefault() } -raylib.rlEnableVertexArray = rlEnableVertexArray +raylib.rlGetShaderIdDefault = rlGetShaderIdDefault /** - * Disable vertex array (VAO, if supported) + * Get default shader locations * - * @return {undefined} + * @return {number} The resulting int *. */ -function rlDisableVertexArray() { - return r.BindrlDisableVertexArray() +function rlGetShaderLocsDefault() { + return r.BindrlGetShaderLocsDefault() } -raylib.rlDisableVertexArray = rlDisableVertexArray +raylib.rlGetShaderLocsDefault = rlGetShaderLocsDefault /** - * Enable vertex buffer (VBO) + * Load a render batch system * - * @param {number} id + * @param {number} numBuffers + * @param {number} bufferElements * - * @return {undefined} + * @return {rlRenderBatch} The resulting rlRenderBatch. */ -function rlEnableVertexBuffer(id) { - return r.BindrlEnableVertexBuffer( - id +function rlLoadRenderBatch(numBuffers, bufferElements) { + return r.BindrlLoadRenderBatch( + numBuffers, + bufferElements ) } -raylib.rlEnableVertexBuffer = rlEnableVertexBuffer - -/** - * Disable vertex buffer (VBO) - * - * @return {undefined} - */ -function rlDisableVertexBuffer() { - return r.BindrlDisableVertexBuffer() -} -raylib.rlDisableVertexBuffer = rlDisableVertexBuffer +raylib.rlLoadRenderBatch = rlLoadRenderBatch /** - * Enable vertex buffer element (VBO element) + * Unload render batch system * - * @param {number} id + * @param {rlRenderBatch} batch * * @return {undefined} */ -function rlEnableVertexBufferElement(id) { - return r.BindrlEnableVertexBufferElement( - id +function rlUnloadRenderBatch(batch) { + return r.BindrlUnloadRenderBatch( + batch.bufferCount, + batch.currentBuffer, + batch.vertexBuffer, + batch.draws, + batch.drawCounter, + batch.currentDepth ) } -raylib.rlEnableVertexBufferElement = rlEnableVertexBufferElement +raylib.rlUnloadRenderBatch = rlUnloadRenderBatch /** - * Disable vertex buffer element (VBO element) + * Draw render batch data (Update->Draw->Reset) + * + * @param {number} batch * * @return {undefined} */ -function rlDisableVertexBufferElement() { - return r.BindrlDisableVertexBufferElement() +function rlDrawRenderBatch(batch) { + return r.BindrlDrawRenderBatch( + batch + ) } -raylib.rlDisableVertexBufferElement = rlDisableVertexBufferElement +raylib.rlDrawRenderBatch = rlDrawRenderBatch /** - * Enable vertex attribute index + * Set the active render batch for rlgl (NULL for default internal) * - * @param {number} index + * @param {number} batch * * @return {undefined} */ -function rlEnableVertexAttribute(index) { - return r.BindrlEnableVertexAttribute( - index +function rlSetRenderBatchActive(batch) { + return r.BindrlSetRenderBatchActive( + batch ) } -raylib.rlEnableVertexAttribute = rlEnableVertexAttribute +raylib.rlSetRenderBatchActive = rlSetRenderBatchActive /** - * Disable vertex attribute index - * - * @param {number} index + * Update and draw internal render batch * * @return {undefined} */ -function rlDisableVertexAttribute(index) { - return r.BindrlDisableVertexAttribute( - index - ) +function rlDrawRenderBatchActive() { + return r.BindrlDrawRenderBatchActive() } -raylib.rlDisableVertexAttribute = rlDisableVertexAttribute +raylib.rlDrawRenderBatchActive = rlDrawRenderBatchActive /** - * Select and active a texture slot + * Check internal buffer overflow for a given number of vertex * - * @param {number} slot + * @param {number} vCount * - * @return {undefined} + * @return {boolean} The resulting bool. */ -function rlActiveTextureSlot(slot) { - return r.BindrlActiveTextureSlot( - slot +function rlCheckRenderBatchLimit(vCount) { + return r.BindrlCheckRenderBatchLimit( + vCount ) } -raylib.rlActiveTextureSlot = rlActiveTextureSlot +raylib.rlCheckRenderBatchLimit = rlCheckRenderBatchLimit /** - * Enable texture + * Set current texture for render batch and check buffers limits * * @param {number} id * * @return {undefined} */ -function rlEnableTexture(id) { - return r.BindrlEnableTexture( +function rlSetTexture(id) { + return r.BindrlSetTexture( id ) } -raylib.rlEnableTexture = rlEnableTexture +raylib.rlSetTexture = rlSetTexture /** - * Disable texture + * Load vertex array (vao) if supported * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlDisableTexture() { - return r.BindrlDisableTexture() +function rlLoadVertexArray() { + return r.BindrlLoadVertexArray() } -raylib.rlDisableTexture = rlDisableTexture +raylib.rlLoadVertexArray = rlLoadVertexArray /** - * Enable texture cubemap + * Load a vertex buffer attribute * - * @param {number} id + * @param {number} buffer + * @param {number} size + * @param {boolean} dynamic * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlEnableTextureCubemap(id) { - return r.BindrlEnableTextureCubemap( - id +function rlLoadVertexBuffer(buffer, size, dynamic) { + return r.BindrlLoadVertexBuffer( + buffer, + size, + dynamic ) } -raylib.rlEnableTextureCubemap = rlEnableTextureCubemap +raylib.rlLoadVertexBuffer = rlLoadVertexBuffer /** - * Disable texture cubemap + * Load a new attributes element buffer * - * @return {undefined} + * @param {number} buffer + * @param {number} size + * @param {boolean} dynamic + * + * @return {number} The resulting unsigned int. */ -function rlDisableTextureCubemap() { - return r.BindrlDisableTextureCubemap() +function rlLoadVertexBufferElement(buffer, size, dynamic) { + return r.BindrlLoadVertexBufferElement( + buffer, + size, + dynamic + ) } -raylib.rlDisableTextureCubemap = rlDisableTextureCubemap +raylib.rlLoadVertexBufferElement = rlLoadVertexBufferElement /** - * Set texture parameters (filter, wrap) + * Update GPU buffer with new data * - * @param {number} id - * @param {number} param - * @param {number} value + * @param {number} bufferId + * @param {number} data + * @param {number} dataSize + * @param {number} offset * * @return {undefined} */ -function rlTextureParameters(id, param, value) { - return r.BindrlTextureParameters( - id, - param, - value +function rlUpdateVertexBuffer(bufferId, data, dataSize, offset) { + return r.BindrlUpdateVertexBuffer( + bufferId, + data, + dataSize, + offset ) } -raylib.rlTextureParameters = rlTextureParameters +raylib.rlUpdateVertexBuffer = rlUpdateVertexBuffer /** - * Set cubemap parameters (filter, wrap) + * Update vertex buffer elements with new data * * @param {number} id - * @param {number} param - * @param {number} value + * @param {number} data + * @param {number} dataSize + * @param {number} offset * * @return {undefined} */ -function rlCubemapParameters(id, param, value) { - return r.BindrlCubemapParameters( +function rlUpdateVertexBufferElements(id, data, dataSize, offset) { + return r.BindrlUpdateVertexBufferElements( id, - param, - value + data, + dataSize, + offset ) } -raylib.rlCubemapParameters = rlCubemapParameters +raylib.rlUpdateVertexBufferElements = rlUpdateVertexBufferElements -/** - * Enable shader program - * - * @param {number} id - * - * @return {undefined} - */ -function rlEnableShader(id) { - return r.BindrlEnableShader( - id +function rlUnloadVertexArray(vaoId) { + return r.BindrlUnloadVertexArray( + vaoId ) } -raylib.rlEnableShader = rlEnableShader +raylib.rlUnloadVertexArray = rlUnloadVertexArray -/** - * Disable shader program - * - * @return {undefined} - */ -function rlDisableShader() { - return r.BindrlDisableShader() +function rlUnloadVertexBuffer(vboId) { + return r.BindrlUnloadVertexBuffer( + vboId + ) } -raylib.rlDisableShader = rlDisableShader +raylib.rlUnloadVertexBuffer = rlUnloadVertexBuffer -/** - * Enable render texture (fbo) - * - * @param {number} id - * - * @return {undefined} - */ -function rlEnableFramebuffer(id) { - return r.BindrlEnableFramebuffer( - id +function rlSetVertexAttribute(index, compSize, type, normalized, stride, pointer) { + return r.BindrlSetVertexAttribute( + index, + compSize, + type, + normalized, + stride, + pointer ) } -raylib.rlEnableFramebuffer = rlEnableFramebuffer +raylib.rlSetVertexAttribute = rlSetVertexAttribute -/** - * Disable render texture (fbo), return to default framebuffer - * - * @return {undefined} - */ -function rlDisableFramebuffer() { - return r.BindrlDisableFramebuffer() +function rlSetVertexAttributeDivisor(index, divisor) { + return r.BindrlSetVertexAttributeDivisor( + index, + divisor + ) } -raylib.rlDisableFramebuffer = rlDisableFramebuffer +raylib.rlSetVertexAttributeDivisor = rlSetVertexAttributeDivisor /** - * Activate multiple draw color buffers + * Set vertex attribute default value * + * @param {number} locIndex + * @param {number} value + * @param {number} attribType * @param {number} count * * @return {undefined} */ -function rlActiveDrawBuffers(count) { - return r.BindrlActiveDrawBuffers( +function rlSetVertexAttributeDefault(locIndex, value, attribType, count) { + return r.BindrlSetVertexAttributeDefault( + locIndex, + value, + attribType, count ) } -raylib.rlActiveDrawBuffers = rlActiveDrawBuffers +raylib.rlSetVertexAttributeDefault = rlSetVertexAttributeDefault -/** - * Blit active framebuffer to main framebuffer - * - * @param {number} srcX - * @param {number} srcY - * @param {number} srcWidth - * @param {number} srcHeight - * @param {number} dstX - * @param {number} dstY - * @param {number} dstWidth - * @param {number} dstHeight - * @param {number} bufferMask - * - * @return {undefined} - */ -function rlBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask) { - return r.BindrlBlitFramebuffer( - srcX, - srcY, - srcWidth, - srcHeight, - dstX, - dstY, - dstWidth, - dstHeight, - bufferMask +function rlDrawVertexArray(offset, count) { + return r.BindrlDrawVertexArray( + offset, + count ) } -raylib.rlBlitFramebuffer = rlBlitFramebuffer +raylib.rlDrawVertexArray = rlDrawVertexArray -/** - * Enable color blending - * - * @return {undefined} - */ -function rlEnableColorBlend() { - return r.BindrlEnableColorBlend() +function rlDrawVertexArrayElements(offset, count, buffer) { + return r.BindrlDrawVertexArrayElements( + offset, + count, + buffer + ) } -raylib.rlEnableColorBlend = rlEnableColorBlend +raylib.rlDrawVertexArrayElements = rlDrawVertexArrayElements + +function rlDrawVertexArrayInstanced(offset, count, instances) { + return r.BindrlDrawVertexArrayInstanced( + offset, + count, + instances + ) +} +raylib.rlDrawVertexArrayInstanced = rlDrawVertexArrayInstanced + +function rlDrawVertexArrayElementsInstanced(offset, count, buffer, instances) { + return r.BindrlDrawVertexArrayElementsInstanced( + offset, + count, + buffer, + instances + ) +} +raylib.rlDrawVertexArrayElementsInstanced = rlDrawVertexArrayElementsInstanced /** - * Disable color blending + * Load texture in GPU * - * @return {undefined} + * @param {number} data + * @param {number} width + * @param {number} height + * @param {number} format + * @param {number} mipmapCount + * + * @return {number} The resulting unsigned int. */ -function rlDisableColorBlend() { - return r.BindrlDisableColorBlend() +function rlLoadTexture(data, width, height, format, mipmapCount) { + return r.BindrlLoadTexture( + data, + width, + height, + format, + mipmapCount + ) } -raylib.rlDisableColorBlend = rlDisableColorBlend +raylib.rlLoadTexture = rlLoadTexture /** - * Enable depth test + * Load depth texture/renderbuffer (to be attached to fbo) * - * @return {undefined} + * @param {number} width + * @param {number} height + * @param {boolean} useRenderBuffer + * + * @return {number} The resulting unsigned int. */ -function rlEnableDepthTest() { - return r.BindrlEnableDepthTest() +function rlLoadTextureDepth(width, height, useRenderBuffer) { + return r.BindrlLoadTextureDepth( + width, + height, + useRenderBuffer + ) } -raylib.rlEnableDepthTest = rlEnableDepthTest +raylib.rlLoadTextureDepth = rlLoadTextureDepth /** - * Disable depth test + * Load texture cubemap * - * @return {undefined} + * @param {number} data + * @param {number} size + * @param {number} format + * + * @return {number} The resulting unsigned int. */ -function rlDisableDepthTest() { - return r.BindrlDisableDepthTest() +function rlLoadTextureCubemap(data, size, format) { + return r.BindrlLoadTextureCubemap( + data, + size, + format + ) } -raylib.rlDisableDepthTest = rlDisableDepthTest +raylib.rlLoadTextureCubemap = rlLoadTextureCubemap /** - * Enable depth write + * Update GPU texture with new data + * + * @param {number} id + * @param {number} offsetX + * @param {number} offsetY + * @param {number} width + * @param {number} height + * @param {number} format + * @param {number} data * * @return {undefined} */ -function rlEnableDepthMask() { - return r.BindrlEnableDepthMask() +function rlUpdateTexture(id, offsetX, offsetY, width, height, format, data) { + return r.BindrlUpdateTexture( + id, + offsetX, + offsetY, + width, + height, + format, + data + ) } -raylib.rlEnableDepthMask = rlEnableDepthMask +raylib.rlUpdateTexture = rlUpdateTexture /** - * Disable depth write + * Get OpenGL internal formats + * + * @param {number} format + * @param {number} glInternalFormat + * @param {number} glFormat + * @param {number} glType * * @return {undefined} */ -function rlDisableDepthMask() { - return r.BindrlDisableDepthMask() +function rlGetGlTextureFormats(format, glInternalFormat, glFormat, glType) { + return r.BindrlGetGlTextureFormats( + format, + glInternalFormat, + glFormat, + glType + ) } -raylib.rlDisableDepthMask = rlDisableDepthMask +raylib.rlGetGlTextureFormats = rlGetGlTextureFormats /** - * Enable backface culling + * Get name string for pixel format * - * @return {undefined} + * @param {number} format + * + * @return {string} The resulting const char *. */ -function rlEnableBackfaceCulling() { - return r.BindrlEnableBackfaceCulling() +function rlGetPixelFormatName(format) { + return r.BindrlGetPixelFormatName( + format + ) } -raylib.rlEnableBackfaceCulling = rlEnableBackfaceCulling +raylib.rlGetPixelFormatName = rlGetPixelFormatName /** - * Disable backface culling + * Unload texture from GPU memory + * + * @param {number} id * * @return {undefined} */ -function rlDisableBackfaceCulling() { - return r.BindrlDisableBackfaceCulling() +function rlUnloadTexture(id) { + return r.BindrlUnloadTexture( + id + ) } -raylib.rlDisableBackfaceCulling = rlDisableBackfaceCulling +raylib.rlUnloadTexture = rlUnloadTexture /** - * Set face culling mode + * Generate mipmap data for selected texture * - * @param {number} mode + * @param {number} id + * @param {number} width + * @param {number} height + * @param {number} format + * @param {number} mipmaps * * @return {undefined} */ -function rlSetCullFace(mode) { - return r.BindrlSetCullFace( - mode +function rlGenTextureMipmaps(id, width, height, format, mipmaps) { + return r.BindrlGenTextureMipmaps( + id, + width, + height, + format, + mipmaps ) } -raylib.rlSetCullFace = rlSetCullFace +raylib.rlGenTextureMipmaps = rlGenTextureMipmaps /** - * Enable scissor test + * Read texture pixel data * - * @return {undefined} + * @param {number} id + * @param {number} width + * @param {number} height + * @param {number} format + * + * @return {number} The resulting void *. */ -function rlEnableScissorTest() { - return r.BindrlEnableScissorTest() +function rlReadTexturePixels(id, width, height, format) { + return r.BindrlReadTexturePixels( + id, + width, + height, + format + ) } -raylib.rlEnableScissorTest = rlEnableScissorTest +raylib.rlReadTexturePixels = rlReadTexturePixels /** - * Disable scissor test + * Read screen pixel data (color buffer) * - * @return {undefined} + * @param {number} width + * @param {number} height + * + * @return {Buffer} The resulting unsigned char *. */ -function rlDisableScissorTest() { - return r.BindrlDisableScissorTest() +function rlReadScreenPixels(width, height) { + return r.BindrlReadScreenPixels( + width, + height + ) } -raylib.rlDisableScissorTest = rlDisableScissorTest +raylib.rlReadScreenPixels = rlReadScreenPixels /** - * Scissor test + * Load an empty framebuffer * - * @param {number} x - * @param {number} y * @param {number} width * @param {number} height * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlScissor(x, y, width, height) { - return r.BindrlScissor( - x, - y, +function rlLoadFramebuffer(width, height) { + return r.BindrlLoadFramebuffer( width, height ) } -raylib.rlScissor = rlScissor +raylib.rlLoadFramebuffer = rlLoadFramebuffer /** - * Enable wire mode + * Attach texture/renderbuffer to a framebuffer + * + * @param {number} fboId + * @param {number} texId + * @param {number} attachType + * @param {number} texType + * @param {number} mipLevel * * @return {undefined} */ -function rlEnableWireMode() { - return r.BindrlEnableWireMode() +function rlFramebufferAttach(fboId, texId, attachType, texType, mipLevel) { + return r.BindrlFramebufferAttach( + fboId, + texId, + attachType, + texType, + mipLevel + ) } -raylib.rlEnableWireMode = rlEnableWireMode +raylib.rlFramebufferAttach = rlFramebufferAttach /** - * Enable point mode + * Verify framebuffer is complete * - * @return {undefined} + * @param {number} id + * + * @return {boolean} The resulting bool. */ -function rlEnablePointMode() { - return r.BindrlEnablePointMode() +function rlFramebufferComplete(id) { + return r.BindrlFramebufferComplete( + id + ) } -raylib.rlEnablePointMode = rlEnablePointMode +raylib.rlFramebufferComplete = rlFramebufferComplete /** - * Disable wire mode ( and point ) maybe rename + * Delete framebuffer from GPU + * + * @param {number} id * * @return {undefined} */ -function rlDisableWireMode() { - return r.BindrlDisableWireMode() +function rlUnloadFramebuffer(id) { + return r.BindrlUnloadFramebuffer( + id + ) } -raylib.rlDisableWireMode = rlDisableWireMode +raylib.rlUnloadFramebuffer = rlUnloadFramebuffer /** - * Set the line drawing width + * Load shader from code strings * - * @param {number} width + * @param {string} vsCode + * @param {string} fsCode * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlSetLineWidth(width) { - return r.BindrlSetLineWidth( - width +function rlLoadShaderCode(vsCode, fsCode) { + return r.BindrlLoadShaderCode( + vsCode, + fsCode ) } -raylib.rlSetLineWidth = rlSetLineWidth +raylib.rlLoadShaderCode = rlLoadShaderCode /** - * Get the line drawing width + * Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) * - * @return {number} The resulting float. + * @param {string} shaderCode + * @param {number} type + * + * @return {number} The resulting unsigned int. */ -function rlGetLineWidth() { - return r.BindrlGetLineWidth() +function rlCompileShader(shaderCode, type) { + return r.BindrlCompileShader( + shaderCode, + type + ) } -raylib.rlGetLineWidth = rlGetLineWidth +raylib.rlCompileShader = rlCompileShader /** - * Enable line aliasing + * Load custom shader program * - * @return {undefined} + * @param {number} vShaderId + * @param {number} fShaderId + * + * @return {number} The resulting unsigned int. */ -function rlEnableSmoothLines() { - return r.BindrlEnableSmoothLines() +function rlLoadShaderProgram(vShaderId, fShaderId) { + return r.BindrlLoadShaderProgram( + vShaderId, + fShaderId + ) } -raylib.rlEnableSmoothLines = rlEnableSmoothLines +raylib.rlLoadShaderProgram = rlLoadShaderProgram /** - * Disable line aliasing + * Unload shader program + * + * @param {number} id * * @return {undefined} */ -function rlDisableSmoothLines() { - return r.BindrlDisableSmoothLines() +function rlUnloadShaderProgram(id) { + return r.BindrlUnloadShaderProgram( + id + ) } -raylib.rlDisableSmoothLines = rlDisableSmoothLines +raylib.rlUnloadShaderProgram = rlUnloadShaderProgram /** - * Enable stereo rendering + * Get shader location uniform * - * @return {undefined} + * @param {number} shaderId + * @param {string} uniformName + * + * @return {number} The resulting int. */ -function rlEnableStereoRender() { - return r.BindrlEnableStereoRender() +function rlGetLocationUniform(shaderId, uniformName) { + return r.BindrlGetLocationUniform( + shaderId, + uniformName + ) } -raylib.rlEnableStereoRender = rlEnableStereoRender +raylib.rlGetLocationUniform = rlGetLocationUniform /** - * Disable stereo rendering + * Get shader location attribute * - * @return {undefined} + * @param {number} shaderId + * @param {string} attribName + * + * @return {number} The resulting int. */ -function rlDisableStereoRender() { - return r.BindrlDisableStereoRender() +function rlGetLocationAttrib(shaderId, attribName) { + return r.BindrlGetLocationAttrib( + shaderId, + attribName + ) } -raylib.rlDisableStereoRender = rlDisableStereoRender +raylib.rlGetLocationAttrib = rlGetLocationAttrib /** - * Check if stereo render is enabled + * Set shader value uniform * - * @return {boolean} The resulting bool. + * @param {number} locIndex + * @param {number} value + * @param {number} uniformType + * @param {number} count + * + * @return {undefined} */ -function rlIsStereoRenderEnabled() { - return r.BindrlIsStereoRenderEnabled() +function rlSetUniform(locIndex, value, uniformType, count) { + return r.BindrlSetUniform( + locIndex, + value, + uniformType, + count + ) } -raylib.rlIsStereoRenderEnabled = rlIsStereoRenderEnabled +raylib.rlSetUniform = rlSetUniform /** - * Clear color buffer with color + * Set shader value matrix * - * @param {number} r - * @param {number} g - * @param {number} b - * @param {number} a + * @param {number} locIndex + * @param {Matrix} mat * * @return {undefined} */ -function rlClearColor(r, g, b, a) { - return r.BindrlClearColor( - r, - g, - b, - a +function rlSetUniformMatrix(locIndex, mat) { + return r.BindrlSetUniformMatrix( + locIndex, + mat.m0, + mat.m4, + mat.m8, + mat.m12, + mat.m1, + mat.m5, + mat.m9, + mat.m13, + mat.m2, + mat.m6, + mat.m10, + mat.m14, + mat.m3, + mat.m7, + mat.m11, + mat.m15 ) } -raylib.rlClearColor = rlClearColor +raylib.rlSetUniformMatrix = rlSetUniformMatrix /** - * Clear used screen buffers (color and depth) + * Set shader value sampler + * + * @param {number} locIndex + * @param {number} textureId * * @return {undefined} */ -function rlClearScreenBuffers() { - return r.BindrlClearScreenBuffers() +function rlSetUniformSampler(locIndex, textureId) { + return r.BindrlSetUniformSampler( + locIndex, + textureId + ) } -raylib.rlClearScreenBuffers = rlClearScreenBuffers +raylib.rlSetUniformSampler = rlSetUniformSampler /** - * Check and log OpenGL error codes + * Set shader currently active (id and locations) + * + * @param {number} id + * @param {number} locs * * @return {undefined} */ -function rlCheckErrors() { - return r.BindrlCheckErrors() +function rlSetShader(id, locs) { + return r.BindrlSetShader( + id, + locs + ) } -raylib.rlCheckErrors = rlCheckErrors +raylib.rlSetShader = rlSetShader /** - * Set blending mode + * Load compute shader program * - * @param {number} mode + * @param {number} shaderId * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlSetBlendMode(mode) { - return r.BindrlSetBlendMode( - mode +function rlLoadComputeShaderProgram(shaderId) { + return r.BindrlLoadComputeShaderProgram( + shaderId ) } -raylib.rlSetBlendMode = rlSetBlendMode +raylib.rlLoadComputeShaderProgram = rlLoadComputeShaderProgram /** - * Set blending mode factor and equation (using OpenGL factors) + * Dispatch compute shader (equivalent to *draw* for graphics pipeline) * - * @param {number} glSrcFactor - * @param {number} glDstFactor - * @param {number} glEquation + * @param {number} groupX + * @param {number} groupY + * @param {number} groupZ * * @return {undefined} */ -function rlSetBlendFactors(glSrcFactor, glDstFactor, glEquation) { - return r.BindrlSetBlendFactors( - glSrcFactor, - glDstFactor, - glEquation +function rlComputeShaderDispatch(groupX, groupY, groupZ) { + return r.BindrlComputeShaderDispatch( + groupX, + groupY, + groupZ ) } -raylib.rlSetBlendFactors = rlSetBlendFactors +raylib.rlComputeShaderDispatch = rlComputeShaderDispatch /** - * Set blending mode factors and equations separately (using OpenGL factors) + * Load shader storage buffer object (SSBO) * - * @param {number} glSrcRGB - * @param {number} glDstRGB - * @param {number} glSrcAlpha - * @param {number} glDstAlpha - * @param {number} glEqRGB - * @param {number} glEqAlpha + * @param {number} size + * @param {number} data + * @param {number} usageHint * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlSetBlendFactorsSeparate(glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha) { - return r.BindrlSetBlendFactorsSeparate( - glSrcRGB, - glDstRGB, - glSrcAlpha, - glDstAlpha, - glEqRGB, - glEqAlpha +function rlLoadShaderBuffer(size, data, usageHint) { + return r.BindrlLoadShaderBuffer( + size, + data, + usageHint ) } -raylib.rlSetBlendFactorsSeparate = rlSetBlendFactorsSeparate +raylib.rlLoadShaderBuffer = rlLoadShaderBuffer /** - * Initialize rlgl (buffers, shaders, textures, states) + * Unload shader storage buffer object (SSBO) * - * @param {number} width - * @param {number} height + * @param {number} ssboId * * @return {undefined} */ -function rlglInit(width, height) { - return r.BindrlglInit( - width, - height +function rlUnloadShaderBuffer(ssboId) { + return r.BindrlUnloadShaderBuffer( + ssboId ) } -raylib.rlglInit = rlglInit +raylib.rlUnloadShaderBuffer = rlUnloadShaderBuffer /** - * De-initialize rlgl (buffers, shaders, textures) + * Update SSBO buffer data + * + * @param {number} id + * @param {number} data + * @param {number} dataSize + * @param {number} offset * * @return {undefined} */ -function rlglClose() { - return r.BindrlglClose() +function rlUpdateShaderBuffer(id, data, dataSize, offset) { + return r.BindrlUpdateShaderBuffer( + id, + data, + dataSize, + offset + ) } -raylib.rlglClose = rlglClose +raylib.rlUpdateShaderBuffer = rlUpdateShaderBuffer /** - * Load OpenGL extensions (loader function required) + * Bind SSBO buffer * - * @param {number} loader + * @param {number} id + * @param {number} index * * @return {undefined} */ -function rlLoadExtensions(loader) { - return r.BindrlLoadExtensions( - loader +function rlBindShaderBuffer(id, index) { + return r.BindrlBindShaderBuffer( + id, + index ) } -raylib.rlLoadExtensions = rlLoadExtensions +raylib.rlBindShaderBuffer = rlBindShaderBuffer /** - * Get current OpenGL version + * Read SSBO buffer data (GPU->CPU) * - * @return {number} The resulting int. + * @param {number} id + * @param {number} dest + * @param {number} count + * @param {number} offset + * + * @return {undefined} */ -function rlGetVersion() { - return r.BindrlGetVersion() +function rlReadShaderBuffer(id, dest, count, offset) { + return r.BindrlReadShaderBuffer( + id, + dest, + count, + offset + ) } -raylib.rlGetVersion = rlGetVersion +raylib.rlReadShaderBuffer = rlReadShaderBuffer /** - * Set current framebuffer width + * Copy SSBO data between buffers * - * @param {number} width + * @param {number} destId + * @param {number} srcId + * @param {number} destOffset + * @param {number} srcOffset + * @param {number} count * * @return {undefined} */ -function rlSetFramebufferWidth(width) { - return r.BindrlSetFramebufferWidth( - width +function rlCopyShaderBuffer(destId, srcId, destOffset, srcOffset, count) { + return r.BindrlCopyShaderBuffer( + destId, + srcId, + destOffset, + srcOffset, + count ) } -raylib.rlSetFramebufferWidth = rlSetFramebufferWidth +raylib.rlCopyShaderBuffer = rlCopyShaderBuffer /** - * Get default framebuffer width + * Get SSBO buffer size * - * @return {number} The resulting int. + * @param {number} id + * + * @return {number} The resulting unsigned int. */ -function rlGetFramebufferWidth() { - return r.BindrlGetFramebufferWidth() +function rlGetShaderBufferSize(id) { + return r.BindrlGetShaderBufferSize( + id + ) } -raylib.rlGetFramebufferWidth = rlGetFramebufferWidth +raylib.rlGetShaderBufferSize = rlGetShaderBufferSize /** - * Set current framebuffer height + * Bind image texture * - * @param {number} height + * @param {number} id + * @param {number} index + * @param {number} format + * @param {boolean} readonly * * @return {undefined} */ -function rlSetFramebufferHeight(height) { - return r.BindrlSetFramebufferHeight( - height +function rlBindImageTexture(id, index, format, readonly) { + return r.BindrlBindImageTexture( + id, + index, + format, + readonly ) } -raylib.rlSetFramebufferHeight = rlSetFramebufferHeight - -/** - * Get default framebuffer height - * - * @return {number} The resulting int. - */ -function rlGetFramebufferHeight() { - return r.BindrlGetFramebufferHeight() -} -raylib.rlGetFramebufferHeight = rlGetFramebufferHeight +raylib.rlBindImageTexture = rlBindImageTexture /** - * Get default texture id + * Get internal modelview matrix * - * @return {number} The resulting unsigned int. + * @return {Matrix} The resulting Matrix. */ -function rlGetTextureIdDefault() { - return r.BindrlGetTextureIdDefault() +function rlGetMatrixModelview() { + return r.BindrlGetMatrixModelview() } -raylib.rlGetTextureIdDefault = rlGetTextureIdDefault +raylib.rlGetMatrixModelview = rlGetMatrixModelview /** - * Get default shader id + * Get internal projection matrix * - * @return {number} The resulting unsigned int. + * @return {Matrix} The resulting Matrix. */ -function rlGetShaderIdDefault() { - return r.BindrlGetShaderIdDefault() +function rlGetMatrixProjection() { + return r.BindrlGetMatrixProjection() } -raylib.rlGetShaderIdDefault = rlGetShaderIdDefault +raylib.rlGetMatrixProjection = rlGetMatrixProjection /** - * Get default shader locations + * Get internal accumulated transform matrix * - * @return {number} The resulting int *. + * @return {Matrix} The resulting Matrix. */ -function rlGetShaderLocsDefault() { - return r.BindrlGetShaderLocsDefault() +function rlGetMatrixTransform() { + return r.BindrlGetMatrixTransform() } -raylib.rlGetShaderLocsDefault = rlGetShaderLocsDefault +raylib.rlGetMatrixTransform = rlGetMatrixTransform /** - * Load a render batch system + * Get internal projection matrix for stereo render (selected eye) * - * @param {number} numBuffers - * @param {number} bufferElements + * @param {number} eye * - * @return {rlRenderBatch} The resulting rlRenderBatch. + * @return {Matrix} The resulting Matrix. */ -function rlLoadRenderBatch(numBuffers, bufferElements) { - return r.BindrlLoadRenderBatch( - numBuffers, - bufferElements +function rlGetMatrixProjectionStereo(eye) { + return r.BindrlGetMatrixProjectionStereo( + eye ) } -raylib.rlLoadRenderBatch = rlLoadRenderBatch +raylib.rlGetMatrixProjectionStereo = rlGetMatrixProjectionStereo /** - * Unload render batch system + * Get internal view offset matrix for stereo render (selected eye) * - * @param {rlRenderBatch} batch + * @param {number} eye * - * @return {undefined} + * @return {Matrix} The resulting Matrix. */ -function rlUnloadRenderBatch(batch) { - return r.BindrlUnloadRenderBatch( - batch.bufferCount, - batch.currentBuffer, - batch.vertexBuffer, - batch.draws, - batch.drawCounter, - batch.currentDepth +function rlGetMatrixViewOffsetStereo(eye) { + return r.BindrlGetMatrixViewOffsetStereo( + eye ) } -raylib.rlUnloadRenderBatch = rlUnloadRenderBatch +raylib.rlGetMatrixViewOffsetStereo = rlGetMatrixViewOffsetStereo /** - * Draw render batch data (Update->Draw->Reset) + * Set a custom projection matrix (replaces internal projection matrix) * - * @param {number} batch + * @param {Matrix} proj * * @return {undefined} */ -function rlDrawRenderBatch(batch) { - return r.BindrlDrawRenderBatch( - batch +function rlSetMatrixProjection(proj) { + return r.BindrlSetMatrixProjection( + proj.m0, + proj.m4, + proj.m8, + proj.m12, + proj.m1, + proj.m5, + proj.m9, + proj.m13, + proj.m2, + proj.m6, + proj.m10, + proj.m14, + proj.m3, + proj.m7, + proj.m11, + proj.m15 ) } -raylib.rlDrawRenderBatch = rlDrawRenderBatch +raylib.rlSetMatrixProjection = rlSetMatrixProjection /** - * Set the active render batch for rlgl (NULL for default internal) + * Set a custom modelview matrix (replaces internal modelview matrix) * - * @param {number} batch + * @param {Matrix} view * * @return {undefined} */ -function rlSetRenderBatchActive(batch) { - return r.BindrlSetRenderBatchActive( - batch - ) -} -raylib.rlSetRenderBatchActive = rlSetRenderBatchActive +function rlSetMatrixModelview(view) { + return r.BindrlSetMatrixModelview( + view.m0, + view.m4, + view.m8, + view.m12, + view.m1, + view.m5, + view.m9, + view.m13, + view.m2, + view.m6, + view.m10, + view.m14, + view.m3, + view.m7, + view.m11, + view.m15 + ) +} +raylib.rlSetMatrixModelview = rlSetMatrixModelview /** - * Update and draw internal render batch + * Set eyes projection matrices for stereo rendering + * + * @param {Matrix} right + * @param {Matrix} left * * @return {undefined} */ -function rlDrawRenderBatchActive() { - return r.BindrlDrawRenderBatchActive() +function rlSetMatrixProjectionStereo(right, left) { + return r.BindrlSetMatrixProjectionStereo( + right.m0, + right.m4, + right.m8, + right.m12, + right.m1, + right.m5, + right.m9, + right.m13, + right.m2, + right.m6, + right.m10, + right.m14, + right.m3, + right.m7, + right.m11, + right.m15, + left.m0, + left.m4, + left.m8, + left.m12, + left.m1, + left.m5, + left.m9, + left.m13, + left.m2, + left.m6, + left.m10, + left.m14, + left.m3, + left.m7, + left.m11, + left.m15 + ) } -raylib.rlDrawRenderBatchActive = rlDrawRenderBatchActive +raylib.rlSetMatrixProjectionStereo = rlSetMatrixProjectionStereo /** - * Check internal buffer overflow for a given number of vertex + * Set eyes view offsets matrices for stereo rendering * - * @param {number} vCount + * @param {Matrix} right + * @param {Matrix} left * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function rlCheckRenderBatchLimit(vCount) { - return r.BindrlCheckRenderBatchLimit( - vCount +function rlSetMatrixViewOffsetStereo(right, left) { + return r.BindrlSetMatrixViewOffsetStereo( + right.m0, + right.m4, + right.m8, + right.m12, + right.m1, + right.m5, + right.m9, + right.m13, + right.m2, + right.m6, + right.m10, + right.m14, + right.m3, + right.m7, + right.m11, + right.m15, + left.m0, + left.m4, + left.m8, + left.m12, + left.m1, + left.m5, + left.m9, + left.m13, + left.m2, + left.m6, + left.m10, + left.m14, + left.m3, + left.m7, + left.m11, + left.m15 ) } -raylib.rlCheckRenderBatchLimit = rlCheckRenderBatchLimit +raylib.rlSetMatrixViewOffsetStereo = rlSetMatrixViewOffsetStereo /** - * Set current texture for render batch and check buffers limits - * - * @param {number} id + * Load and draw a cube * * @return {undefined} */ -function rlSetTexture(id) { - return r.BindrlSetTexture( - id - ) +function rlLoadDrawCube() { + return r.BindrlLoadDrawCube() } -raylib.rlSetTexture = rlSetTexture +raylib.rlLoadDrawCube = rlLoadDrawCube /** - * Load vertex array (vao) if supported + * Load and draw a quad * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadVertexArray() { - return r.BindrlLoadVertexArray() +function rlLoadDrawQuad() { + return r.BindrlLoadDrawQuad() } -raylib.rlLoadVertexArray = rlLoadVertexArray +raylib.rlLoadDrawQuad = rlLoadDrawQuad /** - * Load a vertex buffer attribute + * Update camera position for selected mode * - * @param {number} buffer - * @param {number} size - * @param {boolean} dynamic + * @param {Camera} camera + * @param {number} mode * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadVertexBuffer(buffer, size, dynamic) { - return r.BindrlLoadVertexBuffer( - buffer, - size, - dynamic +function UpdateCamera(camera, mode) { + const obj = r.BindUpdateCamera( + camera.position.x, + camera.position.y, + camera.position.z, + camera.target.x, + camera.target.y, + camera.target.z, + camera.up.x, + camera.up.y, + camera.up.z, + camera.fovy, + camera.projection, + mode ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + camera[key] = obj[key] + } + } } -raylib.rlLoadVertexBuffer = rlLoadVertexBuffer +raylib.UpdateCamera = UpdateCamera /** - * Load a new attributes element buffer + * Convert image data to desired format * - * @param {number} buffer - * @param {number} size - * @param {boolean} dynamic + * @param {Image} image + * @param {number} newFormat * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadVertexBufferElement(buffer, size, dynamic) { - return r.BindrlLoadVertexBufferElement( - buffer, - size, - dynamic +function ImageFormat(image, newFormat) { + const obj = r.BindImageFormat( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + newFormat ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadVertexBufferElement = rlLoadVertexBufferElement +raylib.ImageFormat = ImageFormat /** - * Update GPU buffer with new data + * Convert image to POT (power-of-two) * - * @param {number} bufferId - * @param {number} data - * @param {number} dataSize - * @param {number} offset + * @param {Image} image + * @param {Color} fill * * @return {undefined} */ -function rlUpdateVertexBuffer(bufferId, data, dataSize, offset) { - return r.BindrlUpdateVertexBuffer( - bufferId, - data, - dataSize, - offset +function ImageToPOT(image, fill) { + const obj = r.BindImageToPOT( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + fill.r, + fill.g, + fill.b, + fill.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlUpdateVertexBuffer = rlUpdateVertexBuffer +raylib.ImageToPOT = ImageToPOT /** - * Update vertex buffer elements with new data + * Crop an image to a defined rectangle * - * @param {number} id - * @param {number} data - * @param {number} dataSize - * @param {number} offset + * @param {Image} image + * @param {Rectangle} crop * * @return {undefined} */ -function rlUpdateVertexBufferElements(id, data, dataSize, offset) { - return r.BindrlUpdateVertexBufferElements( - id, - data, - dataSize, - offset - ) -} -raylib.rlUpdateVertexBufferElements = rlUpdateVertexBufferElements - -function rlUnloadVertexArray(vaoId) { - return r.BindrlUnloadVertexArray( - vaoId - ) -} -raylib.rlUnloadVertexArray = rlUnloadVertexArray - -function rlUnloadVertexBuffer(vboId) { - return r.BindrlUnloadVertexBuffer( - vboId - ) -} -raylib.rlUnloadVertexBuffer = rlUnloadVertexBuffer - -function rlSetVertexAttribute(index, compSize, type, normalized, stride, pointer) { - return r.BindrlSetVertexAttribute( - index, - compSize, - type, - normalized, - stride, - pointer - ) -} -raylib.rlSetVertexAttribute = rlSetVertexAttribute - -function rlSetVertexAttributeDivisor(index, divisor) { - return r.BindrlSetVertexAttributeDivisor( - index, - divisor +function ImageCrop(image, crop) { + const obj = r.BindImageCrop( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + crop.x, + crop.y, + crop.width, + crop.height ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlSetVertexAttributeDivisor = rlSetVertexAttributeDivisor +raylib.ImageCrop = ImageCrop /** - * Set vertex attribute default value + * Crop image depending on alpha value * - * @param {number} locIndex - * @param {number} value - * @param {number} attribType - * @param {number} count + * @param {Image} image + * @param {number} threshold * * @return {undefined} */ -function rlSetVertexAttributeDefault(locIndex, value, attribType, count) { - return r.BindrlSetVertexAttributeDefault( - locIndex, - value, - attribType, - count - ) -} -raylib.rlSetVertexAttributeDefault = rlSetVertexAttributeDefault - -function rlDrawVertexArray(offset, count) { - return r.BindrlDrawVertexArray( - offset, - count - ) -} -raylib.rlDrawVertexArray = rlDrawVertexArray - -function rlDrawVertexArrayElements(offset, count, buffer) { - return r.BindrlDrawVertexArrayElements( - offset, - count, - buffer - ) -} -raylib.rlDrawVertexArrayElements = rlDrawVertexArrayElements - -function rlDrawVertexArrayInstanced(offset, count, instances) { - return r.BindrlDrawVertexArrayInstanced( - offset, - count, - instances - ) -} -raylib.rlDrawVertexArrayInstanced = rlDrawVertexArrayInstanced - -function rlDrawVertexArrayElementsInstanced(offset, count, buffer, instances) { - return r.BindrlDrawVertexArrayElementsInstanced( - offset, - count, - buffer, - instances +function ImageAlphaCrop(image, threshold) { + const obj = r.BindImageAlphaCrop( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + threshold ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlDrawVertexArrayElementsInstanced = rlDrawVertexArrayElementsInstanced +raylib.ImageAlphaCrop = ImageAlphaCrop /** - * Load texture in GPU + * Clear alpha channel to desired color * - * @param {number} data - * @param {number} width - * @param {number} height - * @param {number} format - * @param {number} mipmapCount + * @param {Image} image + * @param {Color} color + * @param {number} threshold * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadTexture(data, width, height, format, mipmapCount) { - return r.BindrlLoadTexture( - data, - width, - height, - format, - mipmapCount +function ImageAlphaClear(image, color, threshold) { + const obj = r.BindImageAlphaClear( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + color.r, + color.g, + color.b, + color.a, + threshold ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadTexture = rlLoadTexture +raylib.ImageAlphaClear = ImageAlphaClear /** - * Load depth texture/renderbuffer (to be attached to fbo) + * Apply alpha mask to image * - * @param {number} width - * @param {number} height - * @param {boolean} useRenderBuffer + * @param {Image} image + * @param {Image} alphaMask * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadTextureDepth(width, height, useRenderBuffer) { - return r.BindrlLoadTextureDepth( - width, - height, - useRenderBuffer +function ImageAlphaMask(image, alphaMask) { + const obj = r.BindImageAlphaMask( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + alphaMask.data, + alphaMask.width, + alphaMask.height, + alphaMask.mipmaps, + alphaMask.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadTextureDepth = rlLoadTextureDepth +raylib.ImageAlphaMask = ImageAlphaMask /** - * Load texture cubemap + * Premultiply alpha channel * - * @param {number} data - * @param {number} size - * @param {number} format + * @param {Image} image * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadTextureCubemap(data, size, format) { - return r.BindrlLoadTextureCubemap( - data, - size, - format +function ImageAlphaPremultiply(image) { + const obj = r.BindImageAlphaPremultiply( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadTextureCubemap = rlLoadTextureCubemap +raylib.ImageAlphaPremultiply = ImageAlphaPremultiply /** - * Update GPU texture with new data + * Resize image (Bicubic scaling algorithm) * - * @param {number} id - * @param {number} offsetX - * @param {number} offsetY - * @param {number} width - * @param {number} height - * @param {number} format - * @param {number} data + * @param {Image} image + * @param {number} newWidth + * @param {number} newHeight * * @return {undefined} */ -function rlUpdateTexture(id, offsetX, offsetY, width, height, format, data) { - return r.BindrlUpdateTexture( - id, - offsetX, - offsetY, - width, - height, - format, - data +function ImageResize(image, newWidth, newHeight) { + const obj = r.BindImageResize( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + newWidth, + newHeight ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlUpdateTexture = rlUpdateTexture +raylib.ImageResize = ImageResize /** - * Get OpenGL internal formats + * Resize image (Nearest-Neighbor scaling algorithm) * - * @param {number} format - * @param {number} glInternalFormat - * @param {number} glFormat - * @param {number} glType + * @param {Image} image + * @param {number} newWidth + * @param {number} newHeight * * @return {undefined} */ -function rlGetGlTextureFormats(format, glInternalFormat, glFormat, glType) { - return r.BindrlGetGlTextureFormats( - format, - glInternalFormat, - glFormat, - glType - ) -} -raylib.rlGetGlTextureFormats = rlGetGlTextureFormats +function ImageResizeNN(image, newWidth, newHeight) { + const obj = r.BindImageResizeNN( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + newWidth, + newHeight + ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } +} +raylib.ImageResizeNN = ImageResizeNN /** - * Get name string for pixel format + * Resize canvas and fill with color * - * @param {number} format + * @param {Image} image + * @param {number} newWidth + * @param {number} newHeight + * @param {number} offsetX + * @param {number} offsetY + * @param {Color} fill * - * @return {string} The resulting const char *. + * @return {undefined} */ -function rlGetPixelFormatName(format) { - return r.BindrlGetPixelFormatName( - format +function ImageResizeCanvas(image, newWidth, newHeight, offsetX, offsetY, fill) { + const obj = r.BindImageResizeCanvas( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + newWidth, + newHeight, + offsetX, + offsetY, + fill.r, + fill.g, + fill.b, + fill.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlGetPixelFormatName = rlGetPixelFormatName +raylib.ImageResizeCanvas = ImageResizeCanvas /** - * Unload texture from GPU memory + * Compute all mipmap levels for a provided image * - * @param {number} id + * @param {Image} image * * @return {undefined} */ -function rlUnloadTexture(id) { - return r.BindrlUnloadTexture( - id +function ImageMipmaps(image) { + const obj = r.BindImageMipmaps( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlUnloadTexture = rlUnloadTexture +raylib.ImageMipmaps = ImageMipmaps /** - * Generate mipmap data for selected texture + * Dither image data to 16bpp or lower (Floyd-Steinberg dithering) * - * @param {number} id - * @param {number} width - * @param {number} height - * @param {number} format - * @param {number} mipmaps + * @param {Image} image + * @param {number} rBpp + * @param {number} gBpp + * @param {number} bBpp + * @param {number} aBpp * * @return {undefined} */ -function rlGenTextureMipmaps(id, width, height, format, mipmaps) { - return r.BindrlGenTextureMipmaps( - id, - width, - height, - format, - mipmaps +function ImageDither(image, rBpp, gBpp, bBpp, aBpp) { + const obj = r.BindImageDither( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + rBpp, + gBpp, + bBpp, + aBpp ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlGenTextureMipmaps = rlGenTextureMipmaps +raylib.ImageDither = ImageDither /** - * Read texture pixel data + * Flip image vertically * - * @param {number} id - * @param {number} width - * @param {number} height - * @param {number} format + * @param {Image} image * - * @return {number} The resulting void *. + * @return {undefined} */ -function rlReadTexturePixels(id, width, height, format) { - return r.BindrlReadTexturePixels( - id, - width, - height, - format +function ImageFlipVertical(image) { + const obj = r.BindImageFlipVertical( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlReadTexturePixels = rlReadTexturePixels +raylib.ImageFlipVertical = ImageFlipVertical /** - * Read screen pixel data (color buffer) + * Flip image horizontally * - * @param {number} width - * @param {number} height + * @param {Image} image * - * @return {Buffer} The resulting unsigned char *. + * @return {undefined} */ -function rlReadScreenPixels(width, height) { - return r.BindrlReadScreenPixels( - width, - height +function ImageFlipHorizontal(image) { + const obj = r.BindImageFlipHorizontal( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlReadScreenPixels = rlReadScreenPixels +raylib.ImageFlipHorizontal = ImageFlipHorizontal /** - * Load an empty framebuffer + * Rotate image clockwise 90deg * - * @param {number} width - * @param {number} height + * @param {Image} image * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadFramebuffer(width, height) { - return r.BindrlLoadFramebuffer( - width, - height +function ImageRotateCW(image) { + const obj = r.BindImageRotateCW( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadFramebuffer = rlLoadFramebuffer +raylib.ImageRotateCW = ImageRotateCW /** - * Attach texture/renderbuffer to a framebuffer + * Rotate image counter-clockwise 90deg * - * @param {number} fboId - * @param {number} texId - * @param {number} attachType - * @param {number} texType - * @param {number} mipLevel + * @param {Image} image * * @return {undefined} */ -function rlFramebufferAttach(fboId, texId, attachType, texType, mipLevel) { - return r.BindrlFramebufferAttach( - fboId, - texId, - attachType, - texType, - mipLevel +function ImageRotateCCW(image) { + const obj = r.BindImageRotateCCW( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlFramebufferAttach = rlFramebufferAttach +raylib.ImageRotateCCW = ImageRotateCCW /** - * Verify framebuffer is complete + * Modify image color: tint * - * @param {number} id + * @param {Image} image + * @param {Color} color * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function rlFramebufferComplete(id) { - return r.BindrlFramebufferComplete( - id +function ImageColorTint(image, color) { + const obj = r.BindImageColorTint( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlFramebufferComplete = rlFramebufferComplete +raylib.ImageColorTint = ImageColorTint /** - * Delete framebuffer from GPU + * Modify image color: invert * - * @param {number} id + * @param {Image} image * * @return {undefined} */ -function rlUnloadFramebuffer(id) { - return r.BindrlUnloadFramebuffer( - id - ) +function ImageColorInvert(image) { + const obj = r.BindImageColorInvert( + image.data, + image.width, + image.height, + image.mipmaps, + image.format + ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlUnloadFramebuffer = rlUnloadFramebuffer +raylib.ImageColorInvert = ImageColorInvert /** - * Load shader from code strings + * Modify image color: grayscale * - * @param {string} vsCode - * @param {string} fsCode + * @param {Image} image * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadShaderCode(vsCode, fsCode) { - return r.BindrlLoadShaderCode( - vsCode, - fsCode +function ImageColorGrayscale(image) { + const obj = r.BindImageColorGrayscale( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadShaderCode = rlLoadShaderCode +raylib.ImageColorGrayscale = ImageColorGrayscale /** - * Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) + * Modify image color: contrast (-100 to 100) * - * @param {string} shaderCode - * @param {number} type + * @param {Image} image + * @param {number} contrast * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlCompileShader(shaderCode, type) { - return r.BindrlCompileShader( - shaderCode, - type +function ImageColorContrast(image, contrast) { + const obj = r.BindImageColorContrast( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + contrast ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlCompileShader = rlCompileShader +raylib.ImageColorContrast = ImageColorContrast /** - * Load custom shader program + * Modify image color: brightness (-255 to 255) * - * @param {number} vShaderId - * @param {number} fShaderId + * @param {Image} image + * @param {number} brightness * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadShaderProgram(vShaderId, fShaderId) { - return r.BindrlLoadShaderProgram( - vShaderId, - fShaderId +function ImageColorBrightness(image, brightness) { + const obj = r.BindImageColorBrightness( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + brightness ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadShaderProgram = rlLoadShaderProgram +raylib.ImageColorBrightness = ImageColorBrightness /** - * Unload shader program + * Modify image color: replace color * - * @param {number} id + * @param {Image} image + * @param {Color} color + * @param {Color} replace * * @return {undefined} */ -function rlUnloadShaderProgram(id) { - return r.BindrlUnloadShaderProgram( - id +function ImageColorReplace(image, color, replace) { + const obj = r.BindImageColorReplace( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + color.r, + color.g, + color.b, + color.a, + replace.r, + replace.g, + replace.b, + replace.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlUnloadShaderProgram = rlUnloadShaderProgram +raylib.ImageColorReplace = ImageColorReplace /** - * Get shader location uniform + * Clear image background with given color * - * @param {number} shaderId - * @param {string} uniformName + * @param {Image} dst + * @param {Color} color * - * @return {number} The resulting int. + * @return {undefined} */ -function rlGetLocationUniform(shaderId, uniformName) { - return r.BindrlGetLocationUniform( - shaderId, - uniformName +function ImageClearBackground(dst, color) { + const obj = r.BindImageClearBackground( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlGetLocationUniform = rlGetLocationUniform +raylib.ImageClearBackground = ImageClearBackground /** - * Get shader location attribute + * Draw pixel within an image * - * @param {number} shaderId - * @param {string} attribName + * @param {Image} dst + * @param {number} posX + * @param {number} posY + * @param {Color} color * - * @return {number} The resulting int. + * @return {undefined} */ -function rlGetLocationAttrib(shaderId, attribName) { - return r.BindrlGetLocationAttrib( - shaderId, - attribName +function ImageDrawPixel(dst, posX, posY, color) { + const obj = r.BindImageDrawPixel( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + posX, + posY, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlGetLocationAttrib = rlGetLocationAttrib +raylib.ImageDrawPixel = ImageDrawPixel /** - * Set shader value uniform + * Draw pixel within an image (Vector version) * - * @param {number} locIndex - * @param {number} value - * @param {number} uniformType - * @param {number} count + * @param {Image} dst + * @param {Vector2} position + * @param {Color} color * * @return {undefined} */ -function rlSetUniform(locIndex, value, uniformType, count) { - return r.BindrlSetUniform( - locIndex, - value, - uniformType, - count +function ImageDrawPixelV(dst, position, color) { + const obj = r.BindImageDrawPixelV( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + position.x, + position.y, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlSetUniform = rlSetUniform +raylib.ImageDrawPixelV = ImageDrawPixelV /** - * Set shader value matrix + * Draw line within an image * - * @param {number} locIndex - * @param {Matrix} mat + * @param {Image} dst + * @param {number} startPosX + * @param {number} startPosY + * @param {number} endPosX + * @param {number} endPosY + * @param {Color} color * * @return {undefined} */ -function rlSetUniformMatrix(locIndex, mat) { - return r.BindrlSetUniformMatrix( - locIndex, - mat.m0, - mat.m4, - mat.m8, - mat.m12, - mat.m1, - mat.m5, - mat.m9, - mat.m13, - mat.m2, - mat.m6, - mat.m10, - mat.m14, - mat.m3, - mat.m7, - mat.m11, - mat.m15 - ) -} -raylib.rlSetUniformMatrix = rlSetUniformMatrix - -/** - * Set shader value sampler - * - * @param {number} locIndex - * @param {number} textureId - * - * @return {undefined} - */ -function rlSetUniformSampler(locIndex, textureId) { - return r.BindrlSetUniformSampler( - locIndex, - textureId +function ImageDrawLine(dst, startPosX, startPosY, endPosX, endPosY, color) { + const obj = r.BindImageDrawLine( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + startPosX, + startPosY, + endPosX, + endPosY, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlSetUniformSampler = rlSetUniformSampler +raylib.ImageDrawLine = ImageDrawLine /** - * Set shader currently active (id and locations) + * Draw line within an image (Vector version) * - * @param {number} id - * @param {number} locs + * @param {Image} dst + * @param {Vector2} start + * @param {Vector2} end + * @param {Color} color * * @return {undefined} */ -function rlSetShader(id, locs) { - return r.BindrlSetShader( - id, - locs +function ImageDrawLineV(dst, start, end, color) { + const obj = r.BindImageDrawLineV( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + start.x, + start.y, + end.x, + end.y, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlSetShader = rlSetShader +raylib.ImageDrawLineV = ImageDrawLineV /** - * Load compute shader program + * Draw a filled circle within an image * - * @param {number} shaderId + * @param {Image} dst + * @param {number} centerX + * @param {number} centerY + * @param {number} radius + * @param {Color} color * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadComputeShaderProgram(shaderId) { - return r.BindrlLoadComputeShaderProgram( - shaderId +function ImageDrawCircle(dst, centerX, centerY, radius, color) { + const obj = r.BindImageDrawCircle( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + centerX, + centerY, + radius, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlLoadComputeShaderProgram = rlLoadComputeShaderProgram +raylib.ImageDrawCircle = ImageDrawCircle /** - * Dispatch compute shader (equivalent to *draw* for graphics pipeline) + * Draw a filled circle within an image (Vector version) * - * @param {number} groupX - * @param {number} groupY - * @param {number} groupZ + * @param {Image} dst + * @param {Vector2} center + * @param {number} radius + * @param {Color} color * * @return {undefined} */ -function rlComputeShaderDispatch(groupX, groupY, groupZ) { - return r.BindrlComputeShaderDispatch( - groupX, - groupY, - groupZ +function ImageDrawCircleV(dst, center, radius, color) { + const obj = r.BindImageDrawCircleV( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + center.x, + center.y, + radius, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlComputeShaderDispatch = rlComputeShaderDispatch +raylib.ImageDrawCircleV = ImageDrawCircleV /** - * Load shader storage buffer object (SSBO) + * Draw rectangle within an image * - * @param {number} size - * @param {number} data - * @param {number} usageHint + * @param {Image} dst + * @param {number} posX + * @param {number} posY + * @param {number} width + * @param {number} height + * @param {Color} color * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadShaderBuffer(size, data, usageHint) { - return r.BindrlLoadShaderBuffer( - size, - data, - usageHint +function ImageDrawRectangle(dst, posX, posY, width, height, color) { + const obj = r.BindImageDrawRectangle( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + posX, + posY, + width, + height, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlLoadShaderBuffer = rlLoadShaderBuffer +raylib.ImageDrawRectangle = ImageDrawRectangle /** - * Unload shader storage buffer object (SSBO) + * Draw rectangle within an image (Vector version) * - * @param {number} ssboId + * @param {Image} dst + * @param {Vector2} position + * @param {Vector2} size + * @param {Color} color * * @return {undefined} */ -function rlUnloadShaderBuffer(ssboId) { - return r.BindrlUnloadShaderBuffer( - ssboId +function ImageDrawRectangleV(dst, position, size, color) { + const obj = r.BindImageDrawRectangleV( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + position.x, + position.y, + size.x, + size.y, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlUnloadShaderBuffer = rlUnloadShaderBuffer +raylib.ImageDrawRectangleV = ImageDrawRectangleV /** - * Update SSBO buffer data + * Draw rectangle within an image * - * @param {number} id - * @param {number} data - * @param {number} dataSize - * @param {number} offset + * @param {Image} dst + * @param {Rectangle} rec + * @param {Color} color * * @return {undefined} */ -function rlUpdateShaderBuffer(id, data, dataSize, offset) { - return r.BindrlUpdateShaderBuffer( - id, - data, - dataSize, - offset +function ImageDrawRectangleRec(dst, rec, color) { + const obj = r.BindImageDrawRectangleRec( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + rec.x, + rec.y, + rec.width, + rec.height, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlUpdateShaderBuffer = rlUpdateShaderBuffer +raylib.ImageDrawRectangleRec = ImageDrawRectangleRec /** - * Bind SSBO buffer + * Draw rectangle lines within an image * - * @param {number} id - * @param {number} index + * @param {Image} dst + * @param {Rectangle} rec + * @param {number} thick + * @param {Color} color * * @return {undefined} */ -function rlBindShaderBuffer(id, index) { - return r.BindrlBindShaderBuffer( - id, - index +function ImageDrawRectangleLines(dst, rec, thick, color) { + const obj = r.BindImageDrawRectangleLines( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + rec.x, + rec.y, + rec.width, + rec.height, + thick, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlBindShaderBuffer = rlBindShaderBuffer +raylib.ImageDrawRectangleLines = ImageDrawRectangleLines /** - * Read SSBO buffer data (GPU->CPU) + * Draw a source image within a destination image (tint applied to source) * - * @param {number} id - * @param {number} dest - * @param {number} count - * @param {number} offset + * @param {Image} dst + * @param {Image} src + * @param {Rectangle} srcRec + * @param {Rectangle} dstRec + * @param {Color} tint * * @return {undefined} */ -function rlReadShaderBuffer(id, dest, count, offset) { - return r.BindrlReadShaderBuffer( - id, - dest, - count, - offset +function ImageDraw(dst, src, srcRec, dstRec, tint) { + const obj = r.BindImageDraw( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + src.data, + src.width, + src.height, + src.mipmaps, + src.format, + srcRec.x, + srcRec.y, + srcRec.width, + srcRec.height, + dstRec.x, + dstRec.y, + dstRec.width, + dstRec.height, + tint.r, + tint.g, + tint.b, + tint.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlReadShaderBuffer = rlReadShaderBuffer +raylib.ImageDraw = ImageDraw /** - * Copy SSBO data between buffers + * Draw text (using default font) within an image (destination) * - * @param {number} destId - * @param {number} srcId - * @param {number} destOffset - * @param {number} srcOffset - * @param {number} count + * @param {Image} dst + * @param {string} text + * @param {number} posX + * @param {number} posY + * @param {number} fontSize + * @param {Color} color * * @return {undefined} */ -function rlCopyShaderBuffer(destId, srcId, destOffset, srcOffset, count) { - return r.BindrlCopyShaderBuffer( - destId, - srcId, - destOffset, - srcOffset, - count +function ImageDrawText(dst, text, posX, posY, fontSize, color) { + const obj = r.BindImageDrawText( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + text, + posX, + posY, + fontSize, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlCopyShaderBuffer = rlCopyShaderBuffer +raylib.ImageDrawText = ImageDrawText /** - * Get SSBO buffer size + * Draw text (custom sprite font) within an image (destination) * - * @param {number} id + * @param {Image} dst + * @param {Font} font + * @param {string} text + * @param {Vector2} position + * @param {number} fontSize + * @param {number} spacing + * @param {Color} tint * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlGetShaderBufferSize(id) { - return r.BindrlGetShaderBufferSize( - id +function ImageDrawTextEx(dst, font, text, position, fontSize, spacing, tint) { + const obj = r.BindImageDrawTextEx( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + font.baseSize, + font.glyphCount, + font.glyphPadding, + font.texture.id, + font.texture.width, + font.texture.height, + font.texture.mipmaps, + font.texture.format, + font.recs, + font.glyphs, + text, + position.x, + position.y, + fontSize, + spacing, + tint.r, + tint.g, + tint.b, + tint.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlGetShaderBufferSize = rlGetShaderBufferSize +raylib.ImageDrawTextEx = ImageDrawTextEx /** - * Bind image texture + * Generate GPU mipmaps for a texture * - * @param {number} id - * @param {number} index - * @param {number} format - * @param {boolean} readonly + * @param {Texture2D} texture * * @return {undefined} */ -function rlBindImageTexture(id, index, format, readonly) { - return r.BindrlBindImageTexture( - id, - index, - format, - readonly +function GenTextureMipmaps(texture) { + const obj = r.BindGenTextureMipmaps( + texture.id, + texture.width, + texture.height, + texture.mipmaps, + texture.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + texture[key] = obj[key] + } + } } -raylib.rlBindImageTexture = rlBindImageTexture - -/** - * Get internal modelview matrix - * - * @return {Matrix} The resulting Matrix. - */ -function rlGetMatrixModelview() { - return r.BindrlGetMatrixModelview() -} -raylib.rlGetMatrixModelview = rlGetMatrixModelview +raylib.GenTextureMipmaps = GenTextureMipmaps /** - * Get internal projection matrix + * Upload mesh vertex data in GPU and provide VAO/VBO ids * - * @return {Matrix} The resulting Matrix. - */ -function rlGetMatrixProjection() { - return r.BindrlGetMatrixProjection() -} -raylib.rlGetMatrixProjection = rlGetMatrixProjection - -/** - * Get internal accumulated transform matrix + * @param {Mesh} mesh + * @param {boolean} dynamic * - * @return {Matrix} The resulting Matrix. + * @return {undefined} */ -function rlGetMatrixTransform() { - return r.BindrlGetMatrixTransform() +function UploadMesh(mesh, dynamic) { + const obj = r.BindUploadMesh( + mesh.vertexCount, + mesh.triangleCount, + mesh.vertices, + mesh.texcoords, + mesh.texcoords2, + mesh.normals, + mesh.tangents, + mesh.colors, + mesh.indices, + mesh.animVertices, + mesh.animNormals, + mesh.boneIds, + mesh.boneWeights, + mesh.vaoId, + mesh.vboId, + dynamic + ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + mesh[key] = obj[key] + } + } } -raylib.rlGetMatrixTransform = rlGetMatrixTransform +raylib.UploadMesh = UploadMesh /** - * Get internal projection matrix for stereo render (selected eye) + * Compute mesh tangents * - * @param {number} eye + * @param {Mesh} mesh * - * @return {Matrix} The resulting Matrix. + * @return {undefined} */ -function rlGetMatrixProjectionStereo(eye) { - return r.BindrlGetMatrixProjectionStereo( - eye - ) -} -raylib.rlGetMatrixProjectionStereo = rlGetMatrixProjectionStereo - -/** - * Get internal view offset matrix for stereo render (selected eye) - * - * @param {number} eye - * - * @return {Matrix} The resulting Matrix. - */ -function rlGetMatrixViewOffsetStereo(eye) { - return r.BindrlGetMatrixViewOffsetStereo( - eye +function GenMeshTangents(mesh) { + const obj = r.BindGenMeshTangents( + mesh.vertexCount, + mesh.triangleCount, + mesh.vertices, + mesh.texcoords, + mesh.texcoords2, + mesh.normals, + mesh.tangents, + mesh.colors, + mesh.indices, + mesh.animVertices, + mesh.animNormals, + mesh.boneIds, + mesh.boneWeights, + mesh.vaoId, + mesh.vboId ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + mesh[key] = obj[key] + } + } } -raylib.rlGetMatrixViewOffsetStereo = rlGetMatrixViewOffsetStereo +raylib.GenMeshTangents = GenMeshTangents /** - * Set a custom projection matrix (replaces internal projection matrix) + * Set material for a mesh * - * @param {Matrix} proj + * @param {Model} model + * @param {number} meshId + * @param {number} materialId * * @return {undefined} */ -function rlSetMatrixProjection(proj) { - return r.BindrlSetMatrixProjection( - proj.m0, - proj.m4, - proj.m8, - proj.m12, - proj.m1, - proj.m5, - proj.m9, - proj.m13, - proj.m2, - proj.m6, - proj.m10, - proj.m14, - proj.m3, - proj.m7, - proj.m11, - proj.m15 +function SetModelMeshMaterial(model, meshId, materialId) { + const obj = r.BindSetModelMeshMaterial( + model.transform.m0, + model.transform.m4, + model.transform.m8, + model.transform.m12, + model.transform.m1, + model.transform.m5, + model.transform.m9, + model.transform.m13, + model.transform.m2, + model.transform.m6, + model.transform.m10, + model.transform.m14, + model.transform.m3, + model.transform.m7, + model.transform.m11, + model.transform.m15, + model.meshCount, + model.materialCount, + model.meshes, + model.materials, + model.meshMaterial, + model.boneCount, + model.bones, + model.bindPose, + meshId, + materialId ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + model[key] = obj[key] + } + } } -raylib.rlSetMatrixProjection = rlSetMatrixProjection +raylib.SetModelMeshMaterial = SetModelMeshMaterial /** - * Set a custom modelview matrix (replaces internal modelview matrix) + * Crop a wave to defined samples range * - * @param {Matrix} view + * @param {Wave} wave + * @param {number} initSample + * @param {number} finalSample * * @return {undefined} */ -function rlSetMatrixModelview(view) { - return r.BindrlSetMatrixModelview( - view.m0, - view.m4, - view.m8, - view.m12, - view.m1, - view.m5, - view.m9, - view.m13, - view.m2, - view.m6, - view.m10, - view.m14, - view.m3, - view.m7, - view.m11, - view.m15 +function WaveCrop(wave, initSample, finalSample) { + const obj = r.BindWaveCrop( + wave.frameCount, + wave.sampleRate, + wave.sampleSize, + wave.channels, + wave.data, + initSample, + finalSample ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + wave[key] = obj[key] + } + } } -raylib.rlSetMatrixModelview = rlSetMatrixModelview +raylib.WaveCrop = WaveCrop /** - * Set eyes projection matrices for stereo rendering + * Convert wave data to desired format * - * @param {Matrix} right - * @param {Matrix} left + * @param {Wave} wave + * @param {number} sampleRate + * @param {number} sampleSize + * @param {number} channels * * @return {undefined} */ -function rlSetMatrixProjectionStereo(right, left) { - return r.BindrlSetMatrixProjectionStereo( - right.m0, - right.m4, - right.m8, - right.m12, - right.m1, - right.m5, - right.m9, - right.m13, - right.m2, - right.m6, - right.m10, - right.m14, - right.m3, - right.m7, - right.m11, - right.m15, - left.m0, - left.m4, - left.m8, - left.m12, - left.m1, - left.m5, - left.m9, - left.m13, - left.m2, - left.m6, - left.m10, - left.m14, - left.m3, - left.m7, - left.m11, - left.m15 +function WaveFormat(wave, sampleRate, sampleSize, channels) { + const obj = r.BindWaveFormat( + wave.frameCount, + wave.sampleRate, + wave.sampleSize, + wave.channels, + wave.data, + sampleRate, + sampleSize, + channels ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + wave[key] = obj[key] + } + } } -raylib.rlSetMatrixProjectionStereo = rlSetMatrixProjectionStereo +raylib.WaveFormat = WaveFormat /** - * Set eyes view offsets matrices for stereo rendering + * Color, 4 components, R8G8B8A8 (32bit) * - * @param {Matrix} right - * @param {Matrix} left + * @param {number} r - Color red value + * @param {number} g - Color green value + * @param {number} b - Color blue value + * @param {number} a - Color alpha value * - * @return {undefined} + * @return {Color} The new Color. */ -function rlSetMatrixViewOffsetStereo(right, left) { - return r.BindrlSetMatrixViewOffsetStereo( - right.m0, - right.m4, - right.m8, - right.m12, - right.m1, - right.m5, - right.m9, - right.m13, - right.m2, - right.m6, - right.m10, - right.m14, - right.m3, - right.m7, - right.m11, - right.m15, - left.m0, - left.m4, - left.m8, - left.m12, - left.m1, - left.m5, - left.m9, - left.m13, - left.m2, - left.m6, - left.m10, - left.m14, - left.m3, - left.m7, - left.m11, - left.m15 - ) +function Color(r,g,b,a) { + return {r,g,b,a} } -raylib.rlSetMatrixViewOffsetStereo = rlSetMatrixViewOffsetStereo +raylib.Color = Color /** - * Load and draw a cube + * Vector2, 2 components * - * @return {undefined} + * @param {number} x - Vector x component + * @param {number} y - Vector y component + * + * @return {Vector2} The new Vector2. */ -function rlLoadDrawCube() { - return r.BindrlLoadDrawCube() +function Vector2(x,y) { + return {x,y} } -raylib.rlLoadDrawCube = rlLoadDrawCube +raylib.Vector2 = Vector2 /** - * Load and draw a quad - * - * @return {undefined} - */ -function rlLoadDrawQuad() { - return r.BindrlLoadDrawQuad() -} -raylib.rlLoadDrawQuad = rlLoadDrawQuad - -/** - * Update camera position for selected mode - * - * @param {Camera} camera - * @param {number} mode - * - * @return {undefined} - */ -function UpdateCamera(camera, mode) { - const obj = r.BindUpdateCamera( - camera.position.x, - camera.position.y, - camera.position.z, - camera.target.x, - camera.target.y, - camera.target.z, - camera.up.x, - camera.up.y, - camera.up.z, - camera.fovy, - camera.projection, - mode - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - camera[key] = obj[key] - } - } -} -raylib.UpdateCamera = UpdateCamera - -/** - * Convert image data to desired format - * - * @param {Image} image - * @param {number} newFormat - * - * @return {undefined} - */ -function ImageFormat(image, newFormat) { - const obj = r.BindImageFormat( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - newFormat - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageFormat = ImageFormat - -/** - * Convert image to POT (power-of-two) - * - * @param {Image} image - * @param {Color} fill - * - * @return {undefined} - */ -function ImageToPOT(image, fill) { - const obj = r.BindImageToPOT( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - fill.r, - fill.g, - fill.b, - fill.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageToPOT = ImageToPOT - -/** - * Crop an image to a defined rectangle - * - * @param {Image} image - * @param {Rectangle} crop - * - * @return {undefined} - */ -function ImageCrop(image, crop) { - const obj = r.BindImageCrop( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - crop.x, - crop.y, - crop.width, - crop.height - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageCrop = ImageCrop - -/** - * Crop image depending on alpha value - * - * @param {Image} image - * @param {number} threshold - * - * @return {undefined} - */ -function ImageAlphaCrop(image, threshold) { - const obj = r.BindImageAlphaCrop( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - threshold - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageAlphaCrop = ImageAlphaCrop - -/** - * Clear alpha channel to desired color - * - * @param {Image} image - * @param {Color} color - * @param {number} threshold - * - * @return {undefined} - */ -function ImageAlphaClear(image, color, threshold) { - const obj = r.BindImageAlphaClear( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - color.r, - color.g, - color.b, - color.a, - threshold - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageAlphaClear = ImageAlphaClear - -/** - * Apply alpha mask to image - * - * @param {Image} image - * @param {Image} alphaMask - * - * @return {undefined} - */ -function ImageAlphaMask(image, alphaMask) { - const obj = r.BindImageAlphaMask( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - alphaMask.data, - alphaMask.width, - alphaMask.height, - alphaMask.mipmaps, - alphaMask.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageAlphaMask = ImageAlphaMask - -/** - * Premultiply alpha channel - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageAlphaPremultiply(image) { - const obj = r.BindImageAlphaPremultiply( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageAlphaPremultiply = ImageAlphaPremultiply - -/** - * Resize image (Bicubic scaling algorithm) - * - * @param {Image} image - * @param {number} newWidth - * @param {number} newHeight - * - * @return {undefined} - */ -function ImageResize(image, newWidth, newHeight) { - const obj = r.BindImageResize( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - newWidth, - newHeight - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageResize = ImageResize - -/** - * Resize image (Nearest-Neighbor scaling algorithm) - * - * @param {Image} image - * @param {number} newWidth - * @param {number} newHeight - * - * @return {undefined} - */ -function ImageResizeNN(image, newWidth, newHeight) { - const obj = r.BindImageResizeNN( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - newWidth, - newHeight - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageResizeNN = ImageResizeNN - -/** - * Resize canvas and fill with color - * - * @param {Image} image - * @param {number} newWidth - * @param {number} newHeight - * @param {number} offsetX - * @param {number} offsetY - * @param {Color} fill - * - * @return {undefined} - */ -function ImageResizeCanvas(image, newWidth, newHeight, offsetX, offsetY, fill) { - const obj = r.BindImageResizeCanvas( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - newWidth, - newHeight, - offsetX, - offsetY, - fill.r, - fill.g, - fill.b, - fill.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageResizeCanvas = ImageResizeCanvas - -/** - * Compute all mipmap levels for a provided image - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageMipmaps(image) { - const obj = r.BindImageMipmaps( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageMipmaps = ImageMipmaps - -/** - * Dither image data to 16bpp or lower (Floyd-Steinberg dithering) - * - * @param {Image} image - * @param {number} rBpp - * @param {number} gBpp - * @param {number} bBpp - * @param {number} aBpp - * - * @return {undefined} - */ -function ImageDither(image, rBpp, gBpp, bBpp, aBpp) { - const obj = r.BindImageDither( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - rBpp, - gBpp, - bBpp, - aBpp - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageDither = ImageDither - -/** - * Flip image vertically - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageFlipVertical(image) { - const obj = r.BindImageFlipVertical( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageFlipVertical = ImageFlipVertical - -/** - * Flip image horizontally - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageFlipHorizontal(image) { - const obj = r.BindImageFlipHorizontal( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageFlipHorizontal = ImageFlipHorizontal - -/** - * Rotate image clockwise 90deg - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageRotateCW(image) { - const obj = r.BindImageRotateCW( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageRotateCW = ImageRotateCW - -/** - * Rotate image counter-clockwise 90deg - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageRotateCCW(image) { - const obj = r.BindImageRotateCCW( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageRotateCCW = ImageRotateCCW - -/** - * Modify image color: tint - * - * @param {Image} image - * @param {Color} color - * - * @return {undefined} - */ -function ImageColorTint(image, color) { - const obj = r.BindImageColorTint( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageColorTint = ImageColorTint - -/** - * Modify image color: invert - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageColorInvert(image) { - const obj = r.BindImageColorInvert( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageColorInvert = ImageColorInvert - -/** - * Modify image color: grayscale - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageColorGrayscale(image) { - const obj = r.BindImageColorGrayscale( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageColorGrayscale = ImageColorGrayscale - -/** - * Modify image color: contrast (-100 to 100) - * - * @param {Image} image - * @param {number} contrast - * - * @return {undefined} - */ -function ImageColorContrast(image, contrast) { - const obj = r.BindImageColorContrast( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - contrast - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageColorContrast = ImageColorContrast - -/** - * Modify image color: brightness (-255 to 255) - * - * @param {Image} image - * @param {number} brightness - * - * @return {undefined} - */ -function ImageColorBrightness(image, brightness) { - const obj = r.BindImageColorBrightness( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - brightness - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageColorBrightness = ImageColorBrightness - -/** - * Modify image color: replace color - * - * @param {Image} image - * @param {Color} color - * @param {Color} replace - * - * @return {undefined} - */ -function ImageColorReplace(image, color, replace) { - const obj = r.BindImageColorReplace( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - color.r, - color.g, - color.b, - color.a, - replace.r, - replace.g, - replace.b, - replace.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageColorReplace = ImageColorReplace - -/** - * Clear image background with given color - * - * @param {Image} dst - * @param {Color} color - * - * @return {undefined} - */ -function ImageClearBackground(dst, color) { - const obj = r.BindImageClearBackground( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageClearBackground = ImageClearBackground - -/** - * Draw pixel within an image - * - * @param {Image} dst - * @param {number} posX - * @param {number} posY - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawPixel(dst, posX, posY, color) { - const obj = r.BindImageDrawPixel( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - posX, - posY, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawPixel = ImageDrawPixel - -/** - * Draw pixel within an image (Vector version) - * - * @param {Image} dst - * @param {Vector2} position - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawPixelV(dst, position, color) { - const obj = r.BindImageDrawPixelV( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - position.x, - position.y, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawPixelV = ImageDrawPixelV - -/** - * Draw line within an image - * - * @param {Image} dst - * @param {number} startPosX - * @param {number} startPosY - * @param {number} endPosX - * @param {number} endPosY - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawLine(dst, startPosX, startPosY, endPosX, endPosY, color) { - const obj = r.BindImageDrawLine( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - startPosX, - startPosY, - endPosX, - endPosY, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawLine = ImageDrawLine - -/** - * Draw line within an image (Vector version) - * - * @param {Image} dst - * @param {Vector2} start - * @param {Vector2} end - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawLineV(dst, start, end, color) { - const obj = r.BindImageDrawLineV( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - start.x, - start.y, - end.x, - end.y, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawLineV = ImageDrawLineV - -/** - * Draw a filled circle within an image - * - * @param {Image} dst - * @param {number} centerX - * @param {number} centerY - * @param {number} radius - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawCircle(dst, centerX, centerY, radius, color) { - const obj = r.BindImageDrawCircle( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - centerX, - centerY, - radius, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawCircle = ImageDrawCircle - -/** - * Draw a filled circle within an image (Vector version) - * - * @param {Image} dst - * @param {Vector2} center - * @param {number} radius - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawCircleV(dst, center, radius, color) { - const obj = r.BindImageDrawCircleV( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - center.x, - center.y, - radius, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawCircleV = ImageDrawCircleV - -/** - * Draw rectangle within an image - * - * @param {Image} dst - * @param {number} posX - * @param {number} posY - * @param {number} width - * @param {number} height - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawRectangle(dst, posX, posY, width, height, color) { - const obj = r.BindImageDrawRectangle( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - posX, - posY, - width, - height, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawRectangle = ImageDrawRectangle - -/** - * Draw rectangle within an image (Vector version) - * - * @param {Image} dst - * @param {Vector2} position - * @param {Vector2} size - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawRectangleV(dst, position, size, color) { - const obj = r.BindImageDrawRectangleV( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - position.x, - position.y, - size.x, - size.y, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawRectangleV = ImageDrawRectangleV - -/** - * Draw rectangle within an image - * - * @param {Image} dst - * @param {Rectangle} rec - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawRectangleRec(dst, rec, color) { - const obj = r.BindImageDrawRectangleRec( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - rec.x, - rec.y, - rec.width, - rec.height, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawRectangleRec = ImageDrawRectangleRec - -/** - * Draw rectangle lines within an image - * - * @param {Image} dst - * @param {Rectangle} rec - * @param {number} thick - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawRectangleLines(dst, rec, thick, color) { - const obj = r.BindImageDrawRectangleLines( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - rec.x, - rec.y, - rec.width, - rec.height, - thick, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawRectangleLines = ImageDrawRectangleLines - -/** - * Draw a source image within a destination image (tint applied to source) - * - * @param {Image} dst - * @param {Image} src - * @param {Rectangle} srcRec - * @param {Rectangle} dstRec - * @param {Color} tint - * - * @return {undefined} - */ -function ImageDraw(dst, src, srcRec, dstRec, tint) { - const obj = r.BindImageDraw( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - src.data, - src.width, - src.height, - src.mipmaps, - src.format, - srcRec.x, - srcRec.y, - srcRec.width, - srcRec.height, - dstRec.x, - dstRec.y, - dstRec.width, - dstRec.height, - tint.r, - tint.g, - tint.b, - tint.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDraw = ImageDraw - -/** - * Draw text (using default font) within an image (destination) - * - * @param {Image} dst - * @param {string} text - * @param {number} posX - * @param {number} posY - * @param {number} fontSize - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawText(dst, text, posX, posY, fontSize, color) { - const obj = r.BindImageDrawText( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - text, - posX, - posY, - fontSize, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawText = ImageDrawText - -/** - * Draw text (custom sprite font) within an image (destination) - * - * @param {Image} dst - * @param {Font} font - * @param {string} text - * @param {Vector2} position - * @param {number} fontSize - * @param {number} spacing - * @param {Color} tint - * - * @return {undefined} - */ -function ImageDrawTextEx(dst, font, text, position, fontSize, spacing, tint) { - const obj = r.BindImageDrawTextEx( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - font.baseSize, - font.glyphCount, - font.glyphPadding, - font.texture.id, - font.texture.width, - font.texture.height, - font.texture.mipmaps, - font.texture.format, - font.recs, - font.glyphs, - text, - position.x, - position.y, - fontSize, - spacing, - tint.r, - tint.g, - tint.b, - tint.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawTextEx = ImageDrawTextEx - -/** - * Generate GPU mipmaps for a texture - * - * @param {Texture2D} texture - * - * @return {undefined} - */ -function GenTextureMipmaps(texture) { - const obj = r.BindGenTextureMipmaps( - texture.id, - texture.width, - texture.height, - texture.mipmaps, - texture.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - texture[key] = obj[key] - } - } -} -raylib.GenTextureMipmaps = GenTextureMipmaps - -/** - * Upload mesh vertex data in GPU and provide VAO/VBO ids - * - * @param {Mesh} mesh - * @param {boolean} dynamic - * - * @return {undefined} - */ -function UploadMesh(mesh, dynamic) { - const obj = r.BindUploadMesh( - mesh.vertexCount, - mesh.triangleCount, - mesh.vertices, - mesh.texcoords, - mesh.texcoords2, - mesh.normals, - mesh.tangents, - mesh.colors, - mesh.indices, - mesh.animVertices, - mesh.animNormals, - mesh.boneIds, - mesh.boneWeights, - mesh.vaoId, - mesh.vboId, - dynamic - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - mesh[key] = obj[key] - } - } -} -raylib.UploadMesh = UploadMesh - -/** - * Compute mesh tangents - * - * @param {Mesh} mesh - * - * @return {undefined} - */ -function GenMeshTangents(mesh) { - const obj = r.BindGenMeshTangents( - mesh.vertexCount, - mesh.triangleCount, - mesh.vertices, - mesh.texcoords, - mesh.texcoords2, - mesh.normals, - mesh.tangents, - mesh.colors, - mesh.indices, - mesh.animVertices, - mesh.animNormals, - mesh.boneIds, - mesh.boneWeights, - mesh.vaoId, - mesh.vboId - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - mesh[key] = obj[key] - } - } -} -raylib.GenMeshTangents = GenMeshTangents - -/** - * Set material for a mesh - * - * @param {Model} model - * @param {number} meshId - * @param {number} materialId - * - * @return {undefined} - */ -function SetModelMeshMaterial(model, meshId, materialId) { - const obj = r.BindSetModelMeshMaterial( - model.transform.m0, - model.transform.m4, - model.transform.m8, - model.transform.m12, - model.transform.m1, - model.transform.m5, - model.transform.m9, - model.transform.m13, - model.transform.m2, - model.transform.m6, - model.transform.m10, - model.transform.m14, - model.transform.m3, - model.transform.m7, - model.transform.m11, - model.transform.m15, - model.meshCount, - model.materialCount, - model.meshes, - model.materials, - model.meshMaterial, - model.boneCount, - model.bones, - model.bindPose, - meshId, - materialId - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - model[key] = obj[key] - } - } -} -raylib.SetModelMeshMaterial = SetModelMeshMaterial - -/** - * Crop a wave to defined samples range - * - * @param {Wave} wave - * @param {number} initSample - * @param {number} finalSample - * - * @return {undefined} - */ -function WaveCrop(wave, initSample, finalSample) { - const obj = r.BindWaveCrop( - wave.frameCount, - wave.sampleRate, - wave.sampleSize, - wave.channels, - wave.data, - initSample, - finalSample - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - wave[key] = obj[key] - } - } -} -raylib.WaveCrop = WaveCrop - -/** - * Convert wave data to desired format - * - * @param {Wave} wave - * @param {number} sampleRate - * @param {number} sampleSize - * @param {number} channels - * - * @return {undefined} - */ -function WaveFormat(wave, sampleRate, sampleSize, channels) { - const obj = r.BindWaveFormat( - wave.frameCount, - wave.sampleRate, - wave.sampleSize, - wave.channels, - wave.data, - sampleRate, - sampleSize, - channels - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - wave[key] = obj[key] - } - } -} -raylib.WaveFormat = WaveFormat - -/** - * Color, 4 components, R8G8B8A8 (32bit) - * - * @param {number} r - Color red value - * @param {number} g - Color green value - * @param {number} b - Color blue value - * @param {number} a - Color alpha value - * - * @return {Color} The new Color. - */ -function Color(r,g,b,a) { - return {r,g,b,a} -} -raylib.Color = Color - -/** - * Vector2, 2 components - * - * @param {number} x - Vector x component - * @param {number} y - Vector y component - * - * @return {Vector2} The new Vector2. - */ -function Vector2(x,y) { - return {x,y} -} -raylib.Vector2 = Vector2 - -/** - * Vector3, 3 components - * - * @param {number} x - Vector x component - * @param {number} y - Vector y component - * @param {number} z - Vector z component - * - * @return {Vector3} The new Vector3. - */ -function Vector3(x,y,z) { - return {x,y,z} -} -raylib.Vector3 = Vector3 - -/** - * Vector4, 4 components - * - * @param {number} x - Vector x component - * @param {number} y - Vector y component - * @param {number} z - Vector z component - * @param {number} w - Vector w component - * - * @return {Vector4} The new Vector4. - */ -function Vector4(x,y,z,w) { - return {x,y,z,w} -} -raylib.Vector4 = Vector4 - -/** - * Rectangle, 4 components - * - * @param {number} x - Rectangle top-left corner position x - * @param {number} y - Rectangle top-left corner position y - * @param {number} width - Rectangle width - * @param {number} height - Rectangle height - * - * @return {Rectangle} The new Rectangle. - */ -function Rectangle(x,y,width,height) { - return {x,y,width,height} -} -raylib.Rectangle = Rectangle - -/** - * Camera2D, defines position/orientation in 2d space - * - * @param {Vector2} offset - Camera offset (displacement from target) - * @param {Vector2} target - Camera target (rotation and zoom origin) - * @param {number} rotation - Camera rotation in degrees - * @param {number} zoom - Camera zoom (scaling), should be 1.0f by default - * - * @return {Camera2D} The new Camera2D. - */ -function Camera2D(offset,target,rotation,zoom) { - return {offset,target,rotation,zoom} -} -raylib.Camera2D = Camera2D - -/** - * Camera, defines position/orientation in 3d space - * - * @param {Vector3} position - Camera position - * @param {Vector3} target - Camera target it looks-at - * @param {Vector3} up - Camera up vector (rotation over its axis) - * @param {number} fovy - Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic - * @param {number} projection - Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC - * - * @return {Camera3D} The new Camera3D. - */ -function Camera3D(position,target,up,fovy,projection) { - return {position,target,up,fovy,projection} -} -raylib.Camera3D = Camera3D -raylib.Camera = raylib.Camera3D - -// WRAPPED TYPED SHADER FUNCTIONS - -/** - * Set shader uniform value float - * - * @param {Shader} shader - * @param {number} locIndex - * @param {number} value - * - * @returns {undefined} - */ -function SetShaderFloat(shader, locIndex, value) { - return r.BindSetShaderFloat( - shader.id, - shader.locs, - locIndex, - value - ) -} -raylib.SetShaderFloat = SetShaderFloat - -/** - * Set shader uniform value float - * - * @param {Shader} shader - * @param {number} locIndex - * @param {number} value - * - * @returns {undefined} - */ -function SetShaderInt(shader, locIndex, value) { - return r.BindSetShaderInt( - shader.id, - shader.locs, - locIndex, - value - ) -} -raylib.SetShaderInt = SetShaderInt - -/** - * Set shader uniform value vector2 - * - * @param {Shader} shader - * @param {number} locIndex - * @param {Vector2} value - * - * @returns {undefined} - */ -function SetShaderVec2(shader, locIndex, value) { - return r.BindSetShaderVec2( - shader.id, - shader.locs, - locIndex, - value.x, - value.y - ) -} -raylib.SetShaderVec2 = SetShaderVec2 - -/** - * Set shader uniform value vector3 - * - * @param {Shader} shader - * @param {number} locIndex - * @param {Vector3} value - * - * @returns {undefined} - */ -function SetShaderVec3(shader, locIndex, value) { - return r.BindSetShaderVec3( - shader.id, - shader.locs, - locIndex, - value.x, - value.y, - value.z - ) -} -raylib.SetShaderVec3 = SetShaderVec3 - -/** - * Set shader uniform value vector4 - * - * @param {Shader} shader - * @param {number} locIndex - * @param {Vector4} value - * - * @returns {undefined} - */ -function SetShaderVec4(shader, locIndex, value) { - return r.BindSetShaderVec4( - shader.id, - shader.locs, - locIndex, - value.x, - value.y, - value.z, - value.w - ) -} -raylib.SetShaderVec4 = SetShaderVec4 - -/** - * Set to try enabling V-Sync on GPU - * - * @type {number} - * @constant - */ -raylib.FLAG_VSYNC_HINT = 64 - -/** - * Set to run program in fullscreen - * - * @type {number} - * @constant - */ -raylib.FLAG_FULLSCREEN_MODE = 2 - -/** - * Set to allow resizable window - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_RESIZABLE = 4 - -/** - * Set to disable window decoration (frame and buttons) - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_UNDECORATED = 8 - -/** - * Set to hide window - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_HIDDEN = 128 - -/** - * Set to minimize window (iconify) - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_MINIMIZED = 512 - -/** - * Set to maximize window (expanded to monitor) - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_MAXIMIZED = 1024 - -/** - * Set to window non focused - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_UNFOCUSED = 2048 - -/** - * Set to window always on top - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_TOPMOST = 4096 - -/** - * Set to allow windows running while minimized - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_ALWAYS_RUN = 256 - -/** - * Set to allow transparent framebuffer - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_TRANSPARENT = 16 - -/** - * Set to support HighDPI - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_HIGHDPI = 8192 - -/** - * Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_MOUSE_PASSTHROUGH = 16384 - -/** - * Set to run program in borderless windowed mode - * - * @type {number} - * @constant - */ -raylib.FLAG_BORDERLESS_WINDOWED_MODE = 32768 - -/** - * Set to try enabling MSAA 4X - * - * @type {number} - * @constant - */ -raylib.FLAG_MSAA_4X_HINT = 32 - -/** - * Set to try enabling interlaced video format (for V3D) - * - * @type {number} - * @constant - */ -raylib.FLAG_INTERLACED_HINT = 65536 - -/** - * Display all logs - * - * @type {number} - * @constant - */ -raylib.LOG_ALL = 0 - -/** - * Trace logging, intended for internal use only - * - * @type {number} - * @constant - */ -raylib.LOG_TRACE = 1 - -/** - * Debug logging, used for internal debugging, it should be disabled on release builds - * - * @type {number} - * @constant - */ -raylib.LOG_DEBUG = 2 - -/** - * Info logging, used for program execution info - * - * @type {number} - * @constant - */ -raylib.LOG_INFO = 3 - -/** - * Warning logging, used on recoverable failures - * - * @type {number} - * @constant - */ -raylib.LOG_WARNING = 4 - -/** - * Error logging, used on unrecoverable failures - * - * @type {number} - * @constant - */ -raylib.LOG_ERROR = 5 - -/** - * Fatal logging, used to abort program: exit(EXIT_FAILURE) - * - * @type {number} - * @constant - */ -raylib.LOG_FATAL = 6 - -/** - * Disable logging - * - * @type {number} - * @constant - */ -raylib.LOG_NONE = 7 - -/** - * Key: NULL, used for no key pressed - * - * @type {number} - * @constant - */ -raylib.KEY_NULL = 0 - -/** - * Key: ' - * - * @type {number} - * @constant - */ -raylib.KEY_APOSTROPHE = 39 - -/** - * Key: , - * - * @type {number} - * @constant - */ -raylib.KEY_COMMA = 44 - -/** - * Key: - - * - * @type {number} - * @constant - */ -raylib.KEY_MINUS = 45 - -/** - * Key: . - * - * @type {number} - * @constant - */ -raylib.KEY_PERIOD = 46 - -/** - * Key: / - * - * @type {number} - * @constant - */ -raylib.KEY_SLASH = 47 - -/** - * Key: 0 - * - * @type {number} - * @constant - */ -raylib.KEY_ZERO = 48 - -/** - * Key: 1 - * - * @type {number} - * @constant - */ -raylib.KEY_ONE = 49 - -/** - * Key: 2 - * - * @type {number} - * @constant - */ -raylib.KEY_TWO = 50 - -/** - * Key: 3 - * - * @type {number} - * @constant - */ -raylib.KEY_THREE = 51 - -/** - * Key: 4 - * - * @type {number} - * @constant - */ -raylib.KEY_FOUR = 52 - -/** - * Key: 5 - * - * @type {number} - * @constant - */ -raylib.KEY_FIVE = 53 - -/** - * Key: 6 - * - * @type {number} - * @constant - */ -raylib.KEY_SIX = 54 - -/** - * Key: 7 - * - * @type {number} - * @constant - */ -raylib.KEY_SEVEN = 55 - -/** - * Key: 8 - * - * @type {number} - * @constant - */ -raylib.KEY_EIGHT = 56 - -/** - * Key: 9 - * - * @type {number} - * @constant - */ -raylib.KEY_NINE = 57 - -/** - * Key: ; - * - * @type {number} - * @constant - */ -raylib.KEY_SEMICOLON = 59 - -/** - * Key: = - * - * @type {number} - * @constant - */ -raylib.KEY_EQUAL = 61 - -/** - * Key: A | a - * - * @type {number} - * @constant - */ -raylib.KEY_A = 65 - -/** - * Key: B | b - * - * @type {number} - * @constant - */ -raylib.KEY_B = 66 - -/** - * Key: C | c - * - * @type {number} - * @constant - */ -raylib.KEY_C = 67 - -/** - * Key: D | d - * - * @type {number} - * @constant - */ -raylib.KEY_D = 68 - -/** - * Key: E | e - * - * @type {number} - * @constant - */ -raylib.KEY_E = 69 - -/** - * Key: F | f - * - * @type {number} - * @constant - */ -raylib.KEY_F = 70 - -/** - * Key: G | g - * - * @type {number} - * @constant - */ -raylib.KEY_G = 71 - -/** - * Key: H | h - * - * @type {number} - * @constant - */ -raylib.KEY_H = 72 - -/** - * Key: I | i - * - * @type {number} - * @constant - */ -raylib.KEY_I = 73 - -/** - * Key: J | j - * - * @type {number} - * @constant - */ -raylib.KEY_J = 74 - -/** - * Key: K | k - * - * @type {number} - * @constant - */ -raylib.KEY_K = 75 - -/** - * Key: L | l - * - * @type {number} - * @constant - */ -raylib.KEY_L = 76 - -/** - * Key: M | m - * - * @type {number} - * @constant - */ -raylib.KEY_M = 77 - -/** - * Key: N | n - * - * @type {number} - * @constant - */ -raylib.KEY_N = 78 - -/** - * Key: O | o - * - * @type {number} - * @constant - */ -raylib.KEY_O = 79 - -/** - * Key: P | p - * - * @type {number} - * @constant - */ -raylib.KEY_P = 80 - -/** - * Key: Q | q - * - * @type {number} - * @constant - */ -raylib.KEY_Q = 81 - -/** - * Key: R | r - * - * @type {number} - * @constant - */ -raylib.KEY_R = 82 - -/** - * Key: S | s - * - * @type {number} - * @constant - */ -raylib.KEY_S = 83 - -/** - * Key: T | t - * - * @type {number} - * @constant - */ -raylib.KEY_T = 84 - -/** - * Key: U | u - * - * @type {number} - * @constant - */ -raylib.KEY_U = 85 - -/** - * Key: V | v - * - * @type {number} - * @constant - */ -raylib.KEY_V = 86 - -/** - * Key: W | w - * - * @type {number} - * @constant - */ -raylib.KEY_W = 87 - -/** - * Key: X | x - * - * @type {number} - * @constant - */ -raylib.KEY_X = 88 - -/** - * Key: Y | y - * - * @type {number} - * @constant - */ -raylib.KEY_Y = 89 - -/** - * Key: Z | z - * - * @type {number} - * @constant - */ -raylib.KEY_Z = 90 - -/** - * Key: [ - * - * @type {number} - * @constant - */ -raylib.KEY_LEFT_BRACKET = 91 - -/** - * Key: '\' - * - * @type {number} - * @constant - */ -raylib.KEY_BACKSLASH = 92 - -/** - * Key: ] - * - * @type {number} - * @constant - */ -raylib.KEY_RIGHT_BRACKET = 93 - -/** - * Key: ` - * - * @type {number} - * @constant - */ -raylib.KEY_GRAVE = 96 - -/** - * Key: Space - * - * @type {number} - * @constant - */ -raylib.KEY_SPACE = 32 - -/** - * Key: Esc - * - * @type {number} - * @constant - */ -raylib.KEY_ESCAPE = 256 - -/** - * Key: Enter - * - * @type {number} - * @constant - */ -raylib.KEY_ENTER = 257 - -/** - * Key: Tab - * - * @type {number} - * @constant - */ -raylib.KEY_TAB = 258 - -/** - * Key: Backspace - * - * @type {number} - * @constant - */ -raylib.KEY_BACKSPACE = 259 - -/** - * Key: Ins - * - * @type {number} - * @constant - */ -raylib.KEY_INSERT = 260 - -/** - * Key: Del - * - * @type {number} - * @constant - */ -raylib.KEY_DELETE = 261 - -/** - * Key: Cursor right - * - * @type {number} - * @constant - */ -raylib.KEY_RIGHT = 262 - -/** - * Key: Cursor left - * - * @type {number} - * @constant - */ -raylib.KEY_LEFT = 263 - -/** - * Key: Cursor down - * - * @type {number} - * @constant - */ -raylib.KEY_DOWN = 264 - -/** - * Key: Cursor up - * - * @type {number} - * @constant - */ -raylib.KEY_UP = 265 - -/** - * Key: Page up - * - * @type {number} - * @constant - */ -raylib.KEY_PAGE_UP = 266 - -/** - * Key: Page down - * - * @type {number} - * @constant - */ -raylib.KEY_PAGE_DOWN = 267 - -/** - * Key: Home - * - * @type {number} - * @constant - */ -raylib.KEY_HOME = 268 - -/** - * Key: End - * - * @type {number} - * @constant - */ -raylib.KEY_END = 269 - -/** - * Key: Caps lock - * - * @type {number} - * @constant - */ -raylib.KEY_CAPS_LOCK = 280 - -/** - * Key: Scroll down - * - * @type {number} - * @constant - */ -raylib.KEY_SCROLL_LOCK = 281 - -/** - * Key: Num lock - * - * @type {number} - * @constant - */ -raylib.KEY_NUM_LOCK = 282 - -/** - * Key: Print screen - * - * @type {number} - * @constant - */ -raylib.KEY_PRINT_SCREEN = 283 - -/** - * Key: Pause - * - * @type {number} - * @constant - */ -raylib.KEY_PAUSE = 284 - -/** - * Key: F1 - * - * @type {number} - * @constant - */ -raylib.KEY_F1 = 290 - -/** - * Key: F2 - * - * @type {number} - * @constant - */ -raylib.KEY_F2 = 291 - -/** - * Key: F3 - * - * @type {number} - * @constant - */ -raylib.KEY_F3 = 292 - -/** - * Key: F4 - * - * @type {number} - * @constant - */ -raylib.KEY_F4 = 293 - -/** - * Key: F5 - * - * @type {number} - * @constant - */ -raylib.KEY_F5 = 294 - -/** - * Key: F6 - * - * @type {number} - * @constant - */ -raylib.KEY_F6 = 295 - -/** - * Key: F7 - * - * @type {number} - * @constant - */ -raylib.KEY_F7 = 296 - -/** - * Key: F8 - * - * @type {number} - * @constant - */ -raylib.KEY_F8 = 297 - -/** - * Key: F9 - * - * @type {number} - * @constant - */ -raylib.KEY_F9 = 298 - -/** - * Key: F10 - * - * @type {number} - * @constant - */ -raylib.KEY_F10 = 299 - -/** - * Key: F11 - * - * @type {number} - * @constant - */ -raylib.KEY_F11 = 300 - -/** - * Key: F12 - * - * @type {number} - * @constant - */ -raylib.KEY_F12 = 301 - -/** - * Key: Shift left - * - * @type {number} - * @constant - */ -raylib.KEY_LEFT_SHIFT = 340 - -/** - * Key: Control left - * - * @type {number} - * @constant - */ -raylib.KEY_LEFT_CONTROL = 341 - -/** - * Key: Alt left - * - * @type {number} - * @constant - */ -raylib.KEY_LEFT_ALT = 342 - -/** - * Key: Super left - * - * @type {number} - * @constant - */ -raylib.KEY_LEFT_SUPER = 343 - -/** - * Key: Shift right - * - * @type {number} - * @constant - */ -raylib.KEY_RIGHT_SHIFT = 344 - -/** - * Key: Control right - * - * @type {number} - * @constant - */ -raylib.KEY_RIGHT_CONTROL = 345 - -/** - * Key: Alt right - * - * @type {number} - * @constant - */ -raylib.KEY_RIGHT_ALT = 346 - -/** - * Key: Super right - * - * @type {number} - * @constant - */ -raylib.KEY_RIGHT_SUPER = 347 - -/** - * Key: KB menu - * - * @type {number} - * @constant - */ -raylib.KEY_KB_MENU = 348 - -/** - * Key: Keypad 0 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_0 = 320 - -/** - * Key: Keypad 1 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_1 = 321 - -/** - * Key: Keypad 2 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_2 = 322 - -/** - * Key: Keypad 3 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_3 = 323 - -/** - * Key: Keypad 4 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_4 = 324 - -/** - * Key: Keypad 5 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_5 = 325 - -/** - * Key: Keypad 6 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_6 = 326 - -/** - * Key: Keypad 7 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_7 = 327 - -/** - * Key: Keypad 8 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_8 = 328 - -/** - * Key: Keypad 9 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_9 = 329 - -/** - * Key: Keypad . - * - * @type {number} - * @constant - */ -raylib.KEY_KP_DECIMAL = 330 - -/** - * Key: Keypad / - * - * @type {number} - * @constant - */ -raylib.KEY_KP_DIVIDE = 331 - -/** - * Key: Keypad * - * - * @type {number} - * @constant - */ -raylib.KEY_KP_MULTIPLY = 332 - -/** - * Key: Keypad - - * - * @type {number} - * @constant - */ -raylib.KEY_KP_SUBTRACT = 333 - -/** - * Key: Keypad + - * - * @type {number} - * @constant - */ -raylib.KEY_KP_ADD = 334 - -/** - * Key: Keypad Enter - * - * @type {number} - * @constant - */ -raylib.KEY_KP_ENTER = 335 - -/** - * Key: Keypad = - * - * @type {number} - * @constant - */ -raylib.KEY_KP_EQUAL = 336 - -/** - * Key: Android back button - * - * @type {number} - * @constant - */ -raylib.KEY_BACK = 4 - -/** - * Key: Android menu button - * - * @type {number} - * @constant - */ -raylib.KEY_MENU = 82 - -/** - * Key: Android volume up button - * - * @type {number} - * @constant - */ -raylib.KEY_VOLUME_UP = 24 - -/** - * Key: Android volume down button - * - * @type {number} - * @constant - */ -raylib.KEY_VOLUME_DOWN = 25 - -/** - * Mouse button left - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_LEFT = 0 - -/** - * Mouse button right - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_RIGHT = 1 - -/** - * Mouse button middle (pressed wheel) - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_MIDDLE = 2 - -/** - * Mouse button side (advanced mouse device) - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_SIDE = 3 - -/** - * Mouse button extra (advanced mouse device) - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_EXTRA = 4 - -/** - * Mouse button forward (advanced mouse device) - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_FORWARD = 5 - -/** - * Mouse button back (advanced mouse device) - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_BACK = 6 - -/** - * Default pointer shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_DEFAULT = 0 - -/** - * Arrow shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_ARROW = 1 - -/** - * Text writing cursor shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_IBEAM = 2 - -/** - * Cross shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_CROSSHAIR = 3 - -/** - * Pointing hand cursor - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_POINTING_HAND = 4 - -/** - * Horizontal resize/move arrow shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_RESIZE_EW = 5 - -/** - * Vertical resize/move arrow shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_RESIZE_NS = 6 - -/** - * Top-left to bottom-right diagonal resize/move arrow shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_RESIZE_NWSE = 7 - -/** - * The top-right to bottom-left diagonal resize/move arrow shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_RESIZE_NESW = 8 - -/** - * The omnidirectional resize/move cursor shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_RESIZE_ALL = 9 - -/** - * The operation-not-allowed shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_NOT_ALLOWED = 10 - -/** - * Unknown button, just for error checking - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_UNKNOWN = 0 - -/** - * Gamepad left DPAD up button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_FACE_UP = 1 - -/** - * Gamepad left DPAD right button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_FACE_RIGHT = 2 - -/** - * Gamepad left DPAD down button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_FACE_DOWN = 3 - -/** - * Gamepad left DPAD left button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_FACE_LEFT = 4 - -/** - * Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_FACE_UP = 5 - -/** - * Gamepad right button right (i.e. PS3: Square, Xbox: X) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_FACE_RIGHT = 6 - -/** - * Gamepad right button down (i.e. PS3: Cross, Xbox: A) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_FACE_DOWN = 7 - -/** - * Gamepad right button left (i.e. PS3: Circle, Xbox: B) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_FACE_LEFT = 8 - -/** - * Gamepad top/back trigger left (first), it could be a trailing button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_1 = 9 - -/** - * Gamepad top/back trigger left (second), it could be a trailing button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_2 = 10 - -/** - * Gamepad top/back trigger right (one), it could be a trailing button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_1 = 11 - -/** - * Gamepad top/back trigger right (second), it could be a trailing button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_2 = 12 - -/** - * Gamepad center buttons, left one (i.e. PS3: Select) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_MIDDLE_LEFT = 13 - -/** - * Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_MIDDLE = 14 - -/** - * Gamepad center buttons, right one (i.e. PS3: Start) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_MIDDLE_RIGHT = 15 - -/** - * Gamepad joystick pressed button left - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_THUMB = 16 - -/** - * Gamepad joystick pressed button right - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_THUMB = 17 - -/** - * Gamepad left stick X axis - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_AXIS_LEFT_X = 0 - -/** - * Gamepad left stick Y axis - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_AXIS_LEFT_Y = 1 - -/** - * Gamepad right stick X axis - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_AXIS_RIGHT_X = 2 - -/** - * Gamepad right stick Y axis - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_AXIS_RIGHT_Y = 3 - -/** - * Gamepad back trigger left, pressure level: [1..-1] - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_AXIS_LEFT_TRIGGER = 4 - -/** - * Gamepad back trigger right, pressure level: [1..-1] - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_AXIS_RIGHT_TRIGGER = 5 - -/** - * Albedo material (same as: MATERIAL_MAP_DIFFUSE) - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_ALBEDO = 0 - -/** - * Metalness material (same as: MATERIAL_MAP_SPECULAR) - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_METALNESS = 1 - -/** - * Normal material - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_NORMAL = 2 - -/** - * Roughness material - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_ROUGHNESS = 3 - -/** - * Ambient occlusion material - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_OCCLUSION = 4 - -/** - * Emission material - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_EMISSION = 5 - -/** - * Heightmap material - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_HEIGHT = 6 - -/** - * Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP) - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_CUBEMAP = 7 - -/** - * Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP) - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_IRRADIANCE = 8 - -/** - * Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP) - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_PREFILTER = 9 - -/** - * Brdf material - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_BRDF = 10 - -/** - * Shader location: vertex attribute: position - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VERTEX_POSITION = 0 - -/** - * Shader location: vertex attribute: texcoord01 - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VERTEX_TEXCOORD01 = 1 - -/** - * Shader location: vertex attribute: texcoord02 - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VERTEX_TEXCOORD02 = 2 - -/** - * Shader location: vertex attribute: normal - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VERTEX_NORMAL = 3 - -/** - * Shader location: vertex attribute: tangent - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VERTEX_TANGENT = 4 - -/** - * Shader location: vertex attribute: color - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VERTEX_COLOR = 5 - -/** - * Shader location: matrix uniform: model-view-projection - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MATRIX_MVP = 6 - -/** - * Shader location: matrix uniform: view (camera transform) - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MATRIX_VIEW = 7 - -/** - * Shader location: matrix uniform: projection - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MATRIX_PROJECTION = 8 - -/** - * Shader location: matrix uniform: model (transform) - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MATRIX_MODEL = 9 - -/** - * Shader location: matrix uniform: normal - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MATRIX_NORMAL = 10 - -/** - * Shader location: vector uniform: view - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VECTOR_VIEW = 11 - -/** - * Shader location: vector uniform: diffuse color - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_COLOR_DIFFUSE = 12 - -/** - * Shader location: vector uniform: specular color - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_COLOR_SPECULAR = 13 - -/** - * Shader location: vector uniform: ambient color - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_COLOR_AMBIENT = 14 - -/** - * Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE) - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_ALBEDO = 15 - -/** - * Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR) - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_METALNESS = 16 - -/** - * Shader location: sampler2d texture: normal - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_NORMAL = 17 - -/** - * Shader location: sampler2d texture: roughness - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_ROUGHNESS = 18 - -/** - * Shader location: sampler2d texture: occlusion - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_OCCLUSION = 19 - -/** - * Shader location: sampler2d texture: emission - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_EMISSION = 20 - -/** - * Shader location: sampler2d texture: height - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_HEIGHT = 21 - -/** - * Shader location: samplerCube texture: cubemap - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_CUBEMAP = 22 - -/** - * Shader location: samplerCube texture: irradiance - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_IRRADIANCE = 23 - -/** - * Shader location: samplerCube texture: prefilter - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_PREFILTER = 24 - -/** - * Shader location: sampler2d texture: brdf - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_BRDF = 25 - -/** - * Shader uniform type: float - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_FLOAT = 0 - -/** - * Shader uniform type: vec2 (2 float) - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_VEC2 = 1 - -/** - * Shader uniform type: vec3 (3 float) - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_VEC3 = 2 - -/** - * Shader uniform type: vec4 (4 float) - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_VEC4 = 3 - -/** - * Shader uniform type: int - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_INT = 4 - -/** - * Shader uniform type: ivec2 (2 int) - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_IVEC2 = 5 - -/** - * Shader uniform type: ivec3 (3 int) - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_IVEC3 = 6 - -/** - * Shader uniform type: ivec4 (4 int) - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_IVEC4 = 7 - -/** - * Shader uniform type: sampler2d - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_SAMPLER2D = 8 - -/** - * Shader attribute type: float - * - * @type {number} - * @constant - */ -raylib.SHADER_ATTRIB_FLOAT = 0 - -/** - * Shader attribute type: vec2 (2 float) - * - * @type {number} - * @constant - */ -raylib.SHADER_ATTRIB_VEC2 = 1 - -/** - * Shader attribute type: vec3 (3 float) - * - * @type {number} - * @constant - */ -raylib.SHADER_ATTRIB_VEC3 = 2 - -/** - * Shader attribute type: vec4 (4 float) - * - * @type {number} - * @constant - */ -raylib.SHADER_ATTRIB_VEC4 = 3 - -/** - * 8 bit per pixel (no alpha) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1 - -/** - * 8*2 bpp (2 channels) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2 - -/** - * 16 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3 - -/** - * 24 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4 - -/** - * 16 bpp (1 bit alpha) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5 - -/** - * 16 bpp (4 bit alpha) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6 - -/** - * 32 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7 - -/** - * 32 bpp (1 channel - float) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R32 = 8 - -/** - * 32*3 bpp (3 channels - float) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9 - -/** - * 32*4 bpp (4 channels - float) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10 - -/** - * 16 bpp (1 channel - half float) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R16 = 11 - -/** - * 16*3 bpp (3 channels - half float) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12 - -/** - * 16*4 bpp (4 channels - half float) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13 - -/** - * 4 bpp (no alpha) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 14 - -/** - * 4 bpp (1 bit alpha) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15 - -/** - * 8 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16 - -/** - * 8 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17 - -/** - * 4 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 18 - -/** - * 4 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 19 - -/** - * 8 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20 - -/** - * 4 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 21 - -/** - * 4 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22 - -/** - * 8 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23 - -/** - * 2 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24 - -/** - * No filter, just pixel approximation - * - * @type {number} - * @constant - */ -raylib.TEXTURE_FILTER_POINT = 0 - -/** - * Linear filtering - * - * @type {number} - * @constant - */ -raylib.TEXTURE_FILTER_BILINEAR = 1 - -/** - * Trilinear filtering (linear with mipmaps) - * - * @type {number} - * @constant - */ -raylib.TEXTURE_FILTER_TRILINEAR = 2 - -/** - * Anisotropic filtering 4x - * - * @type {number} - * @constant - */ -raylib.TEXTURE_FILTER_ANISOTROPIC_4X = 3 - -/** - * Anisotropic filtering 8x - * - * @type {number} - * @constant - */ -raylib.TEXTURE_FILTER_ANISOTROPIC_8X = 4 - -/** - * Anisotropic filtering 16x - * - * @type {number} - * @constant - */ -raylib.TEXTURE_FILTER_ANISOTROPIC_16X = 5 - -/** - * Repeats texture in tiled mode - * - * @type {number} - * @constant - */ -raylib.TEXTURE_WRAP_REPEAT = 0 - -/** - * Clamps texture to edge pixel in tiled mode - * - * @type {number} - * @constant - */ -raylib.TEXTURE_WRAP_CLAMP = 1 - -/** - * Mirrors and repeats the texture in tiled mode - * - * @type {number} - * @constant - */ -raylib.TEXTURE_WRAP_MIRROR_REPEAT = 2 - -/** - * Mirrors and clamps to border the texture in tiled mode - * - * @type {number} - * @constant - */ -raylib.TEXTURE_WRAP_MIRROR_CLAMP = 3 - -/** - * Automatically detect layout type - * - * @type {number} - * @constant - */ -raylib.CUBEMAP_LAYOUT_AUTO_DETECT = 0 - -/** - * Layout is defined by a vertical line with faces - * - * @type {number} - * @constant - */ -raylib.CUBEMAP_LAYOUT_LINE_VERTICAL = 1 - -/** - * Layout is defined by a horizontal line with faces - * - * @type {number} - * @constant - */ -raylib.CUBEMAP_LAYOUT_LINE_HORIZONTAL = 2 - -/** - * Layout is defined by a 3x4 cross with cubemap faces - * - * @type {number} - * @constant - */ -raylib.CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR = 3 - -/** - * Layout is defined by a 4x3 cross with cubemap faces - * - * @type {number} - * @constant - */ -raylib.CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE = 4 - -/** - * Layout is defined by a panorama image (equirrectangular map) - * - * @type {number} - * @constant - */ -raylib.CUBEMAP_LAYOUT_PANORAMA = 5 - -/** - * Default font generation, anti-aliased - * - * @type {number} - * @constant - */ -raylib.FONT_DEFAULT = 0 - -/** - * Bitmap font generation, no anti-aliasing - * - * @type {number} - * @constant - */ -raylib.FONT_BITMAP = 1 - -/** - * SDF font generation, requires external shader - * - * @type {number} - * @constant - */ -raylib.FONT_SDF = 2 - -/** - * Blend textures considering alpha (default) - * - * @type {number} - * @constant - */ -raylib.BLEND_ALPHA = 0 - -/** - * Blend textures adding colors - * - * @type {number} - * @constant - */ -raylib.BLEND_ADDITIVE = 1 - -/** - * Blend textures multiplying colors - * - * @type {number} - * @constant - */ -raylib.BLEND_MULTIPLIED = 2 - -/** - * Blend textures adding colors (alternative) - * - * @type {number} - * @constant - */ -raylib.BLEND_ADD_COLORS = 3 - -/** - * Blend textures subtracting colors (alternative) - * - * @type {number} - * @constant - */ -raylib.BLEND_SUBTRACT_COLORS = 4 - -/** - * Blend premultiplied textures considering alpha - * - * @type {number} - * @constant - */ -raylib.BLEND_ALPHA_PREMULTIPLY = 5 - -/** - * Blend textures using custom src/dst factors (use rlSetBlendFactors()) - * - * @type {number} - * @constant - */ -raylib.BLEND_CUSTOM = 6 - -/** - * Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate()) - * - * @type {number} - * @constant - */ -raylib.BLEND_CUSTOM_SEPARATE = 7 - -/** - * No gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_NONE = 0 - -/** - * Tap gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_TAP = 1 - -/** - * Double tap gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_DOUBLETAP = 2 - -/** - * Hold gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_HOLD = 4 - -/** - * Drag gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_DRAG = 8 - -/** - * Swipe right gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_SWIPE_RIGHT = 16 - -/** - * Swipe left gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_SWIPE_LEFT = 32 - -/** - * Swipe up gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_SWIPE_UP = 64 - -/** - * Swipe down gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_SWIPE_DOWN = 128 - -/** - * Pinch in gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_PINCH_IN = 256 - -/** - * Pinch out gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_PINCH_OUT = 512 - -/** - * Custom camera - * - * @type {number} - * @constant - */ -raylib.CAMERA_CUSTOM = 0 - -/** - * Free camera - * - * @type {number} - * @constant - */ -raylib.CAMERA_FREE = 1 - -/** - * Orbital camera - * - * @type {number} - * @constant - */ -raylib.CAMERA_ORBITAL = 2 - -/** - * First person camera - * - * @type {number} - * @constant - */ -raylib.CAMERA_FIRST_PERSON = 3 - -/** - * Third person camera - * - * @type {number} - * @constant - */ -raylib.CAMERA_THIRD_PERSON = 4 - -/** - * Perspective projection - * - * @type {number} - * @constant - */ -raylib.CAMERA_PERSPECTIVE = 0 - -/** - * Orthographic projection - * - * @type {number} - * @constant - */ -raylib.CAMERA_ORTHOGRAPHIC = 1 - -/** - * Npatch layout: 3x3 tiles - * - * @type {number} - * @constant - */ -raylib.NPATCH_NINE_PATCH = 0 - -/** - * Npatch layout: 1x3 tiles - * - * @type {number} - * @constant - */ -raylib.NPATCH_THREE_PATCH_VERTICAL = 1 - -/** - * Npatch layout: 3x1 tiles - * - * @type {number} - * @constant - */ -raylib.NPATCH_THREE_PATCH_HORIZONTAL = 2 - -/** - * - * - * @type {number} - * @constant - */ -raylib.STATE_NORMAL = 0 - -/** - * - * - * @type {number} - * @constant - */ -raylib.STATE_FOCUSED = 1 - -/** - * - * - * @type {number} - * @constant - */ -raylib.STATE_PRESSED = 2 - -/** - * - * - * @type {number} - * @constant - */ -raylib.STATE_DISABLED = 3 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_ALIGN_LEFT = 0 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_ALIGN_CENTER = 1 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_ALIGN_RIGHT = 2 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_ALIGN_TOP = 0 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_ALIGN_MIDDLE = 1 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_ALIGN_BOTTOM = 2 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_WRAP_NONE = 0 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_WRAP_CHAR = 1 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_WRAP_WORD = 2 - -/** - * - * - * @type {number} - * @constant - */ -raylib.DEFAULT = 0 - -/** - * Used also for: LABELBUTTON - * - * @type {number} - * @constant - */ -raylib.LABEL = 1 - -/** - * - * - * @type {number} - * @constant - */ -raylib.BUTTON = 2 - -/** - * Used also for: TOGGLEGROUP - * - * @type {number} - * @constant - */ -raylib.TOGGLE = 3 - -/** - * Used also for: SLIDERBAR, TOGGLESLIDER - * - * @type {number} - * @constant - */ -raylib.SLIDER = 4 - -/** - * - * - * @type {number} - * @constant - */ -raylib.PROGRESSBAR = 5 - -/** - * - * - * @type {number} - * @constant - */ -raylib.CHECKBOX = 6 - -/** - * - * - * @type {number} - * @constant - */ -raylib.COMBOBOX = 7 - -/** - * - * - * @type {number} - * @constant - */ -raylib.DROPDOWNBOX = 8 - -/** - * Used also for: TEXTBOXMULTI - * - * @type {number} - * @constant - */ -raylib.TEXTBOX = 9 - -/** - * - * - * @type {number} - * @constant - */ -raylib.VALUEBOX = 10 - -/** - * Uses: BUTTON, VALUEBOX + * Vector3, 3 components * - * @type {number} - * @constant - */ -raylib.SPINNER = 11 - -/** - * + * @param {number} x - Vector x component + * @param {number} y - Vector y component + * @param {number} z - Vector z component * - * @type {number} - * @constant + * @return {Vector3} The new Vector3. */ -raylib.LISTVIEW = 12 +function Vector3(x,y,z) { + return {x,y,z} +} +raylib.Vector3 = Vector3 /** - * + * Vector4, 4 components * - * @type {number} - * @constant - */ -raylib.COLORPICKER = 13 - -/** - * + * @param {number} x - Vector x component + * @param {number} y - Vector y component + * @param {number} z - Vector z component + * @param {number} w - Vector w component * - * @type {number} - * @constant + * @return {Vector4} The new Vector4. */ -raylib.SCROLLBAR = 14 +function Vector4(x,y,z,w) { + return {x,y,z,w} +} +raylib.Vector4 = Vector4 /** - * + * Rectangle, 4 components * - * @type {number} - * @constant + * @param {number} x - Rectangle top-left corner position x + * @param {number} y - Rectangle top-left corner position y + * @param {number} width - Rectangle width + * @param {number} height - Rectangle height + * + * @return {Rectangle} The new Rectangle. */ -raylib.STATUSBAR = 15 +function Rectangle(x,y,width,height) { + return {x,y,width,height} +} +raylib.Rectangle = Rectangle /** - * Control border color in STATE_NORMAL + * Camera2D, defines position/orientation in 2d space * - * @type {number} - * @constant + * @param {Vector2} offset - Camera offset (displacement from target) + * @param {Vector2} target - Camera target (rotation and zoom origin) + * @param {number} rotation - Camera rotation in degrees + * @param {number} zoom - Camera zoom (scaling), should be 1.0f by default + * + * @return {Camera2D} The new Camera2D. */ -raylib.BORDER_COLOR_NORMAL = 0 +function Camera2D(offset,target,rotation,zoom) { + return {offset,target,rotation,zoom} +} +raylib.Camera2D = Camera2D /** - * Control base color in STATE_NORMAL + * Camera, defines position/orientation in 3d space * - * @type {number} - * @constant + * @param {Vector3} position - Camera position + * @param {Vector3} target - Camera target it looks-at + * @param {Vector3} up - Camera up vector (rotation over its axis) + * @param {number} fovy - Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic + * @param {number} projection - Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC + * + * @return {Camera3D} The new Camera3D. */ -raylib.BASE_COLOR_NORMAL = 1 +function Camera3D(position,target,up,fovy,projection) { + return {position,target,up,fovy,projection} +} +raylib.Camera3D = Camera3D +raylib.Camera = raylib.Camera3D + +// WRAPPED TYPED SHADER FUNCTIONS /** - * Control text color in STATE_NORMAL - * - * @type {number} - * @constant + * Set shader uniform value float + * + * @param {Shader} shader + * @param {number} locIndex + * @param {number} value + * + * @returns {undefined} */ -raylib.TEXT_COLOR_NORMAL = 2 +function SetShaderFloat(shader, locIndex, value) { + return r.BindSetShaderFloat( + shader.id, + shader.locs, + locIndex, + value + ) +} +raylib.SetShaderFloat = SetShaderFloat /** - * Control border color in STATE_FOCUSED - * - * @type {number} - * @constant + * Set shader uniform value float + * + * @param {Shader} shader + * @param {number} locIndex + * @param {number} value + * + * @returns {undefined} */ -raylib.BORDER_COLOR_FOCUSED = 3 +function SetShaderInt(shader, locIndex, value) { + return r.BindSetShaderInt( + shader.id, + shader.locs, + locIndex, + value + ) +} +raylib.SetShaderInt = SetShaderInt /** - * Control base color in STATE_FOCUSED - * - * @type {number} - * @constant + * Set shader uniform value vector2 + * + * @param {Shader} shader + * @param {number} locIndex + * @param {Vector2} value + * + * @returns {undefined} */ -raylib.BASE_COLOR_FOCUSED = 4 +function SetShaderVec2(shader, locIndex, value) { + return r.BindSetShaderVec2( + shader.id, + shader.locs, + locIndex, + value.x, + value.y + ) +} +raylib.SetShaderVec2 = SetShaderVec2 /** - * Control text color in STATE_FOCUSED - * - * @type {number} - * @constant + * Set shader uniform value vector3 + * + * @param {Shader} shader + * @param {number} locIndex + * @param {Vector3} value + * + * @returns {undefined} */ -raylib.TEXT_COLOR_FOCUSED = 5 +function SetShaderVec3(shader, locIndex, value) { + return r.BindSetShaderVec3( + shader.id, + shader.locs, + locIndex, + value.x, + value.y, + value.z + ) +} +raylib.SetShaderVec3 = SetShaderVec3 /** - * Control border color in STATE_PRESSED - * - * @type {number} - * @constant + * Set shader uniform value vector4 + * + * @param {Shader} shader + * @param {number} locIndex + * @param {Vector4} value + * + * @returns {undefined} */ -raylib.BORDER_COLOR_PRESSED = 6 +function SetShaderVec4(shader, locIndex, value) { + return r.BindSetShaderVec4( + shader.id, + shader.locs, + locIndex, + value.x, + value.y, + value.z, + value.w + ) +} +raylib.SetShaderVec4 = SetShaderVec4 /** - * Control base color in STATE_PRESSED + * Set to try enabling V-Sync on GPU * * @type {number} * @constant */ -raylib.BASE_COLOR_PRESSED = 7 +raylib.FLAG_VSYNC_HINT = 64 /** - * Control text color in STATE_PRESSED + * Set to run program in fullscreen * * @type {number} * @constant */ -raylib.TEXT_COLOR_PRESSED = 8 +raylib.FLAG_FULLSCREEN_MODE = 2 /** - * Control border color in STATE_DISABLED + * Set to allow resizable window * * @type {number} * @constant */ -raylib.BORDER_COLOR_DISABLED = 9 +raylib.FLAG_WINDOW_RESIZABLE = 4 /** - * Control base color in STATE_DISABLED + * Set to disable window decoration (frame and buttons) * * @type {number} * @constant */ -raylib.BASE_COLOR_DISABLED = 10 +raylib.FLAG_WINDOW_UNDECORATED = 8 /** - * Control text color in STATE_DISABLED + * Set to hide window * * @type {number} * @constant */ -raylib.TEXT_COLOR_DISABLED = 11 +raylib.FLAG_WINDOW_HIDDEN = 128 /** - * Control border size, 0 for no border + * Set to minimize window (iconify) * * @type {number} * @constant */ -raylib.BORDER_WIDTH = 12 +raylib.FLAG_WINDOW_MINIMIZED = 512 /** - * Control text padding, not considering border + * Set to maximize window (expanded to monitor) * * @type {number} * @constant */ -raylib.TEXT_PADDING = 13 +raylib.FLAG_WINDOW_MAXIMIZED = 1024 /** - * Control text horizontal alignment inside control text bound (after border and padding) + * Set to window non focused * * @type {number} * @constant */ -raylib.TEXT_ALIGNMENT = 14 +raylib.FLAG_WINDOW_UNFOCUSED = 2048 /** - * Text size (glyphs max height) + * Set to window always on top * * @type {number} * @constant */ -raylib.TEXT_SIZE = 16 +raylib.FLAG_WINDOW_TOPMOST = 4096 /** - * Text spacing between glyphs + * Set to allow windows running while minimized * * @type {number} * @constant */ -raylib.TEXT_SPACING = 17 +raylib.FLAG_WINDOW_ALWAYS_RUN = 256 /** - * Line control color + * Set to allow transparent framebuffer * * @type {number} * @constant */ -raylib.LINE_COLOR = 18 +raylib.FLAG_WINDOW_TRANSPARENT = 16 /** - * Background color + * Set to support HighDPI * * @type {number} * @constant */ -raylib.BACKGROUND_COLOR = 19 +raylib.FLAG_WINDOW_HIGHDPI = 8192 /** - * Text spacing between lines + * Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED * * @type {number} * @constant */ -raylib.TEXT_LINE_SPACING = 20 +raylib.FLAG_WINDOW_MOUSE_PASSTHROUGH = 16384 /** - * Text vertical alignment inside text bounds (after border and padding) + * Set to run program in borderless windowed mode * * @type {number} * @constant */ -raylib.TEXT_ALIGNMENT_VERTICAL = 21 +raylib.FLAG_BORDERLESS_WINDOWED_MODE = 32768 /** - * Text wrap-mode inside text bounds + * Set to try enabling MSAA 4X * * @type {number} * @constant */ -raylib.TEXT_WRAP_MODE = 22 +raylib.FLAG_MSAA_4X_HINT = 32 /** - * ToggleGroup separation between toggles + * Set to try enabling interlaced video format (for V3D) * * @type {number} * @constant */ -raylib.GROUP_PADDING = 16 +raylib.FLAG_INTERLACED_HINT = 65536 /** - * Slider size of internal bar + * Display all logs * * @type {number} * @constant */ -raylib.SLIDER_WIDTH = 16 +raylib.LOG_ALL = 0 /** - * Slider/SliderBar internal bar padding + * Trace logging, intended for internal use only * * @type {number} * @constant */ -raylib.SLIDER_PADDING = 17 +raylib.LOG_TRACE = 1 /** - * ProgressBar internal padding + * Debug logging, used for internal debugging, it should be disabled on release builds * * @type {number} * @constant */ -raylib.PROGRESS_PADDING = 16 +raylib.LOG_DEBUG = 2 /** - * ScrollBar arrows size + * Info logging, used for program execution info * * @type {number} * @constant */ -raylib.ARROWS_SIZE = 16 +raylib.LOG_INFO = 3 /** - * ScrollBar arrows visible + * Warning logging, used on recoverable failures * * @type {number} * @constant */ -raylib.ARROWS_VISIBLE = 17 +raylib.LOG_WARNING = 4 /** - * ScrollBar slider internal padding + * Error logging, used on unrecoverable failures * * @type {number} * @constant */ -raylib.SCROLL_SLIDER_PADDING = 18 +raylib.LOG_ERROR = 5 /** - * ScrollBar slider size + * Fatal logging, used to abort program: exit(EXIT_FAILURE) * * @type {number} * @constant */ -raylib.SCROLL_SLIDER_SIZE = 19 +raylib.LOG_FATAL = 6 /** - * ScrollBar scroll padding from arrows + * Disable logging * * @type {number} * @constant */ -raylib.SCROLL_PADDING = 20 +raylib.LOG_NONE = 7 /** - * ScrollBar scrolling speed + * Key: NULL, used for no key pressed * * @type {number} * @constant */ -raylib.SCROLL_SPEED = 21 +raylib.KEY_NULL = 0 /** - * CheckBox internal check padding + * Key: ' * * @type {number} * @constant */ -raylib.CHECK_PADDING = 16 +raylib.KEY_APOSTROPHE = 39 /** - * ComboBox right button width + * Key: , * * @type {number} * @constant */ -raylib.COMBO_BUTTON_WIDTH = 16 +raylib.KEY_COMMA = 44 /** - * ComboBox button separation + * Key: - * * @type {number} * @constant */ -raylib.COMBO_BUTTON_SPACING = 17 +raylib.KEY_MINUS = 45 /** - * DropdownBox arrow separation from border and items + * Key: . * * @type {number} * @constant */ -raylib.ARROW_PADDING = 16 +raylib.KEY_PERIOD = 46 /** - * DropdownBox items separation + * Key: / * * @type {number} * @constant */ -raylib.DROPDOWN_ITEMS_SPACING = 17 +raylib.KEY_SLASH = 47 /** - * TextBox in read-only mode: 0-text editable, 1-text no-editable + * Key: 0 * * @type {number} * @constant */ -raylib.TEXT_READONLY = 16 +raylib.KEY_ZERO = 48 /** - * Spinner left/right buttons width + * Key: 1 * * @type {number} * @constant */ -raylib.SPIN_BUTTON_WIDTH = 16 +raylib.KEY_ONE = 49 /** - * Spinner buttons separation + * Key: 2 * * @type {number} * @constant */ -raylib.SPIN_BUTTON_SPACING = 17 +raylib.KEY_TWO = 50 /** - * ListView items height + * Key: 3 * * @type {number} * @constant */ -raylib.LIST_ITEMS_HEIGHT = 16 +raylib.KEY_THREE = 51 /** - * ListView items separation + * Key: 4 * * @type {number} * @constant */ -raylib.LIST_ITEMS_SPACING = 17 +raylib.KEY_FOUR = 52 /** - * ListView scrollbar size (usually width) + * Key: 5 * * @type {number} * @constant */ -raylib.SCROLLBAR_WIDTH = 18 +raylib.KEY_FIVE = 53 /** - * ListView scrollbar side (0-SCROLLBAR_LEFT_SIDE, 1-SCROLLBAR_RIGHT_SIDE) + * Key: 6 * * @type {number} * @constant */ -raylib.SCROLLBAR_SIDE = 19 +raylib.KEY_SIX = 54 /** - * + * Key: 7 * * @type {number} * @constant */ -raylib.COLOR_SELECTOR_SIZE = 16 +raylib.KEY_SEVEN = 55 /** - * ColorPicker right hue bar width + * Key: 8 * * @type {number} * @constant */ -raylib.HUEBAR_WIDTH = 17 +raylib.KEY_EIGHT = 56 /** - * ColorPicker right hue bar separation from panel + * Key: 9 * * @type {number} * @constant */ -raylib.HUEBAR_PADDING = 18 +raylib.KEY_NINE = 57 /** - * ColorPicker right hue bar selector height + * Key: ; * * @type {number} * @constant */ -raylib.HUEBAR_SELECTOR_HEIGHT = 19 +raylib.KEY_SEMICOLON = 59 /** - * ColorPicker right hue bar selector overflow + * Key: = * * @type {number} * @constant */ -raylib.HUEBAR_SELECTOR_OVERFLOW = 20 +raylib.KEY_EQUAL = 61 /** - * + * Key: A | a * * @type {number} * @constant */ -raylib.ICON_NONE = 0 +raylib.KEY_A = 65 /** - * + * Key: B | b * * @type {number} * @constant */ -raylib.ICON_FOLDER_FILE_OPEN = 1 +raylib.KEY_B = 66 /** - * + * Key: C | c * * @type {number} * @constant */ -raylib.ICON_FILE_SAVE_CLASSIC = 2 +raylib.KEY_C = 67 /** - * + * Key: D | d * * @type {number} * @constant */ -raylib.ICON_FOLDER_OPEN = 3 +raylib.KEY_D = 68 /** - * + * Key: E | e * * @type {number} * @constant */ -raylib.ICON_FOLDER_SAVE = 4 +raylib.KEY_E = 69 /** - * + * Key: F | f * * @type {number} * @constant */ -raylib.ICON_FILE_OPEN = 5 +raylib.KEY_F = 70 /** - * + * Key: G | g * * @type {number} * @constant */ -raylib.ICON_FILE_SAVE = 6 +raylib.KEY_G = 71 /** - * + * Key: H | h * * @type {number} * @constant */ -raylib.ICON_FILE_EXPORT = 7 +raylib.KEY_H = 72 /** - * + * Key: I | i * * @type {number} * @constant */ -raylib.ICON_FILE_ADD = 8 +raylib.KEY_I = 73 /** - * + * Key: J | j * * @type {number} * @constant */ -raylib.ICON_FILE_DELETE = 9 +raylib.KEY_J = 74 /** - * + * Key: K | k * * @type {number} * @constant */ -raylib.ICON_FILETYPE_TEXT = 10 +raylib.KEY_K = 75 /** - * + * Key: L | l * * @type {number} * @constant */ -raylib.ICON_FILETYPE_AUDIO = 11 +raylib.KEY_L = 76 /** - * + * Key: M | m * * @type {number} * @constant */ -raylib.ICON_FILETYPE_IMAGE = 12 +raylib.KEY_M = 77 /** - * + * Key: N | n * * @type {number} * @constant */ -raylib.ICON_FILETYPE_PLAY = 13 +raylib.KEY_N = 78 /** - * + * Key: O | o * * @type {number} * @constant */ -raylib.ICON_FILETYPE_VIDEO = 14 +raylib.KEY_O = 79 /** - * + * Key: P | p * * @type {number} * @constant */ -raylib.ICON_FILETYPE_INFO = 15 +raylib.KEY_P = 80 /** - * + * Key: Q | q * * @type {number} * @constant */ -raylib.ICON_FILE_COPY = 16 +raylib.KEY_Q = 81 /** - * + * Key: R | r * * @type {number} * @constant */ -raylib.ICON_FILE_CUT = 17 +raylib.KEY_R = 82 /** - * + * Key: S | s * * @type {number} * @constant */ -raylib.ICON_FILE_PASTE = 18 +raylib.KEY_S = 83 /** - * + * Key: T | t * * @type {number} * @constant */ -raylib.ICON_CURSOR_HAND = 19 +raylib.KEY_T = 84 /** - * + * Key: U | u * * @type {number} * @constant */ -raylib.ICON_CURSOR_POINTER = 20 +raylib.KEY_U = 85 /** - * + * Key: V | v * * @type {number} * @constant */ -raylib.ICON_CURSOR_CLASSIC = 21 +raylib.KEY_V = 86 /** - * + * Key: W | w * * @type {number} * @constant */ -raylib.ICON_PENCIL = 22 +raylib.KEY_W = 87 /** - * + * Key: X | x * * @type {number} * @constant */ -raylib.ICON_PENCIL_BIG = 23 +raylib.KEY_X = 88 /** - * + * Key: Y | y * * @type {number} * @constant */ -raylib.ICON_BRUSH_CLASSIC = 24 +raylib.KEY_Y = 89 /** - * + * Key: Z | z * * @type {number} * @constant */ -raylib.ICON_BRUSH_PAINTER = 25 +raylib.KEY_Z = 90 /** - * + * Key: [ * * @type {number} * @constant */ -raylib.ICON_WATER_DROP = 26 +raylib.KEY_LEFT_BRACKET = 91 /** - * + * Key: '\' * * @type {number} * @constant */ -raylib.ICON_COLOR_PICKER = 27 +raylib.KEY_BACKSLASH = 92 /** - * + * Key: ] * * @type {number} * @constant */ -raylib.ICON_RUBBER = 28 +raylib.KEY_RIGHT_BRACKET = 93 /** - * + * Key: ` * * @type {number} * @constant */ -raylib.ICON_COLOR_BUCKET = 29 +raylib.KEY_GRAVE = 96 /** - * + * Key: Space * * @type {number} * @constant */ -raylib.ICON_TEXT_T = 30 +raylib.KEY_SPACE = 32 /** - * + * Key: Esc * * @type {number} * @constant */ -raylib.ICON_TEXT_A = 31 +raylib.KEY_ESCAPE = 256 /** - * + * Key: Enter * * @type {number} * @constant */ -raylib.ICON_SCALE = 32 +raylib.KEY_ENTER = 257 /** - * + * Key: Tab * * @type {number} * @constant */ -raylib.ICON_RESIZE = 33 +raylib.KEY_TAB = 258 /** - * + * Key: Backspace * * @type {number} * @constant */ -raylib.ICON_FILTER_POINT = 34 +raylib.KEY_BACKSPACE = 259 /** - * + * Key: Ins * * @type {number} * @constant */ -raylib.ICON_FILTER_BILINEAR = 35 +raylib.KEY_INSERT = 260 /** - * + * Key: Del * * @type {number} * @constant */ -raylib.ICON_CROP = 36 +raylib.KEY_DELETE = 261 /** - * + * Key: Cursor right * * @type {number} * @constant */ -raylib.ICON_CROP_ALPHA = 37 +raylib.KEY_RIGHT = 262 /** - * + * Key: Cursor left * * @type {number} * @constant */ -raylib.ICON_SQUARE_TOGGLE = 38 +raylib.KEY_LEFT = 263 /** - * + * Key: Cursor down * * @type {number} * @constant */ -raylib.ICON_SYMMETRY = 39 +raylib.KEY_DOWN = 264 /** - * + * Key: Cursor up * * @type {number} * @constant */ -raylib.ICON_SYMMETRY_HORIZONTAL = 40 +raylib.KEY_UP = 265 /** - * + * Key: Page up * * @type {number} * @constant */ -raylib.ICON_SYMMETRY_VERTICAL = 41 +raylib.KEY_PAGE_UP = 266 /** - * + * Key: Page down * * @type {number} * @constant */ -raylib.ICON_LENS = 42 +raylib.KEY_PAGE_DOWN = 267 /** - * + * Key: Home * * @type {number} * @constant */ -raylib.ICON_LENS_BIG = 43 +raylib.KEY_HOME = 268 /** - * + * Key: End * * @type {number} * @constant */ -raylib.ICON_EYE_ON = 44 +raylib.KEY_END = 269 /** - * + * Key: Caps lock * * @type {number} * @constant */ -raylib.ICON_EYE_OFF = 45 +raylib.KEY_CAPS_LOCK = 280 /** - * + * Key: Scroll down * * @type {number} * @constant */ -raylib.ICON_FILTER_TOP = 46 +raylib.KEY_SCROLL_LOCK = 281 /** - * + * Key: Num lock * * @type {number} * @constant */ -raylib.ICON_FILTER = 47 +raylib.KEY_NUM_LOCK = 282 /** - * + * Key: Print screen * * @type {number} * @constant */ -raylib.ICON_TARGET_POINT = 48 +raylib.KEY_PRINT_SCREEN = 283 /** - * + * Key: Pause * * @type {number} * @constant */ -raylib.ICON_TARGET_SMALL = 49 +raylib.KEY_PAUSE = 284 /** - * + * Key: F1 * * @type {number} * @constant */ -raylib.ICON_TARGET_BIG = 50 +raylib.KEY_F1 = 290 /** - * + * Key: F2 * * @type {number} * @constant */ -raylib.ICON_TARGET_MOVE = 51 +raylib.KEY_F2 = 291 /** - * + * Key: F3 * * @type {number} * @constant */ -raylib.ICON_CURSOR_MOVE = 52 +raylib.KEY_F3 = 292 /** - * + * Key: F4 * * @type {number} * @constant */ -raylib.ICON_CURSOR_SCALE = 53 +raylib.KEY_F4 = 293 /** - * + * Key: F5 * * @type {number} * @constant */ -raylib.ICON_CURSOR_SCALE_RIGHT = 54 +raylib.KEY_F5 = 294 /** - * + * Key: F6 * * @type {number} * @constant */ -raylib.ICON_CURSOR_SCALE_LEFT = 55 +raylib.KEY_F6 = 295 /** - * + * Key: F7 * * @type {number} * @constant */ -raylib.ICON_UNDO = 56 +raylib.KEY_F7 = 296 /** - * + * Key: F8 * * @type {number} * @constant */ -raylib.ICON_REDO = 57 +raylib.KEY_F8 = 297 /** - * + * Key: F9 * * @type {number} * @constant */ -raylib.ICON_REREDO = 58 +raylib.KEY_F9 = 298 /** - * + * Key: F10 * * @type {number} * @constant */ -raylib.ICON_MUTATE = 59 +raylib.KEY_F10 = 299 /** - * + * Key: F11 * * @type {number} * @constant */ -raylib.ICON_ROTATE = 60 +raylib.KEY_F11 = 300 /** - * + * Key: F12 * * @type {number} * @constant */ -raylib.ICON_REPEAT = 61 +raylib.KEY_F12 = 301 /** - * + * Key: Shift left * * @type {number} * @constant */ -raylib.ICON_SHUFFLE = 62 +raylib.KEY_LEFT_SHIFT = 340 /** - * + * Key: Control left * * @type {number} * @constant */ -raylib.ICON_EMPTYBOX = 63 +raylib.KEY_LEFT_CONTROL = 341 /** - * + * Key: Alt left * * @type {number} * @constant */ -raylib.ICON_TARGET = 64 +raylib.KEY_LEFT_ALT = 342 /** - * + * Key: Super left * * @type {number} * @constant */ -raylib.ICON_TARGET_SMALL_FILL = 65 +raylib.KEY_LEFT_SUPER = 343 /** - * + * Key: Shift right * * @type {number} * @constant */ -raylib.ICON_TARGET_BIG_FILL = 66 +raylib.KEY_RIGHT_SHIFT = 344 /** - * + * Key: Control right * * @type {number} * @constant */ -raylib.ICON_TARGET_MOVE_FILL = 67 +raylib.KEY_RIGHT_CONTROL = 345 /** - * + * Key: Alt right * * @type {number} * @constant */ -raylib.ICON_CURSOR_MOVE_FILL = 68 +raylib.KEY_RIGHT_ALT = 346 /** - * + * Key: Super right * * @type {number} * @constant */ -raylib.ICON_CURSOR_SCALE_FILL = 69 +raylib.KEY_RIGHT_SUPER = 347 /** - * + * Key: KB menu * * @type {number} * @constant */ -raylib.ICON_CURSOR_SCALE_RIGHT_FILL = 70 +raylib.KEY_KB_MENU = 348 /** - * + * Key: Keypad 0 * * @type {number} * @constant */ -raylib.ICON_CURSOR_SCALE_LEFT_FILL = 71 +raylib.KEY_KP_0 = 320 /** - * + * Key: Keypad 1 * * @type {number} * @constant */ -raylib.ICON_UNDO_FILL = 72 +raylib.KEY_KP_1 = 321 /** - * + * Key: Keypad 2 * * @type {number} * @constant */ -raylib.ICON_REDO_FILL = 73 +raylib.KEY_KP_2 = 322 /** - * + * Key: Keypad 3 * * @type {number} * @constant */ -raylib.ICON_REREDO_FILL = 74 +raylib.KEY_KP_3 = 323 /** - * + * Key: Keypad 4 * * @type {number} * @constant */ -raylib.ICON_MUTATE_FILL = 75 +raylib.KEY_KP_4 = 324 /** - * + * Key: Keypad 5 * * @type {number} * @constant */ -raylib.ICON_ROTATE_FILL = 76 +raylib.KEY_KP_5 = 325 /** - * + * Key: Keypad 6 * * @type {number} * @constant */ -raylib.ICON_REPEAT_FILL = 77 +raylib.KEY_KP_6 = 326 /** - * + * Key: Keypad 7 * * @type {number} * @constant */ -raylib.ICON_SHUFFLE_FILL = 78 +raylib.KEY_KP_7 = 327 /** - * + * Key: Keypad 8 * * @type {number} * @constant */ -raylib.ICON_EMPTYBOX_SMALL = 79 +raylib.KEY_KP_8 = 328 /** - * + * Key: Keypad 9 * * @type {number} * @constant */ -raylib.ICON_BOX = 80 +raylib.KEY_KP_9 = 329 /** - * + * Key: Keypad . * * @type {number} * @constant */ -raylib.ICON_BOX_TOP = 81 +raylib.KEY_KP_DECIMAL = 330 /** - * + * Key: Keypad / * * @type {number} * @constant */ -raylib.ICON_BOX_TOP_RIGHT = 82 +raylib.KEY_KP_DIVIDE = 331 /** - * + * Key: Keypad * * * @type {number} * @constant */ -raylib.ICON_BOX_RIGHT = 83 +raylib.KEY_KP_MULTIPLY = 332 /** - * + * Key: Keypad - * * @type {number} * @constant */ -raylib.ICON_BOX_BOTTOM_RIGHT = 84 +raylib.KEY_KP_SUBTRACT = 333 /** - * + * Key: Keypad + * * @type {number} * @constant */ -raylib.ICON_BOX_BOTTOM = 85 +raylib.KEY_KP_ADD = 334 /** - * + * Key: Keypad Enter * * @type {number} * @constant */ -raylib.ICON_BOX_BOTTOM_LEFT = 86 +raylib.KEY_KP_ENTER = 335 /** - * + * Key: Keypad = * * @type {number} * @constant */ -raylib.ICON_BOX_LEFT = 87 +raylib.KEY_KP_EQUAL = 336 /** - * + * Key: Android back button * * @type {number} * @constant */ -raylib.ICON_BOX_TOP_LEFT = 88 +raylib.KEY_BACK = 4 /** - * + * Key: Android menu button * * @type {number} * @constant */ -raylib.ICON_BOX_CENTER = 89 +raylib.KEY_MENU = 82 /** - * + * Key: Android volume up button * * @type {number} * @constant */ -raylib.ICON_BOX_CIRCLE_MASK = 90 +raylib.KEY_VOLUME_UP = 24 /** - * + * Key: Android volume down button * * @type {number} * @constant */ -raylib.ICON_POT = 91 +raylib.KEY_VOLUME_DOWN = 25 /** - * + * Mouse button left * * @type {number} * @constant */ -raylib.ICON_ALPHA_MULTIPLY = 92 +raylib.MOUSE_BUTTON_LEFT = 0 /** - * + * Mouse button right * * @type {number} * @constant */ -raylib.ICON_ALPHA_CLEAR = 93 +raylib.MOUSE_BUTTON_RIGHT = 1 /** - * + * Mouse button middle (pressed wheel) * * @type {number} * @constant */ -raylib.ICON_DITHERING = 94 +raylib.MOUSE_BUTTON_MIDDLE = 2 /** - * + * Mouse button side (advanced mouse device) * * @type {number} * @constant */ -raylib.ICON_MIPMAPS = 95 +raylib.MOUSE_BUTTON_SIDE = 3 /** - * + * Mouse button extra (advanced mouse device) * * @type {number} * @constant */ -raylib.ICON_BOX_GRID = 96 +raylib.MOUSE_BUTTON_EXTRA = 4 /** - * + * Mouse button forward (advanced mouse device) * * @type {number} * @constant */ -raylib.ICON_GRID = 97 +raylib.MOUSE_BUTTON_FORWARD = 5 /** - * + * Mouse button back (advanced mouse device) * * @type {number} * @constant */ -raylib.ICON_BOX_CORNERS_SMALL = 98 +raylib.MOUSE_BUTTON_BACK = 6 /** - * + * Default pointer shape * * @type {number} * @constant */ -raylib.ICON_BOX_CORNERS_BIG = 99 +raylib.MOUSE_CURSOR_DEFAULT = 0 /** - * + * Arrow shape * * @type {number} * @constant */ -raylib.ICON_FOUR_BOXES = 100 +raylib.MOUSE_CURSOR_ARROW = 1 /** - * + * Text writing cursor shape * * @type {number} * @constant */ -raylib.ICON_GRID_FILL = 101 +raylib.MOUSE_CURSOR_IBEAM = 2 /** - * + * Cross shape * * @type {number} * @constant */ -raylib.ICON_BOX_MULTISIZE = 102 +raylib.MOUSE_CURSOR_CROSSHAIR = 3 /** - * + * Pointing hand cursor * * @type {number} * @constant */ -raylib.ICON_ZOOM_SMALL = 103 +raylib.MOUSE_CURSOR_POINTING_HAND = 4 /** - * + * Horizontal resize/move arrow shape * * @type {number} * @constant */ -raylib.ICON_ZOOM_MEDIUM = 104 +raylib.MOUSE_CURSOR_RESIZE_EW = 5 /** - * + * Vertical resize/move arrow shape * * @type {number} * @constant */ -raylib.ICON_ZOOM_BIG = 105 +raylib.MOUSE_CURSOR_RESIZE_NS = 6 /** - * + * Top-left to bottom-right diagonal resize/move arrow shape * * @type {number} * @constant */ -raylib.ICON_ZOOM_ALL = 106 +raylib.MOUSE_CURSOR_RESIZE_NWSE = 7 /** - * + * The top-right to bottom-left diagonal resize/move arrow shape * * @type {number} * @constant */ -raylib.ICON_ZOOM_CENTER = 107 +raylib.MOUSE_CURSOR_RESIZE_NESW = 8 /** - * + * The omnidirectional resize/move cursor shape * * @type {number} * @constant */ -raylib.ICON_BOX_DOTS_SMALL = 108 +raylib.MOUSE_CURSOR_RESIZE_ALL = 9 /** - * + * The operation-not-allowed shape * * @type {number} * @constant */ -raylib.ICON_BOX_DOTS_BIG = 109 +raylib.MOUSE_CURSOR_NOT_ALLOWED = 10 /** - * + * Unknown button, just for error checking * * @type {number} * @constant */ -raylib.ICON_BOX_CONCENTRIC = 110 +raylib.GAMEPAD_BUTTON_UNKNOWN = 0 /** - * + * Gamepad left DPAD up button * * @type {number} * @constant */ -raylib.ICON_BOX_GRID_BIG = 111 +raylib.GAMEPAD_BUTTON_LEFT_FACE_UP = 1 /** - * + * Gamepad left DPAD right button * * @type {number} * @constant */ -raylib.ICON_OK_TICK = 112 +raylib.GAMEPAD_BUTTON_LEFT_FACE_RIGHT = 2 /** - * + * Gamepad left DPAD down button * * @type {number} * @constant */ -raylib.ICON_CROSS = 113 +raylib.GAMEPAD_BUTTON_LEFT_FACE_DOWN = 3 /** - * + * Gamepad left DPAD left button * * @type {number} * @constant */ -raylib.ICON_ARROW_LEFT = 114 +raylib.GAMEPAD_BUTTON_LEFT_FACE_LEFT = 4 /** - * + * Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) * * @type {number} * @constant */ -raylib.ICON_ARROW_RIGHT = 115 +raylib.GAMEPAD_BUTTON_RIGHT_FACE_UP = 5 /** - * + * Gamepad right button right (i.e. PS3: Square, Xbox: X) * * @type {number} * @constant */ -raylib.ICON_ARROW_DOWN = 116 +raylib.GAMEPAD_BUTTON_RIGHT_FACE_RIGHT = 6 /** - * + * Gamepad right button down (i.e. PS3: Cross, Xbox: A) * * @type {number} * @constant */ -raylib.ICON_ARROW_UP = 117 +raylib.GAMEPAD_BUTTON_RIGHT_FACE_DOWN = 7 /** - * + * Gamepad right button left (i.e. PS3: Circle, Xbox: B) * * @type {number} * @constant */ -raylib.ICON_ARROW_LEFT_FILL = 118 +raylib.GAMEPAD_BUTTON_RIGHT_FACE_LEFT = 8 /** - * + * Gamepad top/back trigger left (first), it could be a trailing button * * @type {number} * @constant */ -raylib.ICON_ARROW_RIGHT_FILL = 119 +raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_1 = 9 /** - * + * Gamepad top/back trigger left (second), it could be a trailing button * * @type {number} * @constant */ -raylib.ICON_ARROW_DOWN_FILL = 120 +raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_2 = 10 /** - * + * Gamepad top/back trigger right (one), it could be a trailing button * * @type {number} * @constant */ -raylib.ICON_ARROW_UP_FILL = 121 +raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_1 = 11 /** - * + * Gamepad top/back trigger right (second), it could be a trailing button * * @type {number} * @constant */ -raylib.ICON_AUDIO = 122 +raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_2 = 12 /** - * + * Gamepad center buttons, left one (i.e. PS3: Select) * * @type {number} * @constant */ -raylib.ICON_FX = 123 +raylib.GAMEPAD_BUTTON_MIDDLE_LEFT = 13 /** - * + * Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX) * * @type {number} * @constant */ -raylib.ICON_WAVE = 124 +raylib.GAMEPAD_BUTTON_MIDDLE = 14 /** - * + * Gamepad center buttons, right one (i.e. PS3: Start) * * @type {number} * @constant */ -raylib.ICON_WAVE_SINUS = 125 +raylib.GAMEPAD_BUTTON_MIDDLE_RIGHT = 15 /** - * + * Gamepad joystick pressed button left * * @type {number} * @constant */ -raylib.ICON_WAVE_SQUARE = 126 +raylib.GAMEPAD_BUTTON_LEFT_THUMB = 16 /** - * + * Gamepad joystick pressed button right * * @type {number} * @constant */ -raylib.ICON_WAVE_TRIANGULAR = 127 +raylib.GAMEPAD_BUTTON_RIGHT_THUMB = 17 /** - * + * Gamepad left stick X axis * * @type {number} * @constant */ -raylib.ICON_CROSS_SMALL = 128 +raylib.GAMEPAD_AXIS_LEFT_X = 0 /** - * + * Gamepad left stick Y axis * * @type {number} * @constant */ -raylib.ICON_PLAYER_PREVIOUS = 129 +raylib.GAMEPAD_AXIS_LEFT_Y = 1 /** - * + * Gamepad right stick X axis * * @type {number} * @constant */ -raylib.ICON_PLAYER_PLAY_BACK = 130 +raylib.GAMEPAD_AXIS_RIGHT_X = 2 /** - * + * Gamepad right stick Y axis * * @type {number} * @constant */ -raylib.ICON_PLAYER_PLAY = 131 +raylib.GAMEPAD_AXIS_RIGHT_Y = 3 /** - * + * Gamepad back trigger left, pressure level: [1..-1] * * @type {number} * @constant */ -raylib.ICON_PLAYER_PAUSE = 132 +raylib.GAMEPAD_AXIS_LEFT_TRIGGER = 4 /** - * + * Gamepad back trigger right, pressure level: [1..-1] * * @type {number} * @constant */ -raylib.ICON_PLAYER_STOP = 133 +raylib.GAMEPAD_AXIS_RIGHT_TRIGGER = 5 /** - * + * Albedo material (same as: MATERIAL_MAP_DIFFUSE) * * @type {number} * @constant */ -raylib.ICON_PLAYER_NEXT = 134 +raylib.MATERIAL_MAP_ALBEDO = 0 /** - * + * Metalness material (same as: MATERIAL_MAP_SPECULAR) * * @type {number} * @constant */ -raylib.ICON_PLAYER_RECORD = 135 +raylib.MATERIAL_MAP_METALNESS = 1 /** - * + * Normal material * * @type {number} * @constant */ -raylib.ICON_MAGNET = 136 +raylib.MATERIAL_MAP_NORMAL = 2 /** - * + * Roughness material * * @type {number} * @constant */ -raylib.ICON_LOCK_CLOSE = 137 +raylib.MATERIAL_MAP_ROUGHNESS = 3 /** - * + * Ambient occlusion material * * @type {number} * @constant */ -raylib.ICON_LOCK_OPEN = 138 +raylib.MATERIAL_MAP_OCCLUSION = 4 /** - * + * Emission material * * @type {number} * @constant */ -raylib.ICON_CLOCK = 139 +raylib.MATERIAL_MAP_EMISSION = 5 /** - * + * Heightmap material * * @type {number} * @constant */ -raylib.ICON_TOOLS = 140 +raylib.MATERIAL_MAP_HEIGHT = 6 /** - * + * Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP) * * @type {number} * @constant */ -raylib.ICON_GEAR = 141 +raylib.MATERIAL_MAP_CUBEMAP = 7 /** - * + * Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP) * * @type {number} * @constant */ -raylib.ICON_GEAR_BIG = 142 +raylib.MATERIAL_MAP_IRRADIANCE = 8 /** - * + * Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP) * * @type {number} * @constant */ -raylib.ICON_BIN = 143 +raylib.MATERIAL_MAP_PREFILTER = 9 /** - * + * Brdf material * * @type {number} * @constant */ -raylib.ICON_HAND_POINTER = 144 +raylib.MATERIAL_MAP_BRDF = 10 /** - * + * Shader location: vertex attribute: position * * @type {number} * @constant */ -raylib.ICON_LASER = 145 +raylib.SHADER_LOC_VERTEX_POSITION = 0 /** - * + * Shader location: vertex attribute: texcoord01 * * @type {number} * @constant */ -raylib.ICON_COIN = 146 +raylib.SHADER_LOC_VERTEX_TEXCOORD01 = 1 /** - * + * Shader location: vertex attribute: texcoord02 * * @type {number} * @constant */ -raylib.ICON_EXPLOSION = 147 +raylib.SHADER_LOC_VERTEX_TEXCOORD02 = 2 /** - * + * Shader location: vertex attribute: normal * * @type {number} * @constant */ -raylib.ICON_1UP = 148 +raylib.SHADER_LOC_VERTEX_NORMAL = 3 /** - * + * Shader location: vertex attribute: tangent * * @type {number} * @constant */ -raylib.ICON_PLAYER = 149 +raylib.SHADER_LOC_VERTEX_TANGENT = 4 /** - * + * Shader location: vertex attribute: color * * @type {number} * @constant */ -raylib.ICON_PLAYER_JUMP = 150 +raylib.SHADER_LOC_VERTEX_COLOR = 5 /** - * + * Shader location: matrix uniform: model-view-projection * * @type {number} * @constant */ -raylib.ICON_KEY = 151 +raylib.SHADER_LOC_MATRIX_MVP = 6 /** - * + * Shader location: matrix uniform: view (camera transform) * * @type {number} * @constant */ -raylib.ICON_DEMON = 152 +raylib.SHADER_LOC_MATRIX_VIEW = 7 /** - * + * Shader location: matrix uniform: projection * * @type {number} * @constant */ -raylib.ICON_TEXT_POPUP = 153 +raylib.SHADER_LOC_MATRIX_PROJECTION = 8 /** - * + * Shader location: matrix uniform: model (transform) * * @type {number} * @constant */ -raylib.ICON_GEAR_EX = 154 +raylib.SHADER_LOC_MATRIX_MODEL = 9 /** - * + * Shader location: matrix uniform: normal * * @type {number} * @constant */ -raylib.ICON_CRACK = 155 +raylib.SHADER_LOC_MATRIX_NORMAL = 10 /** - * + * Shader location: vector uniform: view * * @type {number} * @constant */ -raylib.ICON_CRACK_POINTS = 156 +raylib.SHADER_LOC_VECTOR_VIEW = 11 /** - * + * Shader location: vector uniform: diffuse color * * @type {number} * @constant */ -raylib.ICON_STAR = 157 +raylib.SHADER_LOC_COLOR_DIFFUSE = 12 /** - * + * Shader location: vector uniform: specular color * * @type {number} * @constant */ -raylib.ICON_DOOR = 158 +raylib.SHADER_LOC_COLOR_SPECULAR = 13 /** - * + * Shader location: vector uniform: ambient color * * @type {number} * @constant */ -raylib.ICON_EXIT = 159 +raylib.SHADER_LOC_COLOR_AMBIENT = 14 /** - * + * Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE) * * @type {number} * @constant */ -raylib.ICON_MODE_2D = 160 +raylib.SHADER_LOC_MAP_ALBEDO = 15 /** - * + * Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR) * * @type {number} * @constant */ -raylib.ICON_MODE_3D = 161 +raylib.SHADER_LOC_MAP_METALNESS = 16 /** - * + * Shader location: sampler2d texture: normal * * @type {number} * @constant */ -raylib.ICON_CUBE = 162 +raylib.SHADER_LOC_MAP_NORMAL = 17 /** - * + * Shader location: sampler2d texture: roughness * * @type {number} * @constant */ -raylib.ICON_CUBE_FACE_TOP = 163 +raylib.SHADER_LOC_MAP_ROUGHNESS = 18 /** - * + * Shader location: sampler2d texture: occlusion * * @type {number} * @constant */ -raylib.ICON_CUBE_FACE_LEFT = 164 +raylib.SHADER_LOC_MAP_OCCLUSION = 19 /** - * + * Shader location: sampler2d texture: emission * * @type {number} * @constant */ -raylib.ICON_CUBE_FACE_FRONT = 165 +raylib.SHADER_LOC_MAP_EMISSION = 20 /** - * + * Shader location: sampler2d texture: height * * @type {number} * @constant */ -raylib.ICON_CUBE_FACE_BOTTOM = 166 +raylib.SHADER_LOC_MAP_HEIGHT = 21 /** - * + * Shader location: samplerCube texture: cubemap * * @type {number} * @constant */ -raylib.ICON_CUBE_FACE_RIGHT = 167 +raylib.SHADER_LOC_MAP_CUBEMAP = 22 /** - * + * Shader location: samplerCube texture: irradiance * * @type {number} * @constant */ -raylib.ICON_CUBE_FACE_BACK = 168 +raylib.SHADER_LOC_MAP_IRRADIANCE = 23 /** - * + * Shader location: samplerCube texture: prefilter * * @type {number} * @constant */ -raylib.ICON_CAMERA = 169 +raylib.SHADER_LOC_MAP_PREFILTER = 24 /** - * + * Shader location: sampler2d texture: brdf * * @type {number} * @constant */ -raylib.ICON_SPECIAL = 170 +raylib.SHADER_LOC_MAP_BRDF = 25 /** - * + * Shader uniform type: float * * @type {number} * @constant */ -raylib.ICON_LINK_NET = 171 +raylib.SHADER_UNIFORM_FLOAT = 0 /** - * + * Shader uniform type: vec2 (2 float) * * @type {number} * @constant */ -raylib.ICON_LINK_BOXES = 172 +raylib.SHADER_UNIFORM_VEC2 = 1 /** - * + * Shader uniform type: vec3 (3 float) * * @type {number} * @constant */ -raylib.ICON_LINK_MULTI = 173 +raylib.SHADER_UNIFORM_VEC3 = 2 /** - * + * Shader uniform type: vec4 (4 float) * * @type {number} * @constant */ -raylib.ICON_LINK = 174 +raylib.SHADER_UNIFORM_VEC4 = 3 /** - * + * Shader uniform type: int * * @type {number} * @constant */ -raylib.ICON_LINK_BROKE = 175 +raylib.SHADER_UNIFORM_INT = 4 /** - * + * Shader uniform type: ivec2 (2 int) * * @type {number} * @constant */ -raylib.ICON_TEXT_NOTES = 176 +raylib.SHADER_UNIFORM_IVEC2 = 5 /** - * + * Shader uniform type: ivec3 (3 int) * * @type {number} * @constant */ -raylib.ICON_NOTEBOOK = 177 +raylib.SHADER_UNIFORM_IVEC3 = 6 /** - * + * Shader uniform type: ivec4 (4 int) * * @type {number} * @constant */ -raylib.ICON_SUITCASE = 178 +raylib.SHADER_UNIFORM_IVEC4 = 7 /** - * + * Shader uniform type: sampler2d * * @type {number} * @constant */ -raylib.ICON_SUITCASE_ZIP = 179 +raylib.SHADER_UNIFORM_SAMPLER2D = 8 /** - * + * Shader attribute type: float * * @type {number} * @constant */ -raylib.ICON_MAILBOX = 180 +raylib.SHADER_ATTRIB_FLOAT = 0 /** - * + * Shader attribute type: vec2 (2 float) * * @type {number} * @constant */ -raylib.ICON_MONITOR = 181 +raylib.SHADER_ATTRIB_VEC2 = 1 /** - * + * Shader attribute type: vec3 (3 float) * * @type {number} * @constant */ -raylib.ICON_PRINTER = 182 +raylib.SHADER_ATTRIB_VEC3 = 2 /** - * + * Shader attribute type: vec4 (4 float) * * @type {number} * @constant */ -raylib.ICON_PHOTO_CAMERA = 183 +raylib.SHADER_ATTRIB_VEC4 = 3 /** - * + * 8 bit per pixel (no alpha) * * @type {number} * @constant */ -raylib.ICON_PHOTO_CAMERA_FLASH = 184 +raylib.PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1 /** - * + * 8*2 bpp (2 channels) * * @type {number} * @constant */ -raylib.ICON_HOUSE = 185 +raylib.PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2 /** - * + * 16 bpp * * @type {number} * @constant */ -raylib.ICON_HEART = 186 +raylib.PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3 /** - * + * 24 bpp * * @type {number} * @constant */ -raylib.ICON_CORNER = 187 +raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4 /** - * + * 16 bpp (1 bit alpha) * * @type {number} * @constant */ -raylib.ICON_VERTICAL_BARS = 188 +raylib.PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5 /** - * + * 16 bpp (4 bit alpha) * * @type {number} * @constant */ -raylib.ICON_VERTICAL_BARS_FILL = 189 +raylib.PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6 /** - * + * 32 bpp * * @type {number} * @constant */ -raylib.ICON_LIFE_BARS = 190 +raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7 /** - * + * 32 bpp (1 channel - float) * * @type {number} * @constant */ -raylib.ICON_INFO = 191 +raylib.PIXELFORMAT_UNCOMPRESSED_R32 = 8 /** - * + * 32*3 bpp (3 channels - float) * * @type {number} * @constant */ -raylib.ICON_CROSSLINE = 192 +raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9 /** - * + * 32*4 bpp (4 channels - float) * * @type {number} * @constant */ -raylib.ICON_HELP = 193 +raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10 /** - * + * 16 bpp (1 channel - half float) * * @type {number} * @constant */ -raylib.ICON_FILETYPE_ALPHA = 194 +raylib.PIXELFORMAT_UNCOMPRESSED_R16 = 11 /** - * + * 16*3 bpp (3 channels - half float) * * @type {number} * @constant */ -raylib.ICON_FILETYPE_HOME = 195 +raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12 /** - * + * 16*4 bpp (4 channels - half float) * * @type {number} * @constant */ -raylib.ICON_LAYERS_VISIBLE = 196 +raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13 /** - * + * 4 bpp (no alpha) * * @type {number} * @constant */ -raylib.ICON_LAYERS = 197 +raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 14 /** - * + * 4 bpp (1 bit alpha) * * @type {number} * @constant */ -raylib.ICON_WINDOW = 198 +raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15 /** - * + * 8 bpp * * @type {number} * @constant */ -raylib.ICON_HIDPI = 199 +raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16 /** - * + * 8 bpp * * @type {number} * @constant */ -raylib.ICON_FILETYPE_BINARY = 200 +raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17 /** - * + * 4 bpp * * @type {number} * @constant */ -raylib.ICON_HEX = 201 +raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 18 /** - * + * 4 bpp * * @type {number} * @constant */ -raylib.ICON_SHIELD = 202 +raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 19 /** - * + * 8 bpp * * @type {number} * @constant */ -raylib.ICON_FILE_NEW = 203 +raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20 /** - * + * 4 bpp * * @type {number} * @constant */ -raylib.ICON_FOLDER_ADD = 204 +raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 21 /** - * + * 4 bpp * * @type {number} * @constant */ -raylib.ICON_ALARM = 205 +raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22 /** - * + * 8 bpp * * @type {number} * @constant */ -raylib.ICON_CPU = 206 +raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23 /** - * + * 2 bpp * * @type {number} * @constant */ -raylib.ICON_ROM = 207 +raylib.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24 /** - * + * No filter, just pixel approximation * * @type {number} * @constant */ -raylib.ICON_STEP_OVER = 208 +raylib.TEXTURE_FILTER_POINT = 0 /** - * + * Linear filtering * * @type {number} * @constant */ -raylib.ICON_STEP_INTO = 209 +raylib.TEXTURE_FILTER_BILINEAR = 1 /** - * + * Trilinear filtering (linear with mipmaps) * * @type {number} * @constant */ -raylib.ICON_STEP_OUT = 210 +raylib.TEXTURE_FILTER_TRILINEAR = 2 /** - * + * Anisotropic filtering 4x * * @type {number} * @constant */ -raylib.ICON_RESTART = 211 +raylib.TEXTURE_FILTER_ANISOTROPIC_4X = 3 /** - * + * Anisotropic filtering 8x * * @type {number} * @constant */ -raylib.ICON_BREAKPOINT_ON = 212 +raylib.TEXTURE_FILTER_ANISOTROPIC_8X = 4 /** - * + * Anisotropic filtering 16x * * @type {number} * @constant */ -raylib.ICON_BREAKPOINT_OFF = 213 +raylib.TEXTURE_FILTER_ANISOTROPIC_16X = 5 /** - * + * Repeats texture in tiled mode * * @type {number} * @constant */ -raylib.ICON_BURGER_MENU = 214 +raylib.TEXTURE_WRAP_REPEAT = 0 /** - * + * Clamps texture to edge pixel in tiled mode * * @type {number} * @constant */ -raylib.ICON_CASE_SENSITIVE = 215 +raylib.TEXTURE_WRAP_CLAMP = 1 /** - * + * Mirrors and repeats the texture in tiled mode * * @type {number} * @constant */ -raylib.ICON_REG_EXP = 216 +raylib.TEXTURE_WRAP_MIRROR_REPEAT = 2 /** - * + * Mirrors and clamps to border the texture in tiled mode * * @type {number} * @constant */ -raylib.ICON_FOLDER = 217 +raylib.TEXTURE_WRAP_MIRROR_CLAMP = 3 /** - * + * Automatically detect layout type * * @type {number} * @constant */ -raylib.ICON_FILE = 218 +raylib.CUBEMAP_LAYOUT_AUTO_DETECT = 0 /** - * + * Layout is defined by a vertical line with faces * * @type {number} * @constant */ -raylib.ICON_SAND_TIMER = 219 +raylib.CUBEMAP_LAYOUT_LINE_VERTICAL = 1 /** - * + * Layout is defined by a horizontal line with faces * * @type {number} * @constant */ -raylib.ICON_220 = 220 +raylib.CUBEMAP_LAYOUT_LINE_HORIZONTAL = 2 /** - * + * Layout is defined by a 3x4 cross with cubemap faces * * @type {number} * @constant */ -raylib.ICON_221 = 221 +raylib.CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR = 3 /** - * + * Layout is defined by a 4x3 cross with cubemap faces * * @type {number} * @constant */ -raylib.ICON_222 = 222 +raylib.CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE = 4 /** - * + * Layout is defined by a panorama image (equirrectangular map) * * @type {number} * @constant */ -raylib.ICON_223 = 223 +raylib.CUBEMAP_LAYOUT_PANORAMA = 5 /** - * + * Default font generation, anti-aliased * * @type {number} * @constant */ -raylib.ICON_224 = 224 +raylib.FONT_DEFAULT = 0 /** - * + * Bitmap font generation, no anti-aliasing * * @type {number} * @constant */ -raylib.ICON_225 = 225 +raylib.FONT_BITMAP = 1 /** - * + * SDF font generation, requires external shader * * @type {number} * @constant */ -raylib.ICON_226 = 226 +raylib.FONT_SDF = 2 /** - * + * Blend textures considering alpha (default) * * @type {number} * @constant */ -raylib.ICON_227 = 227 +raylib.BLEND_ALPHA = 0 /** - * + * Blend textures adding colors * * @type {number} * @constant */ -raylib.ICON_228 = 228 +raylib.BLEND_ADDITIVE = 1 /** - * + * Blend textures multiplying colors * * @type {number} * @constant */ -raylib.ICON_229 = 229 +raylib.BLEND_MULTIPLIED = 2 /** - * + * Blend textures adding colors (alternative) * * @type {number} * @constant */ -raylib.ICON_230 = 230 +raylib.BLEND_ADD_COLORS = 3 /** - * + * Blend textures subtracting colors (alternative) * * @type {number} * @constant */ -raylib.ICON_231 = 231 +raylib.BLEND_SUBTRACT_COLORS = 4 /** - * + * Blend premultiplied textures considering alpha * * @type {number} * @constant */ -raylib.ICON_232 = 232 +raylib.BLEND_ALPHA_PREMULTIPLY = 5 /** - * + * Blend textures using custom src/dst factors (use rlSetBlendFactors()) * * @type {number} * @constant */ -raylib.ICON_233 = 233 +raylib.BLEND_CUSTOM = 6 /** - * + * Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate()) * * @type {number} * @constant */ -raylib.ICON_234 = 234 +raylib.BLEND_CUSTOM_SEPARATE = 7 /** - * + * No gesture * * @type {number} * @constant */ -raylib.ICON_235 = 235 +raylib.GESTURE_NONE = 0 /** - * + * Tap gesture * * @type {number} * @constant */ -raylib.ICON_236 = 236 +raylib.GESTURE_TAP = 1 /** - * + * Double tap gesture * * @type {number} * @constant */ -raylib.ICON_237 = 237 +raylib.GESTURE_DOUBLETAP = 2 /** - * + * Hold gesture * * @type {number} * @constant */ -raylib.ICON_238 = 238 +raylib.GESTURE_HOLD = 4 /** - * + * Drag gesture * * @type {number} * @constant */ -raylib.ICON_239 = 239 +raylib.GESTURE_DRAG = 8 /** - * + * Swipe right gesture * * @type {number} * @constant */ -raylib.ICON_240 = 240 +raylib.GESTURE_SWIPE_RIGHT = 16 /** - * + * Swipe left gesture * * @type {number} * @constant */ -raylib.ICON_241 = 241 +raylib.GESTURE_SWIPE_LEFT = 32 /** - * + * Swipe up gesture * * @type {number} * @constant */ -raylib.ICON_242 = 242 +raylib.GESTURE_SWIPE_UP = 64 /** - * + * Swipe down gesture * * @type {number} * @constant */ -raylib.ICON_243 = 243 +raylib.GESTURE_SWIPE_DOWN = 128 /** - * + * Pinch in gesture * * @type {number} * @constant */ -raylib.ICON_244 = 244 +raylib.GESTURE_PINCH_IN = 256 /** - * + * Pinch out gesture * * @type {number} * @constant */ -raylib.ICON_245 = 245 +raylib.GESTURE_PINCH_OUT = 512 /** - * + * Custom camera * * @type {number} * @constant */ -raylib.ICON_246 = 246 +raylib.CAMERA_CUSTOM = 0 /** - * + * Free camera * * @type {number} * @constant */ -raylib.ICON_247 = 247 +raylib.CAMERA_FREE = 1 /** - * + * Orbital camera * * @type {number} * @constant */ -raylib.ICON_248 = 248 +raylib.CAMERA_ORBITAL = 2 /** - * + * First person camera * * @type {number} * @constant */ -raylib.ICON_249 = 249 +raylib.CAMERA_FIRST_PERSON = 3 /** - * + * Third person camera * * @type {number} * @constant */ -raylib.ICON_250 = 250 +raylib.CAMERA_THIRD_PERSON = 4 /** - * + * Perspective projection * * @type {number} * @constant */ -raylib.ICON_251 = 251 +raylib.CAMERA_PERSPECTIVE = 0 /** - * + * Orthographic projection * * @type {number} * @constant */ -raylib.ICON_252 = 252 +raylib.CAMERA_ORTHOGRAPHIC = 1 /** - * + * Npatch layout: 3x3 tiles * * @type {number} * @constant */ -raylib.ICON_253 = 253 +raylib.NPATCH_NINE_PATCH = 0 /** - * + * Npatch layout: 1x3 tiles * * @type {number} * @constant */ -raylib.ICON_254 = 254 +raylib.NPATCH_THREE_PATCH_VERTICAL = 1 /** - * + * Npatch layout: 3x1 tiles * * @type {number} * @constant */ -raylib.ICON_255 = 255 +raylib.NPATCH_THREE_PATCH_HORIZONTAL = 2 /** * OpenGL 1.1 diff --git a/src/generated/node-raylib.cc b/src/generated/node-raylib.cc index 2a3d414..aeb11c5 100644 --- a/src/generated/node-raylib.cc +++ b/src/generated/node-raylib.cc @@ -4417,427 +4417,6 @@ Napi::Value BindQuaternionEquals(const Napi::CallbackInfo& info) { ); } -Napi::Value BindGuiIsLocked(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiIsLocked( - - ) - ); -} - -Napi::Value BindGuiGetState(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiGetState( - - ) - ); -} - -Napi::Value BindGuiGetFont(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiGetFont( - - ) - ); -} - -Napi::Value BindGuiGetStyle(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiGetStyle( - intFromValue(info, 0), - intFromValue(info, 1) - ) - ); -} - -Napi::Value BindGuiIconText(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiIconText( - intFromValue(info, 0), - (const char *) stringFromValue(info, 1) - ) - ); -} - -Napi::Value BindGuiGetIcons(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiGetIcons( - - ) - ); -} - -Napi::Value BindGuiLoadIcons(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiLoadIcons( - (const char *) stringFromValue(info, 0), - boolFromValue(info, 1) - ) - ); -} - -Napi::Value BindGuiWindowBox(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiWindowBox( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ) - ); -} - -Napi::Value BindGuiGroupBox(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiGroupBox( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ) - ); -} - -Napi::Value BindGuiLine(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiLine( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ) - ); -} - -Napi::Value BindGuiPanel(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiPanel( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ) - ); -} - -Napi::Value BindGuiTabBar(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiTabBar( - RectangleFromValue(info, 0), - (const char **) pointerFromValue(info, 4), - intFromValue(info, 5), - (int *) pointerFromValue(info, 6) - ) - ); -} - -Napi::Value BindGuiScrollPanel(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiScrollPanel( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - RectangleFromValue(info, 5), - (Vector2 *) pointerFromValue(info, 9), - (Rectangle *) pointerFromValue(info, 10) - ) - ); -} - -Napi::Value BindGuiLabel(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiLabel( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ) - ); -} - -Napi::Value BindGuiButton(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiButton( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ) - ); -} - -Napi::Value BindGuiLabelButton(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiLabelButton( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ) - ); -} - -Napi::Value BindGuiToggle(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiToggle( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (bool *) pointerFromValue(info, 5) - ) - ); -} - -Napi::Value BindGuiToggleGroup(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiToggleGroup( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (int *) pointerFromValue(info, 5) - ) - ); -} - -Napi::Value BindGuiToggleSlider(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiToggleSlider( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (int *) pointerFromValue(info, 5) - ) - ); -} - -Napi::Value BindGuiCheckBox(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiCheckBox( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (bool *) pointerFromValue(info, 5) - ) - ); -} - -Napi::Value BindGuiComboBox(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiComboBox( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (int *) pointerFromValue(info, 5) - ) - ); -} - -Napi::Value BindGuiDropdownBox(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiDropdownBox( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (int *) pointerFromValue(info, 5), - boolFromValue(info, 6) - ) - ); -} - -Napi::Value BindGuiSpinner(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiSpinner( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (int *) pointerFromValue(info, 5), - intFromValue(info, 6), - intFromValue(info, 7), - boolFromValue(info, 8) - ) - ); -} - -Napi::Value BindGuiValueBox(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiValueBox( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (int *) pointerFromValue(info, 5), - intFromValue(info, 6), - intFromValue(info, 7), - boolFromValue(info, 8) - ) - ); -} - -Napi::Value BindGuiTextBox(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiTextBox( - RectangleFromValue(info, 0), - (char *) pointerFromValue(info, 4), - intFromValue(info, 5), - boolFromValue(info, 6) - ) - ); -} - -Napi::Value BindGuiSlider(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiSlider( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (const char *) stringFromValue(info, 5), - (float *) pointerFromValue(info, 6), - floatFromValue(info, 7), - floatFromValue(info, 8) - ) - ); -} - -Napi::Value BindGuiSliderBar(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiSliderBar( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (const char *) stringFromValue(info, 5), - (float *) pointerFromValue(info, 6), - floatFromValue(info, 7), - floatFromValue(info, 8) - ) - ); -} - -Napi::Value BindGuiProgressBar(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiProgressBar( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (const char *) stringFromValue(info, 5), - (float *) pointerFromValue(info, 6), - floatFromValue(info, 7), - floatFromValue(info, 8) - ) - ); -} - -Napi::Value BindGuiStatusBar(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiStatusBar( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ) - ); -} - -Napi::Value BindGuiDummyRec(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiDummyRec( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4) - ) - ); -} - -Napi::Value BindGuiGrid(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiGrid( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - floatFromValue(info, 5), - intFromValue(info, 6), - (Vector2 *) pointerFromValue(info, 7) - ) - ); -} - -Napi::Value BindGuiListView(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiListView( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (int *) pointerFromValue(info, 5), - (int *) pointerFromValue(info, 6) - ) - ); -} - -Napi::Value BindGuiListViewEx(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiListViewEx( - RectangleFromValue(info, 0), - (const char **) pointerFromValue(info, 4), - intFromValue(info, 5), - (int *) pointerFromValue(info, 6), - (int *) pointerFromValue(info, 7), - (int *) pointerFromValue(info, 8) - ) - ); -} - -Napi::Value BindGuiMessageBox(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiMessageBox( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (const char *) stringFromValue(info, 5), - (const char *) stringFromValue(info, 6) - ) - ); -} - -Napi::Value BindGuiTextInputBox(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiTextInputBox( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (const char *) stringFromValue(info, 5), - (const char *) stringFromValue(info, 6), - (char *) pointerFromValue(info, 7), - intFromValue(info, 8), - (bool *) pointerFromValue(info, 9) - ) - ); -} - -Napi::Value BindGuiColorPicker(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiColorPicker( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (Color *) pointerFromValue(info, 5) - ) - ); -} - -Napi::Value BindGuiColorPanel(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiColorPanel( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (Color *) pointerFromValue(info, 5) - ) - ); -} - -Napi::Value BindGuiColorBarAlpha(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiColorBarAlpha( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (float *) pointerFromValue(info, 5) - ) - ); -} - -Napi::Value BindGuiColorBarHue(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiColorBarHue( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (float *) pointerFromValue(info, 5) - ) - ); -} - -Napi::Value BindGuiColorPickerHSV(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiColorPickerHSV( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (Vector3 *) pointerFromValue(info, 5) - ) - ); -} - -Napi::Value BindGuiColorPanelHSV(const Napi::CallbackInfo& info) { - return ToValue(info.Env(), - GuiColorPanelHSV( - RectangleFromValue(info, 0), - (const char *) stringFromValue(info, 4), - (Vector3 *) pointerFromValue(info, 5) - ) - ); -} - Napi::Value BindrlEnableVertexArray(const Napi::CallbackInfo& info) { return ToValue(info.Env(), rlEnableVertexArray( @@ -6860,102 +6439,6 @@ void BindQuaternionToAxisAngle(const Napi::CallbackInfo& info) { ); } -void BindGuiEnable(const Napi::CallbackInfo& info) { - GuiEnable( - - ); -} - -void BindGuiDisable(const Napi::CallbackInfo& info) { - GuiDisable( - - ); -} - -void BindGuiLock(const Napi::CallbackInfo& info) { - GuiLock( - - ); -} - -void BindGuiUnlock(const Napi::CallbackInfo& info) { - GuiUnlock( - - ); -} - -void BindGuiSetAlpha(const Napi::CallbackInfo& info) { - GuiSetAlpha( - floatFromValue(info, 0) - ); -} - -void BindGuiSetState(const Napi::CallbackInfo& info) { - GuiSetState( - intFromValue(info, 0) - ); -} - -void BindGuiSetFont(const Napi::CallbackInfo& info) { - GuiSetFont( - FontFromValue(info, 0) - ); -} - -void BindGuiSetStyle(const Napi::CallbackInfo& info) { - GuiSetStyle( - intFromValue(info, 0), - intFromValue(info, 1), - intFromValue(info, 2) - ); -} - -void BindGuiLoadStyle(const Napi::CallbackInfo& info) { - GuiLoadStyle( - (const char *) stringFromValue(info, 0) - ); -} - -void BindGuiLoadStyleDefault(const Napi::CallbackInfo& info) { - GuiLoadStyleDefault( - - ); -} - -void BindGuiEnableTooltip(const Napi::CallbackInfo& info) { - GuiEnableTooltip( - - ); -} - -void BindGuiDisableTooltip(const Napi::CallbackInfo& info) { - GuiDisableTooltip( - - ); -} - -void BindGuiSetTooltip(const Napi::CallbackInfo& info) { - GuiSetTooltip( - (const char *) stringFromValue(info, 0) - ); -} - -void BindGuiSetIconScale(const Napi::CallbackInfo& info) { - GuiSetIconScale( - intFromValue(info, 0) - ); -} - -void BindGuiDrawIcon(const Napi::CallbackInfo& info) { - GuiDrawIcon( - intFromValue(info, 0), - intFromValue(info, 1), - intFromValue(info, 2), - intFromValue(info, 3), - ColorFromValue(info, 4) - ); -} - void BindrlMatrixMode(const Napi::CallbackInfo& info) { rlMatrixMode( intFromValue(info, 0) @@ -8885,62 +8368,6 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { exports.Set("BindQuaternionToEuler", Napi::Function::New(env, BindQuaternionToEuler)); exports.Set("BindQuaternionTransform", Napi::Function::New(env, BindQuaternionTransform)); exports.Set("BindQuaternionEquals", Napi::Function::New(env, BindQuaternionEquals)); - exports.Set("BindGuiEnable", Napi::Function::New(env, BindGuiEnable)); - exports.Set("BindGuiDisable", Napi::Function::New(env, BindGuiDisable)); - exports.Set("BindGuiLock", Napi::Function::New(env, BindGuiLock)); - exports.Set("BindGuiUnlock", Napi::Function::New(env, BindGuiUnlock)); - exports.Set("BindGuiIsLocked", Napi::Function::New(env, BindGuiIsLocked)); - exports.Set("BindGuiSetAlpha", Napi::Function::New(env, BindGuiSetAlpha)); - exports.Set("BindGuiSetState", Napi::Function::New(env, BindGuiSetState)); - exports.Set("BindGuiGetState", Napi::Function::New(env, BindGuiGetState)); - exports.Set("BindGuiSetFont", Napi::Function::New(env, BindGuiSetFont)); - exports.Set("BindGuiGetFont", Napi::Function::New(env, BindGuiGetFont)); - exports.Set("BindGuiSetStyle", Napi::Function::New(env, BindGuiSetStyle)); - exports.Set("BindGuiGetStyle", Napi::Function::New(env, BindGuiGetStyle)); - exports.Set("BindGuiLoadStyle", Napi::Function::New(env, BindGuiLoadStyle)); - exports.Set("BindGuiLoadStyleDefault", Napi::Function::New(env, BindGuiLoadStyleDefault)); - exports.Set("BindGuiEnableTooltip", Napi::Function::New(env, BindGuiEnableTooltip)); - exports.Set("BindGuiDisableTooltip", Napi::Function::New(env, BindGuiDisableTooltip)); - exports.Set("BindGuiSetTooltip", Napi::Function::New(env, BindGuiSetTooltip)); - exports.Set("BindGuiIconText", Napi::Function::New(env, BindGuiIconText)); - exports.Set("BindGuiSetIconScale", Napi::Function::New(env, BindGuiSetIconScale)); - exports.Set("BindGuiGetIcons", Napi::Function::New(env, BindGuiGetIcons)); - exports.Set("BindGuiLoadIcons", Napi::Function::New(env, BindGuiLoadIcons)); - exports.Set("BindGuiDrawIcon", Napi::Function::New(env, BindGuiDrawIcon)); - exports.Set("BindGuiWindowBox", Napi::Function::New(env, BindGuiWindowBox)); - exports.Set("BindGuiGroupBox", Napi::Function::New(env, BindGuiGroupBox)); - exports.Set("BindGuiLine", Napi::Function::New(env, BindGuiLine)); - exports.Set("BindGuiPanel", Napi::Function::New(env, BindGuiPanel)); - exports.Set("BindGuiTabBar", Napi::Function::New(env, BindGuiTabBar)); - exports.Set("BindGuiScrollPanel", Napi::Function::New(env, BindGuiScrollPanel)); - exports.Set("BindGuiLabel", Napi::Function::New(env, BindGuiLabel)); - exports.Set("BindGuiButton", Napi::Function::New(env, BindGuiButton)); - exports.Set("BindGuiLabelButton", Napi::Function::New(env, BindGuiLabelButton)); - exports.Set("BindGuiToggle", Napi::Function::New(env, BindGuiToggle)); - exports.Set("BindGuiToggleGroup", Napi::Function::New(env, BindGuiToggleGroup)); - exports.Set("BindGuiToggleSlider", Napi::Function::New(env, BindGuiToggleSlider)); - exports.Set("BindGuiCheckBox", Napi::Function::New(env, BindGuiCheckBox)); - exports.Set("BindGuiComboBox", Napi::Function::New(env, BindGuiComboBox)); - exports.Set("BindGuiDropdownBox", Napi::Function::New(env, BindGuiDropdownBox)); - exports.Set("BindGuiSpinner", Napi::Function::New(env, BindGuiSpinner)); - exports.Set("BindGuiValueBox", Napi::Function::New(env, BindGuiValueBox)); - exports.Set("BindGuiTextBox", Napi::Function::New(env, BindGuiTextBox)); - exports.Set("BindGuiSlider", Napi::Function::New(env, BindGuiSlider)); - exports.Set("BindGuiSliderBar", Napi::Function::New(env, BindGuiSliderBar)); - exports.Set("BindGuiProgressBar", Napi::Function::New(env, BindGuiProgressBar)); - exports.Set("BindGuiStatusBar", Napi::Function::New(env, BindGuiStatusBar)); - exports.Set("BindGuiDummyRec", Napi::Function::New(env, BindGuiDummyRec)); - exports.Set("BindGuiGrid", Napi::Function::New(env, BindGuiGrid)); - exports.Set("BindGuiListView", Napi::Function::New(env, BindGuiListView)); - exports.Set("BindGuiListViewEx", Napi::Function::New(env, BindGuiListViewEx)); - exports.Set("BindGuiMessageBox", Napi::Function::New(env, BindGuiMessageBox)); - exports.Set("BindGuiTextInputBox", Napi::Function::New(env, BindGuiTextInputBox)); - exports.Set("BindGuiColorPicker", Napi::Function::New(env, BindGuiColorPicker)); - exports.Set("BindGuiColorPanel", Napi::Function::New(env, BindGuiColorPanel)); - exports.Set("BindGuiColorBarAlpha", Napi::Function::New(env, BindGuiColorBarAlpha)); - exports.Set("BindGuiColorBarHue", Napi::Function::New(env, BindGuiColorBarHue)); - exports.Set("BindGuiColorPickerHSV", Napi::Function::New(env, BindGuiColorPickerHSV)); - exports.Set("BindGuiColorPanelHSV", Napi::Function::New(env, BindGuiColorPanelHSV)); exports.Set("BindrlMatrixMode", Napi::Function::New(env, BindrlMatrixMode)); exports.Set("BindrlPushMatrix", Napi::Function::New(env, BindrlPushMatrix)); exports.Set("BindrlPopMatrix", Napi::Function::New(env, BindrlPopMatrix)); diff --git a/src/generated/node-raylib.d.ts b/src/generated/node-raylib.d.ts index d0a9278..81939b0 100644 --- a/src/generated/node-raylib.d.ts +++ b/src/generated/node-raylib.d.ts @@ -1566,7 +1566,7 @@ declare module "raylib" { /** Load font from file into GPU memory (VRAM) */ export function LoadFont(fileName: string): Font - /** Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont */ + /** Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set */ export function LoadFontEx(fileName: string, fontSize: number, codepoints: number, codepointCount: number): Font /** Load font from Image (XNA style) */ @@ -2496,174 +2496,6 @@ declare module "raylib" { /** */ export function QuaternionEquals(p: Quaternion, q: Quaternion): number - /** Enable gui controls (global state) */ - export function GuiEnable(): void - - /** Disable gui controls (global state) */ - export function GuiDisable(): void - - /** Lock gui controls (global state) */ - export function GuiLock(): void - - /** Unlock gui controls (global state) */ - export function GuiUnlock(): void - - /** Check if gui is locked (global state) */ - export function GuiIsLocked(): boolean - - /** Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f */ - export function GuiSetAlpha(alpha: number): void - - /** Set gui state (global state) */ - export function GuiSetState(state: number): void - - /** Get gui state (global state) */ - export function GuiGetState(): number - - /** Set gui custom font (global state) */ - export function GuiSetFont(font: Font): void - - /** Get gui custom font (global state) */ - export function GuiGetFont(): Font - - /** Set one style property */ - export function GuiSetStyle(control: number, property: number, value: number): void - - /** Get one style property */ - export function GuiGetStyle(control: number, property: number): number - - /** Load style file over global style variable (.rgs) */ - export function GuiLoadStyle(fileName: string): void - - /** Load style default over global style */ - export function GuiLoadStyleDefault(): void - - /** Enable gui tooltips (global state) */ - export function GuiEnableTooltip(): void - - /** Disable gui tooltips (global state) */ - export function GuiDisableTooltip(): void - - /** Set tooltip string */ - export function GuiSetTooltip(tooltip: string): void - - /** Get text with icon id prepended (if supported) */ - export function GuiIconText(iconId: number, text: string): string - - /** Set default icon drawing size */ - export function GuiSetIconScale(scale: number): void - - /** Get raygui icons data pointer */ - export function GuiGetIcons(): number - - /** Load raygui icons file (.rgi) into internal icons data */ - export function GuiLoadIcons(fileName: string, loadIconsName: boolean): number - - /** Draw icon using pixel size at specified position */ - export function GuiDrawIcon(iconId: number, posX: number, posY: number, pixelSize: number, color: Color): void - - /** Window Box control, shows a window that can be closed */ - export function GuiWindowBox(bounds: Rectangle, title: string): number - - /** Group Box control with text name */ - export function GuiGroupBox(bounds: Rectangle, text: string): number - - /** Line separator control, could contain text */ - export function GuiLine(bounds: Rectangle, text: string): number - - /** Panel control, useful to group controls */ - export function GuiPanel(bounds: Rectangle, text: string): number - - /** Tab Bar control, returns TAB to be closed or -1 */ - export function GuiTabBar(bounds: Rectangle, text: number, count: number, active: number): number - - /** Scroll Panel control */ - export function GuiScrollPanel(bounds: Rectangle, text: string, content: Rectangle, scroll: number, view: number): number - - /** Label control, shows text */ - export function GuiLabel(bounds: Rectangle, text: string): number - - /** Button control, returns true when clicked */ - export function GuiButton(bounds: Rectangle, text: string): number - - /** Label button control, show true when clicked */ - export function GuiLabelButton(bounds: Rectangle, text: string): number - - /** Toggle Button control, returns true when active */ - export function GuiToggle(bounds: Rectangle, text: string, active: number): number - - /** Toggle Group control, returns active toggle index */ - export function GuiToggleGroup(bounds: Rectangle, text: string, active: number): number - - /** Toggle Slider control, returns true when clicked */ - export function GuiToggleSlider(bounds: Rectangle, text: string, active: number): number - - /** Check Box control, returns true when active */ - export function GuiCheckBox(bounds: Rectangle, text: string, checked: number): number - - /** Combo Box control, returns selected item index */ - export function GuiComboBox(bounds: Rectangle, text: string, active: number): number - - /** Dropdown Box control, returns selected item */ - export function GuiDropdownBox(bounds: Rectangle, text: string, active: number, editMode: boolean): number - - /** Spinner control, returns selected value */ - export function GuiSpinner(bounds: Rectangle, text: string, value: number, minValue: number, maxValue: number, editMode: boolean): number - - /** Value Box control, updates input text with numbers */ - export function GuiValueBox(bounds: Rectangle, text: string, value: number, minValue: number, maxValue: number, editMode: boolean): number - - /** Text Box control, updates input text */ - export function GuiTextBox(bounds: Rectangle, text: string, textSize: number, editMode: boolean): number - - /** Slider control, returns selected value */ - export function GuiSlider(bounds: Rectangle, textLeft: string, textRight: string, value: number, minValue: number, maxValue: number): number - - /** Slider Bar control, returns selected value */ - export function GuiSliderBar(bounds: Rectangle, textLeft: string, textRight: string, value: number, minValue: number, maxValue: number): number - - /** Progress Bar control, shows current progress value */ - export function GuiProgressBar(bounds: Rectangle, textLeft: string, textRight: string, value: number, minValue: number, maxValue: number): number - - /** Status Bar control, shows info text */ - export function GuiStatusBar(bounds: Rectangle, text: string): number - - /** Dummy control for placeholders */ - export function GuiDummyRec(bounds: Rectangle, text: string): number - - /** Grid control, returns mouse cell position */ - export function GuiGrid(bounds: Rectangle, text: string, spacing: number, subdivs: number, mouseCell: number): number - - /** List View control, returns selected list item index */ - export function GuiListView(bounds: Rectangle, text: string, scrollIndex: number, active: number): number - - /** List View with extended parameters */ - export function GuiListViewEx(bounds: Rectangle, text: number, count: number, scrollIndex: number, active: number, focus: number): number - - /** Message Box control, displays a message */ - export function GuiMessageBox(bounds: Rectangle, title: string, message: string, buttons: string): number - - /** Text Input Box control, ask for text, supports secret */ - export function GuiTextInputBox(bounds: Rectangle, title: string, message: string, buttons: string, text: string, textMaxSize: number, secretViewActive: number): number - - /** Color Picker control (multiple color controls) */ - export function GuiColorPicker(bounds: Rectangle, text: string, color: number): number - - /** Color Panel control */ - export function GuiColorPanel(bounds: Rectangle, text: string, color: number): number - - /** Color Bar Alpha control */ - export function GuiColorBarAlpha(bounds: Rectangle, text: string, alpha: number): number - - /** Color Bar Hue control */ - export function GuiColorBarHue(bounds: Rectangle, text: string, value: number): number - - /** Color Picker control that avoids conversion to RGB on each call (multiple color controls) */ - export function GuiColorPickerHSV(bounds: Rectangle, text: string, colorHsv: number): number - - /** Color Panel control that returns HSV color value, used by GuiColorPickerHSV() */ - export function GuiColorPanelHSV(bounds: Rectangle, text: string, colorHsv: number): number - /** Choose the current matrix to be transformed */ export function rlMatrixMode(mode: number): void @@ -3713,674 +3545,6 @@ declare module "raylib" { export const NPATCH_THREE_PATCH_VERTICAL = 1 /** Npatch layout: 3x1 tiles */ export const NPATCH_THREE_PATCH_HORIZONTAL = 2 - /** */ - export const STATE_NORMAL = 0 - /** */ - export const STATE_FOCUSED = 1 - /** */ - export const STATE_PRESSED = 2 - /** */ - export const STATE_DISABLED = 3 - /** */ - export const TEXT_ALIGN_LEFT = 0 - /** */ - export const TEXT_ALIGN_CENTER = 1 - /** */ - export const TEXT_ALIGN_RIGHT = 2 - /** */ - export const TEXT_ALIGN_TOP = 0 - /** */ - export const TEXT_ALIGN_MIDDLE = 1 - /** */ - export const TEXT_ALIGN_BOTTOM = 2 - /** */ - export const TEXT_WRAP_NONE = 0 - /** */ - export const TEXT_WRAP_CHAR = 1 - /** */ - export const TEXT_WRAP_WORD = 2 - /** */ - export const DEFAULT = 0 - /** Used also for: LABELBUTTON */ - export const LABEL = 1 - /** */ - export const BUTTON = 2 - /** Used also for: TOGGLEGROUP */ - export const TOGGLE = 3 - /** Used also for: SLIDERBAR, TOGGLESLIDER */ - export const SLIDER = 4 - /** */ - export const PROGRESSBAR = 5 - /** */ - export const CHECKBOX = 6 - /** */ - export const COMBOBOX = 7 - /** */ - export const DROPDOWNBOX = 8 - /** Used also for: TEXTBOXMULTI */ - export const TEXTBOX = 9 - /** */ - export const VALUEBOX = 10 - /** Uses: BUTTON, VALUEBOX */ - export const SPINNER = 11 - /** */ - export const LISTVIEW = 12 - /** */ - export const COLORPICKER = 13 - /** */ - export const SCROLLBAR = 14 - /** */ - export const STATUSBAR = 15 - /** Control border color in STATE_NORMAL */ - export const BORDER_COLOR_NORMAL = 0 - /** Control base color in STATE_NORMAL */ - export const BASE_COLOR_NORMAL = 1 - /** Control text color in STATE_NORMAL */ - export const TEXT_COLOR_NORMAL = 2 - /** Control border color in STATE_FOCUSED */ - export const BORDER_COLOR_FOCUSED = 3 - /** Control base color in STATE_FOCUSED */ - export const BASE_COLOR_FOCUSED = 4 - /** Control text color in STATE_FOCUSED */ - export const TEXT_COLOR_FOCUSED = 5 - /** Control border color in STATE_PRESSED */ - export const BORDER_COLOR_PRESSED = 6 - /** Control base color in STATE_PRESSED */ - export const BASE_COLOR_PRESSED = 7 - /** Control text color in STATE_PRESSED */ - export const TEXT_COLOR_PRESSED = 8 - /** Control border color in STATE_DISABLED */ - export const BORDER_COLOR_DISABLED = 9 - /** Control base color in STATE_DISABLED */ - export const BASE_COLOR_DISABLED = 10 - /** Control text color in STATE_DISABLED */ - export const TEXT_COLOR_DISABLED = 11 - /** Control border size, 0 for no border */ - export const BORDER_WIDTH = 12 - /** Control text padding, not considering border */ - export const TEXT_PADDING = 13 - /** Control text horizontal alignment inside control text bound (after border and padding) */ - export const TEXT_ALIGNMENT = 14 - /** Text size (glyphs max height) */ - export const TEXT_SIZE = 16 - /** Text spacing between glyphs */ - export const TEXT_SPACING = 17 - /** Line control color */ - export const LINE_COLOR = 18 - /** Background color */ - export const BACKGROUND_COLOR = 19 - /** Text spacing between lines */ - export const TEXT_LINE_SPACING = 20 - /** Text vertical alignment inside text bounds (after border and padding) */ - export const TEXT_ALIGNMENT_VERTICAL = 21 - /** Text wrap-mode inside text bounds */ - export const TEXT_WRAP_MODE = 22 - /** ToggleGroup separation between toggles */ - export const GROUP_PADDING = 16 - /** Slider size of internal bar */ - export const SLIDER_WIDTH = 16 - /** Slider/SliderBar internal bar padding */ - export const SLIDER_PADDING = 17 - /** ProgressBar internal padding */ - export const PROGRESS_PADDING = 16 - /** ScrollBar arrows size */ - export const ARROWS_SIZE = 16 - /** ScrollBar arrows visible */ - export const ARROWS_VISIBLE = 17 - /** ScrollBar slider internal padding */ - export const SCROLL_SLIDER_PADDING = 18 - /** ScrollBar slider size */ - export const SCROLL_SLIDER_SIZE = 19 - /** ScrollBar scroll padding from arrows */ - export const SCROLL_PADDING = 20 - /** ScrollBar scrolling speed */ - export const SCROLL_SPEED = 21 - /** CheckBox internal check padding */ - export const CHECK_PADDING = 16 - /** ComboBox right button width */ - export const COMBO_BUTTON_WIDTH = 16 - /** ComboBox button separation */ - export const COMBO_BUTTON_SPACING = 17 - /** DropdownBox arrow separation from border and items */ - export const ARROW_PADDING = 16 - /** DropdownBox items separation */ - export const DROPDOWN_ITEMS_SPACING = 17 - /** TextBox in read-only mode: 0-text editable, 1-text no-editable */ - export const TEXT_READONLY = 16 - /** Spinner left/right buttons width */ - export const SPIN_BUTTON_WIDTH = 16 - /** Spinner buttons separation */ - export const SPIN_BUTTON_SPACING = 17 - /** ListView items height */ - export const LIST_ITEMS_HEIGHT = 16 - /** ListView items separation */ - export const LIST_ITEMS_SPACING = 17 - /** ListView scrollbar size (usually width) */ - export const SCROLLBAR_WIDTH = 18 - /** ListView scrollbar side (0-SCROLLBAR_LEFT_SIDE, 1-SCROLLBAR_RIGHT_SIDE) */ - export const SCROLLBAR_SIDE = 19 - /** */ - export const COLOR_SELECTOR_SIZE = 16 - /** ColorPicker right hue bar width */ - export const HUEBAR_WIDTH = 17 - /** ColorPicker right hue bar separation from panel */ - export const HUEBAR_PADDING = 18 - /** ColorPicker right hue bar selector height */ - export const HUEBAR_SELECTOR_HEIGHT = 19 - /** ColorPicker right hue bar selector overflow */ - export const HUEBAR_SELECTOR_OVERFLOW = 20 - /** */ - export const ICON_NONE = 0 - /** */ - export const ICON_FOLDER_FILE_OPEN = 1 - /** */ - export const ICON_FILE_SAVE_CLASSIC = 2 - /** */ - export const ICON_FOLDER_OPEN = 3 - /** */ - export const ICON_FOLDER_SAVE = 4 - /** */ - export const ICON_FILE_OPEN = 5 - /** */ - export const ICON_FILE_SAVE = 6 - /** */ - export const ICON_FILE_EXPORT = 7 - /** */ - export const ICON_FILE_ADD = 8 - /** */ - export const ICON_FILE_DELETE = 9 - /** */ - export const ICON_FILETYPE_TEXT = 10 - /** */ - export const ICON_FILETYPE_AUDIO = 11 - /** */ - export const ICON_FILETYPE_IMAGE = 12 - /** */ - export const ICON_FILETYPE_PLAY = 13 - /** */ - export const ICON_FILETYPE_VIDEO = 14 - /** */ - export const ICON_FILETYPE_INFO = 15 - /** */ - export const ICON_FILE_COPY = 16 - /** */ - export const ICON_FILE_CUT = 17 - /** */ - export const ICON_FILE_PASTE = 18 - /** */ - export const ICON_CURSOR_HAND = 19 - /** */ - export const ICON_CURSOR_POINTER = 20 - /** */ - export const ICON_CURSOR_CLASSIC = 21 - /** */ - export const ICON_PENCIL = 22 - /** */ - export const ICON_PENCIL_BIG = 23 - /** */ - export const ICON_BRUSH_CLASSIC = 24 - /** */ - export const ICON_BRUSH_PAINTER = 25 - /** */ - export const ICON_WATER_DROP = 26 - /** */ - export const ICON_COLOR_PICKER = 27 - /** */ - export const ICON_RUBBER = 28 - /** */ - export const ICON_COLOR_BUCKET = 29 - /** */ - export const ICON_TEXT_T = 30 - /** */ - export const ICON_TEXT_A = 31 - /** */ - export const ICON_SCALE = 32 - /** */ - export const ICON_RESIZE = 33 - /** */ - export const ICON_FILTER_POINT = 34 - /** */ - export const ICON_FILTER_BILINEAR = 35 - /** */ - export const ICON_CROP = 36 - /** */ - export const ICON_CROP_ALPHA = 37 - /** */ - export const ICON_SQUARE_TOGGLE = 38 - /** */ - export const ICON_SYMMETRY = 39 - /** */ - export const ICON_SYMMETRY_HORIZONTAL = 40 - /** */ - export const ICON_SYMMETRY_VERTICAL = 41 - /** */ - export const ICON_LENS = 42 - /** */ - export const ICON_LENS_BIG = 43 - /** */ - export const ICON_EYE_ON = 44 - /** */ - export const ICON_EYE_OFF = 45 - /** */ - export const ICON_FILTER_TOP = 46 - /** */ - export const ICON_FILTER = 47 - /** */ - export const ICON_TARGET_POINT = 48 - /** */ - export const ICON_TARGET_SMALL = 49 - /** */ - export const ICON_TARGET_BIG = 50 - /** */ - export const ICON_TARGET_MOVE = 51 - /** */ - export const ICON_CURSOR_MOVE = 52 - /** */ - export const ICON_CURSOR_SCALE = 53 - /** */ - export const ICON_CURSOR_SCALE_RIGHT = 54 - /** */ - export const ICON_CURSOR_SCALE_LEFT = 55 - /** */ - export const ICON_UNDO = 56 - /** */ - export const ICON_REDO = 57 - /** */ - export const ICON_REREDO = 58 - /** */ - export const ICON_MUTATE = 59 - /** */ - export const ICON_ROTATE = 60 - /** */ - export const ICON_REPEAT = 61 - /** */ - export const ICON_SHUFFLE = 62 - /** */ - export const ICON_EMPTYBOX = 63 - /** */ - export const ICON_TARGET = 64 - /** */ - export const ICON_TARGET_SMALL_FILL = 65 - /** */ - export const ICON_TARGET_BIG_FILL = 66 - /** */ - export const ICON_TARGET_MOVE_FILL = 67 - /** */ - export const ICON_CURSOR_MOVE_FILL = 68 - /** */ - export const ICON_CURSOR_SCALE_FILL = 69 - /** */ - export const ICON_CURSOR_SCALE_RIGHT_FILL = 70 - /** */ - export const ICON_CURSOR_SCALE_LEFT_FILL = 71 - /** */ - export const ICON_UNDO_FILL = 72 - /** */ - export const ICON_REDO_FILL = 73 - /** */ - export const ICON_REREDO_FILL = 74 - /** */ - export const ICON_MUTATE_FILL = 75 - /** */ - export const ICON_ROTATE_FILL = 76 - /** */ - export const ICON_REPEAT_FILL = 77 - /** */ - export const ICON_SHUFFLE_FILL = 78 - /** */ - export const ICON_EMPTYBOX_SMALL = 79 - /** */ - export const ICON_BOX = 80 - /** */ - export const ICON_BOX_TOP = 81 - /** */ - export const ICON_BOX_TOP_RIGHT = 82 - /** */ - export const ICON_BOX_RIGHT = 83 - /** */ - export const ICON_BOX_BOTTOM_RIGHT = 84 - /** */ - export const ICON_BOX_BOTTOM = 85 - /** */ - export const ICON_BOX_BOTTOM_LEFT = 86 - /** */ - export const ICON_BOX_LEFT = 87 - /** */ - export const ICON_BOX_TOP_LEFT = 88 - /** */ - export const ICON_BOX_CENTER = 89 - /** */ - export const ICON_BOX_CIRCLE_MASK = 90 - /** */ - export const ICON_POT = 91 - /** */ - export const ICON_ALPHA_MULTIPLY = 92 - /** */ - export const ICON_ALPHA_CLEAR = 93 - /** */ - export const ICON_DITHERING = 94 - /** */ - export const ICON_MIPMAPS = 95 - /** */ - export const ICON_BOX_GRID = 96 - /** */ - export const ICON_GRID = 97 - /** */ - export const ICON_BOX_CORNERS_SMALL = 98 - /** */ - export const ICON_BOX_CORNERS_BIG = 99 - /** */ - export const ICON_FOUR_BOXES = 100 - /** */ - export const ICON_GRID_FILL = 101 - /** */ - export const ICON_BOX_MULTISIZE = 102 - /** */ - export const ICON_ZOOM_SMALL = 103 - /** */ - export const ICON_ZOOM_MEDIUM = 104 - /** */ - export const ICON_ZOOM_BIG = 105 - /** */ - export const ICON_ZOOM_ALL = 106 - /** */ - export const ICON_ZOOM_CENTER = 107 - /** */ - export const ICON_BOX_DOTS_SMALL = 108 - /** */ - export const ICON_BOX_DOTS_BIG = 109 - /** */ - export const ICON_BOX_CONCENTRIC = 110 - /** */ - export const ICON_BOX_GRID_BIG = 111 - /** */ - export const ICON_OK_TICK = 112 - /** */ - export const ICON_CROSS = 113 - /** */ - export const ICON_ARROW_LEFT = 114 - /** */ - export const ICON_ARROW_RIGHT = 115 - /** */ - export const ICON_ARROW_DOWN = 116 - /** */ - export const ICON_ARROW_UP = 117 - /** */ - export const ICON_ARROW_LEFT_FILL = 118 - /** */ - export const ICON_ARROW_RIGHT_FILL = 119 - /** */ - export const ICON_ARROW_DOWN_FILL = 120 - /** */ - export const ICON_ARROW_UP_FILL = 121 - /** */ - export const ICON_AUDIO = 122 - /** */ - export const ICON_FX = 123 - /** */ - export const ICON_WAVE = 124 - /** */ - export const ICON_WAVE_SINUS = 125 - /** */ - export const ICON_WAVE_SQUARE = 126 - /** */ - export const ICON_WAVE_TRIANGULAR = 127 - /** */ - export const ICON_CROSS_SMALL = 128 - /** */ - export const ICON_PLAYER_PREVIOUS = 129 - /** */ - export const ICON_PLAYER_PLAY_BACK = 130 - /** */ - export const ICON_PLAYER_PLAY = 131 - /** */ - export const ICON_PLAYER_PAUSE = 132 - /** */ - export const ICON_PLAYER_STOP = 133 - /** */ - export const ICON_PLAYER_NEXT = 134 - /** */ - export const ICON_PLAYER_RECORD = 135 - /** */ - export const ICON_MAGNET = 136 - /** */ - export const ICON_LOCK_CLOSE = 137 - /** */ - export const ICON_LOCK_OPEN = 138 - /** */ - export const ICON_CLOCK = 139 - /** */ - export const ICON_TOOLS = 140 - /** */ - export const ICON_GEAR = 141 - /** */ - export const ICON_GEAR_BIG = 142 - /** */ - export const ICON_BIN = 143 - /** */ - export const ICON_HAND_POINTER = 144 - /** */ - export const ICON_LASER = 145 - /** */ - export const ICON_COIN = 146 - /** */ - export const ICON_EXPLOSION = 147 - /** */ - export const ICON_1UP = 148 - /** */ - export const ICON_PLAYER = 149 - /** */ - export const ICON_PLAYER_JUMP = 150 - /** */ - export const ICON_KEY = 151 - /** */ - export const ICON_DEMON = 152 - /** */ - export const ICON_TEXT_POPUP = 153 - /** */ - export const ICON_GEAR_EX = 154 - /** */ - export const ICON_CRACK = 155 - /** */ - export const ICON_CRACK_POINTS = 156 - /** */ - export const ICON_STAR = 157 - /** */ - export const ICON_DOOR = 158 - /** */ - export const ICON_EXIT = 159 - /** */ - export const ICON_MODE_2D = 160 - /** */ - export const ICON_MODE_3D = 161 - /** */ - export const ICON_CUBE = 162 - /** */ - export const ICON_CUBE_FACE_TOP = 163 - /** */ - export const ICON_CUBE_FACE_LEFT = 164 - /** */ - export const ICON_CUBE_FACE_FRONT = 165 - /** */ - export const ICON_CUBE_FACE_BOTTOM = 166 - /** */ - export const ICON_CUBE_FACE_RIGHT = 167 - /** */ - export const ICON_CUBE_FACE_BACK = 168 - /** */ - export const ICON_CAMERA = 169 - /** */ - export const ICON_SPECIAL = 170 - /** */ - export const ICON_LINK_NET = 171 - /** */ - export const ICON_LINK_BOXES = 172 - /** */ - export const ICON_LINK_MULTI = 173 - /** */ - export const ICON_LINK = 174 - /** */ - export const ICON_LINK_BROKE = 175 - /** */ - export const ICON_TEXT_NOTES = 176 - /** */ - export const ICON_NOTEBOOK = 177 - /** */ - export const ICON_SUITCASE = 178 - /** */ - export const ICON_SUITCASE_ZIP = 179 - /** */ - export const ICON_MAILBOX = 180 - /** */ - export const ICON_MONITOR = 181 - /** */ - export const ICON_PRINTER = 182 - /** */ - export const ICON_PHOTO_CAMERA = 183 - /** */ - export const ICON_PHOTO_CAMERA_FLASH = 184 - /** */ - export const ICON_HOUSE = 185 - /** */ - export const ICON_HEART = 186 - /** */ - export const ICON_CORNER = 187 - /** */ - export const ICON_VERTICAL_BARS = 188 - /** */ - export const ICON_VERTICAL_BARS_FILL = 189 - /** */ - export const ICON_LIFE_BARS = 190 - /** */ - export const ICON_INFO = 191 - /** */ - export const ICON_CROSSLINE = 192 - /** */ - export const ICON_HELP = 193 - /** */ - export const ICON_FILETYPE_ALPHA = 194 - /** */ - export const ICON_FILETYPE_HOME = 195 - /** */ - export const ICON_LAYERS_VISIBLE = 196 - /** */ - export const ICON_LAYERS = 197 - /** */ - export const ICON_WINDOW = 198 - /** */ - export const ICON_HIDPI = 199 - /** */ - export const ICON_FILETYPE_BINARY = 200 - /** */ - export const ICON_HEX = 201 - /** */ - export const ICON_SHIELD = 202 - /** */ - export const ICON_FILE_NEW = 203 - /** */ - export const ICON_FOLDER_ADD = 204 - /** */ - export const ICON_ALARM = 205 - /** */ - export const ICON_CPU = 206 - /** */ - export const ICON_ROM = 207 - /** */ - export const ICON_STEP_OVER = 208 - /** */ - export const ICON_STEP_INTO = 209 - /** */ - export const ICON_STEP_OUT = 210 - /** */ - export const ICON_RESTART = 211 - /** */ - export const ICON_BREAKPOINT_ON = 212 - /** */ - export const ICON_BREAKPOINT_OFF = 213 - /** */ - export const ICON_BURGER_MENU = 214 - /** */ - export const ICON_CASE_SENSITIVE = 215 - /** */ - export const ICON_REG_EXP = 216 - /** */ - export const ICON_FOLDER = 217 - /** */ - export const ICON_FILE = 218 - /** */ - export const ICON_SAND_TIMER = 219 - /** */ - export const ICON_220 = 220 - /** */ - export const ICON_221 = 221 - /** */ - export const ICON_222 = 222 - /** */ - export const ICON_223 = 223 - /** */ - export const ICON_224 = 224 - /** */ - export const ICON_225 = 225 - /** */ - export const ICON_226 = 226 - /** */ - export const ICON_227 = 227 - /** */ - export const ICON_228 = 228 - /** */ - export const ICON_229 = 229 - /** */ - export const ICON_230 = 230 - /** */ - export const ICON_231 = 231 - /** */ - export const ICON_232 = 232 - /** */ - export const ICON_233 = 233 - /** */ - export const ICON_234 = 234 - /** */ - export const ICON_235 = 235 - /** */ - export const ICON_236 = 236 - /** */ - export const ICON_237 = 237 - /** */ - export const ICON_238 = 238 - /** */ - export const ICON_239 = 239 - /** */ - export const ICON_240 = 240 - /** */ - export const ICON_241 = 241 - /** */ - export const ICON_242 = 242 - /** */ - export const ICON_243 = 243 - /** */ - export const ICON_244 = 244 - /** */ - export const ICON_245 = 245 - /** */ - export const ICON_246 = 246 - /** */ - export const ICON_247 = 247 - /** */ - export const ICON_248 = 248 - /** */ - export const ICON_249 = 249 - /** */ - export const ICON_250 = 250 - /** */ - export const ICON_251 = 251 - /** */ - export const ICON_252 = 252 - /** */ - export const ICON_253 = 253 - /** */ - export const ICON_254 = 254 - /** */ - export const ICON_255 = 255 /** OpenGL 1.1 */ export const RL_OPENGL_11 = 1 /** OpenGL 2.1 (GLSL 120) */ diff --git a/src/generated/node-raylib.js b/src/generated/node-raylib.js index c570134..ff8efd3 100644 --- a/src/generated/node-raylib.js +++ b/src/generated/node-raylib.js @@ -5594,7 +5594,7 @@ function LoadFont(fileName) { raylib.LoadFont = LoadFont /** - * Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont + * Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set * * @param {string} fileName * @param {number} fontSize @@ -11247,9811 +11247,6084 @@ function QuaternionEquals(p, q) { raylib.QuaternionEquals = QuaternionEquals /** - * Enable gui controls (global state) + * Choose the current matrix to be transformed * - * @return {undefined} - */ -function GuiEnable() { - return r.BindGuiEnable() -} -raylib.GuiEnable = GuiEnable - -/** - * Disable gui controls (global state) + * @param {number} mode * * @return {undefined} */ -function GuiDisable() { - return r.BindGuiDisable() +function rlMatrixMode(mode) { + return r.BindrlMatrixMode( + mode + ) } -raylib.GuiDisable = GuiDisable +raylib.rlMatrixMode = rlMatrixMode /** - * Lock gui controls (global state) + * Push the current matrix to stack * * @return {undefined} */ -function GuiLock() { - return r.BindGuiLock() +function rlPushMatrix() { + return r.BindrlPushMatrix() } -raylib.GuiLock = GuiLock +raylib.rlPushMatrix = rlPushMatrix /** - * Unlock gui controls (global state) + * Pop latest inserted matrix from stack * * @return {undefined} */ -function GuiUnlock() { - return r.BindGuiUnlock() +function rlPopMatrix() { + return r.BindrlPopMatrix() } -raylib.GuiUnlock = GuiUnlock +raylib.rlPopMatrix = rlPopMatrix /** - * Check if gui is locked (global state) + * Reset current matrix to identity matrix * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function GuiIsLocked() { - return r.BindGuiIsLocked() +function rlLoadIdentity() { + return r.BindrlLoadIdentity() } -raylib.GuiIsLocked = GuiIsLocked +raylib.rlLoadIdentity = rlLoadIdentity /** - * Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f + * Multiply the current matrix by a translation matrix * - * @param {number} alpha + * @param {number} x + * @param {number} y + * @param {number} z * * @return {undefined} */ -function GuiSetAlpha(alpha) { - return r.BindGuiSetAlpha( - alpha +function rlTranslatef(x, y, z) { + return r.BindrlTranslatef( + x, + y, + z ) } -raylib.GuiSetAlpha = GuiSetAlpha +raylib.rlTranslatef = rlTranslatef /** - * Set gui state (global state) + * Multiply the current matrix by a rotation matrix * - * @param {number} state + * @param {number} angle + * @param {number} x + * @param {number} y + * @param {number} z * * @return {undefined} */ -function GuiSetState(state) { - return r.BindGuiSetState( - state +function rlRotatef(angle, x, y, z) { + return r.BindrlRotatef( + angle, + x, + y, + z ) } -raylib.GuiSetState = GuiSetState +raylib.rlRotatef = rlRotatef /** - * Get gui state (global state) + * Multiply the current matrix by a scaling matrix * - * @return {number} The resulting int. + * @param {number} x + * @param {number} y + * @param {number} z + * + * @return {undefined} */ -function GuiGetState() { - return r.BindGuiGetState() +function rlScalef(x, y, z) { + return r.BindrlScalef( + x, + y, + z + ) } -raylib.GuiGetState = GuiGetState +raylib.rlScalef = rlScalef /** - * Set gui custom font (global state) + * Multiply the current matrix by another matrix * - * @param {Font} font + * @param {number} matf * * @return {undefined} */ -function GuiSetFont(font) { - return r.BindGuiSetFont( - font.baseSize, - font.glyphCount, - font.glyphPadding, - font.texture.id, - font.texture.width, - font.texture.height, - font.texture.mipmaps, - font.texture.format, - font.recs, - font.glyphs +function rlMultMatrixf(matf) { + return r.BindrlMultMatrixf( + matf ) } -raylib.GuiSetFont = GuiSetFont +raylib.rlMultMatrixf = rlMultMatrixf -/** - * Get gui custom font (global state) - * - * @return {Font} The resulting Font. - */ -function GuiGetFont() { - return r.BindGuiGetFont() +function rlFrustum(left, right, bottom, top, znear, zfar) { + return r.BindrlFrustum( + left, + right, + bottom, + top, + znear, + zfar + ) } -raylib.GuiGetFont = GuiGetFont +raylib.rlFrustum = rlFrustum -/** - * Set one style property - * - * @param {number} control - * @param {number} property - * @param {number} value - * - * @return {undefined} - */ -function GuiSetStyle(control, property, value) { - return r.BindGuiSetStyle( - control, - property, - value +function rlOrtho(left, right, bottom, top, znear, zfar) { + return r.BindrlOrtho( + left, + right, + bottom, + top, + znear, + zfar ) } -raylib.GuiSetStyle = GuiSetStyle +raylib.rlOrtho = rlOrtho /** - * Get one style property + * Set the viewport area * - * @param {number} control - * @param {number} property + * @param {number} x + * @param {number} y + * @param {number} width + * @param {number} height * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiGetStyle(control, property) { - return r.BindGuiGetStyle( - control, - property +function rlViewport(x, y, width, height) { + return r.BindrlViewport( + x, + y, + width, + height ) } -raylib.GuiGetStyle = GuiGetStyle +raylib.rlViewport = rlViewport /** - * Load style file over global style variable (.rgs) + * Initialize drawing mode (how to organize vertex) * - * @param {string} fileName + * @param {number} mode * * @return {undefined} */ -function GuiLoadStyle(fileName) { - return r.BindGuiLoadStyle( - fileName +function rlBegin(mode) { + return r.BindrlBegin( + mode ) } -raylib.GuiLoadStyle = GuiLoadStyle +raylib.rlBegin = rlBegin /** - * Load style default over global style + * Finish vertex providing * * @return {undefined} */ -function GuiLoadStyleDefault() { - return r.BindGuiLoadStyleDefault() +function rlEnd() { + return r.BindrlEnd() } -raylib.GuiLoadStyleDefault = GuiLoadStyleDefault +raylib.rlEnd = rlEnd /** - * Enable gui tooltips (global state) + * Define one vertex (position) - 2 int * - * @return {undefined} - */ -function GuiEnableTooltip() { - return r.BindGuiEnableTooltip() -} -raylib.GuiEnableTooltip = GuiEnableTooltip - -/** - * Disable gui tooltips (global state) + * @param {number} x + * @param {number} y * * @return {undefined} */ -function GuiDisableTooltip() { - return r.BindGuiDisableTooltip() +function rlVertex2i(x, y) { + return r.BindrlVertex2i( + x, + y + ) } -raylib.GuiDisableTooltip = GuiDisableTooltip +raylib.rlVertex2i = rlVertex2i /** - * Set tooltip string + * Define one vertex (position) - 2 float * - * @param {string} tooltip + * @param {number} x + * @param {number} y * * @return {undefined} */ -function GuiSetTooltip(tooltip) { - return r.BindGuiSetTooltip( - tooltip +function rlVertex2f(x, y) { + return r.BindrlVertex2f( + x, + y ) } -raylib.GuiSetTooltip = GuiSetTooltip +raylib.rlVertex2f = rlVertex2f /** - * Get text with icon id prepended (if supported) + * Define one vertex (position) - 3 float * - * @param {number} iconId - * @param {string} text + * @param {number} x + * @param {number} y + * @param {number} z * - * @return {string} The resulting const char *. + * @return {undefined} */ -function GuiIconText(iconId, text) { - return r.BindGuiIconText( - iconId, - text +function rlVertex3f(x, y, z) { + return r.BindrlVertex3f( + x, + y, + z ) } -raylib.GuiIconText = GuiIconText +raylib.rlVertex3f = rlVertex3f /** - * Set default icon drawing size + * Define one vertex (texture coordinate) - 2 float * - * @param {number} scale + * @param {number} x + * @param {number} y * * @return {undefined} */ -function GuiSetIconScale(scale) { - return r.BindGuiSetIconScale( - scale +function rlTexCoord2f(x, y) { + return r.BindrlTexCoord2f( + x, + y ) } -raylib.GuiSetIconScale = GuiSetIconScale +raylib.rlTexCoord2f = rlTexCoord2f /** - * Get raygui icons data pointer + * Define one vertex (normal) - 3 float * - * @return {number} The resulting unsigned int *. + * @param {number} x + * @param {number} y + * @param {number} z + * + * @return {undefined} */ -function GuiGetIcons() { - return r.BindGuiGetIcons() +function rlNormal3f(x, y, z) { + return r.BindrlNormal3f( + x, + y, + z + ) } -raylib.GuiGetIcons = GuiGetIcons +raylib.rlNormal3f = rlNormal3f /** - * Load raygui icons file (.rgi) into internal icons data + * Define one vertex (color) - 4 byte * - * @param {string} fileName - * @param {boolean} loadIconsName + * @param {number} r + * @param {number} g + * @param {number} b + * @param {number} a * - * @return {number} The resulting char **. + * @return {undefined} */ -function GuiLoadIcons(fileName, loadIconsName) { - return r.BindGuiLoadIcons( - fileName, - loadIconsName +function rlColor4ub(r, g, b, a) { + return r.BindrlColor4ub( + r, + g, + b, + a ) } -raylib.GuiLoadIcons = GuiLoadIcons +raylib.rlColor4ub = rlColor4ub /** - * Draw icon using pixel size at specified position + * Define one vertex (color) - 3 float * - * @param {number} iconId - * @param {number} posX - * @param {number} posY - * @param {number} pixelSize - * @param {Color} color + * @param {number} x + * @param {number} y + * @param {number} z * * @return {undefined} */ -function GuiDrawIcon(iconId, posX, posY, pixelSize, color) { - return r.BindGuiDrawIcon( - iconId, - posX, - posY, - pixelSize, - color.r, - color.g, - color.b, - color.a +function rlColor3f(x, y, z) { + return r.BindrlColor3f( + x, + y, + z ) } -raylib.GuiDrawIcon = GuiDrawIcon +raylib.rlColor3f = rlColor3f /** - * Window Box control, shows a window that can be closed + * Define one vertex (color) - 4 float * - * @param {Rectangle} bounds - * @param {string} title + * @param {number} x + * @param {number} y + * @param {number} z + * @param {number} w * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiWindowBox(bounds, title) { - return r.BindGuiWindowBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - title +function rlColor4f(x, y, z, w) { + return r.BindrlColor4f( + x, + y, + z, + w ) } -raylib.GuiWindowBox = GuiWindowBox +raylib.rlColor4f = rlColor4f /** - * Group Box control with text name + * Enable vertex array (VAO, if supported) * - * @param {Rectangle} bounds - * @param {string} text + * @param {number} vaoId * - * @return {number} The resulting int. + * @return {boolean} The resulting bool. */ -function GuiGroupBox(bounds, text) { - return r.BindGuiGroupBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text +function rlEnableVertexArray(vaoId) { + return r.BindrlEnableVertexArray( + vaoId ) } -raylib.GuiGroupBox = GuiGroupBox +raylib.rlEnableVertexArray = rlEnableVertexArray /** - * Line separator control, could contain text - * - * @param {Rectangle} bounds - * @param {string} text + * Disable vertex array (VAO, if supported) * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiLine(bounds, text) { - return r.BindGuiLine( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text - ) +function rlDisableVertexArray() { + return r.BindrlDisableVertexArray() } -raylib.GuiLine = GuiLine +raylib.rlDisableVertexArray = rlDisableVertexArray /** - * Panel control, useful to group controls + * Enable vertex buffer (VBO) * - * @param {Rectangle} bounds - * @param {string} text + * @param {number} id * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiPanel(bounds, text) { - return r.BindGuiPanel( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text +function rlEnableVertexBuffer(id) { + return r.BindrlEnableVertexBuffer( + id ) } -raylib.GuiPanel = GuiPanel +raylib.rlEnableVertexBuffer = rlEnableVertexBuffer /** - * Tab Bar control, returns TAB to be closed or -1 - * - * @param {Rectangle} bounds - * @param {number} text - * @param {number} count - * @param {number} active + * Disable vertex buffer (VBO) * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiTabBar(bounds, text, count, active) { - return r.BindGuiTabBar( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - count, - active - ) +function rlDisableVertexBuffer() { + return r.BindrlDisableVertexBuffer() } -raylib.GuiTabBar = GuiTabBar +raylib.rlDisableVertexBuffer = rlDisableVertexBuffer /** - * Scroll Panel control + * Enable vertex buffer element (VBO element) * - * @param {Rectangle} bounds - * @param {string} text - * @param {Rectangle} content - * @param {number} scroll - * @param {number} view + * @param {number} id * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiScrollPanel(bounds, text, content, scroll, view) { - return r.BindGuiScrollPanel( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - content.x, - content.y, - content.width, - content.height, - scroll, - view +function rlEnableVertexBufferElement(id) { + return r.BindrlEnableVertexBufferElement( + id ) } -raylib.GuiScrollPanel = GuiScrollPanel +raylib.rlEnableVertexBufferElement = rlEnableVertexBufferElement /** - * Label control, shows text - * - * @param {Rectangle} bounds - * @param {string} text + * Disable vertex buffer element (VBO element) * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiLabel(bounds, text) { - return r.BindGuiLabel( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text - ) +function rlDisableVertexBufferElement() { + return r.BindrlDisableVertexBufferElement() } -raylib.GuiLabel = GuiLabel +raylib.rlDisableVertexBufferElement = rlDisableVertexBufferElement /** - * Button control, returns true when clicked + * Enable vertex attribute index * - * @param {Rectangle} bounds - * @param {string} text + * @param {number} index * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiButton(bounds, text) { - return r.BindGuiButton( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text +function rlEnableVertexAttribute(index) { + return r.BindrlEnableVertexAttribute( + index ) } -raylib.GuiButton = GuiButton +raylib.rlEnableVertexAttribute = rlEnableVertexAttribute /** - * Label button control, show true when clicked + * Disable vertex attribute index * - * @param {Rectangle} bounds - * @param {string} text + * @param {number} index * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiLabelButton(bounds, text) { - return r.BindGuiLabelButton( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text +function rlDisableVertexAttribute(index) { + return r.BindrlDisableVertexAttribute( + index ) } -raylib.GuiLabelButton = GuiLabelButton +raylib.rlDisableVertexAttribute = rlDisableVertexAttribute /** - * Toggle Button control, returns true when active + * Select and active a texture slot * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} active + * @param {number} slot * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiToggle(bounds, text, active) { - return r.BindGuiToggle( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - active +function rlActiveTextureSlot(slot) { + return r.BindrlActiveTextureSlot( + slot ) } -raylib.GuiToggle = GuiToggle +raylib.rlActiveTextureSlot = rlActiveTextureSlot /** - * Toggle Group control, returns active toggle index + * Enable texture * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} active + * @param {number} id * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiToggleGroup(bounds, text, active) { - return r.BindGuiToggleGroup( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - active +function rlEnableTexture(id) { + return r.BindrlEnableTexture( + id ) } -raylib.GuiToggleGroup = GuiToggleGroup +raylib.rlEnableTexture = rlEnableTexture /** - * Toggle Slider control, returns true when clicked - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} active + * Disable texture * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiToggleSlider(bounds, text, active) { - return r.BindGuiToggleSlider( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - active - ) +function rlDisableTexture() { + return r.BindrlDisableTexture() } -raylib.GuiToggleSlider = GuiToggleSlider +raylib.rlDisableTexture = rlDisableTexture /** - * Check Box control, returns true when active + * Enable texture cubemap * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} checked + * @param {number} id * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiCheckBox(bounds, text, checked) { - return r.BindGuiCheckBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - checked +function rlEnableTextureCubemap(id) { + return r.BindrlEnableTextureCubemap( + id ) } -raylib.GuiCheckBox = GuiCheckBox +raylib.rlEnableTextureCubemap = rlEnableTextureCubemap /** - * Combo Box control, returns selected item index - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} active + * Disable texture cubemap * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiComboBox(bounds, text, active) { - return r.BindGuiComboBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - active - ) +function rlDisableTextureCubemap() { + return r.BindrlDisableTextureCubemap() } -raylib.GuiComboBox = GuiComboBox +raylib.rlDisableTextureCubemap = rlDisableTextureCubemap /** - * Dropdown Box control, returns selected item + * Set texture parameters (filter, wrap) * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} active - * @param {boolean} editMode + * @param {number} id + * @param {number} param + * @param {number} value * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiDropdownBox(bounds, text, active, editMode) { - return r.BindGuiDropdownBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - active, - editMode +function rlTextureParameters(id, param, value) { + return r.BindrlTextureParameters( + id, + param, + value ) } -raylib.GuiDropdownBox = GuiDropdownBox +raylib.rlTextureParameters = rlTextureParameters /** - * Spinner control, returns selected value + * Set cubemap parameters (filter, wrap) * - * @param {Rectangle} bounds - * @param {string} text + * @param {number} id + * @param {number} param * @param {number} value - * @param {number} minValue - * @param {number} maxValue - * @param {boolean} editMode * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiSpinner(bounds, text, value, minValue, maxValue, editMode) { - return r.BindGuiSpinner( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - value, - minValue, - maxValue, - editMode +function rlCubemapParameters(id, param, value) { + return r.BindrlCubemapParameters( + id, + param, + value ) } -raylib.GuiSpinner = GuiSpinner +raylib.rlCubemapParameters = rlCubemapParameters /** - * Value Box control, updates input text with numbers + * Enable shader program * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} value - * @param {number} minValue - * @param {number} maxValue - * @param {boolean} editMode + * @param {number} id * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiValueBox(bounds, text, value, minValue, maxValue, editMode) { - return r.BindGuiValueBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - value, - minValue, - maxValue, - editMode +function rlEnableShader(id) { + return r.BindrlEnableShader( + id ) } -raylib.GuiValueBox = GuiValueBox +raylib.rlEnableShader = rlEnableShader /** - * Text Box control, updates input text - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} textSize - * @param {boolean} editMode + * Disable shader program * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiTextBox(bounds, text, textSize, editMode) { - return r.BindGuiTextBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - textSize, - editMode - ) +function rlDisableShader() { + return r.BindrlDisableShader() } -raylib.GuiTextBox = GuiTextBox +raylib.rlDisableShader = rlDisableShader /** - * Slider control, returns selected value + * Enable render texture (fbo) * - * @param {Rectangle} bounds - * @param {string} textLeft - * @param {string} textRight - * @param {number} value - * @param {number} minValue - * @param {number} maxValue + * @param {number} id * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiSlider(bounds, textLeft, textRight, value, minValue, maxValue) { - return r.BindGuiSlider( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - textLeft, - textRight, - value, - minValue, - maxValue +function rlEnableFramebuffer(id) { + return r.BindrlEnableFramebuffer( + id ) } -raylib.GuiSlider = GuiSlider +raylib.rlEnableFramebuffer = rlEnableFramebuffer /** - * Slider Bar control, returns selected value - * - * @param {Rectangle} bounds - * @param {string} textLeft - * @param {string} textRight - * @param {number} value - * @param {number} minValue - * @param {number} maxValue + * Disable render texture (fbo), return to default framebuffer * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiSliderBar(bounds, textLeft, textRight, value, minValue, maxValue) { - return r.BindGuiSliderBar( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - textLeft, - textRight, - value, - minValue, - maxValue - ) +function rlDisableFramebuffer() { + return r.BindrlDisableFramebuffer() } -raylib.GuiSliderBar = GuiSliderBar +raylib.rlDisableFramebuffer = rlDisableFramebuffer /** - * Progress Bar control, shows current progress value + * Activate multiple draw color buffers * - * @param {Rectangle} bounds - * @param {string} textLeft - * @param {string} textRight - * @param {number} value - * @param {number} minValue - * @param {number} maxValue + * @param {number} count * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiProgressBar(bounds, textLeft, textRight, value, minValue, maxValue) { - return r.BindGuiProgressBar( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - textLeft, - textRight, - value, - minValue, - maxValue +function rlActiveDrawBuffers(count) { + return r.BindrlActiveDrawBuffers( + count ) } -raylib.GuiProgressBar = GuiProgressBar +raylib.rlActiveDrawBuffers = rlActiveDrawBuffers /** - * Status Bar control, shows info text + * Blit active framebuffer to main framebuffer * - * @param {Rectangle} bounds - * @param {string} text + * @param {number} srcX + * @param {number} srcY + * @param {number} srcWidth + * @param {number} srcHeight + * @param {number} dstX + * @param {number} dstY + * @param {number} dstWidth + * @param {number} dstHeight + * @param {number} bufferMask * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiStatusBar(bounds, text) { - return r.BindGuiStatusBar( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text +function rlBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask) { + return r.BindrlBlitFramebuffer( + srcX, + srcY, + srcWidth, + srcHeight, + dstX, + dstY, + dstWidth, + dstHeight, + bufferMask ) } -raylib.GuiStatusBar = GuiStatusBar +raylib.rlBlitFramebuffer = rlBlitFramebuffer /** - * Dummy control for placeholders - * - * @param {Rectangle} bounds - * @param {string} text + * Enable color blending * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiDummyRec(bounds, text) { - return r.BindGuiDummyRec( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text - ) +function rlEnableColorBlend() { + return r.BindrlEnableColorBlend() } -raylib.GuiDummyRec = GuiDummyRec +raylib.rlEnableColorBlend = rlEnableColorBlend /** - * Grid control, returns mouse cell position - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} spacing - * @param {number} subdivs - * @param {number} mouseCell + * Disable color blending * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiGrid(bounds, text, spacing, subdivs, mouseCell) { - return r.BindGuiGrid( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - spacing, - subdivs, - mouseCell - ) +function rlDisableColorBlend() { + return r.BindrlDisableColorBlend() } -raylib.GuiGrid = GuiGrid +raylib.rlDisableColorBlend = rlDisableColorBlend /** - * List View control, returns selected list item index - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} scrollIndex - * @param {number} active + * Enable depth test * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiListView(bounds, text, scrollIndex, active) { - return r.BindGuiListView( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - scrollIndex, - active - ) +function rlEnableDepthTest() { + return r.BindrlEnableDepthTest() } -raylib.GuiListView = GuiListView +raylib.rlEnableDepthTest = rlEnableDepthTest /** - * List View with extended parameters - * - * @param {Rectangle} bounds - * @param {number} text - * @param {number} count - * @param {number} scrollIndex - * @param {number} active - * @param {number} focus + * Disable depth test * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiListViewEx(bounds, text, count, scrollIndex, active, focus) { - return r.BindGuiListViewEx( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - count, - scrollIndex, - active, - focus - ) +function rlDisableDepthTest() { + return r.BindrlDisableDepthTest() } -raylib.GuiListViewEx = GuiListViewEx +raylib.rlDisableDepthTest = rlDisableDepthTest /** - * Message Box control, displays a message + * Enable depth write * - * @param {Rectangle} bounds - * @param {string} title - * @param {string} message - * @param {string} buttons + * @return {undefined} + */ +function rlEnableDepthMask() { + return r.BindrlEnableDepthMask() +} +raylib.rlEnableDepthMask = rlEnableDepthMask + +/** + * Disable depth write * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiMessageBox(bounds, title, message, buttons) { - return r.BindGuiMessageBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - title, - message, - buttons - ) +function rlDisableDepthMask() { + return r.BindrlDisableDepthMask() } -raylib.GuiMessageBox = GuiMessageBox +raylib.rlDisableDepthMask = rlDisableDepthMask /** - * Text Input Box control, ask for text, supports secret + * Enable backface culling * - * @param {Rectangle} bounds - * @param {string} title - * @param {string} message - * @param {string} buttons - * @param {string} text - * @param {number} textMaxSize - * @param {number} secretViewActive + * @return {undefined} + */ +function rlEnableBackfaceCulling() { + return r.BindrlEnableBackfaceCulling() +} +raylib.rlEnableBackfaceCulling = rlEnableBackfaceCulling + +/** + * Disable backface culling * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiTextInputBox(bounds, title, message, buttons, text, textMaxSize, secretViewActive) { - return r.BindGuiTextInputBox( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - title, - message, - buttons, - text, - textMaxSize, - secretViewActive - ) +function rlDisableBackfaceCulling() { + return r.BindrlDisableBackfaceCulling() } -raylib.GuiTextInputBox = GuiTextInputBox +raylib.rlDisableBackfaceCulling = rlDisableBackfaceCulling /** - * Color Picker control (multiple color controls) + * Set face culling mode * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} color + * @param {number} mode * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiColorPicker(bounds, text, color) { - return r.BindGuiColorPicker( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - color +function rlSetCullFace(mode) { + return r.BindrlSetCullFace( + mode ) } -raylib.GuiColorPicker = GuiColorPicker +raylib.rlSetCullFace = rlSetCullFace /** - * Color Panel control + * Enable scissor test * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} color + * @return {undefined} + */ +function rlEnableScissorTest() { + return r.BindrlEnableScissorTest() +} +raylib.rlEnableScissorTest = rlEnableScissorTest + +/** + * Disable scissor test * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiColorPanel(bounds, text, color) { - return r.BindGuiColorPanel( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - color - ) +function rlDisableScissorTest() { + return r.BindrlDisableScissorTest() } -raylib.GuiColorPanel = GuiColorPanel +raylib.rlDisableScissorTest = rlDisableScissorTest /** - * Color Bar Alpha control + * Scissor test * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} alpha + * @param {number} x + * @param {number} y + * @param {number} width + * @param {number} height * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiColorBarAlpha(bounds, text, alpha) { - return r.BindGuiColorBarAlpha( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - alpha +function rlScissor(x, y, width, height) { + return r.BindrlScissor( + x, + y, + width, + height ) } -raylib.GuiColorBarAlpha = GuiColorBarAlpha +raylib.rlScissor = rlScissor /** - * Color Bar Hue control - * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} value + * Enable wire mode * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiColorBarHue(bounds, text, value) { - return r.BindGuiColorBarHue( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - value - ) +function rlEnableWireMode() { + return r.BindrlEnableWireMode() } -raylib.GuiColorBarHue = GuiColorBarHue +raylib.rlEnableWireMode = rlEnableWireMode /** - * Color Picker control that avoids conversion to RGB on each call (multiple color controls) + * Enable point mode * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} colorHsv + * @return {undefined} + */ +function rlEnablePointMode() { + return r.BindrlEnablePointMode() +} +raylib.rlEnablePointMode = rlEnablePointMode + +/** + * Disable wire mode ( and point ) maybe rename * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiColorPickerHSV(bounds, text, colorHsv) { - return r.BindGuiColorPickerHSV( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - colorHsv - ) +function rlDisableWireMode() { + return r.BindrlDisableWireMode() } -raylib.GuiColorPickerHSV = GuiColorPickerHSV +raylib.rlDisableWireMode = rlDisableWireMode /** - * Color Panel control that returns HSV color value, used by GuiColorPickerHSV() + * Set the line drawing width * - * @param {Rectangle} bounds - * @param {string} text - * @param {number} colorHsv + * @param {number} width * - * @return {number} The resulting int. + * @return {undefined} */ -function GuiColorPanelHSV(bounds, text, colorHsv) { - return r.BindGuiColorPanelHSV( - bounds.x, - bounds.y, - bounds.width, - bounds.height, - text, - colorHsv +function rlSetLineWidth(width) { + return r.BindrlSetLineWidth( + width ) } -raylib.GuiColorPanelHSV = GuiColorPanelHSV +raylib.rlSetLineWidth = rlSetLineWidth /** - * Choose the current matrix to be transformed + * Get the line drawing width * - * @param {number} mode + * @return {number} The resulting float. + */ +function rlGetLineWidth() { + return r.BindrlGetLineWidth() +} +raylib.rlGetLineWidth = rlGetLineWidth + +/** + * Enable line aliasing * * @return {undefined} */ -function rlMatrixMode(mode) { - return r.BindrlMatrixMode( - mode - ) +function rlEnableSmoothLines() { + return r.BindrlEnableSmoothLines() } -raylib.rlMatrixMode = rlMatrixMode +raylib.rlEnableSmoothLines = rlEnableSmoothLines /** - * Push the current matrix to stack + * Disable line aliasing * * @return {undefined} */ -function rlPushMatrix() { - return r.BindrlPushMatrix() +function rlDisableSmoothLines() { + return r.BindrlDisableSmoothLines() } -raylib.rlPushMatrix = rlPushMatrix +raylib.rlDisableSmoothLines = rlDisableSmoothLines /** - * Pop latest inserted matrix from stack + * Enable stereo rendering * * @return {undefined} */ -function rlPopMatrix() { - return r.BindrlPopMatrix() +function rlEnableStereoRender() { + return r.BindrlEnableStereoRender() } -raylib.rlPopMatrix = rlPopMatrix +raylib.rlEnableStereoRender = rlEnableStereoRender /** - * Reset current matrix to identity matrix + * Disable stereo rendering * * @return {undefined} */ -function rlLoadIdentity() { - return r.BindrlLoadIdentity() +function rlDisableStereoRender() { + return r.BindrlDisableStereoRender() } -raylib.rlLoadIdentity = rlLoadIdentity +raylib.rlDisableStereoRender = rlDisableStereoRender /** - * Multiply the current matrix by a translation matrix - * - * @param {number} x - * @param {number} y - * @param {number} z + * Check if stereo render is enabled * - * @return {undefined} + * @return {boolean} The resulting bool. */ -function rlTranslatef(x, y, z) { - return r.BindrlTranslatef( - x, - y, - z - ) +function rlIsStereoRenderEnabled() { + return r.BindrlIsStereoRenderEnabled() } -raylib.rlTranslatef = rlTranslatef +raylib.rlIsStereoRenderEnabled = rlIsStereoRenderEnabled /** - * Multiply the current matrix by a rotation matrix + * Clear color buffer with color * - * @param {number} angle - * @param {number} x - * @param {number} y - * @param {number} z + * @param {number} r + * @param {number} g + * @param {number} b + * @param {number} a * * @return {undefined} */ -function rlRotatef(angle, x, y, z) { - return r.BindrlRotatef( - angle, - x, - y, - z +function rlClearColor(r, g, b, a) { + return r.BindrlClearColor( + r, + g, + b, + a ) } -raylib.rlRotatef = rlRotatef +raylib.rlClearColor = rlClearColor /** - * Multiply the current matrix by a scaling matrix + * Clear used screen buffers (color and depth) * - * @param {number} x - * @param {number} y - * @param {number} z + * @return {undefined} + */ +function rlClearScreenBuffers() { + return r.BindrlClearScreenBuffers() +} +raylib.rlClearScreenBuffers = rlClearScreenBuffers + +/** + * Check and log OpenGL error codes * * @return {undefined} */ -function rlScalef(x, y, z) { - return r.BindrlScalef( - x, - y, - z - ) +function rlCheckErrors() { + return r.BindrlCheckErrors() } -raylib.rlScalef = rlScalef +raylib.rlCheckErrors = rlCheckErrors /** - * Multiply the current matrix by another matrix + * Set blending mode * - * @param {number} matf + * @param {number} mode * * @return {undefined} */ -function rlMultMatrixf(matf) { - return r.BindrlMultMatrixf( - matf +function rlSetBlendMode(mode) { + return r.BindrlSetBlendMode( + mode ) } -raylib.rlMultMatrixf = rlMultMatrixf - -function rlFrustum(left, right, bottom, top, znear, zfar) { - return r.BindrlFrustum( - left, - right, - bottom, - top, - znear, - zfar - ) -} -raylib.rlFrustum = rlFrustum - -function rlOrtho(left, right, bottom, top, znear, zfar) { - return r.BindrlOrtho( - left, - right, - bottom, - top, - znear, - zfar - ) -} -raylib.rlOrtho = rlOrtho +raylib.rlSetBlendMode = rlSetBlendMode /** - * Set the viewport area + * Set blending mode factor and equation (using OpenGL factors) * - * @param {number} x - * @param {number} y - * @param {number} width - * @param {number} height + * @param {number} glSrcFactor + * @param {number} glDstFactor + * @param {number} glEquation * * @return {undefined} */ -function rlViewport(x, y, width, height) { - return r.BindrlViewport( - x, - y, - width, - height +function rlSetBlendFactors(glSrcFactor, glDstFactor, glEquation) { + return r.BindrlSetBlendFactors( + glSrcFactor, + glDstFactor, + glEquation ) } -raylib.rlViewport = rlViewport +raylib.rlSetBlendFactors = rlSetBlendFactors /** - * Initialize drawing mode (how to organize vertex) + * Set blending mode factors and equations separately (using OpenGL factors) * - * @param {number} mode + * @param {number} glSrcRGB + * @param {number} glDstRGB + * @param {number} glSrcAlpha + * @param {number} glDstAlpha + * @param {number} glEqRGB + * @param {number} glEqAlpha * * @return {undefined} */ -function rlBegin(mode) { - return r.BindrlBegin( - mode +function rlSetBlendFactorsSeparate(glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha) { + return r.BindrlSetBlendFactorsSeparate( + glSrcRGB, + glDstRGB, + glSrcAlpha, + glDstAlpha, + glEqRGB, + glEqAlpha ) } -raylib.rlBegin = rlBegin +raylib.rlSetBlendFactorsSeparate = rlSetBlendFactorsSeparate /** - * Finish vertex providing + * Initialize rlgl (buffers, shaders, textures, states) + * + * @param {number} width + * @param {number} height * * @return {undefined} */ -function rlEnd() { - return r.BindrlEnd() +function rlglInit(width, height) { + return r.BindrlglInit( + width, + height + ) } -raylib.rlEnd = rlEnd +raylib.rlglInit = rlglInit /** - * Define one vertex (position) - 2 int - * - * @param {number} x - * @param {number} y + * De-initialize rlgl (buffers, shaders, textures) * * @return {undefined} */ -function rlVertex2i(x, y) { - return r.BindrlVertex2i( - x, - y - ) +function rlglClose() { + return r.BindrlglClose() } -raylib.rlVertex2i = rlVertex2i +raylib.rlglClose = rlglClose /** - * Define one vertex (position) - 2 float + * Load OpenGL extensions (loader function required) * - * @param {number} x - * @param {number} y + * @param {number} loader * * @return {undefined} */ -function rlVertex2f(x, y) { - return r.BindrlVertex2f( - x, - y +function rlLoadExtensions(loader) { + return r.BindrlLoadExtensions( + loader ) } -raylib.rlVertex2f = rlVertex2f +raylib.rlLoadExtensions = rlLoadExtensions /** - * Define one vertex (position) - 3 float - * - * @param {number} x - * @param {number} y - * @param {number} z + * Get current OpenGL version * - * @return {undefined} + * @return {number} The resulting int. */ -function rlVertex3f(x, y, z) { - return r.BindrlVertex3f( - x, - y, - z - ) +function rlGetVersion() { + return r.BindrlGetVersion() } -raylib.rlVertex3f = rlVertex3f +raylib.rlGetVersion = rlGetVersion /** - * Define one vertex (texture coordinate) - 2 float + * Set current framebuffer width * - * @param {number} x - * @param {number} y + * @param {number} width * * @return {undefined} */ -function rlTexCoord2f(x, y) { - return r.BindrlTexCoord2f( - x, - y +function rlSetFramebufferWidth(width) { + return r.BindrlSetFramebufferWidth( + width ) } -raylib.rlTexCoord2f = rlTexCoord2f +raylib.rlSetFramebufferWidth = rlSetFramebufferWidth /** - * Define one vertex (normal) - 3 float - * - * @param {number} x - * @param {number} y - * @param {number} z + * Get default framebuffer width * - * @return {undefined} + * @return {number} The resulting int. */ -function rlNormal3f(x, y, z) { - return r.BindrlNormal3f( - x, - y, - z - ) +function rlGetFramebufferWidth() { + return r.BindrlGetFramebufferWidth() } -raylib.rlNormal3f = rlNormal3f +raylib.rlGetFramebufferWidth = rlGetFramebufferWidth /** - * Define one vertex (color) - 4 byte + * Set current framebuffer height * - * @param {number} r - * @param {number} g - * @param {number} b - * @param {number} a + * @param {number} height * * @return {undefined} */ -function rlColor4ub(r, g, b, a) { - return r.BindrlColor4ub( - r, - g, - b, - a +function rlSetFramebufferHeight(height) { + return r.BindrlSetFramebufferHeight( + height ) } -raylib.rlColor4ub = rlColor4ub +raylib.rlSetFramebufferHeight = rlSetFramebufferHeight /** - * Define one vertex (color) - 3 float - * - * @param {number} x - * @param {number} y - * @param {number} z + * Get default framebuffer height * - * @return {undefined} + * @return {number} The resulting int. */ -function rlColor3f(x, y, z) { - return r.BindrlColor3f( - x, - y, - z - ) +function rlGetFramebufferHeight() { + return r.BindrlGetFramebufferHeight() } -raylib.rlColor3f = rlColor3f +raylib.rlGetFramebufferHeight = rlGetFramebufferHeight /** - * Define one vertex (color) - 4 float - * - * @param {number} x - * @param {number} y - * @param {number} z - * @param {number} w + * Get default texture id * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlColor4f(x, y, z, w) { - return r.BindrlColor4f( - x, - y, - z, - w - ) +function rlGetTextureIdDefault() { + return r.BindrlGetTextureIdDefault() } -raylib.rlColor4f = rlColor4f +raylib.rlGetTextureIdDefault = rlGetTextureIdDefault /** - * Enable vertex array (VAO, if supported) - * - * @param {number} vaoId + * Get default shader id * - * @return {boolean} The resulting bool. + * @return {number} The resulting unsigned int. */ -function rlEnableVertexArray(vaoId) { - return r.BindrlEnableVertexArray( - vaoId - ) +function rlGetShaderIdDefault() { + return r.BindrlGetShaderIdDefault() } -raylib.rlEnableVertexArray = rlEnableVertexArray +raylib.rlGetShaderIdDefault = rlGetShaderIdDefault /** - * Disable vertex array (VAO, if supported) + * Get default shader locations * - * @return {undefined} + * @return {number} The resulting int *. */ -function rlDisableVertexArray() { - return r.BindrlDisableVertexArray() +function rlGetShaderLocsDefault() { + return r.BindrlGetShaderLocsDefault() } -raylib.rlDisableVertexArray = rlDisableVertexArray +raylib.rlGetShaderLocsDefault = rlGetShaderLocsDefault /** - * Enable vertex buffer (VBO) + * Load a render batch system * - * @param {number} id + * @param {number} numBuffers + * @param {number} bufferElements * - * @return {undefined} + * @return {rlRenderBatch} The resulting rlRenderBatch. */ -function rlEnableVertexBuffer(id) { - return r.BindrlEnableVertexBuffer( - id +function rlLoadRenderBatch(numBuffers, bufferElements) { + return r.BindrlLoadRenderBatch( + numBuffers, + bufferElements ) } -raylib.rlEnableVertexBuffer = rlEnableVertexBuffer - -/** - * Disable vertex buffer (VBO) - * - * @return {undefined} - */ -function rlDisableVertexBuffer() { - return r.BindrlDisableVertexBuffer() -} -raylib.rlDisableVertexBuffer = rlDisableVertexBuffer +raylib.rlLoadRenderBatch = rlLoadRenderBatch /** - * Enable vertex buffer element (VBO element) + * Unload render batch system * - * @param {number} id + * @param {rlRenderBatch} batch * * @return {undefined} */ -function rlEnableVertexBufferElement(id) { - return r.BindrlEnableVertexBufferElement( - id +function rlUnloadRenderBatch(batch) { + return r.BindrlUnloadRenderBatch( + batch.bufferCount, + batch.currentBuffer, + batch.vertexBuffer, + batch.draws, + batch.drawCounter, + batch.currentDepth ) } -raylib.rlEnableVertexBufferElement = rlEnableVertexBufferElement +raylib.rlUnloadRenderBatch = rlUnloadRenderBatch /** - * Disable vertex buffer element (VBO element) + * Draw render batch data (Update->Draw->Reset) + * + * @param {number} batch * * @return {undefined} */ -function rlDisableVertexBufferElement() { - return r.BindrlDisableVertexBufferElement() +function rlDrawRenderBatch(batch) { + return r.BindrlDrawRenderBatch( + batch + ) } -raylib.rlDisableVertexBufferElement = rlDisableVertexBufferElement +raylib.rlDrawRenderBatch = rlDrawRenderBatch /** - * Enable vertex attribute index + * Set the active render batch for rlgl (NULL for default internal) * - * @param {number} index + * @param {number} batch * * @return {undefined} */ -function rlEnableVertexAttribute(index) { - return r.BindrlEnableVertexAttribute( - index +function rlSetRenderBatchActive(batch) { + return r.BindrlSetRenderBatchActive( + batch ) } -raylib.rlEnableVertexAttribute = rlEnableVertexAttribute +raylib.rlSetRenderBatchActive = rlSetRenderBatchActive /** - * Disable vertex attribute index - * - * @param {number} index + * Update and draw internal render batch * * @return {undefined} */ -function rlDisableVertexAttribute(index) { - return r.BindrlDisableVertexAttribute( - index - ) +function rlDrawRenderBatchActive() { + return r.BindrlDrawRenderBatchActive() } -raylib.rlDisableVertexAttribute = rlDisableVertexAttribute +raylib.rlDrawRenderBatchActive = rlDrawRenderBatchActive /** - * Select and active a texture slot + * Check internal buffer overflow for a given number of vertex * - * @param {number} slot + * @param {number} vCount * - * @return {undefined} + * @return {boolean} The resulting bool. */ -function rlActiveTextureSlot(slot) { - return r.BindrlActiveTextureSlot( - slot +function rlCheckRenderBatchLimit(vCount) { + return r.BindrlCheckRenderBatchLimit( + vCount ) } -raylib.rlActiveTextureSlot = rlActiveTextureSlot +raylib.rlCheckRenderBatchLimit = rlCheckRenderBatchLimit /** - * Enable texture + * Set current texture for render batch and check buffers limits * * @param {number} id * * @return {undefined} */ -function rlEnableTexture(id) { - return r.BindrlEnableTexture( +function rlSetTexture(id) { + return r.BindrlSetTexture( id ) } -raylib.rlEnableTexture = rlEnableTexture +raylib.rlSetTexture = rlSetTexture /** - * Disable texture + * Load vertex array (vao) if supported * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlDisableTexture() { - return r.BindrlDisableTexture() +function rlLoadVertexArray() { + return r.BindrlLoadVertexArray() } -raylib.rlDisableTexture = rlDisableTexture +raylib.rlLoadVertexArray = rlLoadVertexArray /** - * Enable texture cubemap + * Load a vertex buffer attribute * - * @param {number} id + * @param {number} buffer + * @param {number} size + * @param {boolean} dynamic * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlEnableTextureCubemap(id) { - return r.BindrlEnableTextureCubemap( - id +function rlLoadVertexBuffer(buffer, size, dynamic) { + return r.BindrlLoadVertexBuffer( + buffer, + size, + dynamic ) } -raylib.rlEnableTextureCubemap = rlEnableTextureCubemap +raylib.rlLoadVertexBuffer = rlLoadVertexBuffer /** - * Disable texture cubemap + * Load a new attributes element buffer * - * @return {undefined} + * @param {number} buffer + * @param {number} size + * @param {boolean} dynamic + * + * @return {number} The resulting unsigned int. */ -function rlDisableTextureCubemap() { - return r.BindrlDisableTextureCubemap() +function rlLoadVertexBufferElement(buffer, size, dynamic) { + return r.BindrlLoadVertexBufferElement( + buffer, + size, + dynamic + ) } -raylib.rlDisableTextureCubemap = rlDisableTextureCubemap +raylib.rlLoadVertexBufferElement = rlLoadVertexBufferElement /** - * Set texture parameters (filter, wrap) + * Update GPU buffer with new data * - * @param {number} id - * @param {number} param - * @param {number} value + * @param {number} bufferId + * @param {number} data + * @param {number} dataSize + * @param {number} offset * * @return {undefined} */ -function rlTextureParameters(id, param, value) { - return r.BindrlTextureParameters( - id, - param, - value +function rlUpdateVertexBuffer(bufferId, data, dataSize, offset) { + return r.BindrlUpdateVertexBuffer( + bufferId, + data, + dataSize, + offset ) } -raylib.rlTextureParameters = rlTextureParameters +raylib.rlUpdateVertexBuffer = rlUpdateVertexBuffer /** - * Set cubemap parameters (filter, wrap) + * Update vertex buffer elements with new data * * @param {number} id - * @param {number} param - * @param {number} value + * @param {number} data + * @param {number} dataSize + * @param {number} offset * * @return {undefined} */ -function rlCubemapParameters(id, param, value) { - return r.BindrlCubemapParameters( +function rlUpdateVertexBufferElements(id, data, dataSize, offset) { + return r.BindrlUpdateVertexBufferElements( id, - param, - value + data, + dataSize, + offset ) } -raylib.rlCubemapParameters = rlCubemapParameters +raylib.rlUpdateVertexBufferElements = rlUpdateVertexBufferElements -/** - * Enable shader program - * - * @param {number} id - * - * @return {undefined} - */ -function rlEnableShader(id) { - return r.BindrlEnableShader( - id +function rlUnloadVertexArray(vaoId) { + return r.BindrlUnloadVertexArray( + vaoId ) } -raylib.rlEnableShader = rlEnableShader +raylib.rlUnloadVertexArray = rlUnloadVertexArray -/** - * Disable shader program - * - * @return {undefined} - */ -function rlDisableShader() { - return r.BindrlDisableShader() +function rlUnloadVertexBuffer(vboId) { + return r.BindrlUnloadVertexBuffer( + vboId + ) } -raylib.rlDisableShader = rlDisableShader +raylib.rlUnloadVertexBuffer = rlUnloadVertexBuffer -/** - * Enable render texture (fbo) - * - * @param {number} id - * - * @return {undefined} - */ -function rlEnableFramebuffer(id) { - return r.BindrlEnableFramebuffer( - id +function rlSetVertexAttribute(index, compSize, type, normalized, stride, pointer) { + return r.BindrlSetVertexAttribute( + index, + compSize, + type, + normalized, + stride, + pointer ) } -raylib.rlEnableFramebuffer = rlEnableFramebuffer +raylib.rlSetVertexAttribute = rlSetVertexAttribute -/** - * Disable render texture (fbo), return to default framebuffer - * - * @return {undefined} - */ -function rlDisableFramebuffer() { - return r.BindrlDisableFramebuffer() +function rlSetVertexAttributeDivisor(index, divisor) { + return r.BindrlSetVertexAttributeDivisor( + index, + divisor + ) } -raylib.rlDisableFramebuffer = rlDisableFramebuffer +raylib.rlSetVertexAttributeDivisor = rlSetVertexAttributeDivisor /** - * Activate multiple draw color buffers + * Set vertex attribute default value * + * @param {number} locIndex + * @param {number} value + * @param {number} attribType * @param {number} count * * @return {undefined} */ -function rlActiveDrawBuffers(count) { - return r.BindrlActiveDrawBuffers( +function rlSetVertexAttributeDefault(locIndex, value, attribType, count) { + return r.BindrlSetVertexAttributeDefault( + locIndex, + value, + attribType, count ) } -raylib.rlActiveDrawBuffers = rlActiveDrawBuffers +raylib.rlSetVertexAttributeDefault = rlSetVertexAttributeDefault -/** - * Blit active framebuffer to main framebuffer - * - * @param {number} srcX - * @param {number} srcY - * @param {number} srcWidth - * @param {number} srcHeight - * @param {number} dstX - * @param {number} dstY - * @param {number} dstWidth - * @param {number} dstHeight - * @param {number} bufferMask - * - * @return {undefined} - */ -function rlBlitFramebuffer(srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, bufferMask) { - return r.BindrlBlitFramebuffer( - srcX, - srcY, - srcWidth, - srcHeight, - dstX, - dstY, - dstWidth, - dstHeight, - bufferMask +function rlDrawVertexArray(offset, count) { + return r.BindrlDrawVertexArray( + offset, + count ) } -raylib.rlBlitFramebuffer = rlBlitFramebuffer +raylib.rlDrawVertexArray = rlDrawVertexArray -/** - * Enable color blending - * - * @return {undefined} - */ -function rlEnableColorBlend() { - return r.BindrlEnableColorBlend() +function rlDrawVertexArrayElements(offset, count, buffer) { + return r.BindrlDrawVertexArrayElements( + offset, + count, + buffer + ) } -raylib.rlEnableColorBlend = rlEnableColorBlend +raylib.rlDrawVertexArrayElements = rlDrawVertexArrayElements + +function rlDrawVertexArrayInstanced(offset, count, instances) { + return r.BindrlDrawVertexArrayInstanced( + offset, + count, + instances + ) +} +raylib.rlDrawVertexArrayInstanced = rlDrawVertexArrayInstanced + +function rlDrawVertexArrayElementsInstanced(offset, count, buffer, instances) { + return r.BindrlDrawVertexArrayElementsInstanced( + offset, + count, + buffer, + instances + ) +} +raylib.rlDrawVertexArrayElementsInstanced = rlDrawVertexArrayElementsInstanced /** - * Disable color blending + * Load texture in GPU * - * @return {undefined} + * @param {number} data + * @param {number} width + * @param {number} height + * @param {number} format + * @param {number} mipmapCount + * + * @return {number} The resulting unsigned int. */ -function rlDisableColorBlend() { - return r.BindrlDisableColorBlend() +function rlLoadTexture(data, width, height, format, mipmapCount) { + return r.BindrlLoadTexture( + data, + width, + height, + format, + mipmapCount + ) } -raylib.rlDisableColorBlend = rlDisableColorBlend +raylib.rlLoadTexture = rlLoadTexture /** - * Enable depth test + * Load depth texture/renderbuffer (to be attached to fbo) * - * @return {undefined} + * @param {number} width + * @param {number} height + * @param {boolean} useRenderBuffer + * + * @return {number} The resulting unsigned int. */ -function rlEnableDepthTest() { - return r.BindrlEnableDepthTest() +function rlLoadTextureDepth(width, height, useRenderBuffer) { + return r.BindrlLoadTextureDepth( + width, + height, + useRenderBuffer + ) } -raylib.rlEnableDepthTest = rlEnableDepthTest +raylib.rlLoadTextureDepth = rlLoadTextureDepth /** - * Disable depth test + * Load texture cubemap * - * @return {undefined} + * @param {number} data + * @param {number} size + * @param {number} format + * + * @return {number} The resulting unsigned int. */ -function rlDisableDepthTest() { - return r.BindrlDisableDepthTest() +function rlLoadTextureCubemap(data, size, format) { + return r.BindrlLoadTextureCubemap( + data, + size, + format + ) } -raylib.rlDisableDepthTest = rlDisableDepthTest +raylib.rlLoadTextureCubemap = rlLoadTextureCubemap /** - * Enable depth write + * Update GPU texture with new data + * + * @param {number} id + * @param {number} offsetX + * @param {number} offsetY + * @param {number} width + * @param {number} height + * @param {number} format + * @param {number} data * * @return {undefined} */ -function rlEnableDepthMask() { - return r.BindrlEnableDepthMask() +function rlUpdateTexture(id, offsetX, offsetY, width, height, format, data) { + return r.BindrlUpdateTexture( + id, + offsetX, + offsetY, + width, + height, + format, + data + ) } -raylib.rlEnableDepthMask = rlEnableDepthMask +raylib.rlUpdateTexture = rlUpdateTexture /** - * Disable depth write + * Get OpenGL internal formats + * + * @param {number} format + * @param {number} glInternalFormat + * @param {number} glFormat + * @param {number} glType * * @return {undefined} */ -function rlDisableDepthMask() { - return r.BindrlDisableDepthMask() +function rlGetGlTextureFormats(format, glInternalFormat, glFormat, glType) { + return r.BindrlGetGlTextureFormats( + format, + glInternalFormat, + glFormat, + glType + ) } -raylib.rlDisableDepthMask = rlDisableDepthMask +raylib.rlGetGlTextureFormats = rlGetGlTextureFormats /** - * Enable backface culling + * Get name string for pixel format * - * @return {undefined} + * @param {number} format + * + * @return {string} The resulting const char *. */ -function rlEnableBackfaceCulling() { - return r.BindrlEnableBackfaceCulling() +function rlGetPixelFormatName(format) { + return r.BindrlGetPixelFormatName( + format + ) } -raylib.rlEnableBackfaceCulling = rlEnableBackfaceCulling +raylib.rlGetPixelFormatName = rlGetPixelFormatName /** - * Disable backface culling + * Unload texture from GPU memory + * + * @param {number} id * * @return {undefined} */ -function rlDisableBackfaceCulling() { - return r.BindrlDisableBackfaceCulling() +function rlUnloadTexture(id) { + return r.BindrlUnloadTexture( + id + ) } -raylib.rlDisableBackfaceCulling = rlDisableBackfaceCulling +raylib.rlUnloadTexture = rlUnloadTexture /** - * Set face culling mode + * Generate mipmap data for selected texture * - * @param {number} mode + * @param {number} id + * @param {number} width + * @param {number} height + * @param {number} format + * @param {number} mipmaps * * @return {undefined} */ -function rlSetCullFace(mode) { - return r.BindrlSetCullFace( - mode +function rlGenTextureMipmaps(id, width, height, format, mipmaps) { + return r.BindrlGenTextureMipmaps( + id, + width, + height, + format, + mipmaps ) } -raylib.rlSetCullFace = rlSetCullFace +raylib.rlGenTextureMipmaps = rlGenTextureMipmaps /** - * Enable scissor test + * Read texture pixel data * - * @return {undefined} + * @param {number} id + * @param {number} width + * @param {number} height + * @param {number} format + * + * @return {number} The resulting void *. */ -function rlEnableScissorTest() { - return r.BindrlEnableScissorTest() +function rlReadTexturePixels(id, width, height, format) { + return r.BindrlReadTexturePixels( + id, + width, + height, + format + ) } -raylib.rlEnableScissorTest = rlEnableScissorTest +raylib.rlReadTexturePixels = rlReadTexturePixels /** - * Disable scissor test + * Read screen pixel data (color buffer) * - * @return {undefined} + * @param {number} width + * @param {number} height + * + * @return {Buffer} The resulting unsigned char *. */ -function rlDisableScissorTest() { - return r.BindrlDisableScissorTest() +function rlReadScreenPixels(width, height) { + return r.BindrlReadScreenPixels( + width, + height + ) } -raylib.rlDisableScissorTest = rlDisableScissorTest +raylib.rlReadScreenPixels = rlReadScreenPixels /** - * Scissor test + * Load an empty framebuffer * - * @param {number} x - * @param {number} y * @param {number} width * @param {number} height * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlScissor(x, y, width, height) { - return r.BindrlScissor( - x, - y, +function rlLoadFramebuffer(width, height) { + return r.BindrlLoadFramebuffer( width, height ) } -raylib.rlScissor = rlScissor +raylib.rlLoadFramebuffer = rlLoadFramebuffer /** - * Enable wire mode + * Attach texture/renderbuffer to a framebuffer + * + * @param {number} fboId + * @param {number} texId + * @param {number} attachType + * @param {number} texType + * @param {number} mipLevel * * @return {undefined} */ -function rlEnableWireMode() { - return r.BindrlEnableWireMode() +function rlFramebufferAttach(fboId, texId, attachType, texType, mipLevel) { + return r.BindrlFramebufferAttach( + fboId, + texId, + attachType, + texType, + mipLevel + ) } -raylib.rlEnableWireMode = rlEnableWireMode +raylib.rlFramebufferAttach = rlFramebufferAttach /** - * Enable point mode + * Verify framebuffer is complete * - * @return {undefined} + * @param {number} id + * + * @return {boolean} The resulting bool. */ -function rlEnablePointMode() { - return r.BindrlEnablePointMode() +function rlFramebufferComplete(id) { + return r.BindrlFramebufferComplete( + id + ) } -raylib.rlEnablePointMode = rlEnablePointMode +raylib.rlFramebufferComplete = rlFramebufferComplete /** - * Disable wire mode ( and point ) maybe rename + * Delete framebuffer from GPU + * + * @param {number} id * * @return {undefined} */ -function rlDisableWireMode() { - return r.BindrlDisableWireMode() +function rlUnloadFramebuffer(id) { + return r.BindrlUnloadFramebuffer( + id + ) } -raylib.rlDisableWireMode = rlDisableWireMode +raylib.rlUnloadFramebuffer = rlUnloadFramebuffer /** - * Set the line drawing width + * Load shader from code strings * - * @param {number} width + * @param {string} vsCode + * @param {string} fsCode * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlSetLineWidth(width) { - return r.BindrlSetLineWidth( - width +function rlLoadShaderCode(vsCode, fsCode) { + return r.BindrlLoadShaderCode( + vsCode, + fsCode ) } -raylib.rlSetLineWidth = rlSetLineWidth +raylib.rlLoadShaderCode = rlLoadShaderCode /** - * Get the line drawing width + * Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) * - * @return {number} The resulting float. + * @param {string} shaderCode + * @param {number} type + * + * @return {number} The resulting unsigned int. */ -function rlGetLineWidth() { - return r.BindrlGetLineWidth() +function rlCompileShader(shaderCode, type) { + return r.BindrlCompileShader( + shaderCode, + type + ) } -raylib.rlGetLineWidth = rlGetLineWidth +raylib.rlCompileShader = rlCompileShader /** - * Enable line aliasing + * Load custom shader program * - * @return {undefined} + * @param {number} vShaderId + * @param {number} fShaderId + * + * @return {number} The resulting unsigned int. */ -function rlEnableSmoothLines() { - return r.BindrlEnableSmoothLines() +function rlLoadShaderProgram(vShaderId, fShaderId) { + return r.BindrlLoadShaderProgram( + vShaderId, + fShaderId + ) } -raylib.rlEnableSmoothLines = rlEnableSmoothLines +raylib.rlLoadShaderProgram = rlLoadShaderProgram /** - * Disable line aliasing + * Unload shader program + * + * @param {number} id * * @return {undefined} */ -function rlDisableSmoothLines() { - return r.BindrlDisableSmoothLines() +function rlUnloadShaderProgram(id) { + return r.BindrlUnloadShaderProgram( + id + ) } -raylib.rlDisableSmoothLines = rlDisableSmoothLines +raylib.rlUnloadShaderProgram = rlUnloadShaderProgram /** - * Enable stereo rendering + * Get shader location uniform * - * @return {undefined} + * @param {number} shaderId + * @param {string} uniformName + * + * @return {number} The resulting int. */ -function rlEnableStereoRender() { - return r.BindrlEnableStereoRender() +function rlGetLocationUniform(shaderId, uniformName) { + return r.BindrlGetLocationUniform( + shaderId, + uniformName + ) } -raylib.rlEnableStereoRender = rlEnableStereoRender +raylib.rlGetLocationUniform = rlGetLocationUniform /** - * Disable stereo rendering + * Get shader location attribute * - * @return {undefined} + * @param {number} shaderId + * @param {string} attribName + * + * @return {number} The resulting int. */ -function rlDisableStereoRender() { - return r.BindrlDisableStereoRender() +function rlGetLocationAttrib(shaderId, attribName) { + return r.BindrlGetLocationAttrib( + shaderId, + attribName + ) } -raylib.rlDisableStereoRender = rlDisableStereoRender +raylib.rlGetLocationAttrib = rlGetLocationAttrib /** - * Check if stereo render is enabled + * Set shader value uniform * - * @return {boolean} The resulting bool. + * @param {number} locIndex + * @param {number} value + * @param {number} uniformType + * @param {number} count + * + * @return {undefined} */ -function rlIsStereoRenderEnabled() { - return r.BindrlIsStereoRenderEnabled() +function rlSetUniform(locIndex, value, uniformType, count) { + return r.BindrlSetUniform( + locIndex, + value, + uniformType, + count + ) } -raylib.rlIsStereoRenderEnabled = rlIsStereoRenderEnabled +raylib.rlSetUniform = rlSetUniform /** - * Clear color buffer with color + * Set shader value matrix * - * @param {number} r - * @param {number} g - * @param {number} b - * @param {number} a + * @param {number} locIndex + * @param {Matrix} mat * * @return {undefined} */ -function rlClearColor(r, g, b, a) { - return r.BindrlClearColor( - r, - g, - b, - a +function rlSetUniformMatrix(locIndex, mat) { + return r.BindrlSetUniformMatrix( + locIndex, + mat.m0, + mat.m4, + mat.m8, + mat.m12, + mat.m1, + mat.m5, + mat.m9, + mat.m13, + mat.m2, + mat.m6, + mat.m10, + mat.m14, + mat.m3, + mat.m7, + mat.m11, + mat.m15 ) } -raylib.rlClearColor = rlClearColor +raylib.rlSetUniformMatrix = rlSetUniformMatrix /** - * Clear used screen buffers (color and depth) + * Set shader value sampler + * + * @param {number} locIndex + * @param {number} textureId * * @return {undefined} */ -function rlClearScreenBuffers() { - return r.BindrlClearScreenBuffers() +function rlSetUniformSampler(locIndex, textureId) { + return r.BindrlSetUniformSampler( + locIndex, + textureId + ) } -raylib.rlClearScreenBuffers = rlClearScreenBuffers +raylib.rlSetUniformSampler = rlSetUniformSampler /** - * Check and log OpenGL error codes + * Set shader currently active (id and locations) + * + * @param {number} id + * @param {number} locs * * @return {undefined} */ -function rlCheckErrors() { - return r.BindrlCheckErrors() +function rlSetShader(id, locs) { + return r.BindrlSetShader( + id, + locs + ) } -raylib.rlCheckErrors = rlCheckErrors +raylib.rlSetShader = rlSetShader /** - * Set blending mode + * Load compute shader program * - * @param {number} mode + * @param {number} shaderId * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlSetBlendMode(mode) { - return r.BindrlSetBlendMode( - mode +function rlLoadComputeShaderProgram(shaderId) { + return r.BindrlLoadComputeShaderProgram( + shaderId ) } -raylib.rlSetBlendMode = rlSetBlendMode +raylib.rlLoadComputeShaderProgram = rlLoadComputeShaderProgram /** - * Set blending mode factor and equation (using OpenGL factors) + * Dispatch compute shader (equivalent to *draw* for graphics pipeline) * - * @param {number} glSrcFactor - * @param {number} glDstFactor - * @param {number} glEquation + * @param {number} groupX + * @param {number} groupY + * @param {number} groupZ * * @return {undefined} */ -function rlSetBlendFactors(glSrcFactor, glDstFactor, glEquation) { - return r.BindrlSetBlendFactors( - glSrcFactor, - glDstFactor, - glEquation +function rlComputeShaderDispatch(groupX, groupY, groupZ) { + return r.BindrlComputeShaderDispatch( + groupX, + groupY, + groupZ ) } -raylib.rlSetBlendFactors = rlSetBlendFactors +raylib.rlComputeShaderDispatch = rlComputeShaderDispatch /** - * Set blending mode factors and equations separately (using OpenGL factors) + * Load shader storage buffer object (SSBO) * - * @param {number} glSrcRGB - * @param {number} glDstRGB - * @param {number} glSrcAlpha - * @param {number} glDstAlpha - * @param {number} glEqRGB - * @param {number} glEqAlpha + * @param {number} size + * @param {number} data + * @param {number} usageHint * - * @return {undefined} + * @return {number} The resulting unsigned int. */ -function rlSetBlendFactorsSeparate(glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha) { - return r.BindrlSetBlendFactorsSeparate( - glSrcRGB, - glDstRGB, - glSrcAlpha, - glDstAlpha, - glEqRGB, - glEqAlpha +function rlLoadShaderBuffer(size, data, usageHint) { + return r.BindrlLoadShaderBuffer( + size, + data, + usageHint ) } -raylib.rlSetBlendFactorsSeparate = rlSetBlendFactorsSeparate +raylib.rlLoadShaderBuffer = rlLoadShaderBuffer /** - * Initialize rlgl (buffers, shaders, textures, states) + * Unload shader storage buffer object (SSBO) * - * @param {number} width - * @param {number} height + * @param {number} ssboId * * @return {undefined} */ -function rlglInit(width, height) { - return r.BindrlglInit( - width, - height +function rlUnloadShaderBuffer(ssboId) { + return r.BindrlUnloadShaderBuffer( + ssboId ) } -raylib.rlglInit = rlglInit +raylib.rlUnloadShaderBuffer = rlUnloadShaderBuffer /** - * De-initialize rlgl (buffers, shaders, textures) + * Update SSBO buffer data + * + * @param {number} id + * @param {number} data + * @param {number} dataSize + * @param {number} offset * * @return {undefined} */ -function rlglClose() { - return r.BindrlglClose() +function rlUpdateShaderBuffer(id, data, dataSize, offset) { + return r.BindrlUpdateShaderBuffer( + id, + data, + dataSize, + offset + ) } -raylib.rlglClose = rlglClose +raylib.rlUpdateShaderBuffer = rlUpdateShaderBuffer /** - * Load OpenGL extensions (loader function required) + * Bind SSBO buffer * - * @param {number} loader + * @param {number} id + * @param {number} index * * @return {undefined} */ -function rlLoadExtensions(loader) { - return r.BindrlLoadExtensions( - loader +function rlBindShaderBuffer(id, index) { + return r.BindrlBindShaderBuffer( + id, + index ) } -raylib.rlLoadExtensions = rlLoadExtensions +raylib.rlBindShaderBuffer = rlBindShaderBuffer /** - * Get current OpenGL version + * Read SSBO buffer data (GPU->CPU) * - * @return {number} The resulting int. + * @param {number} id + * @param {number} dest + * @param {number} count + * @param {number} offset + * + * @return {undefined} */ -function rlGetVersion() { - return r.BindrlGetVersion() +function rlReadShaderBuffer(id, dest, count, offset) { + return r.BindrlReadShaderBuffer( + id, + dest, + count, + offset + ) } -raylib.rlGetVersion = rlGetVersion +raylib.rlReadShaderBuffer = rlReadShaderBuffer /** - * Set current framebuffer width + * Copy SSBO data between buffers * - * @param {number} width + * @param {number} destId + * @param {number} srcId + * @param {number} destOffset + * @param {number} srcOffset + * @param {number} count * * @return {undefined} */ -function rlSetFramebufferWidth(width) { - return r.BindrlSetFramebufferWidth( - width +function rlCopyShaderBuffer(destId, srcId, destOffset, srcOffset, count) { + return r.BindrlCopyShaderBuffer( + destId, + srcId, + destOffset, + srcOffset, + count ) } -raylib.rlSetFramebufferWidth = rlSetFramebufferWidth +raylib.rlCopyShaderBuffer = rlCopyShaderBuffer /** - * Get default framebuffer width + * Get SSBO buffer size * - * @return {number} The resulting int. + * @param {number} id + * + * @return {number} The resulting unsigned int. */ -function rlGetFramebufferWidth() { - return r.BindrlGetFramebufferWidth() +function rlGetShaderBufferSize(id) { + return r.BindrlGetShaderBufferSize( + id + ) } -raylib.rlGetFramebufferWidth = rlGetFramebufferWidth +raylib.rlGetShaderBufferSize = rlGetShaderBufferSize /** - * Set current framebuffer height + * Bind image texture * - * @param {number} height + * @param {number} id + * @param {number} index + * @param {number} format + * @param {boolean} readonly * * @return {undefined} */ -function rlSetFramebufferHeight(height) { - return r.BindrlSetFramebufferHeight( - height +function rlBindImageTexture(id, index, format, readonly) { + return r.BindrlBindImageTexture( + id, + index, + format, + readonly ) } -raylib.rlSetFramebufferHeight = rlSetFramebufferHeight - -/** - * Get default framebuffer height - * - * @return {number} The resulting int. - */ -function rlGetFramebufferHeight() { - return r.BindrlGetFramebufferHeight() -} -raylib.rlGetFramebufferHeight = rlGetFramebufferHeight +raylib.rlBindImageTexture = rlBindImageTexture /** - * Get default texture id + * Get internal modelview matrix * - * @return {number} The resulting unsigned int. + * @return {Matrix} The resulting Matrix. */ -function rlGetTextureIdDefault() { - return r.BindrlGetTextureIdDefault() +function rlGetMatrixModelview() { + return r.BindrlGetMatrixModelview() } -raylib.rlGetTextureIdDefault = rlGetTextureIdDefault +raylib.rlGetMatrixModelview = rlGetMatrixModelview /** - * Get default shader id + * Get internal projection matrix * - * @return {number} The resulting unsigned int. + * @return {Matrix} The resulting Matrix. */ -function rlGetShaderIdDefault() { - return r.BindrlGetShaderIdDefault() +function rlGetMatrixProjection() { + return r.BindrlGetMatrixProjection() } -raylib.rlGetShaderIdDefault = rlGetShaderIdDefault +raylib.rlGetMatrixProjection = rlGetMatrixProjection /** - * Get default shader locations + * Get internal accumulated transform matrix * - * @return {number} The resulting int *. + * @return {Matrix} The resulting Matrix. */ -function rlGetShaderLocsDefault() { - return r.BindrlGetShaderLocsDefault() +function rlGetMatrixTransform() { + return r.BindrlGetMatrixTransform() } -raylib.rlGetShaderLocsDefault = rlGetShaderLocsDefault +raylib.rlGetMatrixTransform = rlGetMatrixTransform /** - * Load a render batch system + * Get internal projection matrix for stereo render (selected eye) * - * @param {number} numBuffers - * @param {number} bufferElements + * @param {number} eye * - * @return {rlRenderBatch} The resulting rlRenderBatch. + * @return {Matrix} The resulting Matrix. */ -function rlLoadRenderBatch(numBuffers, bufferElements) { - return r.BindrlLoadRenderBatch( - numBuffers, - bufferElements +function rlGetMatrixProjectionStereo(eye) { + return r.BindrlGetMatrixProjectionStereo( + eye ) } -raylib.rlLoadRenderBatch = rlLoadRenderBatch +raylib.rlGetMatrixProjectionStereo = rlGetMatrixProjectionStereo /** - * Unload render batch system + * Get internal view offset matrix for stereo render (selected eye) * - * @param {rlRenderBatch} batch + * @param {number} eye * - * @return {undefined} + * @return {Matrix} The resulting Matrix. */ -function rlUnloadRenderBatch(batch) { - return r.BindrlUnloadRenderBatch( - batch.bufferCount, - batch.currentBuffer, - batch.vertexBuffer, - batch.draws, - batch.drawCounter, - batch.currentDepth +function rlGetMatrixViewOffsetStereo(eye) { + return r.BindrlGetMatrixViewOffsetStereo( + eye ) } -raylib.rlUnloadRenderBatch = rlUnloadRenderBatch +raylib.rlGetMatrixViewOffsetStereo = rlGetMatrixViewOffsetStereo /** - * Draw render batch data (Update->Draw->Reset) + * Set a custom projection matrix (replaces internal projection matrix) * - * @param {number} batch + * @param {Matrix} proj * * @return {undefined} */ -function rlDrawRenderBatch(batch) { - return r.BindrlDrawRenderBatch( - batch +function rlSetMatrixProjection(proj) { + return r.BindrlSetMatrixProjection( + proj.m0, + proj.m4, + proj.m8, + proj.m12, + proj.m1, + proj.m5, + proj.m9, + proj.m13, + proj.m2, + proj.m6, + proj.m10, + proj.m14, + proj.m3, + proj.m7, + proj.m11, + proj.m15 ) } -raylib.rlDrawRenderBatch = rlDrawRenderBatch +raylib.rlSetMatrixProjection = rlSetMatrixProjection /** - * Set the active render batch for rlgl (NULL for default internal) + * Set a custom modelview matrix (replaces internal modelview matrix) * - * @param {number} batch + * @param {Matrix} view * * @return {undefined} */ -function rlSetRenderBatchActive(batch) { - return r.BindrlSetRenderBatchActive( - batch - ) -} -raylib.rlSetRenderBatchActive = rlSetRenderBatchActive +function rlSetMatrixModelview(view) { + return r.BindrlSetMatrixModelview( + view.m0, + view.m4, + view.m8, + view.m12, + view.m1, + view.m5, + view.m9, + view.m13, + view.m2, + view.m6, + view.m10, + view.m14, + view.m3, + view.m7, + view.m11, + view.m15 + ) +} +raylib.rlSetMatrixModelview = rlSetMatrixModelview /** - * Update and draw internal render batch + * Set eyes projection matrices for stereo rendering + * + * @param {Matrix} right + * @param {Matrix} left * * @return {undefined} */ -function rlDrawRenderBatchActive() { - return r.BindrlDrawRenderBatchActive() +function rlSetMatrixProjectionStereo(right, left) { + return r.BindrlSetMatrixProjectionStereo( + right.m0, + right.m4, + right.m8, + right.m12, + right.m1, + right.m5, + right.m9, + right.m13, + right.m2, + right.m6, + right.m10, + right.m14, + right.m3, + right.m7, + right.m11, + right.m15, + left.m0, + left.m4, + left.m8, + left.m12, + left.m1, + left.m5, + left.m9, + left.m13, + left.m2, + left.m6, + left.m10, + left.m14, + left.m3, + left.m7, + left.m11, + left.m15 + ) } -raylib.rlDrawRenderBatchActive = rlDrawRenderBatchActive +raylib.rlSetMatrixProjectionStereo = rlSetMatrixProjectionStereo /** - * Check internal buffer overflow for a given number of vertex + * Set eyes view offsets matrices for stereo rendering * - * @param {number} vCount + * @param {Matrix} right + * @param {Matrix} left * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function rlCheckRenderBatchLimit(vCount) { - return r.BindrlCheckRenderBatchLimit( - vCount +function rlSetMatrixViewOffsetStereo(right, left) { + return r.BindrlSetMatrixViewOffsetStereo( + right.m0, + right.m4, + right.m8, + right.m12, + right.m1, + right.m5, + right.m9, + right.m13, + right.m2, + right.m6, + right.m10, + right.m14, + right.m3, + right.m7, + right.m11, + right.m15, + left.m0, + left.m4, + left.m8, + left.m12, + left.m1, + left.m5, + left.m9, + left.m13, + left.m2, + left.m6, + left.m10, + left.m14, + left.m3, + left.m7, + left.m11, + left.m15 ) } -raylib.rlCheckRenderBatchLimit = rlCheckRenderBatchLimit +raylib.rlSetMatrixViewOffsetStereo = rlSetMatrixViewOffsetStereo /** - * Set current texture for render batch and check buffers limits - * - * @param {number} id + * Load and draw a cube * * @return {undefined} */ -function rlSetTexture(id) { - return r.BindrlSetTexture( - id - ) +function rlLoadDrawCube() { + return r.BindrlLoadDrawCube() } -raylib.rlSetTexture = rlSetTexture +raylib.rlLoadDrawCube = rlLoadDrawCube /** - * Load vertex array (vao) if supported + * Load and draw a quad * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadVertexArray() { - return r.BindrlLoadVertexArray() +function rlLoadDrawQuad() { + return r.BindrlLoadDrawQuad() } -raylib.rlLoadVertexArray = rlLoadVertexArray +raylib.rlLoadDrawQuad = rlLoadDrawQuad /** - * Load a vertex buffer attribute + * Update camera position for selected mode * - * @param {number} buffer - * @param {number} size - * @param {boolean} dynamic + * @param {Camera3D} camera + * @param {number} mode * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadVertexBuffer(buffer, size, dynamic) { - return r.BindrlLoadVertexBuffer( - buffer, - size, - dynamic +function UpdateCamera(camera, mode) { + const obj = r.BindUpdateCamera( + camera.position.x, + camera.position.y, + camera.position.z, + camera.target.x, + camera.target.y, + camera.target.z, + camera.up.x, + camera.up.y, + camera.up.z, + camera.fovy, + camera.projection, + mode ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + camera[key] = obj[key] + } + } } -raylib.rlLoadVertexBuffer = rlLoadVertexBuffer +raylib.UpdateCamera = UpdateCamera /** - * Load a new attributes element buffer + * Convert image data to desired format * - * @param {number} buffer - * @param {number} size - * @param {boolean} dynamic + * @param {Image} image + * @param {number} newFormat * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadVertexBufferElement(buffer, size, dynamic) { - return r.BindrlLoadVertexBufferElement( - buffer, - size, - dynamic +function ImageFormat(image, newFormat) { + const obj = r.BindImageFormat( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + newFormat ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadVertexBufferElement = rlLoadVertexBufferElement +raylib.ImageFormat = ImageFormat /** - * Update GPU buffer with new data + * Convert image to POT (power-of-two) * - * @param {number} bufferId - * @param {number} data - * @param {number} dataSize - * @param {number} offset + * @param {Image} image + * @param {Color} fill * * @return {undefined} */ -function rlUpdateVertexBuffer(bufferId, data, dataSize, offset) { - return r.BindrlUpdateVertexBuffer( - bufferId, - data, - dataSize, - offset +function ImageToPOT(image, fill) { + const obj = r.BindImageToPOT( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + fill.r, + fill.g, + fill.b, + fill.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlUpdateVertexBuffer = rlUpdateVertexBuffer +raylib.ImageToPOT = ImageToPOT /** - * Update vertex buffer elements with new data + * Crop an image to a defined rectangle * - * @param {number} id - * @param {number} data - * @param {number} dataSize - * @param {number} offset + * @param {Image} image + * @param {Rectangle} crop * * @return {undefined} */ -function rlUpdateVertexBufferElements(id, data, dataSize, offset) { - return r.BindrlUpdateVertexBufferElements( - id, - data, - dataSize, - offset - ) -} -raylib.rlUpdateVertexBufferElements = rlUpdateVertexBufferElements - -function rlUnloadVertexArray(vaoId) { - return r.BindrlUnloadVertexArray( - vaoId - ) -} -raylib.rlUnloadVertexArray = rlUnloadVertexArray - -function rlUnloadVertexBuffer(vboId) { - return r.BindrlUnloadVertexBuffer( - vboId - ) -} -raylib.rlUnloadVertexBuffer = rlUnloadVertexBuffer - -function rlSetVertexAttribute(index, compSize, type, normalized, stride, pointer) { - return r.BindrlSetVertexAttribute( - index, - compSize, - type, - normalized, - stride, - pointer - ) -} -raylib.rlSetVertexAttribute = rlSetVertexAttribute - -function rlSetVertexAttributeDivisor(index, divisor) { - return r.BindrlSetVertexAttributeDivisor( - index, - divisor +function ImageCrop(image, crop) { + const obj = r.BindImageCrop( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + crop.x, + crop.y, + crop.width, + crop.height ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlSetVertexAttributeDivisor = rlSetVertexAttributeDivisor +raylib.ImageCrop = ImageCrop /** - * Set vertex attribute default value + * Crop image depending on alpha value * - * @param {number} locIndex - * @param {number} value - * @param {number} attribType - * @param {number} count + * @param {Image} image + * @param {number} threshold * * @return {undefined} */ -function rlSetVertexAttributeDefault(locIndex, value, attribType, count) { - return r.BindrlSetVertexAttributeDefault( - locIndex, - value, - attribType, - count - ) -} -raylib.rlSetVertexAttributeDefault = rlSetVertexAttributeDefault - -function rlDrawVertexArray(offset, count) { - return r.BindrlDrawVertexArray( - offset, - count - ) -} -raylib.rlDrawVertexArray = rlDrawVertexArray - -function rlDrawVertexArrayElements(offset, count, buffer) { - return r.BindrlDrawVertexArrayElements( - offset, - count, - buffer - ) -} -raylib.rlDrawVertexArrayElements = rlDrawVertexArrayElements - -function rlDrawVertexArrayInstanced(offset, count, instances) { - return r.BindrlDrawVertexArrayInstanced( - offset, - count, - instances - ) -} -raylib.rlDrawVertexArrayInstanced = rlDrawVertexArrayInstanced - -function rlDrawVertexArrayElementsInstanced(offset, count, buffer, instances) { - return r.BindrlDrawVertexArrayElementsInstanced( - offset, - count, - buffer, - instances +function ImageAlphaCrop(image, threshold) { + const obj = r.BindImageAlphaCrop( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + threshold ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlDrawVertexArrayElementsInstanced = rlDrawVertexArrayElementsInstanced +raylib.ImageAlphaCrop = ImageAlphaCrop /** - * Load texture in GPU + * Clear alpha channel to desired color * - * @param {number} data - * @param {number} width - * @param {number} height - * @param {number} format - * @param {number} mipmapCount + * @param {Image} image + * @param {Color} color + * @param {number} threshold * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadTexture(data, width, height, format, mipmapCount) { - return r.BindrlLoadTexture( - data, - width, - height, - format, - mipmapCount +function ImageAlphaClear(image, color, threshold) { + const obj = r.BindImageAlphaClear( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + color.r, + color.g, + color.b, + color.a, + threshold ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadTexture = rlLoadTexture +raylib.ImageAlphaClear = ImageAlphaClear /** - * Load depth texture/renderbuffer (to be attached to fbo) + * Apply alpha mask to image * - * @param {number} width - * @param {number} height - * @param {boolean} useRenderBuffer + * @param {Image} image + * @param {Image} alphaMask * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadTextureDepth(width, height, useRenderBuffer) { - return r.BindrlLoadTextureDepth( - width, - height, - useRenderBuffer +function ImageAlphaMask(image, alphaMask) { + const obj = r.BindImageAlphaMask( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + alphaMask.data, + alphaMask.width, + alphaMask.height, + alphaMask.mipmaps, + alphaMask.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadTextureDepth = rlLoadTextureDepth +raylib.ImageAlphaMask = ImageAlphaMask /** - * Load texture cubemap + * Premultiply alpha channel * - * @param {number} data - * @param {number} size - * @param {number} format + * @param {Image} image * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadTextureCubemap(data, size, format) { - return r.BindrlLoadTextureCubemap( - data, - size, - format +function ImageAlphaPremultiply(image) { + const obj = r.BindImageAlphaPremultiply( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadTextureCubemap = rlLoadTextureCubemap +raylib.ImageAlphaPremultiply = ImageAlphaPremultiply /** - * Update GPU texture with new data + * Resize image (Bicubic scaling algorithm) * - * @param {number} id - * @param {number} offsetX - * @param {number} offsetY - * @param {number} width - * @param {number} height - * @param {number} format - * @param {number} data + * @param {Image} image + * @param {number} newWidth + * @param {number} newHeight * * @return {undefined} */ -function rlUpdateTexture(id, offsetX, offsetY, width, height, format, data) { - return r.BindrlUpdateTexture( - id, - offsetX, - offsetY, - width, - height, - format, - data +function ImageResize(image, newWidth, newHeight) { + const obj = r.BindImageResize( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + newWidth, + newHeight ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlUpdateTexture = rlUpdateTexture +raylib.ImageResize = ImageResize /** - * Get OpenGL internal formats + * Resize image (Nearest-Neighbor scaling algorithm) * - * @param {number} format - * @param {number} glInternalFormat - * @param {number} glFormat - * @param {number} glType + * @param {Image} image + * @param {number} newWidth + * @param {number} newHeight * * @return {undefined} */ -function rlGetGlTextureFormats(format, glInternalFormat, glFormat, glType) { - return r.BindrlGetGlTextureFormats( - format, - glInternalFormat, - glFormat, - glType - ) -} -raylib.rlGetGlTextureFormats = rlGetGlTextureFormats +function ImageResizeNN(image, newWidth, newHeight) { + const obj = r.BindImageResizeNN( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + newWidth, + newHeight + ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } +} +raylib.ImageResizeNN = ImageResizeNN /** - * Get name string for pixel format + * Resize canvas and fill with color * - * @param {number} format + * @param {Image} image + * @param {number} newWidth + * @param {number} newHeight + * @param {number} offsetX + * @param {number} offsetY + * @param {Color} fill * - * @return {string} The resulting const char *. + * @return {undefined} */ -function rlGetPixelFormatName(format) { - return r.BindrlGetPixelFormatName( - format +function ImageResizeCanvas(image, newWidth, newHeight, offsetX, offsetY, fill) { + const obj = r.BindImageResizeCanvas( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + newWidth, + newHeight, + offsetX, + offsetY, + fill.r, + fill.g, + fill.b, + fill.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlGetPixelFormatName = rlGetPixelFormatName +raylib.ImageResizeCanvas = ImageResizeCanvas /** - * Unload texture from GPU memory + * Compute all mipmap levels for a provided image * - * @param {number} id + * @param {Image} image * * @return {undefined} */ -function rlUnloadTexture(id) { - return r.BindrlUnloadTexture( - id +function ImageMipmaps(image) { + const obj = r.BindImageMipmaps( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlUnloadTexture = rlUnloadTexture +raylib.ImageMipmaps = ImageMipmaps /** - * Generate mipmap data for selected texture + * Dither image data to 16bpp or lower (Floyd-Steinberg dithering) * - * @param {number} id - * @param {number} width - * @param {number} height - * @param {number} format - * @param {number} mipmaps + * @param {Image} image + * @param {number} rBpp + * @param {number} gBpp + * @param {number} bBpp + * @param {number} aBpp * * @return {undefined} */ -function rlGenTextureMipmaps(id, width, height, format, mipmaps) { - return r.BindrlGenTextureMipmaps( - id, - width, - height, - format, - mipmaps +function ImageDither(image, rBpp, gBpp, bBpp, aBpp) { + const obj = r.BindImageDither( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + rBpp, + gBpp, + bBpp, + aBpp ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlGenTextureMipmaps = rlGenTextureMipmaps +raylib.ImageDither = ImageDither /** - * Read texture pixel data + * Flip image vertically * - * @param {number} id - * @param {number} width - * @param {number} height - * @param {number} format + * @param {Image} image * - * @return {number} The resulting void *. + * @return {undefined} */ -function rlReadTexturePixels(id, width, height, format) { - return r.BindrlReadTexturePixels( - id, - width, - height, - format +function ImageFlipVertical(image) { + const obj = r.BindImageFlipVertical( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlReadTexturePixels = rlReadTexturePixels +raylib.ImageFlipVertical = ImageFlipVertical /** - * Read screen pixel data (color buffer) + * Flip image horizontally * - * @param {number} width - * @param {number} height + * @param {Image} image * - * @return {Buffer} The resulting unsigned char *. + * @return {undefined} */ -function rlReadScreenPixels(width, height) { - return r.BindrlReadScreenPixels( - width, - height +function ImageFlipHorizontal(image) { + const obj = r.BindImageFlipHorizontal( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlReadScreenPixels = rlReadScreenPixels +raylib.ImageFlipHorizontal = ImageFlipHorizontal /** - * Load an empty framebuffer + * Rotate image clockwise 90deg * - * @param {number} width - * @param {number} height + * @param {Image} image * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadFramebuffer(width, height) { - return r.BindrlLoadFramebuffer( - width, - height +function ImageRotateCW(image) { + const obj = r.BindImageRotateCW( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadFramebuffer = rlLoadFramebuffer +raylib.ImageRotateCW = ImageRotateCW /** - * Attach texture/renderbuffer to a framebuffer + * Rotate image counter-clockwise 90deg * - * @param {number} fboId - * @param {number} texId - * @param {number} attachType - * @param {number} texType - * @param {number} mipLevel + * @param {Image} image * * @return {undefined} */ -function rlFramebufferAttach(fboId, texId, attachType, texType, mipLevel) { - return r.BindrlFramebufferAttach( - fboId, - texId, - attachType, - texType, - mipLevel +function ImageRotateCCW(image) { + const obj = r.BindImageRotateCCW( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlFramebufferAttach = rlFramebufferAttach +raylib.ImageRotateCCW = ImageRotateCCW /** - * Verify framebuffer is complete + * Modify image color: tint * - * @param {number} id + * @param {Image} image + * @param {Color} color * - * @return {boolean} The resulting bool. + * @return {undefined} */ -function rlFramebufferComplete(id) { - return r.BindrlFramebufferComplete( - id +function ImageColorTint(image, color) { + const obj = r.BindImageColorTint( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlFramebufferComplete = rlFramebufferComplete +raylib.ImageColorTint = ImageColorTint /** - * Delete framebuffer from GPU + * Modify image color: invert * - * @param {number} id + * @param {Image} image * * @return {undefined} */ -function rlUnloadFramebuffer(id) { - return r.BindrlUnloadFramebuffer( - id - ) +function ImageColorInvert(image) { + const obj = r.BindImageColorInvert( + image.data, + image.width, + image.height, + image.mipmaps, + image.format + ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlUnloadFramebuffer = rlUnloadFramebuffer +raylib.ImageColorInvert = ImageColorInvert /** - * Load shader from code strings + * Modify image color: grayscale * - * @param {string} vsCode - * @param {string} fsCode + * @param {Image} image * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadShaderCode(vsCode, fsCode) { - return r.BindrlLoadShaderCode( - vsCode, - fsCode +function ImageColorGrayscale(image) { + const obj = r.BindImageColorGrayscale( + image.data, + image.width, + image.height, + image.mipmaps, + image.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadShaderCode = rlLoadShaderCode +raylib.ImageColorGrayscale = ImageColorGrayscale /** - * Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) + * Modify image color: contrast (-100 to 100) * - * @param {string} shaderCode - * @param {number} type + * @param {Image} image + * @param {number} contrast * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlCompileShader(shaderCode, type) { - return r.BindrlCompileShader( - shaderCode, - type +function ImageColorContrast(image, contrast) { + const obj = r.BindImageColorContrast( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + contrast ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlCompileShader = rlCompileShader +raylib.ImageColorContrast = ImageColorContrast /** - * Load custom shader program + * Modify image color: brightness (-255 to 255) * - * @param {number} vShaderId - * @param {number} fShaderId + * @param {Image} image + * @param {number} brightness * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadShaderProgram(vShaderId, fShaderId) { - return r.BindrlLoadShaderProgram( - vShaderId, - fShaderId +function ImageColorBrightness(image, brightness) { + const obj = r.BindImageColorBrightness( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + brightness ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlLoadShaderProgram = rlLoadShaderProgram +raylib.ImageColorBrightness = ImageColorBrightness /** - * Unload shader program + * Modify image color: replace color * - * @param {number} id + * @param {Image} image + * @param {Color} color + * @param {Color} replace * * @return {undefined} */ -function rlUnloadShaderProgram(id) { - return r.BindrlUnloadShaderProgram( - id +function ImageColorReplace(image, color, replace) { + const obj = r.BindImageColorReplace( + image.data, + image.width, + image.height, + image.mipmaps, + image.format, + color.r, + color.g, + color.b, + color.a, + replace.r, + replace.g, + replace.b, + replace.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + image[key] = obj[key] + } + } } -raylib.rlUnloadShaderProgram = rlUnloadShaderProgram +raylib.ImageColorReplace = ImageColorReplace /** - * Get shader location uniform + * Clear image background with given color * - * @param {number} shaderId - * @param {string} uniformName + * @param {Image} dst + * @param {Color} color * - * @return {number} The resulting int. + * @return {undefined} */ -function rlGetLocationUniform(shaderId, uniformName) { - return r.BindrlGetLocationUniform( - shaderId, - uniformName +function ImageClearBackground(dst, color) { + const obj = r.BindImageClearBackground( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlGetLocationUniform = rlGetLocationUniform +raylib.ImageClearBackground = ImageClearBackground /** - * Get shader location attribute + * Draw pixel within an image * - * @param {number} shaderId - * @param {string} attribName + * @param {Image} dst + * @param {number} posX + * @param {number} posY + * @param {Color} color * - * @return {number} The resulting int. + * @return {undefined} */ -function rlGetLocationAttrib(shaderId, attribName) { - return r.BindrlGetLocationAttrib( - shaderId, - attribName +function ImageDrawPixel(dst, posX, posY, color) { + const obj = r.BindImageDrawPixel( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + posX, + posY, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlGetLocationAttrib = rlGetLocationAttrib +raylib.ImageDrawPixel = ImageDrawPixel /** - * Set shader value uniform + * Draw pixel within an image (Vector version) * - * @param {number} locIndex - * @param {number} value - * @param {number} uniformType - * @param {number} count + * @param {Image} dst + * @param {Vector2} position + * @param {Color} color * * @return {undefined} */ -function rlSetUniform(locIndex, value, uniformType, count) { - return r.BindrlSetUniform( - locIndex, - value, - uniformType, - count +function ImageDrawPixelV(dst, position, color) { + const obj = r.BindImageDrawPixelV( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + position.x, + position.y, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlSetUniform = rlSetUniform +raylib.ImageDrawPixelV = ImageDrawPixelV /** - * Set shader value matrix + * Draw line within an image * - * @param {number} locIndex - * @param {Matrix} mat + * @param {Image} dst + * @param {number} startPosX + * @param {number} startPosY + * @param {number} endPosX + * @param {number} endPosY + * @param {Color} color * * @return {undefined} */ -function rlSetUniformMatrix(locIndex, mat) { - return r.BindrlSetUniformMatrix( - locIndex, - mat.m0, - mat.m4, - mat.m8, - mat.m12, - mat.m1, - mat.m5, - mat.m9, - mat.m13, - mat.m2, - mat.m6, - mat.m10, - mat.m14, - mat.m3, - mat.m7, - mat.m11, - mat.m15 - ) -} -raylib.rlSetUniformMatrix = rlSetUniformMatrix - -/** - * Set shader value sampler - * - * @param {number} locIndex - * @param {number} textureId - * - * @return {undefined} - */ -function rlSetUniformSampler(locIndex, textureId) { - return r.BindrlSetUniformSampler( - locIndex, - textureId +function ImageDrawLine(dst, startPosX, startPosY, endPosX, endPosY, color) { + const obj = r.BindImageDrawLine( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + startPosX, + startPosY, + endPosX, + endPosY, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlSetUniformSampler = rlSetUniformSampler +raylib.ImageDrawLine = ImageDrawLine /** - * Set shader currently active (id and locations) + * Draw line within an image (Vector version) * - * @param {number} id - * @param {number} locs + * @param {Image} dst + * @param {Vector2} start + * @param {Vector2} end + * @param {Color} color * * @return {undefined} */ -function rlSetShader(id, locs) { - return r.BindrlSetShader( - id, - locs +function ImageDrawLineV(dst, start, end, color) { + const obj = r.BindImageDrawLineV( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + start.x, + start.y, + end.x, + end.y, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlSetShader = rlSetShader +raylib.ImageDrawLineV = ImageDrawLineV /** - * Load compute shader program + * Draw a filled circle within an image * - * @param {number} shaderId + * @param {Image} dst + * @param {number} centerX + * @param {number} centerY + * @param {number} radius + * @param {Color} color * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadComputeShaderProgram(shaderId) { - return r.BindrlLoadComputeShaderProgram( - shaderId +function ImageDrawCircle(dst, centerX, centerY, radius, color) { + const obj = r.BindImageDrawCircle( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + centerX, + centerY, + radius, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlLoadComputeShaderProgram = rlLoadComputeShaderProgram +raylib.ImageDrawCircle = ImageDrawCircle /** - * Dispatch compute shader (equivalent to *draw* for graphics pipeline) + * Draw a filled circle within an image (Vector version) * - * @param {number} groupX - * @param {number} groupY - * @param {number} groupZ + * @param {Image} dst + * @param {Vector2} center + * @param {number} radius + * @param {Color} color * * @return {undefined} */ -function rlComputeShaderDispatch(groupX, groupY, groupZ) { - return r.BindrlComputeShaderDispatch( - groupX, - groupY, - groupZ +function ImageDrawCircleV(dst, center, radius, color) { + const obj = r.BindImageDrawCircleV( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + center.x, + center.y, + radius, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlComputeShaderDispatch = rlComputeShaderDispatch +raylib.ImageDrawCircleV = ImageDrawCircleV /** - * Load shader storage buffer object (SSBO) + * Draw rectangle within an image * - * @param {number} size - * @param {number} data - * @param {number} usageHint + * @param {Image} dst + * @param {number} posX + * @param {number} posY + * @param {number} width + * @param {number} height + * @param {Color} color * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlLoadShaderBuffer(size, data, usageHint) { - return r.BindrlLoadShaderBuffer( - size, - data, - usageHint +function ImageDrawRectangle(dst, posX, posY, width, height, color) { + const obj = r.BindImageDrawRectangle( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + posX, + posY, + width, + height, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlLoadShaderBuffer = rlLoadShaderBuffer +raylib.ImageDrawRectangle = ImageDrawRectangle /** - * Unload shader storage buffer object (SSBO) + * Draw rectangle within an image (Vector version) * - * @param {number} ssboId + * @param {Image} dst + * @param {Vector2} position + * @param {Vector2} size + * @param {Color} color * * @return {undefined} */ -function rlUnloadShaderBuffer(ssboId) { - return r.BindrlUnloadShaderBuffer( - ssboId +function ImageDrawRectangleV(dst, position, size, color) { + const obj = r.BindImageDrawRectangleV( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + position.x, + position.y, + size.x, + size.y, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlUnloadShaderBuffer = rlUnloadShaderBuffer +raylib.ImageDrawRectangleV = ImageDrawRectangleV /** - * Update SSBO buffer data + * Draw rectangle within an image * - * @param {number} id - * @param {number} data - * @param {number} dataSize - * @param {number} offset + * @param {Image} dst + * @param {Rectangle} rec + * @param {Color} color * * @return {undefined} */ -function rlUpdateShaderBuffer(id, data, dataSize, offset) { - return r.BindrlUpdateShaderBuffer( - id, - data, - dataSize, - offset +function ImageDrawRectangleRec(dst, rec, color) { + const obj = r.BindImageDrawRectangleRec( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + rec.x, + rec.y, + rec.width, + rec.height, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlUpdateShaderBuffer = rlUpdateShaderBuffer +raylib.ImageDrawRectangleRec = ImageDrawRectangleRec /** - * Bind SSBO buffer + * Draw rectangle lines within an image * - * @param {number} id - * @param {number} index + * @param {Image} dst + * @param {Rectangle} rec + * @param {number} thick + * @param {Color} color * * @return {undefined} */ -function rlBindShaderBuffer(id, index) { - return r.BindrlBindShaderBuffer( - id, - index +function ImageDrawRectangleLines(dst, rec, thick, color) { + const obj = r.BindImageDrawRectangleLines( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + rec.x, + rec.y, + rec.width, + rec.height, + thick, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlBindShaderBuffer = rlBindShaderBuffer +raylib.ImageDrawRectangleLines = ImageDrawRectangleLines /** - * Read SSBO buffer data (GPU->CPU) + * Draw a source image within a destination image (tint applied to source) * - * @param {number} id - * @param {number} dest - * @param {number} count - * @param {number} offset + * @param {Image} dst + * @param {Image} src + * @param {Rectangle} srcRec + * @param {Rectangle} dstRec + * @param {Color} tint * * @return {undefined} */ -function rlReadShaderBuffer(id, dest, count, offset) { - return r.BindrlReadShaderBuffer( - id, - dest, - count, - offset +function ImageDraw(dst, src, srcRec, dstRec, tint) { + const obj = r.BindImageDraw( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + src.data, + src.width, + src.height, + src.mipmaps, + src.format, + srcRec.x, + srcRec.y, + srcRec.width, + srcRec.height, + dstRec.x, + dstRec.y, + dstRec.width, + dstRec.height, + tint.r, + tint.g, + tint.b, + tint.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlReadShaderBuffer = rlReadShaderBuffer +raylib.ImageDraw = ImageDraw /** - * Copy SSBO data between buffers + * Draw text (using default font) within an image (destination) * - * @param {number} destId - * @param {number} srcId - * @param {number} destOffset - * @param {number} srcOffset - * @param {number} count + * @param {Image} dst + * @param {string} text + * @param {number} posX + * @param {number} posY + * @param {number} fontSize + * @param {Color} color * * @return {undefined} */ -function rlCopyShaderBuffer(destId, srcId, destOffset, srcOffset, count) { - return r.BindrlCopyShaderBuffer( - destId, - srcId, - destOffset, - srcOffset, - count +function ImageDrawText(dst, text, posX, posY, fontSize, color) { + const obj = r.BindImageDrawText( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + text, + posX, + posY, + fontSize, + color.r, + color.g, + color.b, + color.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlCopyShaderBuffer = rlCopyShaderBuffer +raylib.ImageDrawText = ImageDrawText /** - * Get SSBO buffer size + * Draw text (custom sprite font) within an image (destination) * - * @param {number} id + * @param {Image} dst + * @param {Font} font + * @param {string} text + * @param {Vector2} position + * @param {number} fontSize + * @param {number} spacing + * @param {Color} tint * - * @return {number} The resulting unsigned int. + * @return {undefined} */ -function rlGetShaderBufferSize(id) { - return r.BindrlGetShaderBufferSize( - id +function ImageDrawTextEx(dst, font, text, position, fontSize, spacing, tint) { + const obj = r.BindImageDrawTextEx( + dst.data, + dst.width, + dst.height, + dst.mipmaps, + dst.format, + font.baseSize, + font.glyphCount, + font.glyphPadding, + font.texture.id, + font.texture.width, + font.texture.height, + font.texture.mipmaps, + font.texture.format, + font.recs, + font.glyphs, + text, + position.x, + position.y, + fontSize, + spacing, + tint.r, + tint.g, + tint.b, + tint.a ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + dst[key] = obj[key] + } + } } -raylib.rlGetShaderBufferSize = rlGetShaderBufferSize +raylib.ImageDrawTextEx = ImageDrawTextEx /** - * Bind image texture + * Generate GPU mipmaps for a texture * - * @param {number} id - * @param {number} index - * @param {number} format - * @param {boolean} readonly + * @param {Texture} texture * * @return {undefined} */ -function rlBindImageTexture(id, index, format, readonly) { - return r.BindrlBindImageTexture( - id, - index, - format, - readonly +function GenTextureMipmaps(texture) { + const obj = r.BindGenTextureMipmaps( + texture.id, + texture.width, + texture.height, + texture.mipmaps, + texture.format ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + texture[key] = obj[key] + } + } } -raylib.rlBindImageTexture = rlBindImageTexture - -/** - * Get internal modelview matrix - * - * @return {Matrix} The resulting Matrix. - */ -function rlGetMatrixModelview() { - return r.BindrlGetMatrixModelview() -} -raylib.rlGetMatrixModelview = rlGetMatrixModelview +raylib.GenTextureMipmaps = GenTextureMipmaps /** - * Get internal projection matrix + * Upload mesh vertex data in GPU and provide VAO/VBO ids * - * @return {Matrix} The resulting Matrix. - */ -function rlGetMatrixProjection() { - return r.BindrlGetMatrixProjection() -} -raylib.rlGetMatrixProjection = rlGetMatrixProjection - -/** - * Get internal accumulated transform matrix + * @param {Mesh} mesh + * @param {boolean} dynamic * - * @return {Matrix} The resulting Matrix. + * @return {undefined} */ -function rlGetMatrixTransform() { - return r.BindrlGetMatrixTransform() +function UploadMesh(mesh, dynamic) { + const obj = r.BindUploadMesh( + mesh.vertexCount, + mesh.triangleCount, + mesh.vertices, + mesh.texcoords, + mesh.texcoords2, + mesh.normals, + mesh.tangents, + mesh.colors, + mesh.indices, + mesh.animVertices, + mesh.animNormals, + mesh.boneIds, + mesh.boneWeights, + mesh.vaoId, + mesh.vboId, + dynamic + ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + mesh[key] = obj[key] + } + } } -raylib.rlGetMatrixTransform = rlGetMatrixTransform +raylib.UploadMesh = UploadMesh /** - * Get internal projection matrix for stereo render (selected eye) + * Compute mesh tangents * - * @param {number} eye + * @param {Mesh} mesh * - * @return {Matrix} The resulting Matrix. + * @return {undefined} */ -function rlGetMatrixProjectionStereo(eye) { - return r.BindrlGetMatrixProjectionStereo( - eye - ) -} -raylib.rlGetMatrixProjectionStereo = rlGetMatrixProjectionStereo - -/** - * Get internal view offset matrix for stereo render (selected eye) - * - * @param {number} eye - * - * @return {Matrix} The resulting Matrix. - */ -function rlGetMatrixViewOffsetStereo(eye) { - return r.BindrlGetMatrixViewOffsetStereo( - eye +function GenMeshTangents(mesh) { + const obj = r.BindGenMeshTangents( + mesh.vertexCount, + mesh.triangleCount, + mesh.vertices, + mesh.texcoords, + mesh.texcoords2, + mesh.normals, + mesh.tangents, + mesh.colors, + mesh.indices, + mesh.animVertices, + mesh.animNormals, + mesh.boneIds, + mesh.boneWeights, + mesh.vaoId, + mesh.vboId ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + mesh[key] = obj[key] + } + } } -raylib.rlGetMatrixViewOffsetStereo = rlGetMatrixViewOffsetStereo +raylib.GenMeshTangents = GenMeshTangents /** - * Set a custom projection matrix (replaces internal projection matrix) + * Set material for a mesh * - * @param {Matrix} proj + * @param {Model} model + * @param {number} meshId + * @param {number} materialId * * @return {undefined} */ -function rlSetMatrixProjection(proj) { - return r.BindrlSetMatrixProjection( - proj.m0, - proj.m4, - proj.m8, - proj.m12, - proj.m1, - proj.m5, - proj.m9, - proj.m13, - proj.m2, - proj.m6, - proj.m10, - proj.m14, - proj.m3, - proj.m7, - proj.m11, - proj.m15 +function SetModelMeshMaterial(model, meshId, materialId) { + const obj = r.BindSetModelMeshMaterial( + model.transform.m0, + model.transform.m4, + model.transform.m8, + model.transform.m12, + model.transform.m1, + model.transform.m5, + model.transform.m9, + model.transform.m13, + model.transform.m2, + model.transform.m6, + model.transform.m10, + model.transform.m14, + model.transform.m3, + model.transform.m7, + model.transform.m11, + model.transform.m15, + model.meshCount, + model.materialCount, + model.meshes, + model.materials, + model.meshMaterial, + model.boneCount, + model.bones, + model.bindPose, + meshId, + materialId ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + model[key] = obj[key] + } + } } -raylib.rlSetMatrixProjection = rlSetMatrixProjection +raylib.SetModelMeshMaterial = SetModelMeshMaterial /** - * Set a custom modelview matrix (replaces internal modelview matrix) + * Crop a wave to defined samples range * - * @param {Matrix} view + * @param {Wave} wave + * @param {number} initSample + * @param {number} finalSample * * @return {undefined} */ -function rlSetMatrixModelview(view) { - return r.BindrlSetMatrixModelview( - view.m0, - view.m4, - view.m8, - view.m12, - view.m1, - view.m5, - view.m9, - view.m13, - view.m2, - view.m6, - view.m10, - view.m14, - view.m3, - view.m7, - view.m11, - view.m15 +function WaveCrop(wave, initSample, finalSample) { + const obj = r.BindWaveCrop( + wave.frameCount, + wave.sampleRate, + wave.sampleSize, + wave.channels, + wave.data, + initSample, + finalSample ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + wave[key] = obj[key] + } + } } -raylib.rlSetMatrixModelview = rlSetMatrixModelview +raylib.WaveCrop = WaveCrop /** - * Set eyes projection matrices for stereo rendering + * Convert wave data to desired format * - * @param {Matrix} right - * @param {Matrix} left + * @param {Wave} wave + * @param {number} sampleRate + * @param {number} sampleSize + * @param {number} channels * * @return {undefined} */ -function rlSetMatrixProjectionStereo(right, left) { - return r.BindrlSetMatrixProjectionStereo( - right.m0, - right.m4, - right.m8, - right.m12, - right.m1, - right.m5, - right.m9, - right.m13, - right.m2, - right.m6, - right.m10, - right.m14, - right.m3, - right.m7, - right.m11, - right.m15, - left.m0, - left.m4, - left.m8, - left.m12, - left.m1, - left.m5, - left.m9, - left.m13, - left.m2, - left.m6, - left.m10, - left.m14, - left.m3, - left.m7, - left.m11, - left.m15 +function WaveFormat(wave, sampleRate, sampleSize, channels) { + const obj = r.BindWaveFormat( + wave.frameCount, + wave.sampleRate, + wave.sampleSize, + wave.channels, + wave.data, + sampleRate, + sampleSize, + channels ) + if (typeof obj !== 'undefined') { + for (const key in obj) { + wave[key] = obj[key] + } + } } -raylib.rlSetMatrixProjectionStereo = rlSetMatrixProjectionStereo +raylib.WaveFormat = WaveFormat /** - * Set eyes view offsets matrices for stereo rendering + * Color, 4 components, R8G8B8A8 (32bit) * - * @param {Matrix} right - * @param {Matrix} left + * @param {number} r - Color red value + * @param {number} g - Color green value + * @param {number} b - Color blue value + * @param {number} a - Color alpha value * - * @return {undefined} + * @return {Color} The new Color. */ -function rlSetMatrixViewOffsetStereo(right, left) { - return r.BindrlSetMatrixViewOffsetStereo( - right.m0, - right.m4, - right.m8, - right.m12, - right.m1, - right.m5, - right.m9, - right.m13, - right.m2, - right.m6, - right.m10, - right.m14, - right.m3, - right.m7, - right.m11, - right.m15, - left.m0, - left.m4, - left.m8, - left.m12, - left.m1, - left.m5, - left.m9, - left.m13, - left.m2, - left.m6, - left.m10, - left.m14, - left.m3, - left.m7, - left.m11, - left.m15 - ) +function Color(r,g,b,a) { + return {r,g,b,a} } -raylib.rlSetMatrixViewOffsetStereo = rlSetMatrixViewOffsetStereo +raylib.Color = Color /** - * Load and draw a cube + * Vector2, 2 components * - * @return {undefined} + * @param {number} x - Vector x component + * @param {number} y - Vector y component + * + * @return {Vector2} The new Vector2. */ -function rlLoadDrawCube() { - return r.BindrlLoadDrawCube() +function Vector2(x,y) { + return {x,y} } -raylib.rlLoadDrawCube = rlLoadDrawCube +raylib.Vector2 = Vector2 /** - * Load and draw a quad - * - * @return {undefined} - */ -function rlLoadDrawQuad() { - return r.BindrlLoadDrawQuad() -} -raylib.rlLoadDrawQuad = rlLoadDrawQuad - -/** - * Update camera position for selected mode - * - * @param {Camera3D} camera - * @param {number} mode - * - * @return {undefined} - */ -function UpdateCamera(camera, mode) { - const obj = r.BindUpdateCamera( - camera.position.x, - camera.position.y, - camera.position.z, - camera.target.x, - camera.target.y, - camera.target.z, - camera.up.x, - camera.up.y, - camera.up.z, - camera.fovy, - camera.projection, - mode - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - camera[key] = obj[key] - } - } -} -raylib.UpdateCamera = UpdateCamera - -/** - * Convert image data to desired format - * - * @param {Image} image - * @param {number} newFormat - * - * @return {undefined} - */ -function ImageFormat(image, newFormat) { - const obj = r.BindImageFormat( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - newFormat - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageFormat = ImageFormat - -/** - * Convert image to POT (power-of-two) - * - * @param {Image} image - * @param {Color} fill - * - * @return {undefined} - */ -function ImageToPOT(image, fill) { - const obj = r.BindImageToPOT( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - fill.r, - fill.g, - fill.b, - fill.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageToPOT = ImageToPOT - -/** - * Crop an image to a defined rectangle - * - * @param {Image} image - * @param {Rectangle} crop - * - * @return {undefined} - */ -function ImageCrop(image, crop) { - const obj = r.BindImageCrop( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - crop.x, - crop.y, - crop.width, - crop.height - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageCrop = ImageCrop - -/** - * Crop image depending on alpha value - * - * @param {Image} image - * @param {number} threshold - * - * @return {undefined} - */ -function ImageAlphaCrop(image, threshold) { - const obj = r.BindImageAlphaCrop( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - threshold - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageAlphaCrop = ImageAlphaCrop - -/** - * Clear alpha channel to desired color - * - * @param {Image} image - * @param {Color} color - * @param {number} threshold - * - * @return {undefined} - */ -function ImageAlphaClear(image, color, threshold) { - const obj = r.BindImageAlphaClear( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - color.r, - color.g, - color.b, - color.a, - threshold - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageAlphaClear = ImageAlphaClear - -/** - * Apply alpha mask to image - * - * @param {Image} image - * @param {Image} alphaMask - * - * @return {undefined} - */ -function ImageAlphaMask(image, alphaMask) { - const obj = r.BindImageAlphaMask( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - alphaMask.data, - alphaMask.width, - alphaMask.height, - alphaMask.mipmaps, - alphaMask.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageAlphaMask = ImageAlphaMask - -/** - * Premultiply alpha channel - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageAlphaPremultiply(image) { - const obj = r.BindImageAlphaPremultiply( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageAlphaPremultiply = ImageAlphaPremultiply - -/** - * Resize image (Bicubic scaling algorithm) - * - * @param {Image} image - * @param {number} newWidth - * @param {number} newHeight - * - * @return {undefined} - */ -function ImageResize(image, newWidth, newHeight) { - const obj = r.BindImageResize( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - newWidth, - newHeight - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageResize = ImageResize - -/** - * Resize image (Nearest-Neighbor scaling algorithm) - * - * @param {Image} image - * @param {number} newWidth - * @param {number} newHeight - * - * @return {undefined} - */ -function ImageResizeNN(image, newWidth, newHeight) { - const obj = r.BindImageResizeNN( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - newWidth, - newHeight - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageResizeNN = ImageResizeNN - -/** - * Resize canvas and fill with color - * - * @param {Image} image - * @param {number} newWidth - * @param {number} newHeight - * @param {number} offsetX - * @param {number} offsetY - * @param {Color} fill - * - * @return {undefined} - */ -function ImageResizeCanvas(image, newWidth, newHeight, offsetX, offsetY, fill) { - const obj = r.BindImageResizeCanvas( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - newWidth, - newHeight, - offsetX, - offsetY, - fill.r, - fill.g, - fill.b, - fill.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageResizeCanvas = ImageResizeCanvas - -/** - * Compute all mipmap levels for a provided image - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageMipmaps(image) { - const obj = r.BindImageMipmaps( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageMipmaps = ImageMipmaps - -/** - * Dither image data to 16bpp or lower (Floyd-Steinberg dithering) - * - * @param {Image} image - * @param {number} rBpp - * @param {number} gBpp - * @param {number} bBpp - * @param {number} aBpp - * - * @return {undefined} - */ -function ImageDither(image, rBpp, gBpp, bBpp, aBpp) { - const obj = r.BindImageDither( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - rBpp, - gBpp, - bBpp, - aBpp - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageDither = ImageDither - -/** - * Flip image vertically - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageFlipVertical(image) { - const obj = r.BindImageFlipVertical( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageFlipVertical = ImageFlipVertical - -/** - * Flip image horizontally - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageFlipHorizontal(image) { - const obj = r.BindImageFlipHorizontal( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageFlipHorizontal = ImageFlipHorizontal - -/** - * Rotate image clockwise 90deg - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageRotateCW(image) { - const obj = r.BindImageRotateCW( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageRotateCW = ImageRotateCW - -/** - * Rotate image counter-clockwise 90deg - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageRotateCCW(image) { - const obj = r.BindImageRotateCCW( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageRotateCCW = ImageRotateCCW - -/** - * Modify image color: tint - * - * @param {Image} image - * @param {Color} color - * - * @return {undefined} - */ -function ImageColorTint(image, color) { - const obj = r.BindImageColorTint( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageColorTint = ImageColorTint - -/** - * Modify image color: invert - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageColorInvert(image) { - const obj = r.BindImageColorInvert( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageColorInvert = ImageColorInvert - -/** - * Modify image color: grayscale - * - * @param {Image} image - * - * @return {undefined} - */ -function ImageColorGrayscale(image) { - const obj = r.BindImageColorGrayscale( - image.data, - image.width, - image.height, - image.mipmaps, - image.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageColorGrayscale = ImageColorGrayscale - -/** - * Modify image color: contrast (-100 to 100) - * - * @param {Image} image - * @param {number} contrast - * - * @return {undefined} - */ -function ImageColorContrast(image, contrast) { - const obj = r.BindImageColorContrast( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - contrast - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageColorContrast = ImageColorContrast - -/** - * Modify image color: brightness (-255 to 255) - * - * @param {Image} image - * @param {number} brightness - * - * @return {undefined} - */ -function ImageColorBrightness(image, brightness) { - const obj = r.BindImageColorBrightness( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - brightness - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageColorBrightness = ImageColorBrightness - -/** - * Modify image color: replace color - * - * @param {Image} image - * @param {Color} color - * @param {Color} replace - * - * @return {undefined} - */ -function ImageColorReplace(image, color, replace) { - const obj = r.BindImageColorReplace( - image.data, - image.width, - image.height, - image.mipmaps, - image.format, - color.r, - color.g, - color.b, - color.a, - replace.r, - replace.g, - replace.b, - replace.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - image[key] = obj[key] - } - } -} -raylib.ImageColorReplace = ImageColorReplace - -/** - * Clear image background with given color - * - * @param {Image} dst - * @param {Color} color - * - * @return {undefined} - */ -function ImageClearBackground(dst, color) { - const obj = r.BindImageClearBackground( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageClearBackground = ImageClearBackground - -/** - * Draw pixel within an image - * - * @param {Image} dst - * @param {number} posX - * @param {number} posY - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawPixel(dst, posX, posY, color) { - const obj = r.BindImageDrawPixel( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - posX, - posY, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawPixel = ImageDrawPixel - -/** - * Draw pixel within an image (Vector version) - * - * @param {Image} dst - * @param {Vector2} position - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawPixelV(dst, position, color) { - const obj = r.BindImageDrawPixelV( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - position.x, - position.y, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawPixelV = ImageDrawPixelV - -/** - * Draw line within an image - * - * @param {Image} dst - * @param {number} startPosX - * @param {number} startPosY - * @param {number} endPosX - * @param {number} endPosY - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawLine(dst, startPosX, startPosY, endPosX, endPosY, color) { - const obj = r.BindImageDrawLine( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - startPosX, - startPosY, - endPosX, - endPosY, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawLine = ImageDrawLine - -/** - * Draw line within an image (Vector version) - * - * @param {Image} dst - * @param {Vector2} start - * @param {Vector2} end - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawLineV(dst, start, end, color) { - const obj = r.BindImageDrawLineV( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - start.x, - start.y, - end.x, - end.y, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawLineV = ImageDrawLineV - -/** - * Draw a filled circle within an image - * - * @param {Image} dst - * @param {number} centerX - * @param {number} centerY - * @param {number} radius - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawCircle(dst, centerX, centerY, radius, color) { - const obj = r.BindImageDrawCircle( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - centerX, - centerY, - radius, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawCircle = ImageDrawCircle - -/** - * Draw a filled circle within an image (Vector version) - * - * @param {Image} dst - * @param {Vector2} center - * @param {number} radius - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawCircleV(dst, center, radius, color) { - const obj = r.BindImageDrawCircleV( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - center.x, - center.y, - radius, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawCircleV = ImageDrawCircleV - -/** - * Draw rectangle within an image - * - * @param {Image} dst - * @param {number} posX - * @param {number} posY - * @param {number} width - * @param {number} height - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawRectangle(dst, posX, posY, width, height, color) { - const obj = r.BindImageDrawRectangle( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - posX, - posY, - width, - height, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawRectangle = ImageDrawRectangle - -/** - * Draw rectangle within an image (Vector version) - * - * @param {Image} dst - * @param {Vector2} position - * @param {Vector2} size - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawRectangleV(dst, position, size, color) { - const obj = r.BindImageDrawRectangleV( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - position.x, - position.y, - size.x, - size.y, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawRectangleV = ImageDrawRectangleV - -/** - * Draw rectangle within an image - * - * @param {Image} dst - * @param {Rectangle} rec - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawRectangleRec(dst, rec, color) { - const obj = r.BindImageDrawRectangleRec( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - rec.x, - rec.y, - rec.width, - rec.height, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawRectangleRec = ImageDrawRectangleRec - -/** - * Draw rectangle lines within an image - * - * @param {Image} dst - * @param {Rectangle} rec - * @param {number} thick - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawRectangleLines(dst, rec, thick, color) { - const obj = r.BindImageDrawRectangleLines( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - rec.x, - rec.y, - rec.width, - rec.height, - thick, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawRectangleLines = ImageDrawRectangleLines - -/** - * Draw a source image within a destination image (tint applied to source) - * - * @param {Image} dst - * @param {Image} src - * @param {Rectangle} srcRec - * @param {Rectangle} dstRec - * @param {Color} tint - * - * @return {undefined} - */ -function ImageDraw(dst, src, srcRec, dstRec, tint) { - const obj = r.BindImageDraw( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - src.data, - src.width, - src.height, - src.mipmaps, - src.format, - srcRec.x, - srcRec.y, - srcRec.width, - srcRec.height, - dstRec.x, - dstRec.y, - dstRec.width, - dstRec.height, - tint.r, - tint.g, - tint.b, - tint.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDraw = ImageDraw - -/** - * Draw text (using default font) within an image (destination) - * - * @param {Image} dst - * @param {string} text - * @param {number} posX - * @param {number} posY - * @param {number} fontSize - * @param {Color} color - * - * @return {undefined} - */ -function ImageDrawText(dst, text, posX, posY, fontSize, color) { - const obj = r.BindImageDrawText( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - text, - posX, - posY, - fontSize, - color.r, - color.g, - color.b, - color.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawText = ImageDrawText - -/** - * Draw text (custom sprite font) within an image (destination) - * - * @param {Image} dst - * @param {Font} font - * @param {string} text - * @param {Vector2} position - * @param {number} fontSize - * @param {number} spacing - * @param {Color} tint - * - * @return {undefined} - */ -function ImageDrawTextEx(dst, font, text, position, fontSize, spacing, tint) { - const obj = r.BindImageDrawTextEx( - dst.data, - dst.width, - dst.height, - dst.mipmaps, - dst.format, - font.baseSize, - font.glyphCount, - font.glyphPadding, - font.texture.id, - font.texture.width, - font.texture.height, - font.texture.mipmaps, - font.texture.format, - font.recs, - font.glyphs, - text, - position.x, - position.y, - fontSize, - spacing, - tint.r, - tint.g, - tint.b, - tint.a - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - dst[key] = obj[key] - } - } -} -raylib.ImageDrawTextEx = ImageDrawTextEx - -/** - * Generate GPU mipmaps for a texture - * - * @param {Texture} texture - * - * @return {undefined} - */ -function GenTextureMipmaps(texture) { - const obj = r.BindGenTextureMipmaps( - texture.id, - texture.width, - texture.height, - texture.mipmaps, - texture.format - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - texture[key] = obj[key] - } - } -} -raylib.GenTextureMipmaps = GenTextureMipmaps - -/** - * Upload mesh vertex data in GPU and provide VAO/VBO ids - * - * @param {Mesh} mesh - * @param {boolean} dynamic - * - * @return {undefined} - */ -function UploadMesh(mesh, dynamic) { - const obj = r.BindUploadMesh( - mesh.vertexCount, - mesh.triangleCount, - mesh.vertices, - mesh.texcoords, - mesh.texcoords2, - mesh.normals, - mesh.tangents, - mesh.colors, - mesh.indices, - mesh.animVertices, - mesh.animNormals, - mesh.boneIds, - mesh.boneWeights, - mesh.vaoId, - mesh.vboId, - dynamic - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - mesh[key] = obj[key] - } - } -} -raylib.UploadMesh = UploadMesh - -/** - * Compute mesh tangents - * - * @param {Mesh} mesh - * - * @return {undefined} - */ -function GenMeshTangents(mesh) { - const obj = r.BindGenMeshTangents( - mesh.vertexCount, - mesh.triangleCount, - mesh.vertices, - mesh.texcoords, - mesh.texcoords2, - mesh.normals, - mesh.tangents, - mesh.colors, - mesh.indices, - mesh.animVertices, - mesh.animNormals, - mesh.boneIds, - mesh.boneWeights, - mesh.vaoId, - mesh.vboId - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - mesh[key] = obj[key] - } - } -} -raylib.GenMeshTangents = GenMeshTangents - -/** - * Set material for a mesh - * - * @param {Model} model - * @param {number} meshId - * @param {number} materialId - * - * @return {undefined} - */ -function SetModelMeshMaterial(model, meshId, materialId) { - const obj = r.BindSetModelMeshMaterial( - model.transform.m0, - model.transform.m4, - model.transform.m8, - model.transform.m12, - model.transform.m1, - model.transform.m5, - model.transform.m9, - model.transform.m13, - model.transform.m2, - model.transform.m6, - model.transform.m10, - model.transform.m14, - model.transform.m3, - model.transform.m7, - model.transform.m11, - model.transform.m15, - model.meshCount, - model.materialCount, - model.meshes, - model.materials, - model.meshMaterial, - model.boneCount, - model.bones, - model.bindPose, - meshId, - materialId - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - model[key] = obj[key] - } - } -} -raylib.SetModelMeshMaterial = SetModelMeshMaterial - -/** - * Crop a wave to defined samples range - * - * @param {Wave} wave - * @param {number} initSample - * @param {number} finalSample - * - * @return {undefined} - */ -function WaveCrop(wave, initSample, finalSample) { - const obj = r.BindWaveCrop( - wave.frameCount, - wave.sampleRate, - wave.sampleSize, - wave.channels, - wave.data, - initSample, - finalSample - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - wave[key] = obj[key] - } - } -} -raylib.WaveCrop = WaveCrop - -/** - * Convert wave data to desired format - * - * @param {Wave} wave - * @param {number} sampleRate - * @param {number} sampleSize - * @param {number} channels - * - * @return {undefined} - */ -function WaveFormat(wave, sampleRate, sampleSize, channels) { - const obj = r.BindWaveFormat( - wave.frameCount, - wave.sampleRate, - wave.sampleSize, - wave.channels, - wave.data, - sampleRate, - sampleSize, - channels - ) - if (typeof obj !== 'undefined') { - for (const key in obj) { - wave[key] = obj[key] - } - } -} -raylib.WaveFormat = WaveFormat - -/** - * Color, 4 components, R8G8B8A8 (32bit) - * - * @param {number} r - Color red value - * @param {number} g - Color green value - * @param {number} b - Color blue value - * @param {number} a - Color alpha value - * - * @return {Color} The new Color. - */ -function Color(r,g,b,a) { - return {r,g,b,a} -} -raylib.Color = Color - -/** - * Vector2, 2 components - * - * @param {number} x - Vector x component - * @param {number} y - Vector y component - * - * @return {Vector2} The new Vector2. - */ -function Vector2(x,y) { - return {x,y} -} -raylib.Vector2 = Vector2 - -/** - * Vector3, 3 components - * - * @param {number} x - Vector x component - * @param {number} y - Vector y component - * @param {number} z - Vector z component - * - * @return {Vector3} The new Vector3. - */ -function Vector3(x,y,z) { - return {x,y,z} -} -raylib.Vector3 = Vector3 - -/** - * Vector4, 4 components - * - * @param {number} x - Vector x component - * @param {number} y - Vector y component - * @param {number} z - Vector z component - * @param {number} w - Vector w component - * - * @return {Vector4} The new Vector4. - */ -function Vector4(x,y,z,w) { - return {x,y,z,w} -} -raylib.Vector4 = Vector4 - -/** - * Rectangle, 4 components - * - * @param {number} x - Rectangle top-left corner position x - * @param {number} y - Rectangle top-left corner position y - * @param {number} width - Rectangle width - * @param {number} height - Rectangle height - * - * @return {Rectangle} The new Rectangle. - */ -function Rectangle(x,y,width,height) { - return {x,y,width,height} -} -raylib.Rectangle = Rectangle - -/** - * Camera2D, defines position/orientation in 2d space - * - * @param {Vector2} offset - Camera offset (displacement from target) - * @param {Vector2} target - Camera target (rotation and zoom origin) - * @param {number} rotation - Camera rotation in degrees - * @param {number} zoom - Camera zoom (scaling), should be 1.0f by default - * - * @return {Camera2D} The new Camera2D. - */ -function Camera2D(offset,target,rotation,zoom) { - return {offset,target,rotation,zoom} -} -raylib.Camera2D = Camera2D - -/** - * Camera, defines position/orientation in 3d space - * - * @param {Vector3} position - Camera position - * @param {Vector3} target - Camera target it looks-at - * @param {Vector3} up - Camera up vector (rotation over its axis) - * @param {number} fovy - Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic - * @param {number} projection - Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC - * - * @return {Camera3D} The new Camera3D. - */ -function Camera3D(position,target,up,fovy,projection) { - return {position,target,up,fovy,projection} -} -raylib.Camera3D = Camera3D -raylib.Camera = raylib.Camera3D - -// WRAPPED TYPED SHADER FUNCTIONS - -/** - * Set shader uniform value float - * - * @param {Shader} shader - * @param {number} locIndex - * @param {number} value - * - * @returns {undefined} - */ -function SetShaderFloat(shader, locIndex, value) { - return r.BindSetShaderFloat( - shader.id, - shader.locs, - locIndex, - value - ) -} -raylib.SetShaderFloat = SetShaderFloat - -/** - * Set shader uniform value float - * - * @param {Shader} shader - * @param {number} locIndex - * @param {number} value - * - * @returns {undefined} - */ -function SetShaderInt(shader, locIndex, value) { - return r.BindSetShaderInt( - shader.id, - shader.locs, - locIndex, - value - ) -} -raylib.SetShaderInt = SetShaderInt - -/** - * Set shader uniform value vector2 - * - * @param {Shader} shader - * @param {number} locIndex - * @param {Vector2} value - * - * @returns {undefined} - */ -function SetShaderVec2(shader, locIndex, value) { - return r.BindSetShaderVec2( - shader.id, - shader.locs, - locIndex, - value.x, - value.y - ) -} -raylib.SetShaderVec2 = SetShaderVec2 - -/** - * Set shader uniform value vector3 - * - * @param {Shader} shader - * @param {number} locIndex - * @param {Vector3} value - * - * @returns {undefined} - */ -function SetShaderVec3(shader, locIndex, value) { - return r.BindSetShaderVec3( - shader.id, - shader.locs, - locIndex, - value.x, - value.y, - value.z - ) -} -raylib.SetShaderVec3 = SetShaderVec3 - -/** - * Set shader uniform value vector4 - * - * @param {Shader} shader - * @param {number} locIndex - * @param {Vector4} value - * - * @returns {undefined} - */ -function SetShaderVec4(shader, locIndex, value) { - return r.BindSetShaderVec4( - shader.id, - shader.locs, - locIndex, - value.x, - value.y, - value.z, - value.w - ) -} -raylib.SetShaderVec4 = SetShaderVec4 - -/** - * Set to try enabling V-Sync on GPU - * - * @type {number} - * @constant - */ -raylib.FLAG_VSYNC_HINT = 64 - -/** - * Set to run program in fullscreen - * - * @type {number} - * @constant - */ -raylib.FLAG_FULLSCREEN_MODE = 2 - -/** - * Set to allow resizable window - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_RESIZABLE = 4 - -/** - * Set to disable window decoration (frame and buttons) - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_UNDECORATED = 8 - -/** - * Set to hide window - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_HIDDEN = 128 - -/** - * Set to minimize window (iconify) - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_MINIMIZED = 512 - -/** - * Set to maximize window (expanded to monitor) - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_MAXIMIZED = 1024 - -/** - * Set to window non focused - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_UNFOCUSED = 2048 - -/** - * Set to window always on top - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_TOPMOST = 4096 - -/** - * Set to allow windows running while minimized - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_ALWAYS_RUN = 256 - -/** - * Set to allow transparent framebuffer - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_TRANSPARENT = 16 - -/** - * Set to support HighDPI - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_HIGHDPI = 8192 - -/** - * Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED - * - * @type {number} - * @constant - */ -raylib.FLAG_WINDOW_MOUSE_PASSTHROUGH = 16384 - -/** - * Set to run program in borderless windowed mode - * - * @type {number} - * @constant - */ -raylib.FLAG_BORDERLESS_WINDOWED_MODE = 32768 - -/** - * Set to try enabling MSAA 4X - * - * @type {number} - * @constant - */ -raylib.FLAG_MSAA_4X_HINT = 32 - -/** - * Set to try enabling interlaced video format (for V3D) - * - * @type {number} - * @constant - */ -raylib.FLAG_INTERLACED_HINT = 65536 - -/** - * Display all logs - * - * @type {number} - * @constant - */ -raylib.LOG_ALL = 0 - -/** - * Trace logging, intended for internal use only - * - * @type {number} - * @constant - */ -raylib.LOG_TRACE = 1 - -/** - * Debug logging, used for internal debugging, it should be disabled on release builds - * - * @type {number} - * @constant - */ -raylib.LOG_DEBUG = 2 - -/** - * Info logging, used for program execution info - * - * @type {number} - * @constant - */ -raylib.LOG_INFO = 3 - -/** - * Warning logging, used on recoverable failures - * - * @type {number} - * @constant - */ -raylib.LOG_WARNING = 4 - -/** - * Error logging, used on unrecoverable failures - * - * @type {number} - * @constant - */ -raylib.LOG_ERROR = 5 - -/** - * Fatal logging, used to abort program: exit(EXIT_FAILURE) - * - * @type {number} - * @constant - */ -raylib.LOG_FATAL = 6 - -/** - * Disable logging - * - * @type {number} - * @constant - */ -raylib.LOG_NONE = 7 - -/** - * Key: NULL, used for no key pressed - * - * @type {number} - * @constant - */ -raylib.KEY_NULL = 0 - -/** - * Key: ' - * - * @type {number} - * @constant - */ -raylib.KEY_APOSTROPHE = 39 - -/** - * Key: , - * - * @type {number} - * @constant - */ -raylib.KEY_COMMA = 44 - -/** - * Key: - - * - * @type {number} - * @constant - */ -raylib.KEY_MINUS = 45 - -/** - * Key: . - * - * @type {number} - * @constant - */ -raylib.KEY_PERIOD = 46 - -/** - * Key: / - * - * @type {number} - * @constant - */ -raylib.KEY_SLASH = 47 - -/** - * Key: 0 - * - * @type {number} - * @constant - */ -raylib.KEY_ZERO = 48 - -/** - * Key: 1 - * - * @type {number} - * @constant - */ -raylib.KEY_ONE = 49 - -/** - * Key: 2 - * - * @type {number} - * @constant - */ -raylib.KEY_TWO = 50 - -/** - * Key: 3 - * - * @type {number} - * @constant - */ -raylib.KEY_THREE = 51 - -/** - * Key: 4 - * - * @type {number} - * @constant - */ -raylib.KEY_FOUR = 52 - -/** - * Key: 5 - * - * @type {number} - * @constant - */ -raylib.KEY_FIVE = 53 - -/** - * Key: 6 - * - * @type {number} - * @constant - */ -raylib.KEY_SIX = 54 - -/** - * Key: 7 - * - * @type {number} - * @constant - */ -raylib.KEY_SEVEN = 55 - -/** - * Key: 8 - * - * @type {number} - * @constant - */ -raylib.KEY_EIGHT = 56 - -/** - * Key: 9 - * - * @type {number} - * @constant - */ -raylib.KEY_NINE = 57 - -/** - * Key: ; - * - * @type {number} - * @constant - */ -raylib.KEY_SEMICOLON = 59 - -/** - * Key: = - * - * @type {number} - * @constant - */ -raylib.KEY_EQUAL = 61 - -/** - * Key: A | a - * - * @type {number} - * @constant - */ -raylib.KEY_A = 65 - -/** - * Key: B | b - * - * @type {number} - * @constant - */ -raylib.KEY_B = 66 - -/** - * Key: C | c - * - * @type {number} - * @constant - */ -raylib.KEY_C = 67 - -/** - * Key: D | d - * - * @type {number} - * @constant - */ -raylib.KEY_D = 68 - -/** - * Key: E | e - * - * @type {number} - * @constant - */ -raylib.KEY_E = 69 - -/** - * Key: F | f - * - * @type {number} - * @constant - */ -raylib.KEY_F = 70 - -/** - * Key: G | g - * - * @type {number} - * @constant - */ -raylib.KEY_G = 71 - -/** - * Key: H | h - * - * @type {number} - * @constant - */ -raylib.KEY_H = 72 - -/** - * Key: I | i - * - * @type {number} - * @constant - */ -raylib.KEY_I = 73 - -/** - * Key: J | j - * - * @type {number} - * @constant - */ -raylib.KEY_J = 74 - -/** - * Key: K | k - * - * @type {number} - * @constant - */ -raylib.KEY_K = 75 - -/** - * Key: L | l - * - * @type {number} - * @constant - */ -raylib.KEY_L = 76 - -/** - * Key: M | m - * - * @type {number} - * @constant - */ -raylib.KEY_M = 77 - -/** - * Key: N | n - * - * @type {number} - * @constant - */ -raylib.KEY_N = 78 - -/** - * Key: O | o - * - * @type {number} - * @constant - */ -raylib.KEY_O = 79 - -/** - * Key: P | p - * - * @type {number} - * @constant - */ -raylib.KEY_P = 80 - -/** - * Key: Q | q - * - * @type {number} - * @constant - */ -raylib.KEY_Q = 81 - -/** - * Key: R | r - * - * @type {number} - * @constant - */ -raylib.KEY_R = 82 - -/** - * Key: S | s - * - * @type {number} - * @constant - */ -raylib.KEY_S = 83 - -/** - * Key: T | t - * - * @type {number} - * @constant - */ -raylib.KEY_T = 84 - -/** - * Key: U | u - * - * @type {number} - * @constant - */ -raylib.KEY_U = 85 - -/** - * Key: V | v - * - * @type {number} - * @constant - */ -raylib.KEY_V = 86 - -/** - * Key: W | w - * - * @type {number} - * @constant - */ -raylib.KEY_W = 87 - -/** - * Key: X | x - * - * @type {number} - * @constant - */ -raylib.KEY_X = 88 - -/** - * Key: Y | y - * - * @type {number} - * @constant - */ -raylib.KEY_Y = 89 - -/** - * Key: Z | z - * - * @type {number} - * @constant - */ -raylib.KEY_Z = 90 - -/** - * Key: [ - * - * @type {number} - * @constant - */ -raylib.KEY_LEFT_BRACKET = 91 - -/** - * Key: '\' - * - * @type {number} - * @constant - */ -raylib.KEY_BACKSLASH = 92 - -/** - * Key: ] - * - * @type {number} - * @constant - */ -raylib.KEY_RIGHT_BRACKET = 93 - -/** - * Key: ` - * - * @type {number} - * @constant - */ -raylib.KEY_GRAVE = 96 - -/** - * Key: Space - * - * @type {number} - * @constant - */ -raylib.KEY_SPACE = 32 - -/** - * Key: Esc - * - * @type {number} - * @constant - */ -raylib.KEY_ESCAPE = 256 - -/** - * Key: Enter - * - * @type {number} - * @constant - */ -raylib.KEY_ENTER = 257 - -/** - * Key: Tab - * - * @type {number} - * @constant - */ -raylib.KEY_TAB = 258 - -/** - * Key: Backspace - * - * @type {number} - * @constant - */ -raylib.KEY_BACKSPACE = 259 - -/** - * Key: Ins - * - * @type {number} - * @constant - */ -raylib.KEY_INSERT = 260 - -/** - * Key: Del - * - * @type {number} - * @constant - */ -raylib.KEY_DELETE = 261 - -/** - * Key: Cursor right - * - * @type {number} - * @constant - */ -raylib.KEY_RIGHT = 262 - -/** - * Key: Cursor left - * - * @type {number} - * @constant - */ -raylib.KEY_LEFT = 263 - -/** - * Key: Cursor down - * - * @type {number} - * @constant - */ -raylib.KEY_DOWN = 264 - -/** - * Key: Cursor up - * - * @type {number} - * @constant - */ -raylib.KEY_UP = 265 - -/** - * Key: Page up - * - * @type {number} - * @constant - */ -raylib.KEY_PAGE_UP = 266 - -/** - * Key: Page down - * - * @type {number} - * @constant - */ -raylib.KEY_PAGE_DOWN = 267 - -/** - * Key: Home - * - * @type {number} - * @constant - */ -raylib.KEY_HOME = 268 - -/** - * Key: End - * - * @type {number} - * @constant - */ -raylib.KEY_END = 269 - -/** - * Key: Caps lock - * - * @type {number} - * @constant - */ -raylib.KEY_CAPS_LOCK = 280 - -/** - * Key: Scroll down - * - * @type {number} - * @constant - */ -raylib.KEY_SCROLL_LOCK = 281 - -/** - * Key: Num lock - * - * @type {number} - * @constant - */ -raylib.KEY_NUM_LOCK = 282 - -/** - * Key: Print screen - * - * @type {number} - * @constant - */ -raylib.KEY_PRINT_SCREEN = 283 - -/** - * Key: Pause - * - * @type {number} - * @constant - */ -raylib.KEY_PAUSE = 284 - -/** - * Key: F1 - * - * @type {number} - * @constant - */ -raylib.KEY_F1 = 290 - -/** - * Key: F2 - * - * @type {number} - * @constant - */ -raylib.KEY_F2 = 291 - -/** - * Key: F3 - * - * @type {number} - * @constant - */ -raylib.KEY_F3 = 292 - -/** - * Key: F4 - * - * @type {number} - * @constant - */ -raylib.KEY_F4 = 293 - -/** - * Key: F5 - * - * @type {number} - * @constant - */ -raylib.KEY_F5 = 294 - -/** - * Key: F6 - * - * @type {number} - * @constant - */ -raylib.KEY_F6 = 295 - -/** - * Key: F7 - * - * @type {number} - * @constant - */ -raylib.KEY_F7 = 296 - -/** - * Key: F8 - * - * @type {number} - * @constant - */ -raylib.KEY_F8 = 297 - -/** - * Key: F9 - * - * @type {number} - * @constant - */ -raylib.KEY_F9 = 298 - -/** - * Key: F10 - * - * @type {number} - * @constant - */ -raylib.KEY_F10 = 299 - -/** - * Key: F11 - * - * @type {number} - * @constant - */ -raylib.KEY_F11 = 300 - -/** - * Key: F12 - * - * @type {number} - * @constant - */ -raylib.KEY_F12 = 301 - -/** - * Key: Shift left - * - * @type {number} - * @constant - */ -raylib.KEY_LEFT_SHIFT = 340 - -/** - * Key: Control left - * - * @type {number} - * @constant - */ -raylib.KEY_LEFT_CONTROL = 341 - -/** - * Key: Alt left - * - * @type {number} - * @constant - */ -raylib.KEY_LEFT_ALT = 342 - -/** - * Key: Super left - * - * @type {number} - * @constant - */ -raylib.KEY_LEFT_SUPER = 343 - -/** - * Key: Shift right - * - * @type {number} - * @constant - */ -raylib.KEY_RIGHT_SHIFT = 344 - -/** - * Key: Control right - * - * @type {number} - * @constant - */ -raylib.KEY_RIGHT_CONTROL = 345 - -/** - * Key: Alt right - * - * @type {number} - * @constant - */ -raylib.KEY_RIGHT_ALT = 346 - -/** - * Key: Super right - * - * @type {number} - * @constant - */ -raylib.KEY_RIGHT_SUPER = 347 - -/** - * Key: KB menu - * - * @type {number} - * @constant - */ -raylib.KEY_KB_MENU = 348 - -/** - * Key: Keypad 0 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_0 = 320 - -/** - * Key: Keypad 1 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_1 = 321 - -/** - * Key: Keypad 2 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_2 = 322 - -/** - * Key: Keypad 3 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_3 = 323 - -/** - * Key: Keypad 4 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_4 = 324 - -/** - * Key: Keypad 5 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_5 = 325 - -/** - * Key: Keypad 6 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_6 = 326 - -/** - * Key: Keypad 7 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_7 = 327 - -/** - * Key: Keypad 8 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_8 = 328 - -/** - * Key: Keypad 9 - * - * @type {number} - * @constant - */ -raylib.KEY_KP_9 = 329 - -/** - * Key: Keypad . - * - * @type {number} - * @constant - */ -raylib.KEY_KP_DECIMAL = 330 - -/** - * Key: Keypad / - * - * @type {number} - * @constant - */ -raylib.KEY_KP_DIVIDE = 331 - -/** - * Key: Keypad * - * - * @type {number} - * @constant - */ -raylib.KEY_KP_MULTIPLY = 332 - -/** - * Key: Keypad - - * - * @type {number} - * @constant - */ -raylib.KEY_KP_SUBTRACT = 333 - -/** - * Key: Keypad + - * - * @type {number} - * @constant - */ -raylib.KEY_KP_ADD = 334 - -/** - * Key: Keypad Enter - * - * @type {number} - * @constant - */ -raylib.KEY_KP_ENTER = 335 - -/** - * Key: Keypad = - * - * @type {number} - * @constant - */ -raylib.KEY_KP_EQUAL = 336 - -/** - * Key: Android back button - * - * @type {number} - * @constant - */ -raylib.KEY_BACK = 4 - -/** - * Key: Android menu button - * - * @type {number} - * @constant - */ -raylib.KEY_MENU = 82 - -/** - * Key: Android volume up button - * - * @type {number} - * @constant - */ -raylib.KEY_VOLUME_UP = 24 - -/** - * Key: Android volume down button - * - * @type {number} - * @constant - */ -raylib.KEY_VOLUME_DOWN = 25 - -/** - * Mouse button left - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_LEFT = 0 - -/** - * Mouse button right - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_RIGHT = 1 - -/** - * Mouse button middle (pressed wheel) - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_MIDDLE = 2 - -/** - * Mouse button side (advanced mouse device) - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_SIDE = 3 - -/** - * Mouse button extra (advanced mouse device) - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_EXTRA = 4 - -/** - * Mouse button forward (advanced mouse device) - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_FORWARD = 5 - -/** - * Mouse button back (advanced mouse device) - * - * @type {number} - * @constant - */ -raylib.MOUSE_BUTTON_BACK = 6 - -/** - * Default pointer shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_DEFAULT = 0 - -/** - * Arrow shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_ARROW = 1 - -/** - * Text writing cursor shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_IBEAM = 2 - -/** - * Cross shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_CROSSHAIR = 3 - -/** - * Pointing hand cursor - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_POINTING_HAND = 4 - -/** - * Horizontal resize/move arrow shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_RESIZE_EW = 5 - -/** - * Vertical resize/move arrow shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_RESIZE_NS = 6 - -/** - * Top-left to bottom-right diagonal resize/move arrow shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_RESIZE_NWSE = 7 - -/** - * The top-right to bottom-left diagonal resize/move arrow shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_RESIZE_NESW = 8 - -/** - * The omnidirectional resize/move cursor shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_RESIZE_ALL = 9 - -/** - * The operation-not-allowed shape - * - * @type {number} - * @constant - */ -raylib.MOUSE_CURSOR_NOT_ALLOWED = 10 - -/** - * Unknown button, just for error checking - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_UNKNOWN = 0 - -/** - * Gamepad left DPAD up button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_FACE_UP = 1 - -/** - * Gamepad left DPAD right button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_FACE_RIGHT = 2 - -/** - * Gamepad left DPAD down button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_FACE_DOWN = 3 - -/** - * Gamepad left DPAD left button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_FACE_LEFT = 4 - -/** - * Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_FACE_UP = 5 - -/** - * Gamepad right button right (i.e. PS3: Square, Xbox: X) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_FACE_RIGHT = 6 - -/** - * Gamepad right button down (i.e. PS3: Cross, Xbox: A) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_FACE_DOWN = 7 - -/** - * Gamepad right button left (i.e. PS3: Circle, Xbox: B) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_FACE_LEFT = 8 - -/** - * Gamepad top/back trigger left (first), it could be a trailing button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_1 = 9 - -/** - * Gamepad top/back trigger left (second), it could be a trailing button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_2 = 10 - -/** - * Gamepad top/back trigger right (one), it could be a trailing button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_1 = 11 - -/** - * Gamepad top/back trigger right (second), it could be a trailing button - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_2 = 12 - -/** - * Gamepad center buttons, left one (i.e. PS3: Select) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_MIDDLE_LEFT = 13 - -/** - * Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_MIDDLE = 14 - -/** - * Gamepad center buttons, right one (i.e. PS3: Start) - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_MIDDLE_RIGHT = 15 - -/** - * Gamepad joystick pressed button left - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_LEFT_THUMB = 16 - -/** - * Gamepad joystick pressed button right - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_BUTTON_RIGHT_THUMB = 17 - -/** - * Gamepad left stick X axis - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_AXIS_LEFT_X = 0 - -/** - * Gamepad left stick Y axis - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_AXIS_LEFT_Y = 1 - -/** - * Gamepad right stick X axis - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_AXIS_RIGHT_X = 2 - -/** - * Gamepad right stick Y axis - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_AXIS_RIGHT_Y = 3 - -/** - * Gamepad back trigger left, pressure level: [1..-1] - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_AXIS_LEFT_TRIGGER = 4 - -/** - * Gamepad back trigger right, pressure level: [1..-1] - * - * @type {number} - * @constant - */ -raylib.GAMEPAD_AXIS_RIGHT_TRIGGER = 5 - -/** - * Albedo material (same as: MATERIAL_MAP_DIFFUSE) - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_ALBEDO = 0 - -/** - * Metalness material (same as: MATERIAL_MAP_SPECULAR) - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_METALNESS = 1 - -/** - * Normal material - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_NORMAL = 2 - -/** - * Roughness material - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_ROUGHNESS = 3 - -/** - * Ambient occlusion material - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_OCCLUSION = 4 - -/** - * Emission material - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_EMISSION = 5 - -/** - * Heightmap material - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_HEIGHT = 6 - -/** - * Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP) - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_CUBEMAP = 7 - -/** - * Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP) - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_IRRADIANCE = 8 - -/** - * Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP) - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_PREFILTER = 9 - -/** - * Brdf material - * - * @type {number} - * @constant - */ -raylib.MATERIAL_MAP_BRDF = 10 - -/** - * Shader location: vertex attribute: position - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VERTEX_POSITION = 0 - -/** - * Shader location: vertex attribute: texcoord01 - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VERTEX_TEXCOORD01 = 1 - -/** - * Shader location: vertex attribute: texcoord02 - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VERTEX_TEXCOORD02 = 2 - -/** - * Shader location: vertex attribute: normal - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VERTEX_NORMAL = 3 - -/** - * Shader location: vertex attribute: tangent - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VERTEX_TANGENT = 4 - -/** - * Shader location: vertex attribute: color - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VERTEX_COLOR = 5 - -/** - * Shader location: matrix uniform: model-view-projection - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MATRIX_MVP = 6 - -/** - * Shader location: matrix uniform: view (camera transform) - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MATRIX_VIEW = 7 - -/** - * Shader location: matrix uniform: projection - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MATRIX_PROJECTION = 8 - -/** - * Shader location: matrix uniform: model (transform) - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MATRIX_MODEL = 9 - -/** - * Shader location: matrix uniform: normal - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MATRIX_NORMAL = 10 - -/** - * Shader location: vector uniform: view - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_VECTOR_VIEW = 11 - -/** - * Shader location: vector uniform: diffuse color - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_COLOR_DIFFUSE = 12 - -/** - * Shader location: vector uniform: specular color - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_COLOR_SPECULAR = 13 - -/** - * Shader location: vector uniform: ambient color - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_COLOR_AMBIENT = 14 - -/** - * Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE) - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_ALBEDO = 15 - -/** - * Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR) - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_METALNESS = 16 - -/** - * Shader location: sampler2d texture: normal - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_NORMAL = 17 - -/** - * Shader location: sampler2d texture: roughness - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_ROUGHNESS = 18 - -/** - * Shader location: sampler2d texture: occlusion - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_OCCLUSION = 19 - -/** - * Shader location: sampler2d texture: emission - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_EMISSION = 20 - -/** - * Shader location: sampler2d texture: height - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_HEIGHT = 21 - -/** - * Shader location: samplerCube texture: cubemap - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_CUBEMAP = 22 - -/** - * Shader location: samplerCube texture: irradiance - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_IRRADIANCE = 23 - -/** - * Shader location: samplerCube texture: prefilter - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_PREFILTER = 24 - -/** - * Shader location: sampler2d texture: brdf - * - * @type {number} - * @constant - */ -raylib.SHADER_LOC_MAP_BRDF = 25 - -/** - * Shader uniform type: float - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_FLOAT = 0 - -/** - * Shader uniform type: vec2 (2 float) - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_VEC2 = 1 - -/** - * Shader uniform type: vec3 (3 float) - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_VEC3 = 2 - -/** - * Shader uniform type: vec4 (4 float) - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_VEC4 = 3 - -/** - * Shader uniform type: int - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_INT = 4 - -/** - * Shader uniform type: ivec2 (2 int) - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_IVEC2 = 5 - -/** - * Shader uniform type: ivec3 (3 int) - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_IVEC3 = 6 - -/** - * Shader uniform type: ivec4 (4 int) - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_IVEC4 = 7 - -/** - * Shader uniform type: sampler2d - * - * @type {number} - * @constant - */ -raylib.SHADER_UNIFORM_SAMPLER2D = 8 - -/** - * Shader attribute type: float - * - * @type {number} - * @constant - */ -raylib.SHADER_ATTRIB_FLOAT = 0 - -/** - * Shader attribute type: vec2 (2 float) - * - * @type {number} - * @constant - */ -raylib.SHADER_ATTRIB_VEC2 = 1 - -/** - * Shader attribute type: vec3 (3 float) - * - * @type {number} - * @constant - */ -raylib.SHADER_ATTRIB_VEC3 = 2 - -/** - * Shader attribute type: vec4 (4 float) - * - * @type {number} - * @constant - */ -raylib.SHADER_ATTRIB_VEC4 = 3 - -/** - * 8 bit per pixel (no alpha) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1 - -/** - * 8*2 bpp (2 channels) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2 - -/** - * 16 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3 - -/** - * 24 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4 - -/** - * 16 bpp (1 bit alpha) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5 - -/** - * 16 bpp (4 bit alpha) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6 - -/** - * 32 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7 - -/** - * 32 bpp (1 channel - float) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R32 = 8 - -/** - * 32*3 bpp (3 channels - float) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9 - -/** - * 32*4 bpp (4 channels - float) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10 - -/** - * 16 bpp (1 channel - half float) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R16 = 11 - -/** - * 16*3 bpp (3 channels - half float) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12 - -/** - * 16*4 bpp (4 channels - half float) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13 - -/** - * 4 bpp (no alpha) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 14 - -/** - * 4 bpp (1 bit alpha) - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15 - -/** - * 8 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16 - -/** - * 8 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17 - -/** - * 4 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 18 - -/** - * 4 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 19 - -/** - * 8 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20 - -/** - * 4 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 21 - -/** - * 4 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22 - -/** - * 8 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23 - -/** - * 2 bpp - * - * @type {number} - * @constant - */ -raylib.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24 - -/** - * No filter, just pixel approximation - * - * @type {number} - * @constant - */ -raylib.TEXTURE_FILTER_POINT = 0 - -/** - * Linear filtering - * - * @type {number} - * @constant - */ -raylib.TEXTURE_FILTER_BILINEAR = 1 - -/** - * Trilinear filtering (linear with mipmaps) - * - * @type {number} - * @constant - */ -raylib.TEXTURE_FILTER_TRILINEAR = 2 - -/** - * Anisotropic filtering 4x - * - * @type {number} - * @constant - */ -raylib.TEXTURE_FILTER_ANISOTROPIC_4X = 3 - -/** - * Anisotropic filtering 8x - * - * @type {number} - * @constant - */ -raylib.TEXTURE_FILTER_ANISOTROPIC_8X = 4 - -/** - * Anisotropic filtering 16x - * - * @type {number} - * @constant - */ -raylib.TEXTURE_FILTER_ANISOTROPIC_16X = 5 - -/** - * Repeats texture in tiled mode - * - * @type {number} - * @constant - */ -raylib.TEXTURE_WRAP_REPEAT = 0 - -/** - * Clamps texture to edge pixel in tiled mode - * - * @type {number} - * @constant - */ -raylib.TEXTURE_WRAP_CLAMP = 1 - -/** - * Mirrors and repeats the texture in tiled mode - * - * @type {number} - * @constant - */ -raylib.TEXTURE_WRAP_MIRROR_REPEAT = 2 - -/** - * Mirrors and clamps to border the texture in tiled mode - * - * @type {number} - * @constant - */ -raylib.TEXTURE_WRAP_MIRROR_CLAMP = 3 - -/** - * Automatically detect layout type - * - * @type {number} - * @constant - */ -raylib.CUBEMAP_LAYOUT_AUTO_DETECT = 0 - -/** - * Layout is defined by a vertical line with faces - * - * @type {number} - * @constant - */ -raylib.CUBEMAP_LAYOUT_LINE_VERTICAL = 1 - -/** - * Layout is defined by a horizontal line with faces - * - * @type {number} - * @constant - */ -raylib.CUBEMAP_LAYOUT_LINE_HORIZONTAL = 2 - -/** - * Layout is defined by a 3x4 cross with cubemap faces - * - * @type {number} - * @constant - */ -raylib.CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR = 3 - -/** - * Layout is defined by a 4x3 cross with cubemap faces - * - * @type {number} - * @constant - */ -raylib.CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE = 4 - -/** - * Layout is defined by a panorama image (equirrectangular map) - * - * @type {number} - * @constant - */ -raylib.CUBEMAP_LAYOUT_PANORAMA = 5 - -/** - * Default font generation, anti-aliased - * - * @type {number} - * @constant - */ -raylib.FONT_DEFAULT = 0 - -/** - * Bitmap font generation, no anti-aliasing - * - * @type {number} - * @constant - */ -raylib.FONT_BITMAP = 1 - -/** - * SDF font generation, requires external shader - * - * @type {number} - * @constant - */ -raylib.FONT_SDF = 2 - -/** - * Blend textures considering alpha (default) - * - * @type {number} - * @constant - */ -raylib.BLEND_ALPHA = 0 - -/** - * Blend textures adding colors - * - * @type {number} - * @constant - */ -raylib.BLEND_ADDITIVE = 1 - -/** - * Blend textures multiplying colors - * - * @type {number} - * @constant - */ -raylib.BLEND_MULTIPLIED = 2 - -/** - * Blend textures adding colors (alternative) - * - * @type {number} - * @constant - */ -raylib.BLEND_ADD_COLORS = 3 - -/** - * Blend textures subtracting colors (alternative) - * - * @type {number} - * @constant - */ -raylib.BLEND_SUBTRACT_COLORS = 4 - -/** - * Blend premultiplied textures considering alpha - * - * @type {number} - * @constant - */ -raylib.BLEND_ALPHA_PREMULTIPLY = 5 - -/** - * Blend textures using custom src/dst factors (use rlSetBlendFactors()) - * - * @type {number} - * @constant - */ -raylib.BLEND_CUSTOM = 6 - -/** - * Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate()) - * - * @type {number} - * @constant - */ -raylib.BLEND_CUSTOM_SEPARATE = 7 - -/** - * No gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_NONE = 0 - -/** - * Tap gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_TAP = 1 - -/** - * Double tap gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_DOUBLETAP = 2 - -/** - * Hold gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_HOLD = 4 - -/** - * Drag gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_DRAG = 8 - -/** - * Swipe right gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_SWIPE_RIGHT = 16 - -/** - * Swipe left gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_SWIPE_LEFT = 32 - -/** - * Swipe up gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_SWIPE_UP = 64 - -/** - * Swipe down gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_SWIPE_DOWN = 128 - -/** - * Pinch in gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_PINCH_IN = 256 - -/** - * Pinch out gesture - * - * @type {number} - * @constant - */ -raylib.GESTURE_PINCH_OUT = 512 - -/** - * Custom camera - * - * @type {number} - * @constant - */ -raylib.CAMERA_CUSTOM = 0 - -/** - * Free camera - * - * @type {number} - * @constant - */ -raylib.CAMERA_FREE = 1 - -/** - * Orbital camera - * - * @type {number} - * @constant - */ -raylib.CAMERA_ORBITAL = 2 - -/** - * First person camera - * - * @type {number} - * @constant - */ -raylib.CAMERA_FIRST_PERSON = 3 - -/** - * Third person camera - * - * @type {number} - * @constant - */ -raylib.CAMERA_THIRD_PERSON = 4 - -/** - * Perspective projection - * - * @type {number} - * @constant - */ -raylib.CAMERA_PERSPECTIVE = 0 - -/** - * Orthographic projection - * - * @type {number} - * @constant - */ -raylib.CAMERA_ORTHOGRAPHIC = 1 - -/** - * Npatch layout: 3x3 tiles - * - * @type {number} - * @constant - */ -raylib.NPATCH_NINE_PATCH = 0 - -/** - * Npatch layout: 1x3 tiles - * - * @type {number} - * @constant - */ -raylib.NPATCH_THREE_PATCH_VERTICAL = 1 - -/** - * Npatch layout: 3x1 tiles - * - * @type {number} - * @constant - */ -raylib.NPATCH_THREE_PATCH_HORIZONTAL = 2 - -/** - * - * - * @type {number} - * @constant - */ -raylib.STATE_NORMAL = 0 - -/** - * - * - * @type {number} - * @constant - */ -raylib.STATE_FOCUSED = 1 - -/** - * - * - * @type {number} - * @constant - */ -raylib.STATE_PRESSED = 2 - -/** - * - * - * @type {number} - * @constant - */ -raylib.STATE_DISABLED = 3 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_ALIGN_LEFT = 0 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_ALIGN_CENTER = 1 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_ALIGN_RIGHT = 2 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_ALIGN_TOP = 0 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_ALIGN_MIDDLE = 1 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_ALIGN_BOTTOM = 2 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_WRAP_NONE = 0 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_WRAP_CHAR = 1 - -/** - * - * - * @type {number} - * @constant - */ -raylib.TEXT_WRAP_WORD = 2 - -/** - * - * - * @type {number} - * @constant - */ -raylib.DEFAULT = 0 - -/** - * Used also for: LABELBUTTON - * - * @type {number} - * @constant - */ -raylib.LABEL = 1 - -/** - * - * - * @type {number} - * @constant - */ -raylib.BUTTON = 2 - -/** - * Used also for: TOGGLEGROUP - * - * @type {number} - * @constant - */ -raylib.TOGGLE = 3 - -/** - * Used also for: SLIDERBAR, TOGGLESLIDER - * - * @type {number} - * @constant - */ -raylib.SLIDER = 4 - -/** - * - * - * @type {number} - * @constant - */ -raylib.PROGRESSBAR = 5 - -/** - * - * - * @type {number} - * @constant - */ -raylib.CHECKBOX = 6 - -/** - * - * - * @type {number} - * @constant - */ -raylib.COMBOBOX = 7 - -/** - * - * - * @type {number} - * @constant - */ -raylib.DROPDOWNBOX = 8 - -/** - * Used also for: TEXTBOXMULTI - * - * @type {number} - * @constant - */ -raylib.TEXTBOX = 9 - -/** - * - * - * @type {number} - * @constant - */ -raylib.VALUEBOX = 10 - -/** - * Uses: BUTTON, VALUEBOX + * Vector3, 3 components * - * @type {number} - * @constant - */ -raylib.SPINNER = 11 - -/** - * + * @param {number} x - Vector x component + * @param {number} y - Vector y component + * @param {number} z - Vector z component * - * @type {number} - * @constant + * @return {Vector3} The new Vector3. */ -raylib.LISTVIEW = 12 +function Vector3(x,y,z) { + return {x,y,z} +} +raylib.Vector3 = Vector3 /** - * + * Vector4, 4 components * - * @type {number} - * @constant - */ -raylib.COLORPICKER = 13 - -/** - * + * @param {number} x - Vector x component + * @param {number} y - Vector y component + * @param {number} z - Vector z component + * @param {number} w - Vector w component * - * @type {number} - * @constant + * @return {Vector4} The new Vector4. */ -raylib.SCROLLBAR = 14 +function Vector4(x,y,z,w) { + return {x,y,z,w} +} +raylib.Vector4 = Vector4 /** - * + * Rectangle, 4 components * - * @type {number} - * @constant + * @param {number} x - Rectangle top-left corner position x + * @param {number} y - Rectangle top-left corner position y + * @param {number} width - Rectangle width + * @param {number} height - Rectangle height + * + * @return {Rectangle} The new Rectangle. */ -raylib.STATUSBAR = 15 +function Rectangle(x,y,width,height) { + return {x,y,width,height} +} +raylib.Rectangle = Rectangle /** - * Control border color in STATE_NORMAL + * Camera2D, defines position/orientation in 2d space * - * @type {number} - * @constant + * @param {Vector2} offset - Camera offset (displacement from target) + * @param {Vector2} target - Camera target (rotation and zoom origin) + * @param {number} rotation - Camera rotation in degrees + * @param {number} zoom - Camera zoom (scaling), should be 1.0f by default + * + * @return {Camera2D} The new Camera2D. */ -raylib.BORDER_COLOR_NORMAL = 0 +function Camera2D(offset,target,rotation,zoom) { + return {offset,target,rotation,zoom} +} +raylib.Camera2D = Camera2D /** - * Control base color in STATE_NORMAL + * Camera, defines position/orientation in 3d space * - * @type {number} - * @constant + * @param {Vector3} position - Camera position + * @param {Vector3} target - Camera target it looks-at + * @param {Vector3} up - Camera up vector (rotation over its axis) + * @param {number} fovy - Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic + * @param {number} projection - Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC + * + * @return {Camera3D} The new Camera3D. */ -raylib.BASE_COLOR_NORMAL = 1 +function Camera3D(position,target,up,fovy,projection) { + return {position,target,up,fovy,projection} +} +raylib.Camera3D = Camera3D +raylib.Camera = raylib.Camera3D + +// WRAPPED TYPED SHADER FUNCTIONS /** - * Control text color in STATE_NORMAL - * - * @type {number} - * @constant + * Set shader uniform value float + * + * @param {Shader} shader + * @param {number} locIndex + * @param {number} value + * + * @returns {undefined} */ -raylib.TEXT_COLOR_NORMAL = 2 +function SetShaderFloat(shader, locIndex, value) { + return r.BindSetShaderFloat( + shader.id, + shader.locs, + locIndex, + value + ) +} +raylib.SetShaderFloat = SetShaderFloat /** - * Control border color in STATE_FOCUSED - * - * @type {number} - * @constant + * Set shader uniform value float + * + * @param {Shader} shader + * @param {number} locIndex + * @param {number} value + * + * @returns {undefined} */ -raylib.BORDER_COLOR_FOCUSED = 3 +function SetShaderInt(shader, locIndex, value) { + return r.BindSetShaderInt( + shader.id, + shader.locs, + locIndex, + value + ) +} +raylib.SetShaderInt = SetShaderInt /** - * Control base color in STATE_FOCUSED - * - * @type {number} - * @constant + * Set shader uniform value vector2 + * + * @param {Shader} shader + * @param {number} locIndex + * @param {Vector2} value + * + * @returns {undefined} */ -raylib.BASE_COLOR_FOCUSED = 4 +function SetShaderVec2(shader, locIndex, value) { + return r.BindSetShaderVec2( + shader.id, + shader.locs, + locIndex, + value.x, + value.y + ) +} +raylib.SetShaderVec2 = SetShaderVec2 /** - * Control text color in STATE_FOCUSED - * - * @type {number} - * @constant + * Set shader uniform value vector3 + * + * @param {Shader} shader + * @param {number} locIndex + * @param {Vector3} value + * + * @returns {undefined} */ -raylib.TEXT_COLOR_FOCUSED = 5 +function SetShaderVec3(shader, locIndex, value) { + return r.BindSetShaderVec3( + shader.id, + shader.locs, + locIndex, + value.x, + value.y, + value.z + ) +} +raylib.SetShaderVec3 = SetShaderVec3 /** - * Control border color in STATE_PRESSED - * - * @type {number} - * @constant + * Set shader uniform value vector4 + * + * @param {Shader} shader + * @param {number} locIndex + * @param {Vector4} value + * + * @returns {undefined} */ -raylib.BORDER_COLOR_PRESSED = 6 +function SetShaderVec4(shader, locIndex, value) { + return r.BindSetShaderVec4( + shader.id, + shader.locs, + locIndex, + value.x, + value.y, + value.z, + value.w + ) +} +raylib.SetShaderVec4 = SetShaderVec4 /** - * Control base color in STATE_PRESSED + * Set to try enabling V-Sync on GPU * * @type {number} * @constant */ -raylib.BASE_COLOR_PRESSED = 7 +raylib.FLAG_VSYNC_HINT = 64 /** - * Control text color in STATE_PRESSED + * Set to run program in fullscreen * * @type {number} * @constant */ -raylib.TEXT_COLOR_PRESSED = 8 +raylib.FLAG_FULLSCREEN_MODE = 2 /** - * Control border color in STATE_DISABLED + * Set to allow resizable window * * @type {number} * @constant */ -raylib.BORDER_COLOR_DISABLED = 9 +raylib.FLAG_WINDOW_RESIZABLE = 4 /** - * Control base color in STATE_DISABLED + * Set to disable window decoration (frame and buttons) * * @type {number} * @constant */ -raylib.BASE_COLOR_DISABLED = 10 +raylib.FLAG_WINDOW_UNDECORATED = 8 /** - * Control text color in STATE_DISABLED + * Set to hide window * * @type {number} * @constant */ -raylib.TEXT_COLOR_DISABLED = 11 +raylib.FLAG_WINDOW_HIDDEN = 128 /** - * Control border size, 0 for no border + * Set to minimize window (iconify) * * @type {number} * @constant */ -raylib.BORDER_WIDTH = 12 +raylib.FLAG_WINDOW_MINIMIZED = 512 /** - * Control text padding, not considering border + * Set to maximize window (expanded to monitor) * * @type {number} * @constant */ -raylib.TEXT_PADDING = 13 +raylib.FLAG_WINDOW_MAXIMIZED = 1024 /** - * Control text horizontal alignment inside control text bound (after border and padding) + * Set to window non focused * * @type {number} * @constant */ -raylib.TEXT_ALIGNMENT = 14 +raylib.FLAG_WINDOW_UNFOCUSED = 2048 /** - * Text size (glyphs max height) + * Set to window always on top * * @type {number} * @constant */ -raylib.TEXT_SIZE = 16 +raylib.FLAG_WINDOW_TOPMOST = 4096 /** - * Text spacing between glyphs + * Set to allow windows running while minimized * * @type {number} * @constant */ -raylib.TEXT_SPACING = 17 +raylib.FLAG_WINDOW_ALWAYS_RUN = 256 /** - * Line control color + * Set to allow transparent framebuffer * * @type {number} * @constant */ -raylib.LINE_COLOR = 18 +raylib.FLAG_WINDOW_TRANSPARENT = 16 /** - * Background color + * Set to support HighDPI * * @type {number} * @constant */ -raylib.BACKGROUND_COLOR = 19 +raylib.FLAG_WINDOW_HIGHDPI = 8192 /** - * Text spacing between lines + * Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED * * @type {number} * @constant */ -raylib.TEXT_LINE_SPACING = 20 +raylib.FLAG_WINDOW_MOUSE_PASSTHROUGH = 16384 /** - * Text vertical alignment inside text bounds (after border and padding) + * Set to run program in borderless windowed mode * * @type {number} * @constant */ -raylib.TEXT_ALIGNMENT_VERTICAL = 21 +raylib.FLAG_BORDERLESS_WINDOWED_MODE = 32768 /** - * Text wrap-mode inside text bounds + * Set to try enabling MSAA 4X * * @type {number} * @constant */ -raylib.TEXT_WRAP_MODE = 22 +raylib.FLAG_MSAA_4X_HINT = 32 /** - * ToggleGroup separation between toggles + * Set to try enabling interlaced video format (for V3D) * * @type {number} * @constant */ -raylib.GROUP_PADDING = 16 +raylib.FLAG_INTERLACED_HINT = 65536 /** - * Slider size of internal bar + * Display all logs * * @type {number} * @constant */ -raylib.SLIDER_WIDTH = 16 +raylib.LOG_ALL = 0 /** - * Slider/SliderBar internal bar padding + * Trace logging, intended for internal use only * * @type {number} * @constant */ -raylib.SLIDER_PADDING = 17 +raylib.LOG_TRACE = 1 /** - * ProgressBar internal padding + * Debug logging, used for internal debugging, it should be disabled on release builds * * @type {number} * @constant */ -raylib.PROGRESS_PADDING = 16 +raylib.LOG_DEBUG = 2 /** - * ScrollBar arrows size + * Info logging, used for program execution info * * @type {number} * @constant */ -raylib.ARROWS_SIZE = 16 +raylib.LOG_INFO = 3 /** - * ScrollBar arrows visible + * Warning logging, used on recoverable failures * * @type {number} * @constant */ -raylib.ARROWS_VISIBLE = 17 +raylib.LOG_WARNING = 4 /** - * ScrollBar slider internal padding + * Error logging, used on unrecoverable failures * * @type {number} * @constant */ -raylib.SCROLL_SLIDER_PADDING = 18 +raylib.LOG_ERROR = 5 /** - * ScrollBar slider size + * Fatal logging, used to abort program: exit(EXIT_FAILURE) * * @type {number} * @constant */ -raylib.SCROLL_SLIDER_SIZE = 19 +raylib.LOG_FATAL = 6 /** - * ScrollBar scroll padding from arrows + * Disable logging * * @type {number} * @constant */ -raylib.SCROLL_PADDING = 20 +raylib.LOG_NONE = 7 /** - * ScrollBar scrolling speed + * Key: NULL, used for no key pressed * * @type {number} * @constant */ -raylib.SCROLL_SPEED = 21 +raylib.KEY_NULL = 0 /** - * CheckBox internal check padding + * Key: ' * * @type {number} * @constant */ -raylib.CHECK_PADDING = 16 +raylib.KEY_APOSTROPHE = 39 /** - * ComboBox right button width + * Key: , * * @type {number} * @constant */ -raylib.COMBO_BUTTON_WIDTH = 16 +raylib.KEY_COMMA = 44 /** - * ComboBox button separation + * Key: - * * @type {number} * @constant */ -raylib.COMBO_BUTTON_SPACING = 17 +raylib.KEY_MINUS = 45 /** - * DropdownBox arrow separation from border and items + * Key: . * * @type {number} * @constant */ -raylib.ARROW_PADDING = 16 +raylib.KEY_PERIOD = 46 /** - * DropdownBox items separation + * Key: / * * @type {number} * @constant */ -raylib.DROPDOWN_ITEMS_SPACING = 17 +raylib.KEY_SLASH = 47 /** - * TextBox in read-only mode: 0-text editable, 1-text no-editable + * Key: 0 * * @type {number} * @constant */ -raylib.TEXT_READONLY = 16 +raylib.KEY_ZERO = 48 /** - * Spinner left/right buttons width + * Key: 1 * * @type {number} * @constant */ -raylib.SPIN_BUTTON_WIDTH = 16 +raylib.KEY_ONE = 49 /** - * Spinner buttons separation + * Key: 2 * * @type {number} * @constant */ -raylib.SPIN_BUTTON_SPACING = 17 +raylib.KEY_TWO = 50 /** - * ListView items height + * Key: 3 * * @type {number} * @constant */ -raylib.LIST_ITEMS_HEIGHT = 16 +raylib.KEY_THREE = 51 /** - * ListView items separation + * Key: 4 * * @type {number} * @constant */ -raylib.LIST_ITEMS_SPACING = 17 +raylib.KEY_FOUR = 52 /** - * ListView scrollbar size (usually width) + * Key: 5 * * @type {number} * @constant */ -raylib.SCROLLBAR_WIDTH = 18 +raylib.KEY_FIVE = 53 /** - * ListView scrollbar side (0-SCROLLBAR_LEFT_SIDE, 1-SCROLLBAR_RIGHT_SIDE) + * Key: 6 * * @type {number} * @constant */ -raylib.SCROLLBAR_SIDE = 19 +raylib.KEY_SIX = 54 /** - * + * Key: 7 * * @type {number} * @constant */ -raylib.COLOR_SELECTOR_SIZE = 16 +raylib.KEY_SEVEN = 55 /** - * ColorPicker right hue bar width + * Key: 8 * * @type {number} * @constant */ -raylib.HUEBAR_WIDTH = 17 +raylib.KEY_EIGHT = 56 /** - * ColorPicker right hue bar separation from panel + * Key: 9 * * @type {number} * @constant */ -raylib.HUEBAR_PADDING = 18 +raylib.KEY_NINE = 57 /** - * ColorPicker right hue bar selector height + * Key: ; * * @type {number} * @constant */ -raylib.HUEBAR_SELECTOR_HEIGHT = 19 +raylib.KEY_SEMICOLON = 59 /** - * ColorPicker right hue bar selector overflow + * Key: = * * @type {number} * @constant */ -raylib.HUEBAR_SELECTOR_OVERFLOW = 20 +raylib.KEY_EQUAL = 61 /** - * + * Key: A | a * * @type {number} * @constant */ -raylib.ICON_NONE = 0 +raylib.KEY_A = 65 /** - * + * Key: B | b * * @type {number} * @constant */ -raylib.ICON_FOLDER_FILE_OPEN = 1 +raylib.KEY_B = 66 /** - * + * Key: C | c * * @type {number} * @constant */ -raylib.ICON_FILE_SAVE_CLASSIC = 2 +raylib.KEY_C = 67 /** - * + * Key: D | d * * @type {number} * @constant */ -raylib.ICON_FOLDER_OPEN = 3 +raylib.KEY_D = 68 /** - * + * Key: E | e * * @type {number} * @constant */ -raylib.ICON_FOLDER_SAVE = 4 +raylib.KEY_E = 69 /** - * + * Key: F | f * * @type {number} * @constant */ -raylib.ICON_FILE_OPEN = 5 +raylib.KEY_F = 70 /** - * + * Key: G | g * * @type {number} * @constant */ -raylib.ICON_FILE_SAVE = 6 +raylib.KEY_G = 71 /** - * + * Key: H | h * * @type {number} * @constant */ -raylib.ICON_FILE_EXPORT = 7 +raylib.KEY_H = 72 /** - * + * Key: I | i * * @type {number} * @constant */ -raylib.ICON_FILE_ADD = 8 +raylib.KEY_I = 73 /** - * + * Key: J | j * * @type {number} * @constant */ -raylib.ICON_FILE_DELETE = 9 +raylib.KEY_J = 74 /** - * + * Key: K | k * * @type {number} * @constant */ -raylib.ICON_FILETYPE_TEXT = 10 +raylib.KEY_K = 75 /** - * + * Key: L | l * * @type {number} * @constant */ -raylib.ICON_FILETYPE_AUDIO = 11 +raylib.KEY_L = 76 /** - * + * Key: M | m * * @type {number} * @constant */ -raylib.ICON_FILETYPE_IMAGE = 12 +raylib.KEY_M = 77 /** - * + * Key: N | n * * @type {number} * @constant */ -raylib.ICON_FILETYPE_PLAY = 13 +raylib.KEY_N = 78 /** - * + * Key: O | o * * @type {number} * @constant */ -raylib.ICON_FILETYPE_VIDEO = 14 +raylib.KEY_O = 79 /** - * + * Key: P | p * * @type {number} * @constant */ -raylib.ICON_FILETYPE_INFO = 15 +raylib.KEY_P = 80 /** - * + * Key: Q | q * * @type {number} * @constant */ -raylib.ICON_FILE_COPY = 16 +raylib.KEY_Q = 81 /** - * + * Key: R | r * * @type {number} * @constant */ -raylib.ICON_FILE_CUT = 17 +raylib.KEY_R = 82 /** - * + * Key: S | s * * @type {number} * @constant */ -raylib.ICON_FILE_PASTE = 18 +raylib.KEY_S = 83 /** - * + * Key: T | t * * @type {number} * @constant */ -raylib.ICON_CURSOR_HAND = 19 +raylib.KEY_T = 84 /** - * + * Key: U | u * * @type {number} * @constant */ -raylib.ICON_CURSOR_POINTER = 20 +raylib.KEY_U = 85 /** - * + * Key: V | v * * @type {number} * @constant */ -raylib.ICON_CURSOR_CLASSIC = 21 +raylib.KEY_V = 86 /** - * + * Key: W | w * * @type {number} * @constant */ -raylib.ICON_PENCIL = 22 +raylib.KEY_W = 87 /** - * + * Key: X | x * * @type {number} * @constant */ -raylib.ICON_PENCIL_BIG = 23 +raylib.KEY_X = 88 /** - * + * Key: Y | y * * @type {number} * @constant */ -raylib.ICON_BRUSH_CLASSIC = 24 +raylib.KEY_Y = 89 /** - * + * Key: Z | z * * @type {number} * @constant */ -raylib.ICON_BRUSH_PAINTER = 25 +raylib.KEY_Z = 90 /** - * + * Key: [ * * @type {number} * @constant */ -raylib.ICON_WATER_DROP = 26 +raylib.KEY_LEFT_BRACKET = 91 /** - * + * Key: '\' * * @type {number} * @constant */ -raylib.ICON_COLOR_PICKER = 27 +raylib.KEY_BACKSLASH = 92 /** - * + * Key: ] * * @type {number} * @constant */ -raylib.ICON_RUBBER = 28 +raylib.KEY_RIGHT_BRACKET = 93 /** - * + * Key: ` * * @type {number} * @constant */ -raylib.ICON_COLOR_BUCKET = 29 +raylib.KEY_GRAVE = 96 /** - * + * Key: Space * * @type {number} * @constant */ -raylib.ICON_TEXT_T = 30 +raylib.KEY_SPACE = 32 /** - * + * Key: Esc * * @type {number} * @constant */ -raylib.ICON_TEXT_A = 31 +raylib.KEY_ESCAPE = 256 /** - * + * Key: Enter * * @type {number} * @constant */ -raylib.ICON_SCALE = 32 +raylib.KEY_ENTER = 257 /** - * + * Key: Tab * * @type {number} * @constant */ -raylib.ICON_RESIZE = 33 +raylib.KEY_TAB = 258 /** - * + * Key: Backspace * * @type {number} * @constant */ -raylib.ICON_FILTER_POINT = 34 +raylib.KEY_BACKSPACE = 259 /** - * + * Key: Ins * * @type {number} * @constant */ -raylib.ICON_FILTER_BILINEAR = 35 +raylib.KEY_INSERT = 260 /** - * + * Key: Del * * @type {number} * @constant */ -raylib.ICON_CROP = 36 +raylib.KEY_DELETE = 261 /** - * + * Key: Cursor right * * @type {number} * @constant */ -raylib.ICON_CROP_ALPHA = 37 +raylib.KEY_RIGHT = 262 /** - * + * Key: Cursor left * * @type {number} * @constant */ -raylib.ICON_SQUARE_TOGGLE = 38 +raylib.KEY_LEFT = 263 /** - * + * Key: Cursor down * * @type {number} * @constant */ -raylib.ICON_SYMMETRY = 39 +raylib.KEY_DOWN = 264 /** - * + * Key: Cursor up * * @type {number} * @constant */ -raylib.ICON_SYMMETRY_HORIZONTAL = 40 +raylib.KEY_UP = 265 /** - * + * Key: Page up * * @type {number} * @constant */ -raylib.ICON_SYMMETRY_VERTICAL = 41 +raylib.KEY_PAGE_UP = 266 /** - * + * Key: Page down * * @type {number} * @constant */ -raylib.ICON_LENS = 42 +raylib.KEY_PAGE_DOWN = 267 /** - * + * Key: Home * * @type {number} * @constant */ -raylib.ICON_LENS_BIG = 43 +raylib.KEY_HOME = 268 /** - * + * Key: End * * @type {number} * @constant */ -raylib.ICON_EYE_ON = 44 +raylib.KEY_END = 269 /** - * + * Key: Caps lock * * @type {number} * @constant */ -raylib.ICON_EYE_OFF = 45 +raylib.KEY_CAPS_LOCK = 280 /** - * + * Key: Scroll down * * @type {number} * @constant */ -raylib.ICON_FILTER_TOP = 46 +raylib.KEY_SCROLL_LOCK = 281 /** - * + * Key: Num lock * * @type {number} * @constant */ -raylib.ICON_FILTER = 47 +raylib.KEY_NUM_LOCK = 282 /** - * + * Key: Print screen * * @type {number} * @constant */ -raylib.ICON_TARGET_POINT = 48 +raylib.KEY_PRINT_SCREEN = 283 /** - * + * Key: Pause * * @type {number} * @constant */ -raylib.ICON_TARGET_SMALL = 49 +raylib.KEY_PAUSE = 284 /** - * + * Key: F1 * * @type {number} * @constant */ -raylib.ICON_TARGET_BIG = 50 +raylib.KEY_F1 = 290 /** - * + * Key: F2 * * @type {number} * @constant */ -raylib.ICON_TARGET_MOVE = 51 +raylib.KEY_F2 = 291 /** - * + * Key: F3 * * @type {number} * @constant */ -raylib.ICON_CURSOR_MOVE = 52 +raylib.KEY_F3 = 292 /** - * + * Key: F4 * * @type {number} * @constant */ -raylib.ICON_CURSOR_SCALE = 53 +raylib.KEY_F4 = 293 /** - * + * Key: F5 * * @type {number} * @constant */ -raylib.ICON_CURSOR_SCALE_RIGHT = 54 +raylib.KEY_F5 = 294 /** - * + * Key: F6 * * @type {number} * @constant */ -raylib.ICON_CURSOR_SCALE_LEFT = 55 +raylib.KEY_F6 = 295 /** - * + * Key: F7 * * @type {number} * @constant */ -raylib.ICON_UNDO = 56 +raylib.KEY_F7 = 296 /** - * + * Key: F8 * * @type {number} * @constant */ -raylib.ICON_REDO = 57 +raylib.KEY_F8 = 297 /** - * + * Key: F9 * * @type {number} * @constant */ -raylib.ICON_REREDO = 58 +raylib.KEY_F9 = 298 /** - * + * Key: F10 * * @type {number} * @constant */ -raylib.ICON_MUTATE = 59 +raylib.KEY_F10 = 299 /** - * + * Key: F11 * * @type {number} * @constant */ -raylib.ICON_ROTATE = 60 +raylib.KEY_F11 = 300 /** - * + * Key: F12 * * @type {number} * @constant */ -raylib.ICON_REPEAT = 61 +raylib.KEY_F12 = 301 /** - * + * Key: Shift left * * @type {number} * @constant */ -raylib.ICON_SHUFFLE = 62 +raylib.KEY_LEFT_SHIFT = 340 /** - * + * Key: Control left * * @type {number} * @constant */ -raylib.ICON_EMPTYBOX = 63 +raylib.KEY_LEFT_CONTROL = 341 /** - * + * Key: Alt left * * @type {number} * @constant */ -raylib.ICON_TARGET = 64 +raylib.KEY_LEFT_ALT = 342 /** - * + * Key: Super left * * @type {number} * @constant */ -raylib.ICON_TARGET_SMALL_FILL = 65 +raylib.KEY_LEFT_SUPER = 343 /** - * + * Key: Shift right * * @type {number} * @constant */ -raylib.ICON_TARGET_BIG_FILL = 66 +raylib.KEY_RIGHT_SHIFT = 344 /** - * + * Key: Control right * * @type {number} * @constant */ -raylib.ICON_TARGET_MOVE_FILL = 67 +raylib.KEY_RIGHT_CONTROL = 345 /** - * + * Key: Alt right * * @type {number} * @constant */ -raylib.ICON_CURSOR_MOVE_FILL = 68 +raylib.KEY_RIGHT_ALT = 346 /** - * + * Key: Super right * * @type {number} * @constant */ -raylib.ICON_CURSOR_SCALE_FILL = 69 +raylib.KEY_RIGHT_SUPER = 347 /** - * + * Key: KB menu * * @type {number} * @constant */ -raylib.ICON_CURSOR_SCALE_RIGHT_FILL = 70 +raylib.KEY_KB_MENU = 348 /** - * + * Key: Keypad 0 * * @type {number} * @constant */ -raylib.ICON_CURSOR_SCALE_LEFT_FILL = 71 +raylib.KEY_KP_0 = 320 /** - * + * Key: Keypad 1 * * @type {number} * @constant */ -raylib.ICON_UNDO_FILL = 72 +raylib.KEY_KP_1 = 321 /** - * + * Key: Keypad 2 * * @type {number} * @constant */ -raylib.ICON_REDO_FILL = 73 +raylib.KEY_KP_2 = 322 /** - * + * Key: Keypad 3 * * @type {number} * @constant */ -raylib.ICON_REREDO_FILL = 74 +raylib.KEY_KP_3 = 323 /** - * + * Key: Keypad 4 * * @type {number} * @constant */ -raylib.ICON_MUTATE_FILL = 75 +raylib.KEY_KP_4 = 324 /** - * + * Key: Keypad 5 * * @type {number} * @constant */ -raylib.ICON_ROTATE_FILL = 76 +raylib.KEY_KP_5 = 325 /** - * + * Key: Keypad 6 * * @type {number} * @constant */ -raylib.ICON_REPEAT_FILL = 77 +raylib.KEY_KP_6 = 326 /** - * + * Key: Keypad 7 * * @type {number} * @constant */ -raylib.ICON_SHUFFLE_FILL = 78 +raylib.KEY_KP_7 = 327 /** - * + * Key: Keypad 8 * * @type {number} * @constant */ -raylib.ICON_EMPTYBOX_SMALL = 79 +raylib.KEY_KP_8 = 328 /** - * + * Key: Keypad 9 * * @type {number} * @constant */ -raylib.ICON_BOX = 80 +raylib.KEY_KP_9 = 329 /** - * + * Key: Keypad . * * @type {number} * @constant */ -raylib.ICON_BOX_TOP = 81 +raylib.KEY_KP_DECIMAL = 330 /** - * + * Key: Keypad / * * @type {number} * @constant */ -raylib.ICON_BOX_TOP_RIGHT = 82 +raylib.KEY_KP_DIVIDE = 331 /** - * + * Key: Keypad * * * @type {number} * @constant */ -raylib.ICON_BOX_RIGHT = 83 +raylib.KEY_KP_MULTIPLY = 332 /** - * + * Key: Keypad - * * @type {number} * @constant */ -raylib.ICON_BOX_BOTTOM_RIGHT = 84 +raylib.KEY_KP_SUBTRACT = 333 /** - * + * Key: Keypad + * * @type {number} * @constant */ -raylib.ICON_BOX_BOTTOM = 85 +raylib.KEY_KP_ADD = 334 /** - * + * Key: Keypad Enter * * @type {number} * @constant */ -raylib.ICON_BOX_BOTTOM_LEFT = 86 +raylib.KEY_KP_ENTER = 335 /** - * + * Key: Keypad = * * @type {number} * @constant */ -raylib.ICON_BOX_LEFT = 87 +raylib.KEY_KP_EQUAL = 336 /** - * + * Key: Android back button * * @type {number} * @constant */ -raylib.ICON_BOX_TOP_LEFT = 88 +raylib.KEY_BACK = 4 /** - * + * Key: Android menu button * * @type {number} * @constant */ -raylib.ICON_BOX_CENTER = 89 +raylib.KEY_MENU = 82 /** - * + * Key: Android volume up button * * @type {number} * @constant */ -raylib.ICON_BOX_CIRCLE_MASK = 90 +raylib.KEY_VOLUME_UP = 24 /** - * + * Key: Android volume down button * * @type {number} * @constant */ -raylib.ICON_POT = 91 +raylib.KEY_VOLUME_DOWN = 25 /** - * + * Mouse button left * * @type {number} * @constant */ -raylib.ICON_ALPHA_MULTIPLY = 92 +raylib.MOUSE_BUTTON_LEFT = 0 /** - * + * Mouse button right * * @type {number} * @constant */ -raylib.ICON_ALPHA_CLEAR = 93 +raylib.MOUSE_BUTTON_RIGHT = 1 /** - * + * Mouse button middle (pressed wheel) * * @type {number} * @constant */ -raylib.ICON_DITHERING = 94 +raylib.MOUSE_BUTTON_MIDDLE = 2 /** - * + * Mouse button side (advanced mouse device) * * @type {number} * @constant */ -raylib.ICON_MIPMAPS = 95 +raylib.MOUSE_BUTTON_SIDE = 3 /** - * + * Mouse button extra (advanced mouse device) * * @type {number} * @constant */ -raylib.ICON_BOX_GRID = 96 +raylib.MOUSE_BUTTON_EXTRA = 4 /** - * + * Mouse button forward (advanced mouse device) * * @type {number} * @constant */ -raylib.ICON_GRID = 97 +raylib.MOUSE_BUTTON_FORWARD = 5 /** - * + * Mouse button back (advanced mouse device) * * @type {number} * @constant */ -raylib.ICON_BOX_CORNERS_SMALL = 98 +raylib.MOUSE_BUTTON_BACK = 6 /** - * + * Default pointer shape * * @type {number} * @constant */ -raylib.ICON_BOX_CORNERS_BIG = 99 +raylib.MOUSE_CURSOR_DEFAULT = 0 /** - * + * Arrow shape * * @type {number} * @constant */ -raylib.ICON_FOUR_BOXES = 100 +raylib.MOUSE_CURSOR_ARROW = 1 /** - * + * Text writing cursor shape * * @type {number} * @constant */ -raylib.ICON_GRID_FILL = 101 +raylib.MOUSE_CURSOR_IBEAM = 2 /** - * + * Cross shape * * @type {number} * @constant */ -raylib.ICON_BOX_MULTISIZE = 102 +raylib.MOUSE_CURSOR_CROSSHAIR = 3 /** - * + * Pointing hand cursor * * @type {number} * @constant */ -raylib.ICON_ZOOM_SMALL = 103 +raylib.MOUSE_CURSOR_POINTING_HAND = 4 /** - * + * Horizontal resize/move arrow shape * * @type {number} * @constant */ -raylib.ICON_ZOOM_MEDIUM = 104 +raylib.MOUSE_CURSOR_RESIZE_EW = 5 /** - * + * Vertical resize/move arrow shape * * @type {number} * @constant */ -raylib.ICON_ZOOM_BIG = 105 +raylib.MOUSE_CURSOR_RESIZE_NS = 6 /** - * + * Top-left to bottom-right diagonal resize/move arrow shape * * @type {number} * @constant */ -raylib.ICON_ZOOM_ALL = 106 +raylib.MOUSE_CURSOR_RESIZE_NWSE = 7 /** - * + * The top-right to bottom-left diagonal resize/move arrow shape * * @type {number} * @constant */ -raylib.ICON_ZOOM_CENTER = 107 +raylib.MOUSE_CURSOR_RESIZE_NESW = 8 /** - * + * The omnidirectional resize/move cursor shape * * @type {number} * @constant */ -raylib.ICON_BOX_DOTS_SMALL = 108 +raylib.MOUSE_CURSOR_RESIZE_ALL = 9 /** - * + * The operation-not-allowed shape * * @type {number} * @constant */ -raylib.ICON_BOX_DOTS_BIG = 109 +raylib.MOUSE_CURSOR_NOT_ALLOWED = 10 /** - * + * Unknown button, just for error checking * * @type {number} * @constant */ -raylib.ICON_BOX_CONCENTRIC = 110 +raylib.GAMEPAD_BUTTON_UNKNOWN = 0 /** - * + * Gamepad left DPAD up button * * @type {number} * @constant */ -raylib.ICON_BOX_GRID_BIG = 111 +raylib.GAMEPAD_BUTTON_LEFT_FACE_UP = 1 /** - * + * Gamepad left DPAD right button * * @type {number} * @constant */ -raylib.ICON_OK_TICK = 112 +raylib.GAMEPAD_BUTTON_LEFT_FACE_RIGHT = 2 /** - * + * Gamepad left DPAD down button * * @type {number} * @constant */ -raylib.ICON_CROSS = 113 +raylib.GAMEPAD_BUTTON_LEFT_FACE_DOWN = 3 /** - * + * Gamepad left DPAD left button * * @type {number} * @constant */ -raylib.ICON_ARROW_LEFT = 114 +raylib.GAMEPAD_BUTTON_LEFT_FACE_LEFT = 4 /** - * + * Gamepad right button up (i.e. PS3: Triangle, Xbox: Y) * * @type {number} * @constant */ -raylib.ICON_ARROW_RIGHT = 115 +raylib.GAMEPAD_BUTTON_RIGHT_FACE_UP = 5 /** - * + * Gamepad right button right (i.e. PS3: Square, Xbox: X) * * @type {number} * @constant */ -raylib.ICON_ARROW_DOWN = 116 +raylib.GAMEPAD_BUTTON_RIGHT_FACE_RIGHT = 6 /** - * + * Gamepad right button down (i.e. PS3: Cross, Xbox: A) * * @type {number} * @constant */ -raylib.ICON_ARROW_UP = 117 +raylib.GAMEPAD_BUTTON_RIGHT_FACE_DOWN = 7 /** - * + * Gamepad right button left (i.e. PS3: Circle, Xbox: B) * * @type {number} * @constant */ -raylib.ICON_ARROW_LEFT_FILL = 118 +raylib.GAMEPAD_BUTTON_RIGHT_FACE_LEFT = 8 /** - * + * Gamepad top/back trigger left (first), it could be a trailing button * * @type {number} * @constant */ -raylib.ICON_ARROW_RIGHT_FILL = 119 +raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_1 = 9 /** - * + * Gamepad top/back trigger left (second), it could be a trailing button * * @type {number} * @constant */ -raylib.ICON_ARROW_DOWN_FILL = 120 +raylib.GAMEPAD_BUTTON_LEFT_TRIGGER_2 = 10 /** - * + * Gamepad top/back trigger right (one), it could be a trailing button * * @type {number} * @constant */ -raylib.ICON_ARROW_UP_FILL = 121 +raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_1 = 11 /** - * + * Gamepad top/back trigger right (second), it could be a trailing button * * @type {number} * @constant */ -raylib.ICON_AUDIO = 122 +raylib.GAMEPAD_BUTTON_RIGHT_TRIGGER_2 = 12 /** - * + * Gamepad center buttons, left one (i.e. PS3: Select) * * @type {number} * @constant */ -raylib.ICON_FX = 123 +raylib.GAMEPAD_BUTTON_MIDDLE_LEFT = 13 /** - * + * Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX) * * @type {number} * @constant */ -raylib.ICON_WAVE = 124 +raylib.GAMEPAD_BUTTON_MIDDLE = 14 /** - * + * Gamepad center buttons, right one (i.e. PS3: Start) * * @type {number} * @constant */ -raylib.ICON_WAVE_SINUS = 125 +raylib.GAMEPAD_BUTTON_MIDDLE_RIGHT = 15 /** - * + * Gamepad joystick pressed button left * * @type {number} * @constant */ -raylib.ICON_WAVE_SQUARE = 126 +raylib.GAMEPAD_BUTTON_LEFT_THUMB = 16 /** - * + * Gamepad joystick pressed button right * * @type {number} * @constant */ -raylib.ICON_WAVE_TRIANGULAR = 127 +raylib.GAMEPAD_BUTTON_RIGHT_THUMB = 17 /** - * + * Gamepad left stick X axis * * @type {number} * @constant */ -raylib.ICON_CROSS_SMALL = 128 +raylib.GAMEPAD_AXIS_LEFT_X = 0 /** - * + * Gamepad left stick Y axis * * @type {number} * @constant */ -raylib.ICON_PLAYER_PREVIOUS = 129 +raylib.GAMEPAD_AXIS_LEFT_Y = 1 /** - * + * Gamepad right stick X axis * * @type {number} * @constant */ -raylib.ICON_PLAYER_PLAY_BACK = 130 +raylib.GAMEPAD_AXIS_RIGHT_X = 2 /** - * + * Gamepad right stick Y axis * * @type {number} * @constant */ -raylib.ICON_PLAYER_PLAY = 131 +raylib.GAMEPAD_AXIS_RIGHT_Y = 3 /** - * + * Gamepad back trigger left, pressure level: [1..-1] * * @type {number} * @constant */ -raylib.ICON_PLAYER_PAUSE = 132 +raylib.GAMEPAD_AXIS_LEFT_TRIGGER = 4 /** - * + * Gamepad back trigger right, pressure level: [1..-1] * * @type {number} * @constant */ -raylib.ICON_PLAYER_STOP = 133 +raylib.GAMEPAD_AXIS_RIGHT_TRIGGER = 5 /** - * + * Albedo material (same as: MATERIAL_MAP_DIFFUSE) * * @type {number} * @constant */ -raylib.ICON_PLAYER_NEXT = 134 +raylib.MATERIAL_MAP_ALBEDO = 0 /** - * + * Metalness material (same as: MATERIAL_MAP_SPECULAR) * * @type {number} * @constant */ -raylib.ICON_PLAYER_RECORD = 135 +raylib.MATERIAL_MAP_METALNESS = 1 /** - * + * Normal material * * @type {number} * @constant */ -raylib.ICON_MAGNET = 136 +raylib.MATERIAL_MAP_NORMAL = 2 /** - * + * Roughness material * * @type {number} * @constant */ -raylib.ICON_LOCK_CLOSE = 137 +raylib.MATERIAL_MAP_ROUGHNESS = 3 /** - * + * Ambient occlusion material * * @type {number} * @constant */ -raylib.ICON_LOCK_OPEN = 138 +raylib.MATERIAL_MAP_OCCLUSION = 4 /** - * + * Emission material * * @type {number} * @constant */ -raylib.ICON_CLOCK = 139 +raylib.MATERIAL_MAP_EMISSION = 5 /** - * + * Heightmap material * * @type {number} * @constant */ -raylib.ICON_TOOLS = 140 +raylib.MATERIAL_MAP_HEIGHT = 6 /** - * + * Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP) * * @type {number} * @constant */ -raylib.ICON_GEAR = 141 +raylib.MATERIAL_MAP_CUBEMAP = 7 /** - * + * Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP) * * @type {number} * @constant */ -raylib.ICON_GEAR_BIG = 142 +raylib.MATERIAL_MAP_IRRADIANCE = 8 /** - * + * Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP) * * @type {number} * @constant */ -raylib.ICON_BIN = 143 +raylib.MATERIAL_MAP_PREFILTER = 9 /** - * + * Brdf material * * @type {number} * @constant */ -raylib.ICON_HAND_POINTER = 144 +raylib.MATERIAL_MAP_BRDF = 10 /** - * + * Shader location: vertex attribute: position * * @type {number} * @constant */ -raylib.ICON_LASER = 145 +raylib.SHADER_LOC_VERTEX_POSITION = 0 /** - * + * Shader location: vertex attribute: texcoord01 * * @type {number} * @constant */ -raylib.ICON_COIN = 146 +raylib.SHADER_LOC_VERTEX_TEXCOORD01 = 1 /** - * + * Shader location: vertex attribute: texcoord02 * * @type {number} * @constant */ -raylib.ICON_EXPLOSION = 147 +raylib.SHADER_LOC_VERTEX_TEXCOORD02 = 2 /** - * + * Shader location: vertex attribute: normal * * @type {number} * @constant */ -raylib.ICON_1UP = 148 +raylib.SHADER_LOC_VERTEX_NORMAL = 3 /** - * + * Shader location: vertex attribute: tangent * * @type {number} * @constant */ -raylib.ICON_PLAYER = 149 +raylib.SHADER_LOC_VERTEX_TANGENT = 4 /** - * + * Shader location: vertex attribute: color * * @type {number} * @constant */ -raylib.ICON_PLAYER_JUMP = 150 +raylib.SHADER_LOC_VERTEX_COLOR = 5 /** - * + * Shader location: matrix uniform: model-view-projection * * @type {number} * @constant */ -raylib.ICON_KEY = 151 +raylib.SHADER_LOC_MATRIX_MVP = 6 /** - * + * Shader location: matrix uniform: view (camera transform) * * @type {number} * @constant */ -raylib.ICON_DEMON = 152 +raylib.SHADER_LOC_MATRIX_VIEW = 7 /** - * + * Shader location: matrix uniform: projection * * @type {number} * @constant */ -raylib.ICON_TEXT_POPUP = 153 +raylib.SHADER_LOC_MATRIX_PROJECTION = 8 /** - * + * Shader location: matrix uniform: model (transform) * * @type {number} * @constant */ -raylib.ICON_GEAR_EX = 154 +raylib.SHADER_LOC_MATRIX_MODEL = 9 /** - * + * Shader location: matrix uniform: normal * * @type {number} * @constant */ -raylib.ICON_CRACK = 155 +raylib.SHADER_LOC_MATRIX_NORMAL = 10 /** - * + * Shader location: vector uniform: view * * @type {number} * @constant */ -raylib.ICON_CRACK_POINTS = 156 +raylib.SHADER_LOC_VECTOR_VIEW = 11 /** - * + * Shader location: vector uniform: diffuse color * * @type {number} * @constant */ -raylib.ICON_STAR = 157 +raylib.SHADER_LOC_COLOR_DIFFUSE = 12 /** - * + * Shader location: vector uniform: specular color * * @type {number} * @constant */ -raylib.ICON_DOOR = 158 +raylib.SHADER_LOC_COLOR_SPECULAR = 13 /** - * + * Shader location: vector uniform: ambient color * * @type {number} * @constant */ -raylib.ICON_EXIT = 159 +raylib.SHADER_LOC_COLOR_AMBIENT = 14 /** - * + * Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE) * * @type {number} * @constant */ -raylib.ICON_MODE_2D = 160 +raylib.SHADER_LOC_MAP_ALBEDO = 15 /** - * + * Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR) * * @type {number} * @constant */ -raylib.ICON_MODE_3D = 161 +raylib.SHADER_LOC_MAP_METALNESS = 16 /** - * + * Shader location: sampler2d texture: normal * * @type {number} * @constant */ -raylib.ICON_CUBE = 162 +raylib.SHADER_LOC_MAP_NORMAL = 17 /** - * + * Shader location: sampler2d texture: roughness * * @type {number} * @constant */ -raylib.ICON_CUBE_FACE_TOP = 163 +raylib.SHADER_LOC_MAP_ROUGHNESS = 18 /** - * + * Shader location: sampler2d texture: occlusion * * @type {number} * @constant */ -raylib.ICON_CUBE_FACE_LEFT = 164 +raylib.SHADER_LOC_MAP_OCCLUSION = 19 /** - * + * Shader location: sampler2d texture: emission * * @type {number} * @constant */ -raylib.ICON_CUBE_FACE_FRONT = 165 +raylib.SHADER_LOC_MAP_EMISSION = 20 /** - * + * Shader location: sampler2d texture: height * * @type {number} * @constant */ -raylib.ICON_CUBE_FACE_BOTTOM = 166 +raylib.SHADER_LOC_MAP_HEIGHT = 21 /** - * + * Shader location: samplerCube texture: cubemap * * @type {number} * @constant */ -raylib.ICON_CUBE_FACE_RIGHT = 167 +raylib.SHADER_LOC_MAP_CUBEMAP = 22 /** - * + * Shader location: samplerCube texture: irradiance * * @type {number} * @constant */ -raylib.ICON_CUBE_FACE_BACK = 168 +raylib.SHADER_LOC_MAP_IRRADIANCE = 23 /** - * + * Shader location: samplerCube texture: prefilter * * @type {number} * @constant */ -raylib.ICON_CAMERA = 169 +raylib.SHADER_LOC_MAP_PREFILTER = 24 /** - * + * Shader location: sampler2d texture: brdf * * @type {number} * @constant */ -raylib.ICON_SPECIAL = 170 +raylib.SHADER_LOC_MAP_BRDF = 25 /** - * + * Shader uniform type: float * * @type {number} * @constant */ -raylib.ICON_LINK_NET = 171 +raylib.SHADER_UNIFORM_FLOAT = 0 /** - * + * Shader uniform type: vec2 (2 float) * * @type {number} * @constant */ -raylib.ICON_LINK_BOXES = 172 +raylib.SHADER_UNIFORM_VEC2 = 1 /** - * + * Shader uniform type: vec3 (3 float) * * @type {number} * @constant */ -raylib.ICON_LINK_MULTI = 173 +raylib.SHADER_UNIFORM_VEC3 = 2 /** - * + * Shader uniform type: vec4 (4 float) * * @type {number} * @constant */ -raylib.ICON_LINK = 174 +raylib.SHADER_UNIFORM_VEC4 = 3 /** - * + * Shader uniform type: int * * @type {number} * @constant */ -raylib.ICON_LINK_BROKE = 175 +raylib.SHADER_UNIFORM_INT = 4 /** - * + * Shader uniform type: ivec2 (2 int) * * @type {number} * @constant */ -raylib.ICON_TEXT_NOTES = 176 +raylib.SHADER_UNIFORM_IVEC2 = 5 /** - * + * Shader uniform type: ivec3 (3 int) * * @type {number} * @constant */ -raylib.ICON_NOTEBOOK = 177 +raylib.SHADER_UNIFORM_IVEC3 = 6 /** - * + * Shader uniform type: ivec4 (4 int) * * @type {number} * @constant */ -raylib.ICON_SUITCASE = 178 +raylib.SHADER_UNIFORM_IVEC4 = 7 /** - * + * Shader uniform type: sampler2d * * @type {number} * @constant */ -raylib.ICON_SUITCASE_ZIP = 179 +raylib.SHADER_UNIFORM_SAMPLER2D = 8 /** - * + * Shader attribute type: float * * @type {number} * @constant */ -raylib.ICON_MAILBOX = 180 +raylib.SHADER_ATTRIB_FLOAT = 0 /** - * + * Shader attribute type: vec2 (2 float) * * @type {number} * @constant */ -raylib.ICON_MONITOR = 181 +raylib.SHADER_ATTRIB_VEC2 = 1 /** - * + * Shader attribute type: vec3 (3 float) * * @type {number} * @constant */ -raylib.ICON_PRINTER = 182 +raylib.SHADER_ATTRIB_VEC3 = 2 /** - * + * Shader attribute type: vec4 (4 float) * * @type {number} * @constant */ -raylib.ICON_PHOTO_CAMERA = 183 +raylib.SHADER_ATTRIB_VEC4 = 3 /** - * + * 8 bit per pixel (no alpha) * * @type {number} * @constant */ -raylib.ICON_PHOTO_CAMERA_FLASH = 184 +raylib.PIXELFORMAT_UNCOMPRESSED_GRAYSCALE = 1 /** - * + * 8*2 bpp (2 channels) * * @type {number} * @constant */ -raylib.ICON_HOUSE = 185 +raylib.PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA = 2 /** - * + * 16 bpp * * @type {number} * @constant */ -raylib.ICON_HEART = 186 +raylib.PIXELFORMAT_UNCOMPRESSED_R5G6B5 = 3 /** - * + * 24 bpp * * @type {number} * @constant */ -raylib.ICON_CORNER = 187 +raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8 = 4 /** - * + * 16 bpp (1 bit alpha) * * @type {number} * @constant */ -raylib.ICON_VERTICAL_BARS = 188 +raylib.PIXELFORMAT_UNCOMPRESSED_R5G5B5A1 = 5 /** - * + * 16 bpp (4 bit alpha) * * @type {number} * @constant */ -raylib.ICON_VERTICAL_BARS_FILL = 189 +raylib.PIXELFORMAT_UNCOMPRESSED_R4G4B4A4 = 6 /** - * + * 32 bpp * * @type {number} * @constant */ -raylib.ICON_LIFE_BARS = 190 +raylib.PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 = 7 /** - * + * 32 bpp (1 channel - float) * * @type {number} * @constant */ -raylib.ICON_INFO = 191 +raylib.PIXELFORMAT_UNCOMPRESSED_R32 = 8 /** - * + * 32*3 bpp (3 channels - float) * * @type {number} * @constant */ -raylib.ICON_CROSSLINE = 192 +raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32 = 9 /** - * + * 32*4 bpp (4 channels - float) * * @type {number} * @constant */ -raylib.ICON_HELP = 193 +raylib.PIXELFORMAT_UNCOMPRESSED_R32G32B32A32 = 10 /** - * + * 16 bpp (1 channel - half float) * * @type {number} * @constant */ -raylib.ICON_FILETYPE_ALPHA = 194 +raylib.PIXELFORMAT_UNCOMPRESSED_R16 = 11 /** - * + * 16*3 bpp (3 channels - half float) * * @type {number} * @constant */ -raylib.ICON_FILETYPE_HOME = 195 +raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16 = 12 /** - * + * 16*4 bpp (4 channels - half float) * * @type {number} * @constant */ -raylib.ICON_LAYERS_VISIBLE = 196 +raylib.PIXELFORMAT_UNCOMPRESSED_R16G16B16A16 = 13 /** - * + * 4 bpp (no alpha) * * @type {number} * @constant */ -raylib.ICON_LAYERS = 197 +raylib.PIXELFORMAT_COMPRESSED_DXT1_RGB = 14 /** - * + * 4 bpp (1 bit alpha) * * @type {number} * @constant */ -raylib.ICON_WINDOW = 198 +raylib.PIXELFORMAT_COMPRESSED_DXT1_RGBA = 15 /** - * + * 8 bpp * * @type {number} * @constant */ -raylib.ICON_HIDPI = 199 +raylib.PIXELFORMAT_COMPRESSED_DXT3_RGBA = 16 /** - * + * 8 bpp * * @type {number} * @constant */ -raylib.ICON_FILETYPE_BINARY = 200 +raylib.PIXELFORMAT_COMPRESSED_DXT5_RGBA = 17 /** - * + * 4 bpp * * @type {number} * @constant */ -raylib.ICON_HEX = 201 +raylib.PIXELFORMAT_COMPRESSED_ETC1_RGB = 18 /** - * + * 4 bpp * * @type {number} * @constant */ -raylib.ICON_SHIELD = 202 +raylib.PIXELFORMAT_COMPRESSED_ETC2_RGB = 19 /** - * + * 8 bpp * * @type {number} * @constant */ -raylib.ICON_FILE_NEW = 203 +raylib.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA = 20 /** - * + * 4 bpp * * @type {number} * @constant */ -raylib.ICON_FOLDER_ADD = 204 +raylib.PIXELFORMAT_COMPRESSED_PVRT_RGB = 21 /** - * + * 4 bpp * * @type {number} * @constant */ -raylib.ICON_ALARM = 205 +raylib.PIXELFORMAT_COMPRESSED_PVRT_RGBA = 22 /** - * + * 8 bpp * * @type {number} * @constant */ -raylib.ICON_CPU = 206 +raylib.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA = 23 /** - * + * 2 bpp * * @type {number} * @constant */ -raylib.ICON_ROM = 207 +raylib.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA = 24 /** - * + * No filter, just pixel approximation * * @type {number} * @constant */ -raylib.ICON_STEP_OVER = 208 +raylib.TEXTURE_FILTER_POINT = 0 /** - * + * Linear filtering * * @type {number} * @constant */ -raylib.ICON_STEP_INTO = 209 +raylib.TEXTURE_FILTER_BILINEAR = 1 /** - * + * Trilinear filtering (linear with mipmaps) * * @type {number} * @constant */ -raylib.ICON_STEP_OUT = 210 +raylib.TEXTURE_FILTER_TRILINEAR = 2 /** - * + * Anisotropic filtering 4x * * @type {number} * @constant */ -raylib.ICON_RESTART = 211 +raylib.TEXTURE_FILTER_ANISOTROPIC_4X = 3 /** - * + * Anisotropic filtering 8x * * @type {number} * @constant */ -raylib.ICON_BREAKPOINT_ON = 212 +raylib.TEXTURE_FILTER_ANISOTROPIC_8X = 4 /** - * + * Anisotropic filtering 16x * * @type {number} * @constant */ -raylib.ICON_BREAKPOINT_OFF = 213 +raylib.TEXTURE_FILTER_ANISOTROPIC_16X = 5 /** - * + * Repeats texture in tiled mode * * @type {number} * @constant */ -raylib.ICON_BURGER_MENU = 214 +raylib.TEXTURE_WRAP_REPEAT = 0 /** - * + * Clamps texture to edge pixel in tiled mode * * @type {number} * @constant */ -raylib.ICON_CASE_SENSITIVE = 215 +raylib.TEXTURE_WRAP_CLAMP = 1 /** - * + * Mirrors and repeats the texture in tiled mode * * @type {number} * @constant */ -raylib.ICON_REG_EXP = 216 +raylib.TEXTURE_WRAP_MIRROR_REPEAT = 2 /** - * + * Mirrors and clamps to border the texture in tiled mode * * @type {number} * @constant */ -raylib.ICON_FOLDER = 217 +raylib.TEXTURE_WRAP_MIRROR_CLAMP = 3 /** - * + * Automatically detect layout type * * @type {number} * @constant */ -raylib.ICON_FILE = 218 +raylib.CUBEMAP_LAYOUT_AUTO_DETECT = 0 /** - * + * Layout is defined by a vertical line with faces * * @type {number} * @constant */ -raylib.ICON_SAND_TIMER = 219 +raylib.CUBEMAP_LAYOUT_LINE_VERTICAL = 1 /** - * + * Layout is defined by a horizontal line with faces * * @type {number} * @constant */ -raylib.ICON_220 = 220 +raylib.CUBEMAP_LAYOUT_LINE_HORIZONTAL = 2 /** - * + * Layout is defined by a 3x4 cross with cubemap faces * * @type {number} * @constant */ -raylib.ICON_221 = 221 +raylib.CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR = 3 /** - * + * Layout is defined by a 4x3 cross with cubemap faces * * @type {number} * @constant */ -raylib.ICON_222 = 222 +raylib.CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE = 4 /** - * + * Layout is defined by a panorama image (equirrectangular map) * * @type {number} * @constant */ -raylib.ICON_223 = 223 +raylib.CUBEMAP_LAYOUT_PANORAMA = 5 /** - * + * Default font generation, anti-aliased * * @type {number} * @constant */ -raylib.ICON_224 = 224 +raylib.FONT_DEFAULT = 0 /** - * + * Bitmap font generation, no anti-aliasing * * @type {number} * @constant */ -raylib.ICON_225 = 225 +raylib.FONT_BITMAP = 1 /** - * + * SDF font generation, requires external shader * * @type {number} * @constant */ -raylib.ICON_226 = 226 +raylib.FONT_SDF = 2 /** - * + * Blend textures considering alpha (default) * * @type {number} * @constant */ -raylib.ICON_227 = 227 +raylib.BLEND_ALPHA = 0 /** - * + * Blend textures adding colors * * @type {number} * @constant */ -raylib.ICON_228 = 228 +raylib.BLEND_ADDITIVE = 1 /** - * + * Blend textures multiplying colors * * @type {number} * @constant */ -raylib.ICON_229 = 229 +raylib.BLEND_MULTIPLIED = 2 /** - * + * Blend textures adding colors (alternative) * * @type {number} * @constant */ -raylib.ICON_230 = 230 +raylib.BLEND_ADD_COLORS = 3 /** - * + * Blend textures subtracting colors (alternative) * * @type {number} * @constant */ -raylib.ICON_231 = 231 +raylib.BLEND_SUBTRACT_COLORS = 4 /** - * + * Blend premultiplied textures considering alpha * * @type {number} * @constant */ -raylib.ICON_232 = 232 +raylib.BLEND_ALPHA_PREMULTIPLY = 5 /** - * + * Blend textures using custom src/dst factors (use rlSetBlendFactors()) * * @type {number} * @constant */ -raylib.ICON_233 = 233 +raylib.BLEND_CUSTOM = 6 /** - * + * Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate()) * * @type {number} * @constant */ -raylib.ICON_234 = 234 +raylib.BLEND_CUSTOM_SEPARATE = 7 /** - * + * No gesture * * @type {number} * @constant */ -raylib.ICON_235 = 235 +raylib.GESTURE_NONE = 0 /** - * + * Tap gesture * * @type {number} * @constant */ -raylib.ICON_236 = 236 +raylib.GESTURE_TAP = 1 /** - * + * Double tap gesture * * @type {number} * @constant */ -raylib.ICON_237 = 237 +raylib.GESTURE_DOUBLETAP = 2 /** - * + * Hold gesture * * @type {number} * @constant */ -raylib.ICON_238 = 238 +raylib.GESTURE_HOLD = 4 /** - * + * Drag gesture * * @type {number} * @constant */ -raylib.ICON_239 = 239 +raylib.GESTURE_DRAG = 8 /** - * + * Swipe right gesture * * @type {number} * @constant */ -raylib.ICON_240 = 240 +raylib.GESTURE_SWIPE_RIGHT = 16 /** - * + * Swipe left gesture * * @type {number} * @constant */ -raylib.ICON_241 = 241 +raylib.GESTURE_SWIPE_LEFT = 32 /** - * + * Swipe up gesture * * @type {number} * @constant */ -raylib.ICON_242 = 242 +raylib.GESTURE_SWIPE_UP = 64 /** - * + * Swipe down gesture * * @type {number} * @constant */ -raylib.ICON_243 = 243 +raylib.GESTURE_SWIPE_DOWN = 128 /** - * + * Pinch in gesture * * @type {number} * @constant */ -raylib.ICON_244 = 244 +raylib.GESTURE_PINCH_IN = 256 /** - * + * Pinch out gesture * * @type {number} * @constant */ -raylib.ICON_245 = 245 +raylib.GESTURE_PINCH_OUT = 512 /** - * + * Custom camera * * @type {number} * @constant */ -raylib.ICON_246 = 246 +raylib.CAMERA_CUSTOM = 0 /** - * + * Free camera * * @type {number} * @constant */ -raylib.ICON_247 = 247 +raylib.CAMERA_FREE = 1 /** - * + * Orbital camera * * @type {number} * @constant */ -raylib.ICON_248 = 248 +raylib.CAMERA_ORBITAL = 2 /** - * + * First person camera * * @type {number} * @constant */ -raylib.ICON_249 = 249 +raylib.CAMERA_FIRST_PERSON = 3 /** - * + * Third person camera * * @type {number} * @constant */ -raylib.ICON_250 = 250 +raylib.CAMERA_THIRD_PERSON = 4 /** - * + * Perspective projection * * @type {number} * @constant */ -raylib.ICON_251 = 251 +raylib.CAMERA_PERSPECTIVE = 0 /** - * + * Orthographic projection * * @type {number} * @constant */ -raylib.ICON_252 = 252 +raylib.CAMERA_ORTHOGRAPHIC = 1 /** - * + * Npatch layout: 3x3 tiles * * @type {number} * @constant */ -raylib.ICON_253 = 253 +raylib.NPATCH_NINE_PATCH = 0 /** - * + * Npatch layout: 1x3 tiles * * @type {number} * @constant */ -raylib.ICON_254 = 254 +raylib.NPATCH_THREE_PATCH_VERTICAL = 1 /** - * + * Npatch layout: 3x1 tiles * * @type {number} * @constant */ -raylib.ICON_255 = 255 +raylib.NPATCH_THREE_PATCH_HORIZONTAL = 2 /** * OpenGL 1.1 diff --git a/tools/generate.js b/tools/generate.js index a27a691..17d7bb6 100644 --- a/tools/generate.js +++ b/tools/generate.js @@ -196,9 +196,10 @@ function getDefs () { functions.push(...raymath.functions) // Add Raygui - const raygui = raylibApi.raygui - functions.push(...raygui.functions) - enums.push(...raygui.enums) + // TODO: Fix raygui + // const raygui = raylibApi.raygui + // functions.push(...raygui.functions) + // enums.push(...raygui.enums) const rlgl = raylibApi.rlgl functions.push(...rlgl.functions)