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

ethercalc

v0.20201228.1

Published

Multi-User Spreadsheet Server

Downloads

463

Readme

EtherCalc

  • Overview: https://ethercalc.net/

  • 中文版: http://tw.ethercalc.net/

  • 简体中文: http://cn.ethercalc.net/

  • REST API: http://docs.ethercalc.apiary.io/

  • Language: LiveScript

  • Runtime: Node.js (4.x preferred, should work with 0.8+)

  • Services: Redis (2.4+; fall-back to on-disk JSON storage if not present)

    • Multi-server is supported only when running with Redis
    • Note to Redis 2.2 users (e.g. on Ubuntu 12.04): Please disable the timeout 300 setting in /etc/redis.conf, or upgrade to Redis 2.4+ if possible at all. For more details, see #49.
  • Browsers tested: Safari, Chrome, Firefox, IE.

  • Integrated with content management systems:

Installation

For global installation (may need root)

npm i -g ethercalc
ethercalc

For local non-root installation

git clone [email protected]:audreyt/ethercalc.git
cd ethercalc
npm i
make

Nodejs older than 6.0

downgrade Nodemailer to v2.7.2

Or install with our Docker image, which comes with support for webworker-threads:

# Install docker and docker-compose
sudo ./misc/linux-install-docker-and-compose.sh

# Run ethercalc on port 80 ( http://localhost/ )
docker-compose up -d

Config database

set env vars:
  REDIS_PORT REDIS_HOST REDIS_SOCKPATH REDIS_PASS REDIS_DB OPENSHIFT_DATA_DIR

Defaults:
  REDIS_HOST = localhost   
  REDIS_PORT = 6379   
  OPENSHIFT_DATA_DIR= process.cwd!

OPENSHIFT_DATA_DIR is used if redis is not Running.

Code is here:
https://github.com/audreyt/ethercalc/blob/df758d4c2f5cbcb00b50e9289a8ba237d4f8fa86/src/db.ls#L5

Send email

Optional - Send email formulas requires OAuth2 & cron  e.g. =email(to, subject, body), =emailAt(time, to, subject, body)

OAuth2 - Set environment vars
1) Tutorial: follow the tutorial to get the 4 environment vars http://masashi-k.blogspot.com.au/2013/06/sending-mail-with-gmail-using-xoauth2.html
2) Set 4 environment vars - see [src/emailer.ls] vars: user, clientId, clientSecret, refreshToken
Tested using gmail, have not tested with other providors

Cron - Required for emailAt formulas.
See *curl* in [.openshift/cron/minutely/timetrigger] for openshift version (openshift](openshift.redhat.com)
The curl checks the database for unsent emails and updates the database after sending.

REST API

Please see API.md for the API Blueprint, or the online version at Apiary.

Runtime Flags

Listening Interface: --host / --port

Specify a specific host and/or a different port for the service.

By default EtherCalc listens at 0.0.0.0:8000 (all IPv4 interfaces).

Using SSL: --keyfile / --certfile

openssl genrsa -out ethercalc-key.pem 1024
openssl req -new -key ethercalc-key.pem -out certrequest.csr
openssl x509 -req -in certrequest.csr -signkey ethercalc-key.pem -out ethercalc-cert.pem
ethercalc --keyfile ethercalc-key.pem --certfile ethercalc-cert.pem

Prefers polling over Websocket: --polling

Useful when running behind a proxy without WebSocket support.

Enable Cross-Origin Resource Sharing: --cors

Useful when setting up EtherCalc as a public REST API server.

URL Prefix: --basepath /path/prefix

Useful when running under an URL rewriter. If running with a nginx reverse proxy, please add this section:

    location /zappa/socket/__local/ {
        rewrite (.*) /path/prefix$1;
    }

Access Control: --key secret

Offers read-write vs. read-only modes. See issues #1 and #4 for details on setting this up.

Disable server-side WebWorkers: --vm

Runs a single-thread background loop with vm.createContext instead of webworker-threads.

Useful for running custom functions in server side that requires full VM access.

Expires inactive spreadsheets: --expire 86400

Deletes a spreadsheet's content after N seconds of inactivity. Activities include accessing with REST API as well as Web UI, including moving the active cell cursor on an opened page.

Licensing

Common Public Attribution License (Socialtext Inc.)

  • socialcalcspreadsheetcontrol.js
  • socialcalctableeditor.js

Artistic License 2.0 (Socialtext Inc.)

  • formatnumber2.js
  • formula1.js
  • socialcalc-3.js
  • socialcalcconstants.js
  • socialcalcpopup.js

Artistic License 2.0 (Framasoft)

  • l10n/fr.json

MIT License (John Resig, The Dojo Foundation)

  • static/jquery.js

MIT License (HubSpot, Inc.)

  • static/vex-theme-flat-attack.css
  • static/vex.combined.min.js
  • static/vex.css

MIT License (Stuart Knightley, David Duponchel, Franz Buchinger, Ant'onio Afonso)

  • static/jszip.js

Apache License 2.0 (SheetJS)

  • static/shim.js
  • static/xlsx.js
  • static/xlsxworker.js
  • start.html (xlsx2socialcalc.js)

CC0 Public Domain (唐鳳)

  • src/*.ls

Mozilla Public License Version 2.0 (LibreOffice contributors)

  • images/sc_*.png