All notable changes to this project will be documented in this file.
- tests for interpreter and builders to keep a better overview about breaking the codebase
- waiting for ui build now
- improved entity parsing when printed
- created all required entities
- Fixed weird casts between layers
- Fixed setter/getter support in lists
- Fixed memory management when passing args
- Fixed map/list expressions
- Fixed self keyword functionality
- Fixed new keyword functionality
- Fixed list exposed methods
- Fixed string iterator
- Fixed polyfill namespaces
- npm latest version
- new ui
- using codemirror now for the ide
- simplified getter/setter logic
- ui is using local storage now, so code will be saved
- range polyfill fix
- fix negative number recognition
- add obfuscation option in ui
- add auto restart when vm gets completly shutdown in ui
- add debugger in ui/console
- improve data handling in ui
- fix unary parsing
- change 'not' and 'positive/negative number prefix' to unary
- prevent inifite loop when having binary expressions without assignment
- use classID
- remove '++' and '--' shortcuts since those essentialy don't work as intended
- add installer feature
- support import_code in builder
- add mkdirp
- fixed issue with default cli builder
- add stdin and stdout for ui build for better debugging
- fixed index and slice path resolving in interpreter
- fixed reference operation if value is either executed or not a function
- fixed operation context type inheriting
- added slice testing
- improved test naming for snapshots
- added exclude namespace flag
- add dlo and dno flag
- update ui with options
- fix issue with object/list init in interpreter
- add popups to show errors when transpiling or using the interpreter in the UI
- changed demo site
- parse all files before building to avoid issues with namespaces when optimizing
- use different globals namespace identifier to avoid unintended behavior when optimizing with certain options
- major overhaul
- update gh mock intrinsics to latest version
- update gh mock intrinsics to latest version due to browser support
- File('/') should return root folder
- metaxploit port 0 uses kernel_router
- mock intrinsics generate new entities on the fly now
- bunch of fixes for the interpreter
- parser supports another if-then style
- intrinsics generally got fixes
- metaMail is supported now
- fix issue with unexpected behavior on end if
- fix minor issue in slice not accepting null values
- improve debugger tracking
- fixed minor bugs in intrinsics
- fixed object iteration
- remove certain dependencies which required crypto
- fix broken boilerplate of bundler
- fixed loops not supporting exit request
- added non blocking while iteration via process.nextTick
- add pause to UI
- add stop to UI
- add repl to UI
- add next to UI
- change website to be less white, so you don't get flashbanged
- minor change in execution handling to support error messages again in the UI
- fix issue in parser/lexer which could casue infinite loops
- fix envar functionality in transpiler - issue#24 - thanks to @stevenklar
- support envar in includes/imports - issue#24 - thanks to @stevenklar
- fix lexer behaviour if string literal wasn't closed
- fix parser not passing unsafe value to lexer
- implement new interpreter iteration which features a more consistent typing among other things
- cleaned up code regarding envar implementation
- major improvements on the editor UI
- implemented monaco edtior into UI
- add language config, automcomplete logic and hover logic to UI
- add simple logic to share code; going to be extended
- now passing exclude namespace input and obfuscation checkbox to transpiler in UI
- prevent error swallow in interpreter with updating to the latest interpreter version
- fix range behavior - issue#26 - thanks to @Zeta314
- fix debugger resume
- use greyscript meta package
- fix indexes intrinsic for lists and strings
- add idx local during for loop
- add placeholders for blockhain, coin, service, wallet, subWallet
- improved meta information
- fix range behavior in case of from > to
- improved meta information
- add beautify option
- find all identifier now only lookups left side in assignment (WebUI)
- add queue for AST parsing (WebUI)
- add maxChars option to define when the installer should split the file
- update greyscript-meta, includes newest translations
- update parser and interpreter to support any value as map key, thanks for reporting to @xephael
- update parser to improve performance regarding automcompletion and hover, generates map of references per line
- fix compile options, remove merging of options instead just use || fallback pattern
- fix installer randomly stopping parsing file, thanks for reporting to @xephael
- remove wrapper boilerplate from main, thanks for reporting to @xephael
- update greyscript-meta, added missing general functions
- update core, added missing natives
- improve automcompletion + hoverdocs after core update
- improve web ui debugger
- fix line count inside multiline strings, thanks for reporting to @xephael
- fix slice operator parsing, thanks for reporting to @xephael
- update meta package which involves a few fixed return types and two missing methods in the file type
- transpiler won't add the module boilerplate header if there are no actual modules
- globals declaration in header won't be added if there are no literal optimizations
- fix behavior of pop intrinsic for map
- remove meta_info from file intrinsics
- add allow_import polyfill in file intrinsics
- add default value info in hoverdocs
- use react instead of plain html
- fix obfuscation flag getting ignored
- fix share feature in web-ui
- minor fix for file.get_content, return empty string instead of undefined, thanks for reporting @TopRoupi
- add sort key logic in sort intrinsic, thanks for reporting @TopRoupi
- add missing tan intrinsics
- add same errors in basic intrinsics as in ms
- implement format_columns logic
- improve output handler logic
- user_input supports anyKey now
- add proper router intrinsics
- rework shell intriniscs for connect_service + scp
- add shell intriniscs for launch + build + ping
- add ftpShell intrinsics for put
- add computer intrinsics for connect eth + connect wifi
- update computer intrinsics for touch + create_folder
- update file intrinsics for move + copy + chmod + set_content + get_content + set_owner
- add groups to mock env
- update crypo intrinsics
- update metaxploit intrinsics
- update metalib intrinsics
- update netsession intrinsics
- more realistic usernames, passwords, vulnerability zone names
- loading bars are supported now
- deactivate breakpoint for injection during debugging in cli execution
- keep pending state after injection in interpreter
- update meta version with a few corrections
- update parser with removed ";" checks
- support nested import_code
- support outer imports using ".."
- fix List can be different even if the same, thanks for reporting @brahermoon
- add __isa logic for maps
- minor TextMesh Pro support for output
- use node to execute bins to support win10
- revert node execute
- use js extension in bins to support win10
- add bin header
- support line breaks again in ui stdout window
- replace whitespaces with
&bnbsp;
in ui - fix crash in scope inspector in ui
- use other package for scope inspection in ui
- fix shuffle intrinsic for maps
- fix possible overflow in core parser
- fix kernel_version intrinsic
- fix nested unary in core parser
- fix stdin width in firefox
- update core in env script builder
- improve stdout code in ui
- rework parser/lexer to support newest version (might introduced some new bugs, please report if you find anything)
- implement outer, get_custom_object, log, bitXor, bitAnd, bitOr, insert, yield
- optimize transpiler output, removed unnecessary parenthesis
- update meta with new descriptions
- drop support for scuffed if syntax
- drop support for bugged index call
- fix outer behavior
- fix token end for hover tooltip in ui
- support multiple statements at same line for hover tooltips
- fix parser exception when a combination of block and comment on the same line appears, thanks for reporting to @xephael
- filter current connected wifi from list which is presented when looking for close wifis
- minor fix in used_ports intrinsic which caused unwanted behavior
- service ports are closer to ingame service port numbers
- implement super + isa logic
- add super + isa keyword
- support super + isa in highlighting
- exclude super and isa from uglify
- improve function declaration uglify
- improve interpreter map __isa logic
- show current file in debugger mode
- fix react dependency in ui
- update meta
- use proper context in super call
- allow empty string in split
- use regexp in split
- fix state forwarding in context
- interfaces use maps instead of custom interface
- revert regexp in split
- fix router intrinsics in regards of forwarded ports
- fix bug in meta lib overflow
- implement definitions provider
- use lru cache
- implement document symbol provider
- implement workspace symbol provider
- fix automcomplete not working in certain cases in the ui
- optimized ast document cache in ui
- fix autocomplete in call body in UI
- fix error on trailing comma in maps and lists
- add check for metaxploit if file exists to prevent error
- add type-manager for improved type resolving in UI
- fix nested #import in interpreter
- proper json output when map/list gets stringified in interpreter
- fix refresh interval sometimes not parsing in UI
- fix replace intrinsic
- fix deep equal via extending max depth from 2 to 10 in interpreter
- fix error message in create_user related to invalid password format
- fix acks condition in aireplay
- fix permission check in get_content
- fix current_date format
- fix nslookup error handling
- use proper max files in same folder
- typeof for MetaMail returns now in the right capitalization
- fix power operator handling
- update meta descriptions
- remove key interaction on airplay to prevent issue
- fix wifi networks return value
- minor fixes for meta examples
- update meta version
- update meta version
- update readme
- fix potential crash in debugger
- use regex in split intrinsic
- fix list insert behaviour, return mutated list now
- update meta descriptions
- update meta performance
- escape dot in split intrinsic
- split react components in UI
- add external links in UI
- fix output format of show_procs in intrinsics
- fix EOL character in format_columns intrinsics
- update meta descriptions
- use mac and wifi name for bssid and essid to emulate ingame intrinsic
- fix potential crash caused by meta due to not using hasOwnProperty
- support customizable seed in interpreter
- support customizable environment variables in interpreter
- support circular dependencies for interpreter
- add circular dependency check for build
- web UI improvements
- support gh intrinsic references
- support program to launch itself
- add test-lib for setting up envs and debugging - read more
- returning proper library type names when using typeof
- time now returns elapsed time in seconds
- replace newline in print with actual newline
- use editor inquirer component for repl
- refactor output handler enabling user_input not forcing newline
- fix potential crash in device_ports
- fix return value of name intrinsic for top file
- fix bug in regards of return getting swallowed in while/for iteration causing infinite loops
- improved error logging with actual stack trace on failure
- fix bug in regards of return getting ignored in wrapping while/for
- support behaviour of self in arguments
- expose join, split, to_int and replace functions in general namespace
- support map and list in replace
- update meta
- fix faulty mock data which could potentially cause crash
- rework parser to emulate greyscript behaviour more accurate
- fix text-mesh transformation render for inner children
- fix interactive flag in execute
- fix get library type in mock env, potentially fixing crash in netsession intrinsic
- fix paths starting with null resolving to general properties
- fix type resolve in UI
- fix firewall_rules intrinsic return value
- fix wait not using seconds but milliseconds
- support refresh in ui
- forbid literal optimization in default args
- fix isa regarding boolean value, boolean now gets recognized by it as a member of number
- add version check to inform about latest version
- fix import_code injection in includes and imports
- add ingame directory option in build command
- simplify import_code logic by removing second custom argument and allowing to create an installer to whatever ingame directory
- improve autocomplete in UI including keywords, constants and operators
- fix hover tooltip for multiline strings in UI
- register control + c in user_input with anyKey enabled
- instant exit on process termination
- fix lastIndexOf behaviour, only works with strings now and returns -1 instead of null
- fix return type of indexOf signature in UI
- fix tooltip for lastIndexOf in UI
- remove usage of boolean type in tooltips and signatures to avoid confusion since technically booleans do not exist
- minor improvement to index expression type analyzing in UI
- use modified transformer to get namespace for type in UI
- fix type resolve within slice expression in UI
- improve type resolve for assignments using locals, globals or outer prefix in UI
- extend namespace find method to use assignment instead of namespaces coming from parser in UI
- fix possibly wrong start position of member, index and call expression in UI
- inject map constructor namespaces in UI
- inject list constructor namespaces in UI
- add block comment support
- add comment function description support in UI
- improve build error output
- add support for multiply and division on lists
- improve support for command_info behavior
- update to latest meta descriptions
- optimize meta package size
- fix UI crash on mobile due to meta
- add save functionality to online UI
- update meta descriptions
- cast null to empty string when concatenation
- update meta descriptions
- implement textmate support for UI for better syntax
- fix terser
- fix function textmate syntax in UI
- if any is included in types just display any within UI
- support multiline conditions
- support slice type resolve within UI
- add debugger keyword to textmate syntax for UI
- move language + theme provider for UI
- fix textmate syntax related to strings within functions and pseudo-types in UI
- fix argument types for to_int and insert in UI
- fix super behavior in regards of accessessing direct __isa
- add launch call stack limit
- support minus operator for strings
- fix binary expression order on same precedence
- fix syntax exception in case call expression without paren was in last line
- fix various binary operations on number, list and map operations
- use ordinal comparison on greater and less than operations for strings
- support division on strings
- add modulo operator to textmate syntax in UI
- fix order in operator textmate syntax in UI
- use rnd function factory
- fix various evaluation expression output values
- fix replaceText behavior of print in UI
- add support for indent tag in UI
- add c2 agent to support remote file creation in-game
- add support to cache refreshToken for ingame file creation
- update meta involving create_folder signature fix
- add support for funcRef in syntax highlight and code execution
- add funcRef, list, number, string, params, globals, locals, outer and self to autocomplete constants
- update meta
- add support to be able to modify idx variables within for iterations
- fix: set computers list at rshell service install
- support color shorthand in text-mesh
- support quotes in text-mesh tags
- fix get_router intrinsic when providing lan ip
- allow non literals in function declaration params
- fix issue with call statement without parens
- remove "from" keywords
- use setImmediate/setTimeout instead of nextTick to fix stdout issue within iterations
- fix issue within import_code dependency management which could cause an invalid order, order should be more accurate now
- improve text mesh transform approach to use queueing instead of recursion preventing exceeding maximum call stack
- adjustments in UI to enable simple drawings via text-mesh
- raise node version requirement to latest lts - related to #97 - thanks for reporting to @Crater44
- use static isa objects for grey hack specific intrinsics to enable usage of isa on those types
- introduce alternative install via docker by @Crater44 - related PR #99
- check if inside docker when sharing output path by @Crater44
- improve installer logic of generated installer file
- fix issue if line is longer than maxChars allowed in installer - related to #102
- implement autocompile feature for installer - thanks for the suggestion to @stevenklar - related to #106
- fix object value delete (fixes remove intrinsic)
- fix globals lookup - thanks for reporting to @Olipro - related to #108
- update remove intrinsic to properly work with object value delete
- allow // as an alternative to # for import and include statement - thanks to @Olipro for the suggestion - related to #85
- fix multiply and divide string which mistakenly was using list as a default value when the factor was zero - thanks for reporting to @Olipro - related to #88
- more proper to string for function - thanks for reporting to @Olipro - related to #89
- fix async function argument builder
- fix execution continueing in path resolve even though interpreter is in exit state - thanks for reporting to @Olipro - related to #91
- fix isa not working when assigning __isa manually + when merging two maps - thanks for reporting to @Olipro - related to #92
- add IS_GREYBEL property to globals - thanks to @Olipro for the suggestion - related to #93
- add access to stacktrace via test lib - thanks to @Olipro for the suggestion - related to #93
- fix stacktrace reset in testlib when using try_to_execute
- fix breakpoint reset in testlib when using try_to_execute_with_debug
- fix errors related to path resolve when stoping script execution via debugger
- fix lookup to only include locals, outer and globals to properly replicate MiniScript behavior - thanks for reporting to @Olipro - related to #100
- fix self, locals, globals, outer not being implicit in order to properly replicate MiniScript behavior - thanks for reporting to @Olipro - related to #100
- minor optimization when looking up self, locals, globals, outer
- add error when trying to lookup unknown path on number or string
- add error when calling function with too many arguments
- add new line in scan_address intrinsic to properly replicate GreyScript behavior - thanks for reporting to @Olipro - related to #101
- fix scp intrinsic groups lookup
- add more permissions to generated myprogram file - thanks to @Olipro for the suggestion
- create object for get_custom_object on each env creation - thanks for reporting to @Olipro
- fix lookup prebuild for locals, outer, globals and self - thanks for reporting to @Olipro - related to #100
- fix error on passing non-empty lists on non parenthese call expressions - thanks for reporting to @Olipro - related to #104
- fix shorthand doesn't work with self, globals, outer and locals - related to #106
- update proxy version to latest version - related to #108 and maybe #107
- reset string, number, function, map and list intrinsics each execution in web - thanks for reporting to @Olipro - related to #110
- use maps with actual hashing for objects in order to get faster key lookups
- fix hasIndex looking up __isa entries - thanks for reporting to @Olipro - related to #114
- support same behavior related to anonymous functions and outer scope - thanks for reporting to @Olipro - related to #115
- improve iteration performance by batching async iterations
- add intrinsics related to regular expressions - thanks for reporting to @Olipro - related to #117
- add maxCount argument to map/list replace intrinsic
- update greybel-proxy to support new release
- update to latest meta which includes signatures and descriptions related to new regex intrinsics, netsession, computer and ctfevent
- update textmate syntax to include new regex intrinsics
- revert iteration performance improvement
- add new netsession intrinsics
- add get_ctf, will always return null for now
- add computer get_name intrinsic
- add markov generator for more accurate usernames, passwords etc.
- erase all previous lines on print replaceText
- fix return value on enter key press - thanks for reporting to @Olipro - related to #121
- use globals if outer is not available
- expose trim, lastIndexOf, replace and reverse intrinsic to global scope
- add trim, lastIndexOf, replace and reverse to generic signatures
- add ascending argument to sort intrinsic
- improve function stringify
- update meta text - thanks for the contribution to @Olipro
- fix hangup related to comparisons - thanks for reporting to @Olipro - related to #119
- only pass target from context in launch when file contains original script
- fix overflow password exploit condition - thanks for the contribution to @Olipro
- fix process state not getting reset in script executed by shell launch intrinsic - thanks for reporting to @Olipro
- override process state into function scope
- bump proxy version due to latest GreyHack update
- bump proxy version due to latest GreyHack update
- update to latest steam-user version which includes fix for refresh token
- fix for user_input, changed switch statement to differentiate between specific chars and other input - thanks for reporting to @Olipro - related to #134
- bump proxy version due to latest GreyHack update
- bind context of owning map to super instead of the call context - thanks for reporting to @Olipro - related to #136
- expose all GreyHack intrinsics in global scope and also add signatures to meta - thanks for reporting to @Olipro - related to #142
- add aptclient and blockhain vulnerability generation in mock env - thanks for reporting to @Olipro - related to #141
- fix super behavior in certain edge cases
- change approach on exposing map, list, number, string and funcRef objects
- bump proxy version due to latest GreyHack update
- pass stacktrace to child interpreter via launch in order to enable to receive the correct stacktrace
- fix shebangs - thanks for the contribution to @DaniD3v
- bump proxy version due to latest GreyHack update
- improve file importer feedback when files couldn't be imported
- update dependencies to next major version
- add %= and ^= operators
- support else after return in single-line if
- support multiline comparisons
- fix issue with call statement without parentheses and first negative arg
- add missing pull instrinsic from meta info of map
- fix numeric logical expression
- fix failing cases for hasIndex and indexOf (test suite)
- fix failing cases for insert (test suite)
- fix failing cases for remove (test suite)
- fix failing cases for round (test suite)
- fix failing cases for pop (test suite)
- fix failing cases for sort (test suite)
- change hashing and deep equal approach
- fix failing cases for replace (test suite)
- fix meta map pull signature
- fix typeof + toString behavior of maps with classID
- fix failure when sortKey was not existing
- replacing recursive interpreter with bytecode generator + vm to improve performance
- due to the new interpreter the stacktrace should be more accurate - thanks for reporting to @Olipro - related to #109
- fix scope browser in ui, displaying hashmaps in the output format now
- add support for text mesh tags to close on newline
- fix print output in UI if string is empty
- fix prepare error on execute not showing line
- update grey hack output in UI
- do not allow frame pop on global frame
- fix for iterations combined with returns causing the iterator stack not to pop
- fix self not being reassignable within frame
- bump proxy version due to latest GreyHack update
- bump proxy version due to latest GreyHack update
- update meta for minor editor ui fixes
- bump proxy version due to latest GreyHack update
- minor fixes to meta descriptions
- fix missing fallback value for allow import for file entities in mock environment
- update steam client
- minor fixes to meta descriptions
- fix connect_ethernet intrinsic ip check
- fix airmon intrinsic stop option
- fix missing boot folder in generated computers
- minor changes to output
- add pointer for current active instruction for stacktrace
- bump proxy version due to latest GreyHack update
- exclude params from optimization in transpiler
- add myprogram as process when script is getting executed
- while minimizing check if hasIndex value exists in namespaces otherwise falls back to not otimized value
- bump proxy version due to server change
- fix index expression to replicate #89 behavior of MiniScript
- add frame limit to interpreter to prevent crashes due to infinite recursion caused by a script - related to #172
- register VM exiting while waiting for user input
- add message-hook agent to enable a smoother workflow when importing files in-game
- update GreyHackMessageHook.dll version to 0.3 adding an auto close - thanks to @stevenklar - related to #159
- add auto compile option for create in-game feature - thanks for the suggestion to @stevenklar - related to #160
- add function definition to signature helper - thanks for the suggestion to @stevenklar
- decrease cooldown between agent messages to speed up building process
- add jsdoc syntax parser to comment to modify signatures that are shown - thanks for the suggestion to @stevenklar
- fix bytecode generator passing noInvoke flag to sub nodes causing issues when using addressOf on expression with more than two members
- improve error logs for user when in-game import feature fails to import
- update GreyHackMessageHook.dll version to 0.4 to use unity thread for closing terminal
- fix message handling in headless agent causing connection to get dropped under certain conditions - thanks for reporting SkidMall
- fix general sort description
- fix list sort signature
- change window handle for agents to prevent partial import error - thanks for reporting @gatekeeper258
- improve file removal step on auto-compile to instant
- allow super being reassigned
- fix super not using proper origin when calling a function of parent - thanks for reporting apparatusdeus
- set super to null if there is no parent class
- fix shell.launch layer counter to decrease on nested script end - thanks for reporting @stevenklar
- add highlighting, signature and description for new reset_password_coin and reset_ctf_password
- add missing descriptions for reverse, lastIndexOf and trim in general
- add placeholders for new intrinsics
- update headless agent to work with latest version
- improve parser recovery from invalid syntax
- use backpatching to enable similar MiniScript parsing of blocks, this may cause previous valid greybel syntax to be invalid especially when it comes to function blocks
- use proper parser package for UI to prevent possible syntax errors which are related to MiniScript but not to GreyScript
- introduce #line and #filename keyword for debugging
- fix import_code behaviour in interpreter so it's content is only executed once
- add @description and @example tag to comment docs
- fix an issue with scp where the function would try to get the groups via the wrong property potentially causing a crash - thanks for reporting @stevenklar
- add --disable-build-folder option to build command
- add logic to automatically clean up after auto-compile (including folders)
- add --auto-compile-purge option to build command - thanks for the contribution @Arc8ne
- remove planetscale integration due to contract changes, using a custom app now instead - any scripts saved in the web editor within the past 24h may got lost during migration
- add --auto-compile-name option to build command - thanks for the suggestion @Arc8ne
- update monaco-textmate-provider package which fixes potential issue with textmate in web UI
- update meta package which contains fix for rename description regarding return value on failure
- fix issue with headless agent when refreshToken was expired causing the follow up queries to timeout
- update steam client
- fix certain cases of open blocks causing errors in unsafe parsing mode
- fix format of library version
- fix build not setting allow_import
- fix permissions when assigned them via chmod intrinsic
- fix typeof intrinsic to not check for parent classID
- fix matches regexp intrinsic causing infinite loop
- fix binary getting deleted if default build output name has the same value as auto compile name
- add NaN check for numeric literal scan in order to show syntax errors on invalid numbers - thanks for reporting c1ph3r
- add diagnostics to web editor
- ignore return statement when it's not within function scope
- still execute method which is called in return statement within global scope
- major improvement of interpreter in regards of performance by rewriting and optimizing parts of the bytecode-generator, internal hash-map, hashing and more
- fix parsing of add sub expression while being a command
- fix connect_service intrinsic - thanks for reporting to Zicore
- when building files automatically transform CRLF to LF - thanks for reporting to Zicore and @Stiffi136
- fix bytecode generator source assignment which caused the interpreter to show the wrong file when using imports - thanks for reporting to @Stiffi136
- update headless client due to latest Grey Hack update
- improve tcp client stability
- add link to BepInEx 5.x.x plugin
- updated description for BepInEx
- fix is_valid_ip description example - thanks for the contribution to @Wombynator
- add unity terminal to web view
- update rnd method to only return the first generated value of a seed and not continuously generate new values of one seed to properly resemble the original MiniScript behaviour
- fix matches logic which caused skipping of results
- fix z-index of collapse related to debug overlay
- show proper scopes in debug view, rather than all scope of all previous frames
- fix behaviour of to_int intrinsic, only parses integers instead of floating numbers
- fix behaviour of val intrinsic, properly parse strings which have commas prior to dot
- fix lexer which could for certain character under certain conditions cause inifinite loops
- improve beautifier formatting - related to #176
- separate webview from greyscript-meta
- fix behavior of val intrinsic on leading comma
- support funcRef intrinsic
- add repeat keyword - related to #213 - thanks for reporting to @sornii
- implement new type manager which keeps better track of types and properties
- fix and improve documentation regarding intrinsics
- support defining argument and return types for functions through comments to which the hover and auto complete features will react accordingly
- add parenthesis for compound assignment - related to #197 - thanks for reporting to @sornii
- add transpiler beautifier option to keep parentheses - thanks for the suggestion to @stevenklar
- add transpiler beautifier option to set indendation by either tab or whitespace
- add transpiler beautifier option to set amount of whitespaces for indentation
- add dev mode for web transpiler so that it won't transpile code into production ready code, meaning that for example includes or imports won't be transpiled via formatter but rather by build command of cli
- minor optimizations regarding type resolver such as resolving types through parentheses, keeping api definitions apart from custom definitions preventing unwanted merged definitions, using a proxy container for signature definitions and fixing line overriding for identifier causing to use wrong start lines
- add super keyword to type-analyzer
- fix member expression containing new unary when resolving type
- only use shallow copy when copying entity to avoid memory exhaustion for type-analyzer
- properly resolve members of scope variables and api definitions for type-analyzer
- fix resolving of namespaces
- optimize deep-hash and deep-equal
- improve error message when path not found in type
- fix typo in len meta description
- use gs instead of ms interpreter in launch intrinsic
- improve definition provider
- add missing map intrinsic description
- fix autocomplete including map related intrinsics in general
- properly check in type-analyzer if string in index is valid identifier
- let type-analyzer resolve isa expressions as number
- let type-analyzer resolve logical expressions as number
- let type-analyzer set proper label for binary expression
- keep multiline comments in devMode when beautifying
- fix beautify regarding multiline comments
- fix beautify when having multiple commands in one line via semicolon
- fix signature parser for multiline comments
- add support for envar, file and line in type-analyzer
- fix launch_path meta example
- improve launch_path, program_path and launch meta descriptions
- optimize build size
- optimize interpreter task schedule, resulting in faster execution
- fix beautify indent on shorthand if else
- make installer code more verbose, including more error messages
- update message-hook agent to version 0.5, being able to properly sync windows between the two clients (NOTE: you'll need download the newest dll manually)
- add postCommand option to build - thanks for the suggestion @midsubspace
- only expose one executable greybel command and instead use nested commands for different functionalities
- add inject expression - related to #218 - thanks for the suggestion @midsubspace
- remove uneccessary file to decrease package size
- show proper error message when trying to call propery from null value instead of throwing ".getWithOrigin is not a function"
- fix "Unexpected identifier 'assert'" error on newer node versions - related to #212 - thanks for reporting Pungent Bonfire
- fix bytecode generator to properly add negative numbers as default parameters,
function myFunc(index = -1)
works now - fix handling of non literal comparisons such as biggerThan, biggerThanOrEqual, lessThan or lessThanEqual,
"23" < [42]
now correctly returns null - properly support grouped comparisons,
"0" <= numberStr <= "9"
works now - properly parse shorthands if those are containing a block
- fix metaxploit load not checking if returned entity is actually a file
- fix beautify not handling multiline expressions in block openers correctly resulting in unwanted new lines
- fix beautify not properly appending comment if keepParentheses option is active
- fix beautify not handling if shorthands with function blocks in them correctly resulting in unwanted new lines
- minor performance improvements in parser
- fix beautify not properly appending comment to index expression
- fix beautify for if shorthand clause with comment
- fix beautify adding an unwanted new line to empty blocks
- fix beautify adding unwanted new lines for if shorthands with multiline expression towards end of block
- fix beautify causing misbehaviour when list/map one-liners had comment at end
- allow binary expression to be executed as statement
- cleanup open handles of binary/logical expression that are statements
- update set_content tooltip to include lacking permissions as reason to return 0
- fix error related to type analyzer that could cause "Cannot read properties of undefined (reading 'start')" in lsp
- fix beautify for parentheses and comments where a comment would be right after closing parenthese
- fix function argument recovery if invalid syntax was provided in function arguments
- refactor transformer in transpiler to improve transformations
- fix conflict with comments on beautify - related to #53 - thanks for reporting to @Xisec
- fix edge cases for variable optimizations on uglify
- fix edge cases for literal optimizations on uglify
- fix globals shorthand identifier not getting injected when no literal optimization were happening - related to #157 - thanks for reporting to @smiley8D
- fix behaviour of import op in runtime which caused it's payload to be called every time it was imported, instead it's only getting executed once now - related to #222 - thanks for reporting to @smiley8D
- properly handle values that cannot be iterated through on for loop
- fix type analyzer failing if slice expression was used after expression - related to #255 - thanks for reporting to @ide1ta
- add meta description for intrinsics of current nightly version
- update textmate with methods and types of current nightly version
- add custom types handling in type analyzer - related to #198
- fix issue related to building of larger projects which could lead to maximum call stack size exceeded error to be thrown - thanks for reporting to @ide1ta
- extend custom types with virtual properties
- allow "custom type" type docs above new statements
- show inherited properties of custom types properly in autocomplete
- improve definition provider
- add silence option to build and execute - thanks for the suggestion to cantemizyurek
- properly handle cyclic isa defintions in type analyzer
- include all custom type definitions of entities with multiple types
- fix mock env folder deletion behaviour - thanks for reporting to @ide1ta