Skip to content

Releases: AEB-labs/cruddl

2.3.0

01 Oct 14:01
Compare
Choose a tag to compare
  • Feature: Add consolidationIntervalMsec to ArangoSearchConfiguration (#210)
  • Feature: Add @FlexSearch(caseSensitive) (#215)
  • Improvement: Make flexSearchFulltext language optional and use EN as default (#212)
  • Improvement: Add option to reduce TTL limit in case of resource problems
  • Improvement: FlexSearch: add postFilter field and deprecate filter field (#216)
  • Improvment: Skip tokenization if there are no expressions
  • Bugfix: Fix using keywords as identifiers
  • Bugfix: Never update confirmed billing entities

2.2.0

17 Aug 09:13
Compare
Choose a tag to compare
  • Feature: Add modelOptions.useSourceDirectoriesAsNamespaces project option to disable namespaces and allow slashes in file names without special semantics
  • Feature: Ad subscription to meta schema (just emits the schema once - but if you switch out the schema on model change, you get an effective subscription)
  • Improvement: Run UniqueEnumValueNamesRule validation rule on project sources
  • Improvement: Warn about lowercase enum values (they violate the style guide)
  • Bugfix: Reject invalid enum values true, false, and null (they would otherwise error on schema creation)

2.1.0

09 Aug 07:31
Compare
Choose a tag to compare
  • Feature: Support __typename in SchemaExecutor
  • Feature: Add scalar type Int53 for 53-bit integers (the safe-integer range of JavaScript)
  • Feature: Add scalar types Decimal1, Decimal2, and Decimal3 with a range from -1 000 000 000 to 1 000 000 000 that round to 1, 2, or 3, respectively, decimal digits.
  • Feature: Add support for @relation(onDelete: RESTRICT / CASCADE)
  • Bugfix: Fix filtering by id with flexSearch
  • Bugfix: Fix lt/lte/gt/gte filters with null filter value in flexSearch
  • Bugfix: Fix flexSearchExpression and flexSearch _contains_prefix filters with a non-empty string but no tokens (e.g. -)

2.0.0

09 Aug 07:46
Compare
Choose a tag to compare
  • Breaking Change: Remove support for Arango 3.2, 3.3, 3.4, and 3.5 (ArangoDB 3.6 or 3.7 required now)
  • Breaking Change: Remove support for graphq-js 14 (graphql-js 15 required now)
  • Breaking Change: Remove support for node < 12 (node 12 or node 14 required now)
  • Breaking Change: Remove enableExperimentalProjectionIndirection
  • Feature: Implement @root and @parent on fields in child entity and entity extension types that automatically link back to the embedding type. @root can be used in combination with a @collect field that crossed root-entity boundaries
  • Feature: @key can be used on enum-typed fields
  • Improvement: Add random component to retry delay for conflict retries to reduce likelihood of repeated synchronous retries
  • Improvement: Perform migrations idempotently
  • Bugfix: Fix _some filters on I18nString / StringMap with null values

1.0.6

18 Nov 10:03
Compare
Choose a tag to compare

Features

  • Added OffsetDateTime scalar type

1.0.3

19 Aug 14:12
Compare
Choose a tag to compare

Bugfixes

  • Fixed edges not being deleted when deleting root entities.
  • Fixed @collect(aggregate: COUNT) counting dangling edges (e.g. those created by the bug above).

1.0.2

29 Jul 15:54
Compare
Choose a tag to compare

Improvements

  • The DISTINCT and COUNT_DISTINCT aggregators now also allow value objects with simple fields of type String, ID, Boolean, Int, LocalDate or enum type.

1.0.1

04 Jul 09:15
Compare
Choose a tag to compare

Breaking Changes

  • Single-root-entity fields (e.g. Hero) now treat arguments with the value null as if they have not omitted. This allows you to write a single query that can fetch root entity by ID or by key, depending on which variable is set. This however also means that it is an error to get a root entity with id / key null (previously, it returned null if no such root entity was found).

Features

  • Added @collect fields to traverse relations and other fields, accumulate objects and aggregate values (see docs).
  • Added @reference(keyField: "...") so that the raw value of a reference field can be retrieved (see docs).
  • Added an ProjectOptions.processErrors to convert (and/or log) errors.

Improvements

  • Project.createSchema() (and some of its siblings) throw the typed InvalidProjectError if there are validation errors
  • Expected runtime errors like permission denied throw typed RuntimeError which has a code property

Bugfixes

  • Fixed error message if argument was missing in single-root-entitiy-field (was [object object]).
  • Fixed errors that occured during an explain call not being properly processed

What about 1.0.0?

There is no 1.0.0 because I messed up and published an empty package for [email protected] a year ago.

0.8.1

09 Apr 13:33
Compare
Choose a tag to compare

Fix: Fixed error message in single-root-entity-fields.

0.8.0

02 Apr 19:29
Compare
Choose a tag to compare
  • Addition: Added _like filter for strings which is case-insensitive and uses an index when possible
  • Addtion: Added first argument to meta queries (to improve performance by limiting the count)
  • Addition: Added sparse argument to index definitions (defaults to true for unique indices and to false for non-unique indices)
  • Addition: Added an API to run queries directly through cruddl, without the GraphQL engine (still experimental)
  • Addition: Profiling information (timings and detailed execution plans) of queries can be retrieved via ProjectOptions.profileConsumer
  • Addition: The ArangoJS configuration can be passed in ArangoDBConfig.arangoDBConfig`
  • Addition: Added queryMemoryLimit to ArangoDBConfig
  • Addition: Added cancellationToken and transactionTimeoutMs to cancel running queries
  • Addition: Added retriesOnConflict to automatically retry on write-write conflicts
  • Addition: collectionSize is reported by migrations to create/delete indices
  • Improvement: Added more GraphQL descriptions for filters
  • Improvement: cruddl now works with eval disallowed by CSP
  • Performance: Optimized hot paths in query tree generation
  • Performance: Disabled AQL indentation by default
  • Performance: Removing edges uses the edge index properly
  • Performance: Enable index usage for _some filters
  • Performance: Cursor-based pagination can use multi-field indices better
  • Performance: Indices are no longer automatically suffixed with id
  • Performance: Implemented projection indirection to reduce memory usage with sort in large collections (opt-in)
  • Performance: Simplified generated AQL code to speed up the ArangoDB query optimization phase
  • Fix: deleteAll with filter on a relation deleted only the relations and not the objects
  • Fix: Nested entity extensions behaved like value objects
  • Fix: Fix error when project contained namespaces without root entities
  • Testing: cruddl is now tested with ArangoDB 3.2, 3.3 and 3.4 in the travis build