Actionhero is a realtime multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks

Overview

Actionhero

The reusable, scalable, and quick node.js API server for stateless and stateful applications


Actionhero Logo


NPM Version Node Version NPM Dependency Status

Test Awesome Follow new releases Chat

Who is the Actionhero?

Actionhero is a multi-transport API Server with integrated cluster capabilities and delayed tasks. The goal of actionhero is to create an easy-to-use toolkit for making reusable & scalable APIs for HTTP, WebSockets, and more. Clients connected to an actionhero server can consume the api, consume static content, and communicate with each other. Actionhero is cluster-ready, with built in support for background tasks, 0-downtime deploys, and more. Actionhero provides a simple Async/Await API for managing every type of connection and background task.

Currently actionhero supports the following out of the box...

... and you can also make your own servers and transports.

Quick Start

# Generate a new Project
npx actionhero generate
npm install
npm run build
npm run dev # <-- I automatically notice changes and restart, as well as compiling .ts files

# Use the actionhero CLI
(npx) actionhero generate action --name my_action
(npx) actionhero generate task --name my_task --queue default --frequency 0

# Test
npm test

# To deploy your app
npm run build
npm run start

Your new project will come with example actions, tests, and more.

Or deploy a free API server now:

Deploy to Heroku

Learn More 📚

In-depth Tutorials 🎓

Core Components

Server Types

Testing, Deployment, and Operations

Sample Projects

Who?

  • Many folks have helped to make Actionhero a reality.
  • If you want to contribute to actionhero, contribute to the conversation on github and join us on slack

Contributing

License

Apache 2.0

Dedication

Technology is a powerful force in our society. Data, software, and communication can be used for bad: to entrench unfair power structures, to undermine human rights, and to protect vested interests. But they can also be used for good: to make underrepresented people’s voices heard, to create opportunities for everyone, and to avert disasters. This project is dedicated to everyone working toward the good.

Inspired by Martin Kleppmann

Comments
  • Added Gruntfile

    Added Gruntfile

    It seems a little imperative to not use a well known tool like grunt to handle these tasks.

    I added these basic tasks.

    • test
      • testFakeRedis
      • testRealRedis
    • publish
      • clean:publish
      • uglify: publish
    • update
      • projectUpdate

    I replaced the test and prepublish sections of the package.json with the new grunt tasks.

    I am seeing several test failures but I was seeing these before and after applying my changes so the might be related to my environment.

    Thanks

    opened by nullivex 35
  • Can we start using generators / iterations?

    Can we start using generators / iterations?

    now with iojs and node v0.11, we can start using iterators and generators. This makes for simpler and clearer programming.

    However, this means you cannot run actionhero on older versions of node.

    Is it worth it?

    opened by evantahler 27
  • unhandled rejection in cluster mode

    unhandled rejection in cluster mode

    unhandled rejection in cluster mode

    Hi! I wrote you in previous issue, but you didn't respond and I cant reopen it. So, the problem continues, within some time instance go down processiong tasks, with message:

    10.5.30.11 @ 2018-06-03T08:05:03.426Z - notice: cluster equilibrium state reached with 2 workers
    10.5.30.11 @ 2018-06-03T08:08:02.643Z - alert: [worker #1 (26046)]: unhandled rejection => worker not found
    10.5.30.11 @ 2018-06-03T08:08:02.643Z - alert: [worker #1 (26046)]:    Error: worker not found
    10.5.30.11 @ 2018-06-03T08:08:02.643Z - alert: [worker #1 (26046)]:        at Queue.forceCleanWorker (/var/opt/EasyBits/NotifyService/node_modules/node-resque/lib/queue.js:250:26)
    10.5.30.11 @ 2018-06-03T08:08:02.643Z - alert: [worker #1 (26046)]:        at <anonymous>
    10.5.30.11 @ 2018-06-03T08:08:02.643Z - notice: cluster equilibrium state reached with 2 workers
    

    So, as u can see, when worked is become resque master it goes down trying to forceCleanWorker. In redis I see a lot of records in resque:worker:app1, in format resque:worker:ping:app1:10034+1. As I can understand 10034 is a process PID, but it is not exist.

    As I see from node-resque code:

      async forceCleanWorker (workerName) {
        let errorPayload
    
        let workers = await this.workers()
        let queues = workers[workerName]
        if (!queues) { throw new Error('worker not found') }
    

    So, if worker is not present in current worker list, it well be an error. OK, but why is it unhandled and workers crashes? Can you fix it?

    Thank you!

    • ActionHero Version: master
    • Node.js Version: 8.11.2
    • Operating System: CentOS 7
    opened by DoctorDimon 22
  •  unhandled rejection in cluster mode

    unhandled rejection in cluster mode

    unhandled rejection in cluster mode

    Hello! In cluster mode my application crashes sometimes, with message (in cluster log):

    @ 2018-05-24T09:34:43.756Z - alert: worker #469 [9812]: unhandled rejection => {"reason":{},"p":{}}
    

    Can you please help me, how to find out what is happening and how to fix it? In workers logs there are no errors at all.

    • ActionHero Version: 19.0.1
    • Node.js Version: 8.11.2
    • Operating System: CentOS 7
    bug 
    opened by DoctorDimon 22
  • Add support for per-action middleware

    Add support for per-action middleware

    This PR adds support for more generic middleware functionality. I didn't write a full gh-pages document update yet (I wanted feedback on the PR itself yet) - but I will if this is accepted. In the meantime, this allows middleware authors to call a new function to register their modules:

    api.actions.addMiddleware('jwtSession', {
      preprocess: function(connection, actionTemplate, next) {
        var config = actionTemplate.middleware.preprocess.jwtSession || { default: 1 };
        next(connection, true);
      }
    });
    

    Middleware modules may register for preprocess, postprocess, or both. Future enhancements could allow many more hooks, obviously, so I kept it generic, as a collection of hooks to provide.

    Nothing further happens yet. Middleware that want to also provide global functionality for all requests can continue to do so using the usual addPreProcessor()/addPostProcessor() calls.

    To use these enhanced middleware modules, actions add a new configuration key to their metadata blocks:

    middleware: {
        preprocess: {
            jwtSession: {
                loadFullUser: true
            },
            quotaManager: {}
        },
        postprocess: {
            requestAuditor: {}
        }
    },
    

    This allows actions to be declarative about the middleware that should be run before/after they're called. This system is opt-in since middleware can still provide global hooks for all actions. But using this new mechanism, you can define in the action whether something like a user session loader needs to run (yes for authenticated requests, no for anonymous requests). session, quota, and audit handlers were the three use-cases I imagined (actually, that I HAD) but I'm sure there are many more.

    I've deliberately written the code to more or less parallel what's currently done for the global handlers, so it's a bigger diff than it needs to be. There's some duplication of code in how the array of async callbacks is constructed - if this PR is accepted I can refactor them to make the code more elegant.

    opened by crrobinson14 22
  • Common loader for initializers

    Common loader for initializers

    This is the common loader implementation I created for initializers; both action.js and task.js create instances of the ./initializers/common/commonLoader.js object and then modify/add properties/methods as required. This allows the following:

    -Common loading pattern for directories -Common loading pattern for files/modules -Common initialization pattern -Common file watching behavior -Internal validation engine that allows for name/type pairs to be used, with the option of rolling it into additional wrapper validation logic that is initializer specific (see action.js for example)

    I also cleaned up the differences in method/property declaration between the two initializers. I removed the object literal notation in tasks.js, makes it easier to inherit/override from an instantiated object.

    opened by TJKoury 19
  • Params not setting POST data

    Params not setting POST data

    I've a rest api with and for some reason it doesn't receive post data

    // routes.js
    exports.routes = {
      post: [
        { path: "/:apiVersion/classes/:className([a-z]{1,32})", action: "classesCreate" }
      ]
    };
    

    and in the terminal

    curl -X POST -d "name=Test row&description=Test purpose" http://localhost:8080/api/1/classes/Test -v
    * About to connect() to localhost port 8080 (#0)
    *   Trying 127.0.0.1...
    * connected
    * Connected to localhost (127.0.0.1) port 8080 (#0)
    > POST /api/1/classes/Test HTTP/1.1
    > User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8x zlib/1.2.5
    > Host: localhost:8080
    > Accept: */*
    > Content-Length: 38
    > Content-Type: application/x-www-form-urlencoded
    > 
    * upload completely sent off: 38 out of 38 bytes
    < HTTP/1.1 200 OK
    < Content-Length: 484
    < X-Powered-By: actionHero API
    < Content-Type: application/json
    < Transfer-Encoding: Chunked
    < Set-Cookie: sessionID=f101bd37217211e93810c6b96c376838d7c92d71
    < Date: Thu, 05 Sep 2013 15:50:50 GMT
    < Connection: keep-alive
    < 
    {
      "error": "Error: The server experienced an internal error",
      "serverInformation": {
        "serverName": "actionHero API",
        "apiVersion": "0.0.1",
        "requestDuration": 22,
        "currentTime": 1378396250555
      },
      "requestorInformation": {
        "id": "f101bd37217211e93810c6b96c376838d7c92d71",
        "remoteIP": "127.0.0.1",
        "receivedParams": {
          "apiVersion": 1,
          "className": "Test",
          "action": "classesCreate",
          "limit": 100,
          "offset": 0
        }
      }
    * Connection #0 to host localhost left intact
    }* Closing connection #0
    

    The server error isn't an issue, but in the request information you can see the only params received are from the route url, I'm doing it wrong or there is another way to accomplish this?

    Regards

    opened by norman784 19
  • (Windows 10 - Node v6.2.2 - NPM v3.9.6) Crash on get http://127.0.0.1:8080/

    (Windows 10 - Node v6.2.2 - NPM v3.9.6) Crash on get http://127.0.0.1:8080/

    Hello,

    On fresh install.

    My server crash on get http://127.0.0.1:8080/ So when I go on http://127.0.0.1:8080/api/status it works

    Console output /

    C:\Users\nicolas\Debans\api  ([email protected])
    λ npm start
    
    > [email protected] start C:\Users\nicolas\Debans\api
    > actionhero start
    
    2016-06-22T21:54:36.318Z - info: actionhero >> start
    2016-06-22T21:54:36.754Z - notice: *** starting actionhero ***
    2016-06-22T21:54:36.927Z - warning: running with fakeredis
    2016-06-22T21:54:36.967Z - info: actionhero member 192.168.1.68 has joined the cluster
    2016-06-22T21:54:37.397Z - notice: pid: 10116
    2016-06-22T21:54:37.402Z - notice: server ID: 192.168.1.68
    2016-06-22T21:54:37.444Z - notice: Starting server: `web` @ 0.0.0.0:8080
    2016-06-22T21:54:37.490Z - notice: Starting server: `websocket`
    2016-06-22T21:54:40.865Z - notice: environment: development
    _http_outgoing.js:309
        throw new TypeError('The header content contains invalid characters');
        ^
    
    TypeError: The header content contains invalid characters
        at storeHeader (_http_outgoing.js:309:11)
        at ServerResponse.OutgoingMessage._storeHeader (_http_outgoing.js:223:9)
        at ServerResponse.writeHead (_http_server.js:218:8)
        at server.sendWithCompression (C:\Users\nicolas\Debans\api\node_modules\actionhero\servers\web.js:194:38)
        at server.sendFile (C:\Users\nicolas\Debans\api\node_modules\actionhero\servers\web.js:148:14)
        at C:\Users\nicolas\Debans\api\node_modules\actionhero\initializers\genericServer.js:99:14
        at ReadStream.<anonymous> (C:\Users\nicolas\Debans\api\node_modules\actionhero\initializers\staticFile.js:73:15)
        at emitOne (events.js:96:13)
        at ReadStream.emit (events.js:188:7)
        at fs.js:1718:10
    
    npm ERR! Windows_NT 10.0.10586
    npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\nicolas\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "start"
    npm ERR! node v6.2.2
    npm ERR! npm  v3.9.6
    npm ERR! code ELIFECYCLE
    npm ERR! [email protected] start: `actionhero start`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the [email protected] start script 'actionhero start'.
    npm ERR! Make sure you have the latest version of node.js and npm installed.
    npm ERR! If you do, this is most likely a problem with the debans_gaming_api package,
    npm ERR! not with npm itself.
    npm ERR! Tell the author that this fails on your system:
    npm ERR!     actionhero start
    npm ERR! You can get information on how to open an issue for this project with:
    npm ERR!     npm bugs debans_gaming_api
    npm ERR! Or if that isn't available, you can get their info via:
    npm ERR!     npm owner ls debans_gaming_api
    npm ERR! There is likely additional logging output above.
    
    npm ERR! Please include the following file with any support request:
    npm ERR!     C:\Users\nicolas\Debans\api\npm-debug.log
    
    opened by norfair00 18
  • Slow under load

    Slow under load

    Hello @evantahler! We're trying to use actionhero to build heavy-load app, which should respond with small pieces of data extrimely quickly (our expectation is 50-60 ms for each piece which is not more than 1 kb). But when we develop simple app to test our idea, we've stuck with performance tests. Tests gave us the results we were not expecting - about 150 ms for each request, even single (network speed is 100 MBit/s). We disabled statistics and logging for our tests. Then we discovered, that even one-pixel static file is returning in 50-60 ms (through native file server, just put in /public dir). We've tried all hosting options we have, such as: Windows 2008R2, nodejitsu and joyent.com (smartOs). As soon as I can I will post here additional data about issue, like tests screenshots, tracing information and url of running service (most likely, tomorrow).

    Edit: chart - http://165.225.145.50:8080/stacks.svg pixel - http://165.225.145.50:8080/tinytrans.gif

    Edit Test results: video - http://screencast.com/t/sVDLs2Bcr8 Test results: screenshot - http://screencast.com/t/sVDLs2Bcr8

    Tests are done on joyent.com; System details: i386 processor operates at 2400 MHz Memory size: 256 Megabytes

    This machine running out-of-box actionhero project with a bit of optimizations: disabled stats and log level "emerg"

    Despite on provided machine is quite slow, we also tried to run this proj on Windows 2008 R2 (AWS instance) with 15 Gb Ram and 2.8 GHz 8-core CPU (E5-2680). Dynamic of growth response time during the test stays the same

    Note: you are free to use provided endpoint for any tests you want. If you need something else, just ask here

    In addition, I can say that even http://demo.actionherojs.com/api/randomNumber?apiVersion=1 this example experiencing the same issues (I've described above).

    Main question: can we hope, that we could optimize actionhero so it would fit our expectations (50-60 ms for little pieces of data being proxied - each piece less than one kb)?

    Thanks in advance!

    opened by m-teslya 18
  • first shot at utilising swagger docs

    first shot at utilising swagger docs

    thought id integrate the swagger ui in a more built in way other than throwing it in the public folder plus this way we can utilize updates from npm install aswell

    the swagger json is pretty basic atm due to the lack of information i can get from the action views, the only information i can really get is if the parameters required... (maybe something to look at?)

    still need to write some tests to cover this new code but thought id get something up for review.

    i wrote it all in coffeescript but the initializer looks pretty bad compiled so ill work on cleaning that up for native javascript.

    resolves #44

    cheers

    opened by BoLaMN 17
  • An in-range update of uglify-js is breaking the build 🚨

    An in-range update of uglify-js is breaking the build 🚨

    The dependency uglify-js was updated from 3.6.1 to 3.6.2.

    🚨 View failing branch.

    This version is covered by your current version range and after updating it in your project the build failed.

    uglify-js is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

    Status Details
    • ci/circleci: build: Your tests failed on CircleCI (Details).

    Release Notes for v3.6.2

     

    Commits

    The new version differs by 9 commits.

    • c3ca293 v3.6.2
    • 516b67a minor tweaks to CI test scripts (#3467)
    • eba3a37 fix boolean context detection (#3466)
    • 6d57ca1 improve source map handling (#3464)
    • 3320251 update benchmark URLs (#3462)
    • 33c94d3 detect boolean context across IIFEs (#3461)
    • b18f717 improve readability of --help ast (#3460)
    • a0d4b64 remove extraneous property (#3459)
    • 6db880e clean up AST_Binary optimisation logic (#3458)

    See the full diff

    FAQ and help

    There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


    Your Greenkeeper Bot :palm_tree:

    opened by greenkeeper[bot] 16
  • Actionhero can support ESM imports

    Actionhero can support ESM imports

    Discussed in https://github.com/actionhero/actionhero/discussions/2311

    Originally posted by hahnbeelee October 5, 2022 As the title says I want my actionhero project to support ESM. I was wondering if this is even possible at the moment?

    enhancement help wanted 
    opened by evantahler 0
  • Bump dot-prop from 6.0.1 to 7.2.0

    Bump dot-prop from 6.0.1 to 7.2.0

    Bumps dot-prop from 6.0.1 to 7.2.0.

    Release notes

    Sourced from dot-prop's releases.

    v7.2.0

    https://github.com/sindresorhus/dot-prop/compare/v7.1.1...v7.2.0

    v7.1.1

    • Fix crash when modifying array length (#89) d363922

    https://github.com/sindresorhus/dot-prop/compare/v7.1.0...v7.1.1

    v7.1.0

    https://github.com/sindresorhus/dot-prop/compare/v7.0.0...v7.1.0

    v7.0.0

    Breaking

    • This package is now pure ESM. Please read this.
    • Require Node.js 12 5a83242
    • Require TypeScript 4.1 for the types (#80) 09adad9
    • Accessing array indices were never documented in previous versions, but it worked as 'a.0'. This no longer works. Use 'a[0] instead.
    • The package now enforces named exports and renamed the methods:
      • const {get} = require('dot-prop')import {getProperty} from 'dot-prop'
      • const {set} = require('dot-prop')import {setProperty} from 'dot-prop'
      • const {has} = require('dot-prop')import {hasProperty} from 'dot-prop'
      • const {delete: delete_} = require('dot-prop')import {deleteProperty} from 'dot-prop'

    Improvements

    • Support array indexes (#82) d64e27b
    • Add strongly-typed TypeScript types (#80) 09adad9
    • Return default value if path is invalid (#86) d400c8d

    https://github.com/sindresorhus/dot-prop/compare/v6.0.1...v7.0.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Modern websocket client & Server

    Modern websocket client & Server

    Closes https://github.com/actionhero/actionhero/issues/1946

    The goals of this exploration are to:

    • Remove primus and just use ws on the server and the browser's built-in WebSocket library. It's 2021!
    • Provide a typed ActionHeroWebSocketClient that can be included in React and Angular projects
    • Provide a compiled ActionHeroWebSocketClient.js that can still be used by "static"/"simple" HTML projects (eg: the sample chat.js that ships with Actionhero
    enhancement BREAKING-CHANGE 
    opened by evantahler 0
  • ActionheroWebsocketClient typescript support

    ActionheroWebsocketClient typescript support

    When developing a websocket client for an actionhero server it would be great to have a typescript implementation that could be imported to give rich typing to developers. In the current situation, you need to add the script import to your layout and then in the code you just make a new client but typescript has no idea what the client is. Also the messages that the client creates do not have any interfaces as well.

    Desired solution: new package that would have the interfaces and the primus code.

    Users would just

    npm i actionhero-web-socket
    

    You would not need to include the javascript anymore. In your front end code you would:

    import { ActionheroWebsocketClient, ChatMessage } from 'actionhero-web-socket';
    
    const client = new ActionheroWebsocketClient();
    const messages = new Array<ChatMessage>;
    

    I think the ChatMessage might be the existing ChatPubSubMessage but I'm not sure.

    My current alternative is to include the javascript in my layout and just use the code without any type information.

    Extra thoughts:

    I think maybe it might also be possible to have the ActionheroWebsocketClient keep the list of messages and expose them via the client

    const message = client.messages.shift();
    // message is a ChatMessage
    

    Also, the state of the connection could be kept in the client as well. So as a user of this api I would just need to construct the client, connect it and then process callbacks.

    enhancement 
    opened by mfvargo 4
  • `task.enqueueIn()` and `task.enqueueAt()` does not run the `preEnqueue` and `postEnqueue` methods of Task Middleware

    `task.enqueueIn()` and `task.enqueueAt()` does not run the `preEnqueue` and `postEnqueue` methods of Task Middleware

    From https://github.com/actionhero/actionhero/issues/1908

    Currently, task.enqueue() does property run task.enqueueIn() and task.enqueueAt() but the delayed methods don't. The delayed methods should run the middleware lifecycle steps either at the point of delayed enqueue, or the scheduler should do it at the point of moving the delayed task to the normal work queues.

    bug 
    opened by evantahler 0
  • Config option for strict API parameter filtering: `api.config.general.rejectActionWithExtraParams`

    Config option for strict API parameter filtering: `api.config.general.rejectActionWithExtraParams`

    We had an issue where an api user was using the incorrect parameters on an API call. Having this feature would have made the API fail instead of proceeding. The bug would been found earlier.

    I can see where this would be a hassle on many cases, But it would be nice for new projects.

    I suppose it could be a global config item that could be overridden at the individual action level:

    For Example:

    export class SessionLogin extends Action {
      constructor() {
        super();
        this.name = "login";
        this.description = "login a user on the site";
        this.rejectActionWithTooManyParams = true; // apply this rule on this specific action
        this.inputs = {
          email: { required: true },
          password: { required: true },
          token: { required: false },
          asDefendantRep: {
            required: false,
            default: false,
            formatter: (param) => {
              return param !== "false" && param !== false;
            },
          },
        };
      }
    
    good first issue enhancement help wanted 
    opened by mfvargo 0
Releases(v28.2.2)
  • v28.2.2(Dec 22, 2022)

    What's Changed

    • Bump typescript from 4.8.4 to 4.9.3 by @dependabot in https://github.com/actionhero/actionhero/pull/2341
    • Bump prettier from 2.7.1 to 2.8.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2343
    • Bump type-fest from 3.2.0 to 3.3.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2342
    • Bump @types/node from 18.11.9 to 18.11.10 by @dependabot in https://github.com/actionhero/actionhero/pull/2348
    • Bump formidable from 2.0.1 to 2.1.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2347
    • Bump @types/uuid from 8.3.4 to 9.0.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2346
    • Bump typedoc from 0.23.21 to 0.23.22 by @dependabot in https://github.com/actionhero/actionhero/pull/2351
    • Bump prettier from 2.8.0 to 2.8.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2352
    • Bump typescript from 4.9.3 to 4.9.4 by @dependabot in https://github.com/actionhero/actionhero/pull/2354
    • Bump @types/node from 18.11.10 to 18.11.13 by @dependabot in https://github.com/actionhero/actionhero/pull/2355
    • Update deps and remove need for jest-jsdom by @evantahler in https://github.com/actionhero/actionhero/pull/2356
    • Bump @types/node from 18.11.13 to 18.11.17 by @dependabot in https://github.com/actionhero/actionhero/pull/2360
    • Bump puppeteer from 19.4.0 to 19.4.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2358
    • Bump typedoc from 0.23.22 to 0.23.23 by @dependabot in https://github.com/actionhero/actionhero/pull/2357
    • add logger support maxLogStringLength config to Response by @ShunPin in https://github.com/actionhero/actionhero/pull/2361

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.2.1...v28.2.2

    Source code(tar.gz)
    Source code(zip)
  • v28.2.1(Nov 14, 2022)

    What's Changed

    • Bump @types/node from 18.8.0 to 18.8.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2308
    • Bump type-fest from 3.0.0 to 3.1.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2314
    • Bump @types/node from 18.8.1 to 18.8.4 by @dependabot in https://github.com/actionhero/actionhero/pull/2316
    • Bump @types/node from 18.8.4 to 18.11.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2317
    • Bump typedoc from 0.23.15 to 0.23.16 by @dependabot in https://github.com/actionhero/actionhero/pull/2319
    • Bump actions/cache from 3.0.10 to 3.0.11 by @dependabot in https://github.com/actionhero/actionhero/pull/2320
    • Bump actions/setup-node from 3.5.0 to 3.5.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2321
    • Bump typedoc from 0.23.16 to 0.23.18 by @dependabot in https://github.com/actionhero/actionhero/pull/2323
    • Bump @types/node from 18.11.0 to 18.11.4 by @dependabot in https://github.com/actionhero/actionhero/pull/2324
    • Bump @types/node from 18.11.4 to 18.11.8 by @dependabot in https://github.com/actionhero/actionhero/pull/2328
    • Bump ws from 8.9.0 to 8.10.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2329
    • Bump typedoc from 0.23.18 to 0.23.19 by @dependabot in https://github.com/actionhero/actionhero/pull/2326
    • Bump @types/ioredis from 4.28.10 to 5.0.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2330
    • Test with node.js 18 by @evantahler in https://github.com/actionhero/actionhero/pull/2331
    • Bump typedoc from 0.23.19 to 0.23.20 by @dependabot in https://github.com/actionhero/actionhero/pull/2338
    • Bump @types/node from 18.11.8 to 18.11.9 by @dependabot in https://github.com/actionhero/actionhero/pull/2337
    • Bump ioredis from 5.2.3 to 5.2.4 by @dependabot in https://github.com/actionhero/actionhero/pull/2335
    • Bump type-fest from 3.1.0 to 3.2.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2334
    • Bump ws from 8.10.0 to 8.11.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2332
    • Bump yargs from 17.6.0 to 17.6.2 by @dependabot in https://github.com/actionhero/actionhero/pull/2336
    • Bump typedoc from 0.23.20 to 0.23.21 by @dependabot in https://github.com/actionhero/actionhero/pull/2340
    • Bump node-resque from 9.2.0 to 9.2.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2339

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.2.0...v28.2.1

    Source code(tar.gz)
    Source code(zip)
  • v28.2.0(Oct 5, 2022)

    What's Changed

    • Bump ws from 8.8.1 to 8.9.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2299
    • Bump @types/node from 18.7.18 to 18.7.22 by @dependabot in https://github.com/actionhero/actionhero/pull/2300
    • Bump puppeteer from 18.0.2 to 18.0.5 by @dependabot in https://github.com/actionhero/actionhero/pull/2301
    • Bump actions/cache from 3.0.8 to 3.0.10 by @dependabot in https://github.com/actionhero/actionhero/pull/2306
    • Bump actions/setup-node from 3.4.1 to 3.5.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2307
    • Bump typescript from 4.8.3 to 4.8.4 by @dependabot in https://github.com/actionhero/actionhero/pull/2305
    • Bump yargs from 17.5.1 to 17.6.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2304
    • Bump commander from 9.4.0 to 9.4.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2303
    • Bump @types/node from 18.7.22 to 18.8.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2302
    • Ignore spec files to allow for co-located tests by @okcoker in https://github.com/actionhero/actionhero/pull/2309

    New Contributors

    • @okcoker made their first contribution in https://github.com/actionhero/actionhero/pull/2309

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.14...v28.2.0

    Source code(tar.gz)
    Source code(zip)
  • v28.1.14(Sep 23, 2022)

    What's Changed

    • @types/glob is now required for generated projects by @evantahler in https://github.com/actionhero/actionhero/pull/2298

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.13...v28.1.14

    Source code(tar.gz)
    Source code(zip)
  • v28.1.13(Sep 23, 2022)

    What's Changed

    • Bump typescript from 4.8.2 to 4.8.3 by @dependabot in https://github.com/actionhero/actionhero/pull/2287
    • Bump uuid from 8.3.2 to 9.0.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2289
    • Bump @types/node from 18.7.15 to 18.7.16 by @dependabot in https://github.com/actionhero/actionhero/pull/2290
    • Bump puppeteer from 17.1.1 to 17.1.3 by @dependabot in https://github.com/actionhero/actionhero/pull/2291
    • Bump winston from 3.8.1 to 3.8.2 by @dependabot in https://github.com/actionhero/actionhero/pull/2288
    • Bump puppeteer from 17.1.3 to 18.0.2 by @dependabot in https://github.com/actionhero/actionhero/pull/2292
    • Bump typedoc from 0.23.14 to 0.23.15 by @dependabot in https://github.com/actionhero/actionhero/pull/2293
    • Bump @types/node from 18.7.16 to 18.7.18 by @dependabot in https://github.com/actionhero/actionhero/pull/2294
    • Move type-fest to deps, upgrade to v3 by @evantahler in https://github.com/actionhero/actionhero/pull/2297

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.12...v28.1.13

    Source code(tar.gz)
    Source code(zip)
  • v28.1.12(Sep 6, 2022)

    What's Changed

    • Deeply copy objects for logging by @evantahler in https://github.com/actionhero/actionhero/pull/2265
    • Update redis and redis packages by @evantahler in https://github.com/actionhero/actionhero/pull/2276
    • Fix glob problems with path's in windows, safeGlobSync implemented. by @YamCrack in https://github.com/actionhero/actionhero/pull/2278

    New Contributors

    • @YamCrack made their first contribution in https://github.com/actionhero/actionhero/pull/2278

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.11...v28.1.12

    Source code(tar.gz)
    Source code(zip)
  • v28.1.11(May 27, 2022)

    What's Changed

    • Bump glob from 8.0.1 to 8.0.3 by @dependabot in https://github.com/actionhero/actionhero/pull/2188
    • Bump puppeteer from 14.0.0 to 14.1.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2189
    • Bump yargs from 17.4.1 to 17.5.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2190
    • Bump @types/node from 17.0.31 to 17.0.33 by @dependabot in https://github.com/actionhero/actionhero/pull/2191
    • Bump actions/setup-node from 3.1.1 to 3.2.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2192
    • Bump @types/node from 17.0.33 to 17.0.35 by @dependabot in https://github.com/actionhero/actionhero/pull/2195
    • Bump puppeteer from 14.1.0 to 14.1.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2194
    • fix websocket bind logger message by @rakhnin in https://github.com/actionhero/actionhero/pull/2196

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.10...v28.1.11

    Source code(tar.gz)
    Source code(zip)
  • v28.1.10(May 13, 2022)

    What's Changed

    • Included githubactions in the dependabot config by @nathannaveen in https://github.com/actionhero/actionhero/pull/2158
    • Bump actions/setup-node from 1 to 3.1.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2159
    • Bump winston from 3.7.1 to 3.7.2 by @dependabot in https://github.com/actionhero/actionhero/pull/2162
    • Bump actions/cache from 2 to 3.0.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2160
    • Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/actionhero/actionhero/pull/2161
    • Set permissions for GitHub actions by @nathannaveen in https://github.com/actionhero/actionhero/pull/2163
    • Bump yargs from 17.4.0 to 17.4.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2165
    • Bump typedoc from 0.22.13 to 0.22.15 by @dependabot in https://github.com/actionhero/actionhero/pull/2164
    • Remove node v12 from test suite by @evantahler in https://github.com/actionhero/actionhero/pull/2166
    • Bump glob from 7.2.0 to 8.0.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2167
    • Bump actions/setup-node from 3.1.0 to 3.1.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2168
    • Bump actions/cache from 3.0.1 to 3.0.2 by @dependabot in https://github.com/actionhero/actionhero/pull/2169
    • Bump puppeteer from 13.5.2 to 14.0.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2185
    • Bump @types/jest from 27.4.1 to 27.5.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2184
    • Bump ioredis-mock from 7.2.0 to 7.4.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2183
    • Bump @types/puppeteer from 5.4.5 to 5.4.6 by @dependabot in https://github.com/actionhero/actionhero/pull/2179
    • Bump typescript from 4.6.3 to 4.6.4 by @dependabot in https://github.com/actionhero/actionhero/pull/2177
    • Bump primus from 8.0.5 to 8.0.6 by @dependabot in https://github.com/actionhero/actionhero/pull/2176
    • Bump @types/node from 17.0.23 to 17.0.31 by @dependabot in https://github.com/actionhero/actionhero/pull/2178
    • Bump @types/formidable from 2.0.4 to 2.0.5 by @dependabot in https://github.com/actionhero/actionhero/pull/2175
    • Bump commander from 9.1.0 to 9.2.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2170
    • Adding Patch Method back by @mpareja-godaddy in https://github.com/actionhero/actionhero/pull/2186

    New Contributors

    • @nathannaveen made their first contribution in https://github.com/actionhero/actionhero/pull/2158
    • @mpareja-godaddy made their first contribution in https://github.com/actionhero/actionhero/pull/2186

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.9...v28.1.10

    Source code(tar.gz)
    Source code(zip)
  • v28.1.9(Apr 4, 2022)

    What's Changed

    • Bump type-fest from 2.11.2 to 2.12.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2128
    • Bump typedoc from 0.22.11 to 0.22.12 by @dependabot in https://github.com/actionhero/actionhero/pull/2126
    • Bump @types/node from 17.0.17 to 17.0.19 by @dependabot in https://github.com/actionhero/actionhero/pull/2127
    • Bump puppeteer from 13.3.2 to 13.4.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2133
    • Bump @types/jest from 27.4.0 to 27.4.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2132
    • Bump ioredis-mock from 7.0.0 to 7.1.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2131
    • Bump @types/node from 17.0.19 to 17.0.21 by @dependabot in https://github.com/actionhero/actionhero/pull/2135
    • Bump @types/puppeteer from 5.4.4 to 5.4.5 by @dependabot in https://github.com/actionhero/actionhero/pull/2134
    • Bump typescript from 4.5.5 to 4.6.2 by @dependabot in https://github.com/actionhero/actionhero/pull/2138
    • Bump puppeteer from 13.4.0 to 13.5.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2137
    • Bump typedoc from 0.22.12 to 0.22.13 by @dependabot in https://github.com/actionhero/actionhero/pull/2136
    • Bump puppeteer from 13.5.0 to 13.5.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2139
    • Bump type-fest from 2.12.0 to 2.12.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2146
    • Bump node-resque from 9.1.5 to 9.1.6 by @dependabot in https://github.com/actionhero/actionhero/pull/2145
    • Bump yargs from 17.3.1 to 17.4.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2144
    • Bump prettier from 2.5.1 to 2.6.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2143
    • Bump commander from 9.0.0 to 9.1.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2142
    • Bump @types/node from 17.0.21 to 17.0.22 by @dependabot in https://github.com/actionhero/actionhero/pull/2141
    • Bump @types/ioredis from 4.28.8 to 4.28.10 by @dependabot in https://github.com/actionhero/actionhero/pull/2140
    • Bump typescript from 4.6.2 to 4.6.3 by @dependabot in https://github.com/actionhero/actionhero/pull/2147
    • Bump @types/node from 17.0.22 to 17.0.23 by @dependabot in https://github.com/actionhero/actionhero/pull/2148
    • Bump prettier from 2.6.0 to 2.6.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2149
    • Bump ts-jest from 27.1.3 to 27.1.4 by @dependabot in https://github.com/actionhero/actionhero/pull/2150
    • Bump ioredis-mock from 7.1.0 to 7.2.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2151
    • Bump minimist from 1.2.5 to 1.2.6 by @dependabot in https://github.com/actionhero/actionhero/pull/2152
    • Bump prettier from 2.6.1 to 2.6.2 by @dependabot in https://github.com/actionhero/actionhero/pull/2153
    • Bump type-fest from 2.12.1 to 2.12.2 by @dependabot in https://github.com/actionhero/actionhero/pull/2154
    • Bump puppeteer from 13.5.1 to 13.5.2 by @dependabot in https://github.com/actionhero/actionhero/pull/2156
    • Bump winston from 3.6.0 to 3.7.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2157
    • Bump node-resque from 9.1.6 to 9.1.7 by @dependabot in https://github.com/actionhero/actionhero/pull/2155

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.8...v28.1.9

    Source code(tar.gz)
    Source code(zip)
  • v28.1.8(Feb 16, 2022)

    What's Changed

    • Update dependency lockfile by @evantahler in https://github.com/actionhero/actionhero/pull/2113
    • Improved ParamsFrom logic for required fields by @krishnaglick in https://github.com/actionhero/actionhero/pull/2125
    • Update dependencies

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.7...v28.1.8

    Source code(tar.gz)
    Source code(zip)
  • v28.1.7(Jan 31, 2022)

    What's Changed

    • fix ParamsFrom type inference by @pedroslopez in https://github.com/actionhero/actionhero/pull/2108
    • Bump type-fest from 2.11.0 to 2.11.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2111
    • Bump puppeteer from 13.1.2 to 13.1.3 by @dependabot in https://github.com/actionhero/actionhero/pull/2109
    • Bump ioredis-mock from 6.0.0 to 7.0.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2112

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.6...v28.1.7

    Source code(tar.gz)
    Source code(zip)
  • v28.1.6(Jan 28, 2022)

    What's Changed

    • use commander to handle cli formatter/validator by @pedroslopez in https://github.com/actionhero/actionhero/pull/2099
    • cli command optional inputs can require a value by @pedroslopez in https://github.com/actionhero/actionhero/pull/2107

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.5...v28.1.6

    Source code(tar.gz)
    Source code(zip)
  • v28.1.5(Jan 28, 2022)

    What's Changed

    • Bump node-resque and ioredis-mock, fix winston types by @evantahler in https://github.com/actionhero/actionhero/pull/2106

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.4...v28.1.5

    Source code(tar.gz)
    Source code(zip)
  • v28.1.4(Jan 12, 2022)

    What's Changed

    • export rebuildConfig method by @evantahler in https://github.com/actionhero/actionhero/pull/2083

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.3...v28.1.4

    Source code(tar.gz)
    Source code(zip)
  • v28.1.3(Jan 10, 2022)

    What's Changed

    • VSCode Devcontainer by @evantahler in https://github.com/actionhero/actionhero/pull/2074
    • Skip typechck in test when ignoring await by @evantahler in https://github.com/actionhero/actionhero/pull/2075
    • Rebuild Config on Server Restart by @krishnaglick in https://github.com/actionhero/actionhero/pull/2076
    • Update dependencies. Of specific note is https://github.com/actionhero/actionhero/pull/2080, which upgrades to winston v3.3.4 which contains a locked version of the colors package. More information can be found at https://github.com/winstonjs/winston/pull/2008

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.2...v28.1.3

    Source code(tar.gz)
    Source code(zip)
  • v28.1.2(Dec 23, 2021)

    What's Changed

    • CLI inputs gain formatter and validator by @evantahler in https://github.com/actionhero/actionhero/pull/2062

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.1...v28.1.2

    Source code(tar.gz)
    Source code(zip)
  • v28.1.1(Dec 22, 2021)

    What's Changed

    • Flag typescript=true if TS_JEST is present by @evantahler in https://github.com/actionhero/actionhero/pull/2060
    • Fix CLI test ENV by @evantahler in https://github.com/actionhero/actionhero/pull/2061

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.1.0...v28.1.1

    Source code(tar.gz)
    Source code(zip)
  • v28.1.0(Dec 21, 2021)

    What's Changed

    • ParamsFrom utility to determine types of params from Action Inputs by @evantahler in https://github.com/actionhero/actionhero/pull/2059

    Typed Action Params

    The new ParamsFrom TS utility can finally help dynamically determine the param types of an Action's run method! This only works on Action classes that statically define the inputs, e.g. NOT in a constructor. Here's a screenshot of things working:

    Screen Shot 2021-12-20 at 7 14 01 PM

    Note that params.value is properly a string, and we get an error that params.foo is undefined.

    Here's the magic:

    export type ParamsFrom<A extends Action | Task> = {
      [Input in keyof A["inputs"]]: A["inputs"][Input]["formatter"] extends (
        ...ags: any[]
      ) => any
        ? ReturnType<A["inputs"][Input]["formatter"]>
        : string;
    };
    

    What's nice about this approach is that we don't need to change any of Actionhero's internals, but we should start writing all of our Actions and Tasks with static definitions.

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.0.4...v28.1.0

    Source code(tar.gz)
    Source code(zip)
  • v28.0.4(Dec 18, 2021)

    What's Changed

    • Do not assume that all uses of Actionhero in test are running typescript by @evantahler in https://github.com/actionhero/actionhero/pull/2052
    • Enhance Typing config in logger by @krishnaglick in https://github.com/actionhero/actionhero/pull/2053

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.0.3...v28.0.4

    Source code(tar.gz)
    Source code(zip)
  • v28.0.4-alpha.0(Dec 17, 2021)

    What's Changed

    • Do not assume that all uses of Actionhero in test are running typescript by @evantahler in https://github.com/actionhero/actionhero/pull/2052

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.0.3...v28.0.4-alpha.0

    Source code(tar.gz)
    Source code(zip)
  • v28.0.3(Dec 6, 2021)

    What's Changed

    • Fix formidable logging error by @evantahler in https://github.com/actionhero/actionhero/pull/2044

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.0.2...v28.0.3

    Source code(tar.gz)
    Source code(zip)
  • v28.0.2(Dec 3, 2021)

    What's Changed

    • use global flag in swagger path substitution by @pedroslopez in https://github.com/actionhero/actionhero/pull/2039

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.0.1...v28.0.2

    Source code(tar.gz)
    Source code(zip)
  • v28.0.1(Dec 3, 2021)

    What's Changed

    • Remove (incorrect) override task types by @evantahler in https://github.com/actionhero/actionhero/pull/2036
    • update dependencies by @evantahler in https://github.com/actionhero/actionhero/pull/2037

    Full Changelog: https://github.com/actionhero/actionhero/compare/v28.0.0...v28.0.1

    Source code(tar.gz)
    Source code(zip)
  • v28.0.0(Nov 30, 2021)

    What's Changed

    • update dependencies by @evantahler in https://github.com/actionhero/actionhero/pull/2013
    • No Implicit Any by @evantahler in https://github.com/actionhero/actionhero/pull/2014
    • Fix cluster import by @evantahler in https://github.com/actionhero/actionhero/pull/2022
    • Update Dependencies by @evantahler in https://github.com/actionhero/actionhero/pull/2023
    • Fixes router bug matching variable routes without a required prefix by @evantahler in https://github.com/actionhero/actionhero/pull/2024
    • Fix copy of binary files (eg images) when generating new Actionhero projects by @evantahler in https://github.com/actionhero/actionhero/pull/2034

    As always, the upgrade guide can be found here - https://www.actionherojs.com/tutorials/upgrade-path

    Full Changelog: https://github.com/actionhero/actionhero/compare/v27.3.0...v28.0.0

    Source code(tar.gz)
    Source code(zip)
  • v28.0.0-alpha.2(Nov 30, 2021)

  • v28.0.0-alpha.1(Nov 23, 2021)

    What's Changed

    • update dependencies by @evantahler in https://github.com/actionhero/actionhero/pull/2013
    • No Implicit Any by @evantahler in https://github.com/actionhero/actionhero/pull/2014
    • Fix cluster import by @evantahler in https://github.com/actionhero/actionhero/pull/2022
    • Update Dependencies by @evantahler in https://github.com/actionhero/actionhero/pull/2023

    Full Changelog: https://github.com/actionhero/actionhero/compare/v27.3.0...v28.0.0-alpha.1

    Source code(tar.gz)
    Source code(zip)
  • v28.0.0-alpha.0(Nov 22, 2021)

    What's Changed

    • update dependencies by @evantahler in https://github.com/actionhero/actionhero/pull/2013
    • Bump typedoc from 0.22.8 to 0.22.9 by @dependabot in https://github.com/actionhero/actionhero/pull/2015
    • Bump ioredis-mock from 5.7.0 to 5.8.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2016
    • No Implicit Any by @evantahler in https://github.com/actionhero/actionhero/pull/2014

    Full Changelog: https://github.com/actionhero/actionhero/compare/v27.3.0...v28.0.0-alpha.0

    Source code(tar.gz)
    Source code(zip)
  • v27.2.1(Nov 1, 2021)

  • v27.2.0(Oct 25, 2021)

  • v27.1.5(Oct 1, 2021)

Owner
Actionhero
The Reusable, Scalable, and Quick node.js API Server
Actionhero
Modelsis nodejs fullstack

This is a challenge intiated by ModelSis. It consists in building a basic fullstack web app. The current repository refers to the backend side.

Régis 2 Oct 7, 2022
:desktop_computer: Simple and powerful server for Node.js

server.js for Node.js Powerful server for Node.js that just works so you can focus on your awesome project: // Include it and extract some methods for

Francisco Presencia 3.5k Dec 31, 2022
LoopBack makes it easy to build modern API applications that require complex integrations.

LoopBack makes it easy to build modern applications that require complex integrations. Fast, small, powerful, extensible core Generate real APIs with

StrongLoop and IBM API Connect 4.4k Jan 6, 2023
🚀 A RESTful API generator for Node.js

A RESTful API generator rest-hapi is a hapi plugin that generates RESTful API endpoints based on mongoose schemas. It provides a powerful combination

Justin Headley 1.2k Dec 31, 2022
Linked Data API for JavaScript

rdflib.js Javascript RDF library for browsers and Node.js. Reads and writes RDF/XML, Turtle and N3; Reads RDFa and JSON-LD Read/Write Linked Data clie

Read-Write Linked Data 527 Jan 1, 2023
In-memory filesystem with Node's API

In-memory filesystem with Node's API

Vadim Dalecky 1.4k Jan 4, 2023
wolkenkit is an open-source CQRS and event-sourcing framework based on Node.js, and it supports JavaScript and TypeScript.

wolkenkit wolkenkit is a CQRS and event-sourcing framework based on Node.js. It empowers you to build and run scalable distributed web and cloud servi

the native web 1.1k Dec 26, 2022
Clock and task scheduler for node.js applications, providing extensive control of time and callback scheduling in prod and test code

#zeit A node.js clock and scheduler, intended to take place of the global V8 object for manipulation of time and task scheduling which would be handle

David Denton 12 Dec 21, 2021
The most powerful headless CMS for Node.js — built with GraphQL and React

A scalable platform and CMS to build Node.js applications. schema => ({ GraphQL, AdminUI }) Keystone Next is a preview of the next major release of Ke

KeystoneJS 7.3k Jan 4, 2023
:zap: RAN! React . GraphQL . Next.js Toolkit :zap: - SEO-Ready, Production-Ready, SSR, Hot-Reload, CSS-in-JS, Caching, CLI commands and more...

RAN : React . GraphQL . Next.js Toolkit New version is coming... Follow up here: https://github.com/Sly777/ran/issues/677 Features Hot-Reload Ready fo

Ilker Guller 2.2k Jan 3, 2023
Elegant and all-inclusive Node.Js web framework based on TypeScript. :rocket:.

https://foalts.org What is Foal? Foal (or FoalTS) is a Node.JS framework for creating web applications. It provides a set of ready-to-use components s

FoalTS 1.7k Jan 4, 2023
Fast and type-safe full stack framework, for TypeScript

Fast and type-safe full stack framework, for TypeScript Why frourio ? Even if you write both the frontend and backend in TypeScript, you can't statica

frourio 1.1k Dec 26, 2022
A tool to develop and improve a student’s programming skills by introducing the earliest lessons of coding.

teachcode A tool to develop and improve a student’s programming skills by introducing the earliest lessons of coding. Chat: Telegram Donate: PayPal, P

madlabsinc 346 Oct 25, 2022
💻 Simple and flexible CLI Tool for your daily JIRA activity (supported on all OSes)

jirax ⭐ If you are using this tool or you like it, Star on GitHub — it helps! A CLI tool for JIRA for day to day usage with JIRA.Speed up your JIRA ac

জুনিপ 56 Oct 4, 2022
Micro type-safe wrapper for Node.js AMQP library and RabbitMQ management.

Micro type-safe wrapper for AMQP library and RabbitMQ management Description Section in progress. Getting Started Qupi can be installed by Yarn or NPM

Grzegorz Lenczuk 2 Oct 5, 2021
Actionhero is a realtime multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks

Actionhero The reusable, scalable, and quick node.js API server for stateless and stateful applications NPM | Web Site | Latest Docs | GitHub | Slack

Actionhero 2.3k Jan 4, 2023
Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot, leveraging an integrated charting system, data-mining, backtesting, paper trading, and multi-server crypto bot deployments.

Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot, leveraging an integrated charting system, data-mining, backtesting, paper trading, and multi-server crypto bot deployments.

Superalgos 3.1k Jan 1, 2023