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.3.0)
  • v28.3.0(Jan 3, 2023)

    What's Changed

    • Stronger types for tests by @evantahler in https://github.com/actionhero/actionhero/pull/2372

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

    Source code(tar.gz)
    Source code(zip)
  • v28.2.3(Jan 3, 2023)

    What's Changed

    • Bump actions/cache from 3.0.11 to 3.2.1 by @dependabot in https://github.com/actionhero/actionhero/pull/2366
    • Bump primus from 8.0.6 to 8.0.7 by @dependabot in https://github.com/actionhero/actionhero/pull/2365
    • Bump @types/node from 18.11.17 to 18.11.18 by @dependabot in https://github.com/actionhero/actionhero/pull/2362
    • Bump @types/puppeteer from 5.4.7 to 7.0.4 by @dependabot in https://github.com/actionhero/actionhero/pull/2363
    • Bump type-fest from 3.3.0 to 3.5.0 by @dependabot in https://github.com/actionhero/actionhero/pull/2364
    • Bump actions/cache from 3.2.1 to 3.2.2 by @dependabot in https://github.com/actionhero/actionhero/pull/2368
    • Bump @types/jest from 29.2.4 to 29.2.5 by @dependabot in https://github.com/actionhero/actionhero/pull/2367
    • Bump json5 from 2.2.1 to 2.2.3 by @dependabot in https://github.com/actionhero/actionhero/pull/2369
    • Create codeql.yml by @evantahler in https://github.com/actionhero/actionhero/pull/2370
    • Use node v18 locally by @evantahler in https://github.com/actionhero/actionhero/pull/2371
    • node-resque v9.2.2 by @evantahler in https://github.com/actionhero/actionhero/pull/2373
    • Webserver binds to :: by default by @evantahler in https://github.com/actionhero/actionhero/pull/2374

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

    Source code(tar.gz)
    Source code(zip)
  • 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)

Owner
Actionhero
The Reusable, Scalable, and Quick node.js API Server
Actionhero
MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers

Derby The Derby MVC framework makes it easy to write realtime, collaborative applications that run in both Node.js and browsers. Derby includes a powe

DerbyJS 4.7k Dec 23, 2022
Realtime MVC Framework for Node.js

Website Get Started Docs News Submit Issue Sails.js is a web framework that makes it easy to build custom, enterprise-grade Node.js apps. It is design

Balderdash 22.4k Dec 31, 2022
Realtime.js - a fast frontend framework based on Web-Components.

Realtime.js is a fast frontend framework based on Web-Components and Proxies. It has a lot of features to simplify your way of live as a vanillajs developer. The framework is programmed in such a way, that you can edit it yourself if you need additional features.

Kilian Hertel 7 Nov 1, 2022
Framework for setting up RESTful JSON APIs with NodeJS.

Restberry works with both Express and Restify! Framework for setting up RESTful JSON APIs with NodeJS. Define your models and setup CRUD API calls wit

Restberry 117 Jul 5, 2021
Zeronode - minimal building block for NodeJS microservices

Zeronode - minimal building block for NodeJS microservices Why Zeronode? Installation Basics Benchmark API Examples Basic Examples Basic Examples [Adv

Steadfast 120 Oct 21, 2022
Component based MVC web framework for nodejs targeting good code structures & modularity.

Component based MVC web framework for nodejs targeting good code structures & modularity. Why fortjs Based on Fort architecture. MVC Framework and fol

Ujjwal Gupta 47 Sep 27, 2022
AWS Lambda router for NodeJS

AWS Lambda Router for NodeJS A collection of tools to handle ApiGateway requests and direct function invocation calls on AWS Lambda. Use it as a stand

Dumitru Glavan 11 Apr 22, 2019
A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) 🚀

A progressive Node.js framework for building efficient and scalable server-side applications. Description Nest is a framework for building efficient,

nestjs 53.2k Dec 31, 2022
Marble.js - functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.

Functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS. Ecosystem Name Description @marblejs/core F

Marble.js 2.1k Dec 16, 2022
:seedling: Next-Gen AI-Assisted Isomorphic Application Engine for Embedded, Console, Mobile, Server and Desktop

lychee.js Mono Repository Important Notes to follow through Installation Quirks: The lycheejs-engine Repository needs to be installed to the path /opt

Cookie Engineer 791 Dec 31, 2022
Easily add filtering, sorting, and pagination to your Node.js REST API through your old friend: the query string!

QueryQL QueryQL makes it easy to add filtering, sorting, and pagination to your Node.js REST API through your old friend: the query string! Read our i

Truepic 99 Dec 27, 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 4, 2023
API Services Made Easy With Node.js

Nodal API Services Made Easy with Node.js View the website at nodaljs.com. Nodal is a web server and opinionated framework for building data manipulat

Keith Horwood 4.5k Dec 26, 2022
A serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gateway, Lambda)

---- Sorry, this project is not maintained anymore. ---- dawson is a serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gate

dawson 717 Dec 30, 2022
A Node.js express middleware that implements API versioning for route controllers

express-version-route This npm package provides an ExpressJS middleware to load route controllers based on api versions. Implementing API Versioning i

Liran Tal 87 Nov 15, 2022
A framework for real-time applications and REST APIs with JavaScript and TypeScript

A framework for real-time applications and REST APIs with JavaScript and TypeScript Feathers is a lightweight web-framework for creating real-time app

Feathers 14.3k Jan 1, 2023
Create GraphQL schema and resolvers with TypeScript, using classes and decorators!

TypeGraphQL Create GraphQL schema and resolvers with TypeScript, using classes and decorators! https://typegraphql.com/ Introduction TypeGraphQL makes

Michał Lytek 7.6k Jan 9, 2023
🍔 A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate with React and Vue. 🌈

Midway - 一个面向未来的云端一体 Node.js 框架 English | 简体中文 ?? 欢迎观看 Midway Serverless 2.0 发布会回放: https://www.bilibili.com/video/BV17A411T7Md 《Midway Serverless 发布

Midway.js 6.3k Jan 8, 2023
🥚 Born to build better enterprise frameworks and apps with Node.js & Koa

Features Built-in Process Management Plugin System Framework Customization Lots of plugins Quickstart Follow the commands listed below. $ mkdir showca

egg 18.3k Dec 29, 2022