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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@archetype-org/golem

v1.6.1-next.4

Published

Project creation and package management CLI for Urbit

Downloads

13

Readme

Golem

Golem is a JavaScript CLI-Tool for creating, testing, and deploying Urbit apps, as well as integrating with decentralized package managment registires such as Egyn.

Rather than building additional tools for Urbit, Golem is the mud and the piping — providing a minimally opinionated full-stack framework for combining the existing tools for Urbit development as well as integrating new ones.

Contents

Project Structure

/<my-project>
  /apps
  	/<my-project>
  	  /desk
  	    /<desk-template>
  	  /desk-deps
  		/base-dev
  		/garden
  		...<other-desks>
  	  /ui
  	    /<react-template>
  /ships
  	/ships.json
  	/zod (fake)
  	/<other-fake-ships

Getting Started

Installation

golem, is a CLI, install golem globally via npm or yarn:

npm install -g @archetype-org/golem

Publishing Namespace

Once installed you can begin creating projects and installing packages from the registry.

To publish a package, you will need to have a NEAR account and some NEAR in it for gas. (See here for more information.)

Reference & Usage

Project Creation

Create

You can create a blank app by default or build one from template with the commands below:

Basic

To create an empty project which includes the minimal gall agent and no frontend. If you are using golem globally installed, run:

golem new <my-project>

Create From Template

To instead create a project from a specific template you can supply the template name like so:

golem new <my-project> <template-name>

NOTE: For expediency, the create command does not initialize your test ship for the project. Once you have a project, you can initialize it with:

cd <my-project>
golem init

This should take a few minutes to run.

Some Available Templates:

Here are a couple templates available in the CLI and example commands

CRUD (DB) Template

This template provides a sur, lib, and mar files for one datatype and uses them in the on-poke and on-peek arms of the agent. The setup is meant to be easily extensible either by adding properties or additional data types.

golem new <my-project> crud
cd <my-project>
golem init
Sail (CRM) Template

This template includes all the piping in the CRUD template as well as an opinionated setup for serving Sail UI from the same agent, inlcuding separation of UI components into files.

golem new <my-project> sail
cd <my-project>
golem init

Build & Serve

Once you are in the project folder you can build the test envs by running:

cd <my-project>
golem build

Once this is run, you can find your desk installed in a test ship at http://localhost, the UI will still need to be globbed for it to show up, but you can confirm the desk installation by visiting http://localhost/docket/upload and finding it in the dropdown. Use the form on that page to upload the contents of the /<my-project>/ui folder and you should be able to test it.

Dojo Access

If you need it, you can access the shell for your test env at any time with:

golem shell

Shutdown Fake Ships

golem runs your test ships in the background. You can stop a running urbit ship by running:

golem kill

This will search for a running urbit ship and kill it. This will kill the ship regardless of if it is a golem project or another fakeship you have running.

Package Management

Install Packages

To install a package from the registry, you can use the install command like so:

golem install @<publisher-name>/<package-name>

The publisher name is the NEAR account name of the person or organization that published the package.

Uninstall Packages

To uninstall a package, you can use the uninstall command like so:

golem uninstall @<publisher-name>/<package-name>

Publish Packages

Publishing uses the near blockchain and IPFS, you will need an account on NEAR's testnet with some NEAR in it for gas. There are no requirments on the IPFS side.

Once you have a NEAR account you must also install the CLI and login with it. Full and up to date instructions can be found here. But the basic steps are:

npm install -g near-cli
near login

Once logged in, you can publish a package by running:

golem publish <package-name> <semantic-version>

The package name must match a folder or path in your project, and the semantic version must be a valid semantic version. By default, golem will look for the specified folder or file in the /lib folder, but if you specify /app, /sur, or /mar, in the prefix of your path, it will look in the root of that folder instead. Any valid hoon file or folder of hoon files is a valid package.

Search Packages

You can search the registry for a package to verify that it exists by running:

golem search @<publisher-name>/<package-name>

the search command in the CLI can't not perform fuzzy matching by default, since the registry contract is decentralized, it is includeded to allow for easy verification of a package's existence without installing it.