Skip to content

Latest commit

 

History

History
862 lines (617 loc) · 39.7 KB

CHANGELOG.md

File metadata and controls

862 lines (617 loc) · 39.7 KB

13.2.0 (2023-09-29)

Features

  • config: add API types configuration to base config (749b6da)

13.1.0 (2023-08-21)

Bug Fixes

  • @whook/aws-lambda: no wrappers for non http lambdas (685b717)

13.1.0 (2023-08-21)

Bug Fixes

  • @whook/gcp-functions: fix functions build (473cc54)

13.1.0 (2023-08-20)

Bug Fixes

  • @whook/graphql: fix GraphQL modules (0357eac)
  • build: add changelog and fix the build (b9717bb)
  • build: fix build env (0c164f5), closes #135

13.0.0 (2023-08-16)

Breaking changes

Update modules of your project, especially the ones who depends on yerror, yhttperror, knifecycle and schema2dts. Beware that the versions match to avoid any problem:

## Example of listing YError dependents module and its versions
npm ls yerror

The CONFIGS service has been renamed APP_CONFIG and now comes from the application-services module so you will probably have to change it everywhere you use it and install that new dependency.

NODE_ENV now only accept Node accepted values (development, production and test). So if you refers to the old NODE_ENVS config values anywhere, you may drop it. If you still need to refer to Node Envs, use the enum type provided by common-services.

To specify your deployment target, use APP_ENV instead ( see the related whook-example code).

You will probably have to rename the src/config/development folder to src/config/local to match the APP_ENV accepted values (local per default, but you can choose it there, we recommend to have at least local, test and production targets, maybe also uat or staging).

Change the typings too in the whook.d.ts file to match the new ones especially the application-services ones that now replace some of the old Whook types to be used in other projects (Whook's ENVService becomes application-services AppEnvVars).

The NODE_ENV service does not exists anymore, une ENV.NODE_ENV instead. Also use application-services NodeEnv enum to deal with its value (compare/assign...).

The WRAPPERS service can be removed, it is included in Whook and simply needs to be fed with the HANDLERS_WRAPPERS values corresponding to the wrappers you use, see whook-example src/index.ts, src/services/WRAPPERS.ts and src/services/HANDLERS.ts.

The WhookWrapper type has been simplified, it is now a simple service taking an handler and returning a wrapped one. Wrappers are simple services that return a WhookWrapper. You may look at the whook wrappers (say @whook/cors) to convert yours.

Note that like handlers, they can be autoloaded now.

A lot of different types were renamed, adding Whook in front of them will often fix the typings.

In a general manner, whook embed the latest version of knifecycle that explicitely requires singletons to depends on singletons only. You will probably have to set some services as singleton or to avoid singleton for services that ain't really singletons.

Also, the watch command changed a bit, you can get inspiration here to fix the prettier path. Basically it put internals in the whook's trunk and allow you to hook some logic around the watch reloads.

Once done, you can try to run npm run watch. If lucky, you're all set!

You can fix the various type errors until you can run the project. If you meet errors in the dependencies injections, you can debug by using the REPL and adding verbose logs:

DEBUG='knifecycle|whook' npm run whook-repl

# In the REPL:
# > .inject myService

If you build for AWS Lambda or GCP Functions, look at the changes in the example PRs of this repository.

Known issues

Here are issues we'll continue investigating and patch asap:

  • the GCP Functions build is not battle tested so if you use it, prepare to also debug it.
  • the watch server does not work as expected since ESM has no cache similar to the plain old require one... there is a path toward it but in the meanwhile, using a watch command in conjunction with the npm run dev command should work nicely since we now use the swc compiler which is faster than tsc. That said, only the build do types checking now.

12.0.2 (2023-01-05)

Bug Fixes

  • dependencies: remove typings from deps (c87ba0d)

12.0.1 (2023-01-05)

12.0.0 (2022-12-30)

Bug Fixes

  • @whook/create: fix axios issue for brotli compression (d3da046)
  • @whook/server: fix multi headers parsing support (a38cf72)
  • @whook/whook: fix the CLI prompt (7cd31b6)
  • core: fix AWS built Lambda loader (3ee5e9c)
  • gcp: fix GCP functions tests (795346d)
  • gcp: fix GCP module name (e2834ae)
  • security: also obfuscate newly added multi valued headers (0eedbc1)
  • watch: fix log access in watch files (0e0be03)

Code Refactoring

  • @whook/cli: remove the @whook/cli package (f8ef0aa), closes #81

BREAKING CHANGES

  • @whook/cli: Just replace all import from the @whook/cli package by the @whook/whook one and change the watch server code per the new shorter and customizable one.

11.0.1 (2022-11-14)

11.0.0 (2022-11-10)

Bug Fixes

  • cors: fix only getter on headers (726758e)

10.0.6 (2022-09-30)

Bug Fixes

  • types: fix types, again (b6a1d03)
  • whook: avoid duplicate createRequire from resolve service (93b4850)

10.0.5 (2022-09-02)

Bug Fixes

  • build: fix compiler build (d6486e7)

10.0.4 (2022-09-02)

Features

  • build: index extension depending on format (06b5e62)

10.0.3 (2022-09-01)

Bug Fixes

  • core: fix dependencies (6d29053)
  • types: fix types for TypeScript 4.8 (d327e79), closes #121

BREAKING CHANGES

  • types: Updated apollo-server to the latest major version. It led to some changes in the way directives are provided into GraphQL fragments.

10.0.2 (2022-06-22)

Bug Fixes

  • @whook/create: fix the whook project initialization (30cfd5b)

10.0.1 (2022-06-22)

Bug Fixes

10.0.0 (2022-06-22)

Bug Fixes

  • build: fix gcp functions build (8070ed5)
  • build: fix the AWS Lambda / GCP Functions builds (bd22ec4)
  • docs: fix various doc issues (105ce77)
  • tests: fix preversion tests (b010ed2)

9.0.1 (2022-05-29)

Bug Fixes

  • types: fix various types issues (3f3bd22)

9.0.0 (2022-05-28)

Bug Fixes

  • swagger: fix swagger ui URL setup (f02f4f7)

Features

  • build: allow main static build (f5b2be3), closes #135
  • core: move the REPL in the core (366afae)
  • types: allow types overriding (150a2c3)

8.5.1 (2021-10-25)

Bug Fixes

  • libs: fix open api parsing (166b4a4)

8.5.0 (2021-10-18)

Features

  • openapi: full oas3 components support (7bf5b96)
  • types: build API types despite not used yet in dev mode (d529a84)

8.4.2 (2021-09-26)

Features

  • @whook/cors: add an error wrapper for CORS (081a1cc)

8.4.1 (2021-09-25)

Bug Fixes

  • compile: avoid direct import of dev deps (8db9dbe)

8.4.0 (2021-09-24)

Features

  • compiler: allow to exclude node_modules from the build (9d4bf19)

8.3.0 (2021-09-24)

Features

  • libs: add tools to deal with OpenAPI data (9241cf7)

8.1.1 (2021-06-08)

Bug Fixes

  • @whook/aws-lambda: fix crons HTTP compatibility (401d5af)

8.1.0 (2021-06-08)

Bug Fixes

  • @whook/aws-lambda: fix default parameters value (44d527a)
  • @whook/http-router: better error for bad status (6c734b3), closes #110
  • docs: fix typo and formatting (66380ba)

8.0.4 (2021-04-11)

Bug Fixes

  • @whook/cli: ensure CLI commands fail with args errors (240b314)
  • core: avoid exiting the process when everything is ok (a5fd866)

8.0.3 (2021-03-04)

Bug Fixes

  • @whook/http-transaction: prefer interfaces and fix regression on types (f1a0dad)
  • @whook/whook: keep names for the build (590c3ff)

8.0.2 (2021-03-03)

Bug Fixes

  • @whook/http-router: fix ajv validation of formats (3d59215)

8.0.1 (2021-03-03)

Bug Fixes

  • @whook/http-router: fix compatibility issue (e0b3a60)

8.0.0 (2021-03-03)

Code Refactoring

  • build: isolate build functions (17f810e), closes #104
  • build: use esbuild intead of webpack (bdfcd2f)

Features

  • @whook/aws-lambda: support NodeJS14 (f4569eb)

BREAKING CHANGES

  • build: The compiler were moved up to the @whook/whook project since it was the same for AWS/GCP and could be reused for other kinds of builds. Also existing project will have to remove babel-loader, webpack of dev dependencies and add esbuild instead.
  • build: Simply moving functions from index.ts to build.ts.

7.1.5 (2021-02-11)

Bug Fixes

  • @whook/aws-lambda: fix error descriptor matching (d8de8c5)
  • @whook/cli: fix command definition type (b3b42ab)

7.1.4 (2021-01-12)

7.1.3 (2021-01-11)

Bug Fixes

7.1.1 (2021-01-04)

Bug Fixes

  • @whook/aws-lambda: fix the HTTP wrapper (aacd6c3)
  • @whook/cors: fix CORS when errors are casted (6c18a87)

7.1.0 (2020-12-27)

Features

  • @whook/whook: add warning for API overrides (e3efc4b), closes #98

7.0.0 (2020-12-22)

Bug Fixes

Code Refactoring

  • @whook/aws-lambda: refactor lambda triggers (f948220), closes #95 #96

BREAKING CHANGES

  • @whook/aws-lambda: The consumers do not manage batchs anymore and simply pass the records to the lambda implementation in order to avoid having to write custom wrappers for each event type. The user are now free to handle the batchs the way they want.

6.0.0 (2020-12-09)

Bug Fixes

  • @whook/example: fix the watch script to completely wait for the server restart (2d616f7)
  • dependencies: update knifecycle (351a9c4)
  • doc: regenerate the changelog (d7234dc)
  • docs: remove version from the root package (487f02d), closes #70

5.1.6 (2020-12-09)

Bug Fixes

  • @whook/example: fix the watch script to completely wait for the server restart (2d616f7)
  • dependencies: update knifecycle (351a9c4)
  • doc: regenerate the changelog (d7234dc)
  • docs: remove version from the root package (4c70906), closes #70

5.1.8 (2020-11-06)

Bug Fixes

  • @whook/aws-lambda: fix handling of base64 encoded request bodies (9b0b811)

5.1.7 (2020-11-06)

Bug Fixes

  • @whook/aws-lambda: fix query parameters parsing when AWS sets it to null (89ebc66)

5.1.6 (2020-11-05)

Bug Fixes

  • @whook/http-router: fix enum testing (41dd4ea)

5.1.5 (2020-11-05)

Bug Fixes

  • @whook/http-router: fix headers casting (5566a1d)

5.1.4 (2020-10-29)

Bug Fixes

  • commands: fix AWS/GCP test commands (4db35ea)
  • dependencies: align dependencies versions (32136d4)

Features

  • @whook/http-router: allow recursive schemas in the API definition (60eda00), closes #91

5.1.3 (2020-10-28)

Bug Fixes

  • @whook/aws-lambda: fix support for multi-valued query parameters (02546b5)

5.1.2 (2020-10-19)

Bug Fixes

  • cookies: avoid specifying sameSite for local dev (2e4aa8d)

5.1.1 (2020-10-05)

Bug Fixes

  • @whook/aws-lambda: fix lambdas build for multiple headers (ed5537a)
  • @whook/oauth2: fix cookies for dev env (51776df)
  • build: fix the lambda/gcp builds (b97b774)

5.1.0 (2020-10-01)

Bug Fixes

  • @whook/cors: allow to configure all CORS headers (8b933dd)

Features

  • @whook/cors: add custom CORS per handlers support (b62c068)
  • @whook/oauth2: add common auth endpoints (0af41c3)

5.0.0 (2020-09-15)

Code Refactoring

  • types: use schema2dts instead of dtsgenerator (f5d7166)

BREAKING CHANGES

  • types: Typings of input/output strongly changes but allows for more clarity, expressiveness and productivity

4.1.2 (2020-09-15)

Bug Fixes

  • cors: test if err has setter (3451f54)
  • tests: fix tests after apollo graphql updates (e8398ff)

4.1.1 (2020-08-24)

Bug Fixes

  • @whook/create: fix tests failure when creating a project (96a81d7)
  • docs: fix repo url (2129109)
  • types: fix types imports declarations (91d72f4)

4.1.0 (2020-08-21)

Bug Fixes

  • tests: update tests for the new swagger-ui patch (a4d16e0)
  • watch: fix cache invalidation for deep dependencies (86025c7)

Features

  • dev: watch mode and API types (c2a0acd), closes #75 #51
  • types: allow parametrization of handler definitions (1d7a9b3)

4.0.5 (2020-06-12)

Bug Fixes

  • build: fix lambdas builds for authentication parameters (f3dbc5b)
  • core: fix package-lock.json (ba337af)
  • docs: retrieve missed changelog (d1021f7), closes #70

4.0.4 (2020-06-09)

Bug Fixes

  • @whook/http-transaction: fix error agnosticism (90a2865)

4.0.3 (2020-05-29)

Bug Fixes

  • @whook/oauth2: fix camel case build issues (cde343a)
  • @whook/oauth2: fix types and add some tests (3f064d7)

4.0.2 (2020-05-26)

Bug Fixes

  • @whook/oauth2: fix typings and docs mistakes (f81d8ce)
  • @whook/whook: take typescript in count for API definitions (220d016)

4.0.1 (2020-05-19)

Bug Fixes

  • core: fix monorepo config (1e30e86)

4.0.0 (2020-05-19)

Bug Fixes

  • @whook/aws-lambda: fix types generation (784211a)
  • @whook/cli: Add project path to the ls command (6706fee)
  • @whook/cli: discard snapshots folders (41ff048), closes #42
  • @whook/cli: Fix default arguments (adbbdeb), closes #35
  • @whook/cli: Fix the script field (7ede2f3)
  • @whook/cli: ignore mappings when autoloading (1d64f7b)
  • @whook/cors: Avoid requiring parameters in CORS (fc15a89)
  • @whook/cors: Ensure determinism for CORS base operation (f4a42d6)
  • @whook/create: Fix create script path (f027832)
  • @whook/create: Fix scripts syntax (be071b0)
  • @whook/create: Fix the README.md file (b6b3fb4)
  • @whook/create: fix whook create and add an e2e test (d4ab9b1)
  • @whook/create: remove noises in the generated package.json (72ebcbf)
  • @whook/example: make tests rely on a more predictible value (0e57b21)
  • @whook/graphql: fix dependencies of generated types (144258c)
  • @whook/graphql: fix JSON parse of errors (18af154)
  • @whook/graphql: fix the GraphQL config (894eea4)
  • @whook/http-router: Use bodySpecs everywhere (422b97d)
  • @whook/whook: Allow to autoload the service name map (696a7b5)
  • @whook/whook: fix definition autoload ordering (55f2e0a)
  • @whook/whook: Make integration testing logs determinists (635784d)
  • @whook/whook: Set the right service name for mapped ones (5238818)
  • api: fix paths generation (2fe5e00)
  • api: hide unused tags in public mode (c01d35f)
  • build: ensure types are computed at build (0d7b589)
  • Build: Fix build and add a few dev docs (f15a8ad)
  • builds: fix GCP and AWS builds (3aa8473)
  • core: fix typos (0b20a68)
  • dependencies: align dependencies (05277d6)
  • Docs: Fix @whook/authorization README layout (de782a7)
  • Docs: Fix old README files (ac295da)
  • Test: Fix tests path (2ad2dcf)
  • tests: fix broken tests (0d27a8a)
  • tests: fix ci build (c8697c6)
  • Tests: Fix tests (a6b8fc8)
  • types: add process config to whook's one (7919ca0)
  • types: export API config types for extension (c1882cc)
  • types: fix handlers generic types ordering (2b47262)
  • types: propagate the common services types fix (c7cd140)
  • versions: fix semver import for webpack (78f5d2d)
  • whook-swagger-ui: Remove server version for tests (74127be)

Features

  • @whook: load handlers definitions in plugins too (9b9eccc), closes #63
  • @whook/authorization: Add WWW-Authenticate header support (36f0051)
  • @whook/aws-lambda: add a better query parser (b44dc40)
  • @whook/aws-lambda: add AWS lambda to the build (cb4a8fc)
  • @whook/cli: Add a command to list commands (8875fc6)
  • @whook/cli: add a command to quickly create templated files (92b303f)
  • @whook/cli: Add CLI args checking (b88fa8b)
  • @whook/cli: allow to inspect injector results (06b2cf4)
  • @whook/cli: Allow to prompt required values (a9ae5da)
  • @whook/create: Add a way to create a new Whook project (49f9092), closes #12
  • @whook/create: Install dependencies for newly created projects (73fe278)
  • @whook/gcp-functions: add Google Cloud Functions build (1525f92)
  • @whook/graphiql: add GraphIQL to the build (1a22760)
  • @whook/graphiql: add more options (e937aaa)
  • @whook/graphql: allow to use graphql (bd687ac)
  • @whook/http-transaction: add APM and obfuscator services (8fa973e)
  • @whook/oauth2: add support for oauth2 (1f126b0), closes #60 #18
  • @whook/swagger-ui: Allow to specify a dev token (a2c6fcf)
  • @whook/versions: add the wrapper to check versions (0034e38)
  • @whook/whook: allow to disable a given handler (b5d7184)
  • @whook/whook: enable API filtering by tags (3fcf306)
  • @whook/whook: gather api components automatically (bdd0477), closes #30
  • API: Add some sample endpoints (0c549fe)
  • Authentication: Add authentication wrapper (a956ec2), closes #18
  • CLI: Add the Whook CLI tool (5511747), closes #12
  • core: add support for esm (92c56cb), closes #68
  • create-whook: Add a putEcho handler for demo (559c4ad)
  • create-whook: Add an error example (6557662)
  • example: Move the example server (a271520)
  • Lerna: Setup Whook as a monorepo (395d8b4)
  • Mermaid: Allow to print Mermaid graphs (ee38ceb)
  • Plugins: Allow to use plugins in autoloaders (46ff705), closes #11
  • swaggerui: add mutedParameters option (88c6176)
  • whook-swagger-ui: Add a getOpenAPI endpoint (f2b9853)

3.1.3 (2018-10-31)

Bug Fixes

  • $autoload: Fix wrapped handlers names (647c166)

3.1.2 (2018-10-30)

Bug Fixes

  • $autoload: Remove forgotten debug changes (84c9bc2)

3.1.1 (2018-10-30)

Bug Fixes

  • $autoload: Ensure handlers can still be injected without wrappers (68d9975)

3.1.0 (2018-10-22)

Features

  • PORT/HOST services: Allow to pickup PORT/HOST from ENV (8ffce98)

3.0.0 (2018-10-21)

2.0.0 (2018-10-14)

0.1.0 (2015-09-03)

Whook prototyped version: first attempt at creating whook