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

webgme-engine

v2.29.0

Published

WebGME server and Client API without a GUI

Downloads

519

Readme

license Build status Version Downloads

webgme-engine

This is the "engine" of the webgme application and contains all server code, common-modules and client-api. If this is your first encounter with webgme the webgme/webgme is probably what you're looking for.

The webgme-engine was forked off from webgme/webgme at version v2.17.0 and since then is released separately from webgme starting off from v2.18.0.

Most documentation in the webgme/webgme - wiki is still applicable for this repository (all except the GUI specifics).

webgme/webgme uses the engine as a dependency and a repository should only depend on one of these libraries.

Developers

Dependencies

  • NodeJS (version >= 14, CI tests are performed on version 18.x and 20.x).
  • MongoDB (2.6 >= version).
  • Git (must be available in PATH).
  • Redis needed to run all tests and if serving under multiple nodes.

Command line interface

All runnable javascript programs are stored in the src/bin directory, you should start them with node from the root directory of the repository, e.g. node src/bin/start_server.js starts the web server. Each script supports the --help or -h command line parameter, which will list all possible parameters.

  • start_server.js: it starts a web server, which opens a connection to the configured MongoDB.
  • run_plugin.js: executes a plugin via a direct MongoDB connection.
  • merge.js: merges two branches if there are no conflicts.
  • usermanager.js: manages users, organizations, and project authorization (read, write, delete).
  • clean_up.js: lists/removes projects based on supplied criteria (commits, branches, regex etc.).
  • export.js: exports a (snapshot of a) branch into a webgmex-file.
  • import.js: imports a (snapshot of a) branch (from webgmex-file) into a webgme project.
  • addon_handler.js: starts a server that handles running addons (see config.addOn.workerUrl).
  • manage_webhooks.js: add/update/remove webhooks to and from projects.
  • blob_fs_clean_up.js: cleans up blobs from the filesystem that are not referenced from any projects.
  • plugin_hook.js: plugin developer utility for triggering plugin on changes made to a project.
  • storage_stats.js: outputs statistics about the projects in the database.
  • connected_webhook_handler.js: webhook example illustrating how to create an authenticated remote connection to the storage (models).

Repo structure

  • config - contains the configuration files for webgme.
  • dist - container for webgme.classes.build.js generated at prepublish or postinstall.
  • docs - 'REST' and 'source' are generated at postinstall.
  • seeds - contains the project templates including the base seed 'EmptyProject' and some samples.
  • src/addon - addon related files - all these are currently only executed under nodejs.
  • src/app - sample application illustrating how to use the webgme.classes.build.js from served from dist. The path to the app-dir is configurable via gmeConfig.client.appDir.
  • src/bin - contains the bin-scripts explained above.
  • src/client - code for the browser/GUI API - a.k.a. the "Client API" (strictly JavaScript and no HTML nor CSS)
  • src/common - code running under nodejs and/or inside a browser. Under nodejs the code (e.g. core, storage and blob) is typically executed in workers and not in the main server process.
  • src/docs - source code documentation that isn't inlined in the code itself.
  • src/plugin - plugin related code such as plugin-managers and the PluginBase, also contains a range of sample plugins under 'coreplugins'.
  • src/server - code strictly running under nodejs. Aside from the worker code - the code runs in the main server process.
  • test - test directory, note that _globals.js contains utitlity functions for settings up test-contexts.
  • test-karma - test directory for tests running inside a browser.
  • test-tmp - temporary files generate during tests.
  • utils - postinstall, prebublish and build scripts.