
Security News
AI Agent Lands PRs in Major OSS Projects, Targets Maintainers via Cold Outreach
An AI agent is merging PRs into major OSS projects and cold-emailing maintainers to drum up more work.
This code is inspired by the .txt2bas dot command on the ZX Spectrum Next (not that I could read the asm code!).
This project provides:
txt2bas command line toolbas2txt command line toolNode and npm (included with node) are required to install and run the code.
For the command line tooling - this installs both tools:
npm install --global txt2bas
Command line arguments are the same for both txt2bas and bas2txt:
txt2bas -i source.txt -o result.bas # generate a 3dos basic file
bas2txt -i source.bas -o result.txt # generates plain text
Omitting -o will print to stdout.
By default the generated file is a +3DOS format unless the output or input filename ends in .tap or using the format option -f tap:
txt2bas -i source.txt -o result.tap # generates a tap file
The command line can also read from stdin though this works best on txt2bas and not recommended for bas2txt.
Note that #autostart directive is also supported.
-i FILENAME - input filename-o FILENAME - output filename-t - (txt2bas only) test and validate the NextBASIC source-C - (txt2bas only) strip comments (to reduce final size)-bank - (txt2bas only) generate a BANK loadable result-A #n - (txt2bas only) set autostart line to #n-f 3dos|tap - set the output format-H- omit the file header (either in output or in parsing input)-udg - UDGs are used so encode with binary not utf8-tokens - (txt2bas only) show parser tokens (for debugging)-h - Show help options-v - Show current versionProblematically using the library exposes a number of paired functions:
line2bas(String: line): Object<Uint8Array: basic, Number: lineNumber, Array: tokens, Number: length> - the byte data is contained in result.basicbas2line(Uint8Array: data): String - expects to include the line number, line length and the line itself as bytesfile2bas(String: source, Object<String=3dos: format, filename=UNTITLED: String, validate=false: Boolean>): Uint8Array - results full byte array with correct format header, if validate is true, will throw on token errorsbas2file(Uint8Array: source, String=3dos: format): String - formatted BASIC textformatText(String: line): String - processes the line through line2bas then bas2line to result the formatted linevalidateTxt(String: source): Array[String] - parses each line collecting and returning any token errorsplus3DOSHeader and tapHeader - file headers for the appropriate data formatscodes an object lookup from NextBASIC numerical value to text value, ie. 0xf5 = 'PRINT'statements(String: source): Array[Statement] - returns the parsed statement which include lineNumber and tokens for each line.renumber(String: source, Object<start: Number, end: Number, step=10: Number, base=start: Number>) - renumbers source lines and GO TO line number targets.npm linkparser-versionFAQs
Converts BASIC to Text and back again
The npm package txt2bas receives a total of 24 weekly downloads. As such, txt2bas popularity was classified as not popular.
We found that txt2bas demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
An AI agent is merging PRs into major OSS projects and cold-emailing maintainers to drum up more work.

Research
/Security News
Chrome extension CL Suite by @CLMasters neutralizes 2FA for Facebook and Meta Business accounts while exfiltrating Business Manager contact and analytics data.

Security News
After Matplotlib rejected an AI-written PR, the agent fired back with a blog post, igniting debate over AI contributions and maintainer burden.