npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

hackmud-script-manager-next

v0.26.3

Published

Script manager for game hackmud, with minification, TypeScript support, and player script type definition generation.

Readme

Note: This is a somewhat updated fork of https://github.com/samualtnorman/hackmud-script-manager#readme published at hackmud-script-manager-next

Changes:

  • Fixed expose_balance and expose_access_log return types
  • Added delist arg to market.sell
  • Added marks scripts

Feel free to make a PR with improvements.

Hackmud Script Manager

Command made for Hackmud Scripting Environment, which is a scripting environment for hackmud with minification, autocompletes / intellisense, and TypeScript support.

Join our Discord server!

You can read about how HSM works in my blog post.

Install

  1. Install Node.js
  2. Run npm install -g hackmud-script-manager

Usage

  1. Run #dir in game, then cd to that folder
  2. Name your source script file to <name>.src.js
  3. Run hsm minify <name>.src.js and it will create a minified script file called <name>.js

NOTE: If you get an error message that looks like this:

[...]\AppData\Local\pnpm\hsm.ps1 cannot be loaded because running scripts is disabled on this system. [...]

You will need to run Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser in PowerShell as an administrator. For more information, see Microsoft's page about Execution Policies.

image image image

Features

  • Minification
    • This includes auto quine cheating.
      • Supported types are null, numbers, strings, and JSON compatible objects and arrays.
      • Non JSON compatible object keys are quine cheated.
      • Member expressions are converted to index notation so the index string can be quine cheated.
      • And template literals are converted to string concatenation so the strings can be quine cheated.
    • Global variable aliasing.
    • Convert function declarations to arrow function assigned to variable hoisted to the top of the block (function foo() { ... } -> let foo = () => ...).
    • Convert _START and _TIMEOUT to _ST and _TO.
    • Remove unused parameters from the main function expression.
  • Modern Javascript Syntax and Features
  • Future JavaScript Syntax and Features
  • TypeScript Support
    • This command/module does not do type checking, it simply removes type annotations so you'll need to rely on your IDE or run tsc seperatly with noEmit.
  • And “Cool” Unnecessary Features.
    • Variables declared outside the main function expression automatically become #G global variables.
    • Any code outside the function expression will only run once per top level script execution (#FMCL).
    • Basic seclevel verification.
      • Declaring // @seclevel HIGHSEC or any other seclevel before all of your code stops you from accidentally using #ls. or #ns..
    • Import node_modules modules into your script using import { foo } from "bar" syntax.
    • _SOURCE is replaced with a string of the source code of the script it's in.
    • _BUILD_DATE is replaced with a unix timestamp (Date.now()) of the build date of the script.
    • _SCRIPT_USER is replaced with a string of the user the script was pushed to.
      • This saves characters compared to context.this_script.split(".")[0].
    • _SCRIPT_SUBNAME is like _SCRIPT_USER but for the name of the script.
      • Saves characters compared to context.this_script.split(".")[1].
    • _FULL_SCRIPT_NAME is replaced with what would be in context.this_script.
    • Subscript and #db methods names are verified.
    • All references to preprocessor syntax functions not being called are turned into arrow function wrappers e.g. let debug = #D; -> let debug = v => #D(v);.
    • _SECLEVEL is replaced with a number (0 to 4) representing the seclevel of the script.
  • And Neat Weird Fixes
    • Like .__proto__ and .prototype being converted to ["__proto__"] and ["prototype"].
    • Illegal and unsafe strings.
      • Appearences of _SC and friends are either renamed or have an escape inserted so that script is legal.
      • Preprocessor syntax in strings are escaped so hackmud doesn't recognise them as preprocessor syntax.
      • And appearences of // in strings and regexes have a backslash inserted between to stop hackmud's overagressive comment remover from removing half the line of code.
    • Classes are actually usable now, this module replaces instances of this with a variable referencing what would be this.
    • Function.prototype can be referenced (but only the .prototype property, nothing else).
    • Object.getPrototypeOf and Object.setPrototypeOf are replaced with equivalent functions.