Skip to content

Changelog

v0.15.5

Bug fixes

  • fix(code-gen): various type issues in the TS postgres generator de3d2f
  • fix(code-gen): more fixes for backend TypeScript targets 2a45b2

Dependency updates

v0.15.4

Other

  • chore(*): remove extra nesting in package.json#exports field 96e238

Dependency updates

v0.15.3

Features

  • feat(code-gen,store): dynamically resolve query builder results based on the passed in builder f0f730

Dependency updates

v0.15.2

Features

  • feat(cli): optional t argument for newTestEvent129de8

Bug fixes

  • fix(code-gen): add trailing comma in multi-line imports e7fb6a

Dependency updates

v0.15.1

Bug fixes

  • fix(code-gen): fix regression 138b43
  • fix(server): handle change on body parser 817e84

v0.15.0

Breaking changes

  • chore(eslint-plugin): drop package 17d132
    • Use @lightbase/eslint-config instead. It is almost fully compatible, but requires some migration. Please follow the migration guide.

Features

  • feat(code-gen): support TypeScript target for router and database generators c1739c

Other

  • chore: replace ESLint setup 591faa

Dependency updates

v0.14.1

Bug fixes

  • fix(code-gen): convert numbers to string in functions using FormData (#3350) 047cc5

Other

  • chore(cli,stdlib): fix flaky tests 1a9bde

Dependency updates

v0.14.0

Breaking changes

  • chore(stdlib,store,server): remove Sentry v7 compatibility 381cfa
    • Compas now only works with Sentry v8+

v0.13.1

Bug fixes

  • fix(stdlib,server): correct Sentry sampled checks and dropping of trace events f70085

Dependency updates

v0.13.0

Features

  • feat(code-gen): always expose the Compas structure in OpenAPI format 18cc26
  • feat(store): add option to 'jobSessionStoreCleanup' to revoke sessions after N days 21a3f8

Other

  • chore(release): don't try to commit package-lock.json d31756
  • chore: fix type issues c71a6b

Dependency updates

v0.12.4

Other

  • chore(changelog): clarify v0.12.0 release notes bdab74
  • chore: remove lockfile + prevent creation 6075e3
  • chore(store): call eventStop in queueWorker if application didn't 14b9b3

Dependency updates

v0.12.3

Bug fixes

  • fix(sentry): use local identity functions when startNewTrace is not available 28e89d

v0.12.2

Features

  • feat(stdlib,store,server): Sentry v7 & v8 compat 738283

v0.12.1

Features

  • feat(stdlib,queue): explicit wrap Sentry in new traces 3ff39e

v0.12.0

Notable changes

  • feat(stdlib): support Sentry v8 8891d3
    • Compatible with both Sentry v7 & v8.
    • Note that Sentry v8 uses Node.js Module Loader hooks, which doesn't support primitive live bindings and thus might break your application. Watch https://github.com/getsentry/sentry-javascript/issues/12806 for updates.
    • For v8, the following options can be removed from the Sentry.init call:
      • Removes the need for _experiments.metricsAggregator
      • Removes the need for calling Sentry.autoDiscoverNodePerformanceMonitoringIntegrations().
      • Removes the need for explicitly setting captureErrorCause: true.

Features

  • feat(cli): widen range of supported Postgres versions 4cd0b7
  • feat(cli): prefer 'lint' and 'lint:ci' scripts from package.json when running 'compas lint' 127d73

Bug fixes

  • fix(server): collapse sentry metrics for OPTIONS and HEAD requests 5167f1

Other

  • chore(dependabot): drop grouped updates 928b6d
  • chore(ci): simplify CI 4a24ee

Dependency updates

v0.11.2

Features

  • feat(server,store): keep track of Sentry metrics about which routes and jobs are run ca1a0a

v0.11.1

Features

  • feat(server): force a new Sentry trace id for each request 6ca680
  • feat(store): force a new Sentry trace id for job f4de6a

Bug fixes

  • fix(stdlib): enable event_span logging, even if sentry is used dfc0da

v0.11.0

Breaking changes

  • feat(eslint-plugin): stricter checks on missing eventStart calls 491561
    • Correctness checks; if event is passed into an async function, you most certainly want to call eventStart.

Features

  • feat(stdlib): make AppError compatible with Sentry 056d40

Bug fixes

  • fix(cli): make sure to load .cjs and .mjs test files ed546c

v0.10.6

Features

  • feat(stdlib): only add logs as breadcrumbs if a span is active d1a897
  • feat(cli): hard error the test runner if we don't have a test config and no package.json in the cwd fb1166

Other

  • chore(stdlib): fix TS issues ce2f67

v0.10.5

Features

  • feat(server): skip sentry span creation for head and options requests 31eb5b
  • feat(store): only start Sentry span for queries if a parent span exists d5d842

v0.10.4

Bug fixes

  • fix(stdlib): make sure to flush Sentry before exit 579c04
  • fix(server): sent http method as sentry attribute 42fdeb

v0.10.3

Bug fixes

  • fix(store): import _compasSentryEnableQuerySpanseae66a

v0.10.2

Features

  • feat(server): use conventional 'op', force transaction, provide more data to Sentry cc9203
  • feat(stdlib,store): use conventional 'op', force transaction, support queries as spans 432c51

v0.10.1

Features

  • feat(stdlib): add Sentry support a8a4ef
  • feat(store): add Sentry support to the queue b8041f
  • feat(server): add Sentry support to the Koa instance returned by getAppdb1ea9

See the inline docs for more information.

Dependency updates

v0.10.0

Features

  • feat(code-gen): support Updater in RQ setQueryData7ba289
  • feat(store): accept a tokenMaxAgeResolver in the session settings 9fa68b

Other

Dependency updates

v0.9.0

Features

  • feat(cli): support --use-host on compas docker commands 428f5a

Other

  • chore: run prettier on all files e3009b

Dependency updates

v0.8.1

Other

  • examples(react-fetch): show GitHub emojis cc6b52

Dependency updates

v0.8.0

Features

  • feat(code-gen): generate RQ5 like object arguments while staying on RQ4 127699
  • feat(code-gen): support react-query v5 e4862f

Dependency updates

v0.7.6

Features

  • feat(store): support specifying a maintenance database when using 'createIfNotExists' 673276

Bug fixes

  • fix(examples): correct subCommand check (#2850) c73d66
  • fix(store): use stream.Readable types in file functions 729347
  • fix(store): skip transform on unsupported image formats like .ico files 0a4745
  • fix(code-gen): align response type in react-query generator when not known d933b8

Other

  • chore(docs): fix typo in types-and-validators.md 97b797
  • chore(docs): add CI docs 663d58
  • chore(compas): drop package 5c4664

Dependency updates

v0.7.5

Bug fixes

  • fix(compas): merge file change paths on debounced calls 30f464
  • fix(compas): use original process env when spawning actions 7711cb
  • fix(compas): only print info on changes to the resolved config e493d1
  • fix(compas): only print info on changes to the started docker containers 01ef1e

Other

  • chore(docs): add page scaffolding for lint and migration integrations 20a815

v0.7.4

Features

  • feat(compas): improved package manager support 0c59d0
  • feat(compas): add inferred 'dev', 'lint' and 'test' actions 59bb35
  • feat(compas): add 'compas init docker' 1b18b4
  • feat(compas): add docker integration in dev server 560f0b

Bug fixes

  • fix(compas): debounce persist cache, fix package-manager comparison 1c0578
  • fix(compas): don't assume stdin has 'setRawMode' eba39e
  • fix(cli): correctly clean on compas docker clean --project foo-bar with a - in the name 6cf9cc

Other

  • chore(compas): add cli test setup 26a8c5
  • chore(compas): better test abstraction 89e1f9
  • chore(docs): add docs on inferred actions 471ebe
  • chore(compas): use unique test directories 6ca3da
  • chore(compas): minimize dangling promises 1ec564
  • chore(docs): add docs on the Docker integrations for the new CLI d95259
  • chore(docs): add minor update to background jobs handler timeout 5f1d65
  • chore(ci): persist cache directory on CI failures b74d1f
  • chore(compas): wait for the file-watchers in tests a6f65e

Dependency updates

v0.7.3

Features

  • feat(store): only let image transformations fail on Sharp errors 945136

v0.7.2

Bug fixes

  • fix(compas): prevent infinite recursion while loading configs 9eb460
  • fix(code-gen): include correct files in package 06011b

Other

  • chore(compas): fix compas version used in 'compas init' 462445

Dependency updates

v0.7.1

Features

  • feat(compas): add support for npx compas@latest init5137c8
  • feat(compas): reimplement zakmes, add package manager support 07f28e
  • feat(code-gen): expand validator error message on query builder validation errors 69c379
  • feat(code-gen): add error when an uppercase character is used in .shortName()9d6098

Bug fixes

  • fix(eslint-plugin): ignore eventStop calls that are not in a function 2b2f2b
  • fix(all): cleanup .npmignore usage, so types are included again b141ad
  • fix(store): ignore invalid JPEG's when transforming images 440202
  • fix(stdlib): prevent zombie processes on process exit e30cbb

Other

  • chore(docs): write some docs on the new CLI 37b81c
  • chore(docs): rename npx compas install to npx compas init40fc90
  • chore(docs): fix links to new alpha docs d0607c
  • chore(compas): move some file around before expansion dd3b44
  • chore(docs): update vitepress 3ff4bd
  • chore(compas): prevent zombie processes 896a29

Dependency updates

v0.7.0

Introducing the experimental zakmes CLI for an integrated development experience! Installable via the compas package. See the docs for more information and follow the issue to stay up to date.

Features

  • feat(eslint-plugin): add 'node-builtin-module-url-import' rule 923e7b
    • Auto-fixes any import of Node.js builtins you use the node: specifier.

Other

  • docs(stdlib): minor insight event documentation improvement (#2728) 9a8afc
  • chore(docs): use vitepress sitemap feature 28fcb1
  • chore: cleanup code-mods c80410
  • chore: typescript maintenance 7b3e0f
  • chore(release): fail release if types don't check out fb4e4d
  • chore(docs): customize vitepress theme to use green colors ba082d
  • chore(typescript): remove tsc from the internal generate command c3ab53
  • chore(dependabot): group all dependency updates b7186e

Dependency updates

v0.6.0

Features

  • feat(store): silently ignore file transforms on non-image files 08f097

Other

  • chore(dependabot): group babel and typescript-eslint bumps c59721
  • chore(dependabot): group @types/ bumps 5f257f
  • chore(examples): increase test timeout for file-handling example d6bfa3
  • examples(file-handling): fix blob creation from stream 7f4257
  • chore(changelog): handle grouped dependabot bumps 39ca1f

Dependency updates

v0.5.5

Features

  • feat(store): add w=original support to fileSendTransformedImage, keep track of original image width and height 88adad
  • feat(store): add fileTransformInPlaced61c3d
  • feat(store): support fileTransformInPlaceOptions in fileCreateOrUpdatee461e2
  • feat(store): export list of supported image content types f6cc29

Other

  • chore(dependabot): group aws-sdk dependency updates da7b1e

v0.5.4

Features

  • feat(code-gen): add hook name to required variables check in the react-query generator 93c80e
  • feat(eslint-plugin): disable warning on unsupported TS versions 18f909

Other

Dependency updates

v0.5.3

Features

  • feat(cli): expose the test name via t.name in the test runner 900de5
  • feat(cli): pad the 'threadId' in test runner logs to align when a high number of workers / randomize rounds are used 024813
  • feat(cli): add t.jobs to configure concurrent subtests 3d0b9e
  • feat(cli): add support for .mjs and .cjs scripts in compas run9632d8

Bug fixes

  • fix(code-gen): correctly import & export dateOnly & timeOnly via OpenAPI 62f4d9
  • fix(store): change error log to info log when trying to transform an already removed file f8c6ff

Other

  • chore(prettier): ignore dist directories d9967a
  • chore(cli): refactor internal config of compas testd937d1

Dependency updates

v0.5.2

Features

  • feat(cli): check if '.cache' is git ignored in compas check-env70573d
  • feat(cli): remove 'graphviz' check from compas check-env91cf87

Bug fixes

  • fix(code-gen): always generate the Pretty type even if global api clients is on 550143
  • fix(store): verify that the s3Client has a region before attempting to resolve the bucket 4d25a9

Other

  • chore(examples): add .gitignore to all examples d8a5eb
  • chore(cli): update description of compas check-env3b246f
  • examples(react-fetch): init example 82ec52
  • chore(store): prefer Object.keys over Object.entries99d996
  • chore(code-gen): prefer Object.keys over Object.entries63f71b
  • chore: fix TS issues after bump to 5.1.3 55df94

Dependency updates

v0.5.1

Other

  • perf(code-gen): init js validator objects with known keys 47259f

v0.5.0

Breaking changes

  • feat(stdlib): condense logs for events 4e6983
    • Changed the internal memory structure of events. callStack is now span. parent is removed and replaced by a rootEvent. Nested properties are affected as well. Usages like event.name still work as expected.
    • Changed the logs produced by the events. The type is now event_span instead of event_callstack. In these logs callStack is also replaced by span. Nested properties are affected as well to improve parsing and visualizing them. Please check the new logs and feel free to open an issue if you have trouble with migrating.

Features

  • feat(code-gen): pretty react-query hook types 7c644d

Dependency updates

v0.4.0

Breaking changes

There are a few structure breaking changes to clean up compatibility with old code-gen. Make sure that the API is updated before any consumer is.

  • feat(cli,store): align migration related functions bacfe3
    • Renamed newMigrateContext to migrationsInitContext. It also accepts an object with migrationsDirectory instead of a 'string' as the second argument. As before, if you don't provide a migrationsDirectory it defaults to $cwd/migrations.
    • Renamed getMigrationsToBeApplied to migrationsGetInfo. The result is wrapped in a promise.
    • Renamed runMigrations to migrationsRun.
    • All individual functions now acquire and release a Postgres lock instead of keeping the lock alive for the whole connection. This allows you to use these functions more easily in application code.
    • Dropped --keep-alive and --without-lock from compas migrate. If you need this functionality, you are better off calling the migration functions on application startup.
  • feat(code-gen): drop T.any().raw() and T.any().validator()9d4f7a
    • T.any().raw() and T.any().validator() were not implemented in the new code-gen. Use T.any().implementations() instead.
  • feat(code-gen): drop T.bool().convert(), T.number().convert() and T.string().convert()d704a6
    • The new code-gen automatically converts booleans, numbers and dates from their string representation.
  • feat(code-gen): re-instantiate T.array().convert()d3aabb
    • JS validators don't automatically convert single values to arrays anymore. Adding this as the default caused performance problems with the Typescript compiler and complex recursive types. It also caused a bad DX, where setting an empty array and trying to push later would result in a type error. Also not every planned target language has support to type this correctly anyway, so it should be used sparingly.
  • feat(code-gen): drop R.files()569b2b
    • Use R.body() instead of R.files()
    • When using the Koa router, change usages of ctx.validatedFiles with ctx.validatedBody
    • Auto-generated type names for files inputs like PostSetHeaderImageFiles will be renamed to PostSetHeaderImageBody.
    • Executing this change on the server doesn't require immediate regeneration of api clients. The way they currently send files is compatible.

Features

  • feat(code-gen): add expected patterns to docs if no docs exist on T.uuid(), T.date().{timeOnly,dateOnly}()41e3e3
  • feat(code-gen): add stricter validation on R.params() and R.query()21c9b7
  • feat(code-gen): improve react-query DX by accepting a partial object on useQuery hooks 430449
  • feat(code-gen): define behavior for T.file() in R.body() (#2597) 80429b

Bug fixes

  • fix(code-gen): don't throw a 404 on no match in the router 077da8

Other

  • chore(docs): add T.array().convert() to the docs 9744e6
  • chore: add a quick citgm command for testing unreleased Compas versions on local projects 4b7ba7

Dependency updates

  • build(deps): bump recast from 0.22.0 to 0.23.2 (#2585)
    • Major version bump
  • build(deps): bump tar from 6.1.14 to 6.1.15 (#2591)
  • build(deps): bump eslint-plugin-jsdoc from 44.2.3 to 44.2.4 (#2588)

v0.3.2

Features

  • feat(store): add deleteJobOnCompletion to the queue worker c82034

Other

  • chore(docs): generate sitemap aab7d8
  • chore(code-gen): rename internal code-gen group 4bf684
  • chore(code-gen): cleanup RouteBuilder internalSettings1cd8f6
  • chore(changelog): correct minor bumps in 0.x.y ranges 684e02

Dependency updates

v0.3.1

Bug fixes

  • fix(code-gen): strip undefined query parameters in the fetch api clients d3b51e

Dependency updates

  • build(deps): bump file-type from 18.3.0 to 18.4.0 (#2576)

v0.3.0

Features

  • feat(code-gen): add support for transformContext with custom readable types in CRUD 65979a

Other

  • chore(code-gen): cleanup 'NamedType' usages 8a8434
  • chore(code-gen): cleanup experimental development test setup 85918b
  • chore(code-gen): combine all internal utils 6a61e7
  • chore(code-gen): speed up examples test by running them in parallel 69cfb6
  • chore(test): increase timeout of examples test 4ecd95

Dependency updates

v0.2.0

Features

  • feat(code-gen): disable array auto-conversion types for the TS target 4e5961

Dependency updates

v0.1.0

Breaking changes

  • fix(server): rename formLimit option to urlencodedLimit in createBodyParsersd600ac
    • Rename your usage of formLimit to urlencodedLimit in the first argument to createBodyParsers
  • feat(server,code-gen): combine json & multipart 'createBodyParsers' into a single 'createBodyParser' df9e43
    • Removed createBodyParsers use createBodyParser instead.
    • createBodyParser by default does not parse multipart bodies. This should be explicitly enabled with multipart: true. Configure its options with 'multipartOptions' to set a custom maxFileSize for example.
    • Changed the jsonLimit default to '5mb'.
    • The generated Koa router now accepts a single body parser instead of the previous body parser pair returned by 'createBodyParsers'.
    • The updated usage looks something like:
    js
    app.use(
      router(
        createBodyParser({
          multipart: true,
          multipartOptions: {
            maxFileSize: 15 * 1024 * 2024,
          },
        }),
      ),
    );
  • feat(code-gen): promote experimental to stable (#2559) 247aa0
    • Removes support for old code-gen. Use the new target based code-gen instead. See the new docs and migration guide.
    • It is expected that future Compas release fully break structure compatibility with legacy clients, so make sure to migrate as soon as possible.
    • Update any @compas/code-gen/experimental import to @compas/code-gen

Features

  • feat(code-gen/experimental: few percent speedup of array validation 26fb77
  • feat(code-gen/experimental): generate serializable query keys in the react-query wrapper 8d74da
  • feat(code-gen/experimental): generate type docs strings as JSDoc blocks a94ee5
  • feat(code-gen): allow CRUD generation for entities with file relations 727b50

Bug fixes

  • fix(code-gen/experimental): correctly resolve code-gen version when generating OpenAPI specs 28fa44

Other

  • chore: cleanup release notes and changelogs 143743

Dependency updates

v0.0.249

Breaking changes

  • feat(code-gen): combine files & body handling when body is multipart 1af5f7
    • The open api importer is not compatible anymore with 'legacy' code-gen, please migrate to experimental code-gen.
    • Rewrite of FormData handling in the 'experimental' api clients, check the new generate output and retest your usages of features using multipart bodies / files.
    • In the near future, we will fully combine files & body handling for the backends as well.
  • feat(cli,code-gen): remove compas visualise4c6784
    • Use the 'includeEntityDiagram' option of the database generator instead.

Features

  • feat(store): automatically create migration table if not exists 9496b1
  • feat(code-gen): include docs & infer object type in openapi importer a67b38
  • feat(cli): add code-mod to convert api clients to experimental code-gen 0a3ba6

Bug fixes

  • fix(code-gen/experimental): use anyOf#discriminant in JS validators 3fa324
  • fix(code-gen): correct url trimming for openapi imports f64593
  • fix(code-gen/experimental): don't generate react-query wrapper if query, body or files are not objects fb2b2d

Other

  • chore(code-gen/experimental): remove old README.md c96bc4
  • chore(code-gen/experimental): update test helpers 1bffb3
  • chore(examples): align example APP_NAME values f78959
  • chore(code-gen/experimental): add e2e crud tests 64d07c
  • chore(generate): parallelize example generation f01e64
  • chore(code-gen/experimental): add crud nested tests 61f419

Dependency updates

Previous releases

See the history for earlier changelogs (< v0.0.249).