cruddl 3.1.4 → 3.2.0-0.deploy-test.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/.github/workflows/ci.yml +4 -3
  2. package/.nvmrc +1 -1
  3. package/README.md +8 -0
  4. package/dist/spec/{schema/ast-validation-modules/flex-search.spec.d.ts → database/arangodb/ttl.spec.d.ts} +0 -0
  5. package/dist/spec/database/arangodb/ttl.spec.js +346 -0
  6. package/dist/spec/database/arangodb/ttl.spec.js.map +1 -0
  7. package/dist/spec/model/create-model.spec.js +26 -0
  8. package/dist/spec/model/create-model.spec.js.map +1 -1
  9. package/dist/spec/model/implementation/field.spec.js +8 -0
  10. package/dist/spec/model/implementation/field.spec.js.map +1 -1
  11. package/dist/spec/model/implementation/flex-search-validation.spec.js +70 -5
  12. package/dist/spec/model/implementation/flex-search-validation.spec.js.map +1 -1
  13. package/dist/spec/performance/query-pipeline.perf.js +3 -2
  14. package/dist/spec/performance/query-pipeline.perf.js.map +1 -1
  15. package/dist/spec/regression/initialization.js +2 -1
  16. package/dist/spec/regression/initialization.js.map +1 -1
  17. package/dist/spec/schema/ast-validation-modules/helpers.d.ts +10 -8
  18. package/dist/spec/schema/ast-validation-modules/helpers.js +28 -24
  19. package/dist/spec/schema/ast-validation-modules/helpers.js.map +1 -1
  20. package/dist/spec/schema/ast-validation-modules/ttl.spec.d.ts +1 -0
  21. package/dist/spec/schema/ast-validation-modules/ttl.spec.js +362 -0
  22. package/dist/spec/schema/ast-validation-modules/ttl.spec.js.map +1 -0
  23. package/dist/spec/schema/schema-builder.spec.js +22 -0
  24. package/dist/spec/schema/schema-builder.spec.js.map +1 -1
  25. package/dist/spec/schema/source-validation-modules/sidecar-schema.spec.js +14 -0
  26. package/dist/spec/schema/source-validation-modules/sidecar-schema.spec.js.map +1 -1
  27. package/dist/spec/schema-generation/create-input-type-generator.spec.js +1 -5
  28. package/dist/spec/schema-generation/create-input-type-generator.spec.js.map +1 -1
  29. package/dist/src/database/arangodb/aql-generator.d.ts +8 -1
  30. package/dist/src/database/arangodb/aql-generator.js +18 -9
  31. package/dist/src/database/arangodb/aql-generator.js.map +1 -1
  32. package/dist/src/database/arangodb/arangodb-adapter.js +3 -1
  33. package/dist/src/database/arangodb/arangodb-adapter.js.map +1 -1
  34. package/dist/src/database/arangodb/arangojs-instrumentation/custom-connection.d.ts +2 -2
  35. package/dist/src/database/arangodb/arangojs-instrumentation/custom-connection.js +8 -58
  36. package/dist/src/database/arangodb/arangojs-instrumentation/custom-connection.js.map +1 -1
  37. package/dist/src/database/arangodb/arangojs-instrumentation/custom-request.d.ts +18 -8
  38. package/dist/src/database/arangodb/arangojs-instrumentation/custom-request.js +14 -2
  39. package/dist/src/database/arangodb/arangojs-instrumentation/custom-request.js.map +1 -1
  40. package/dist/src/database/arangodb/schema-migration/analyzer.js +4 -4
  41. package/dist/src/database/arangodb/schema-migration/analyzer.js.map +1 -1
  42. package/dist/src/database/arangodb/schema-migration/arango-search-helpers.d.ts +9 -9
  43. package/dist/src/database/arangodb/schema-migration/arango-search-helpers.js +17 -9
  44. package/dist/src/database/arangodb/schema-migration/arango-search-helpers.js.map +1 -1
  45. package/dist/src/database/arangodb/schema-migration/migrations.d.ts +9 -5
  46. package/dist/src/database/arangodb/schema-migration/migrations.js.map +1 -1
  47. package/dist/src/database/arangodb/schema-migration/performer.js +6 -6
  48. package/dist/src/database/arangodb/schema-migration/performer.js.map +1 -1
  49. package/dist/src/database/inmemory/inmemory-adapter.d.ts +2 -1
  50. package/dist/src/database/inmemory/inmemory-adapter.js +16 -2
  51. package/dist/src/database/inmemory/inmemory-adapter.js.map +1 -1
  52. package/dist/src/database/inmemory/js-generator.d.ts +8 -1
  53. package/dist/src/database/inmemory/js-generator.js +16 -7
  54. package/dist/src/database/inmemory/js-generator.js.map +1 -1
  55. package/dist/src/execution/execution-options.d.ts +16 -0
  56. package/dist/src/execution/execution-options.js +10 -0
  57. package/dist/src/execution/execution-options.js.map +1 -1
  58. package/dist/src/execution/operation-resolver.js +4 -2
  59. package/dist/src/execution/operation-resolver.js.map +1 -1
  60. package/dist/src/model/config/indices.d.ts +3 -1
  61. package/dist/src/model/config/time-to-live.d.ts +8 -3
  62. package/dist/src/model/create-model.js +54 -25
  63. package/dist/src/model/create-model.js.map +1 -1
  64. package/dist/src/model/implementation/field-path.d.ts +19 -3
  65. package/dist/src/model/implementation/field-path.js +37 -3
  66. package/dist/src/model/implementation/field-path.js.map +1 -1
  67. package/dist/src/model/implementation/field.js +37 -2
  68. package/dist/src/model/implementation/field.js.map +1 -1
  69. package/dist/src/model/implementation/flex-search.d.ts +7 -2
  70. package/dist/src/model/implementation/flex-search.js +37 -3
  71. package/dist/src/model/implementation/flex-search.js.map +1 -1
  72. package/dist/src/model/implementation/relation.d.ts +22 -0
  73. package/dist/src/model/implementation/relation.js +6 -0
  74. package/dist/src/model/implementation/relation.js.map +1 -1
  75. package/dist/src/model/implementation/root-entity-type.js +3 -28
  76. package/dist/src/model/implementation/root-entity-type.js.map +1 -1
  77. package/dist/src/model/implementation/time-to-live.d.ts +5 -1
  78. package/dist/src/model/implementation/time-to-live.js +91 -5
  79. package/dist/src/model/implementation/time-to-live.js.map +1 -1
  80. package/dist/src/model/parse-ttl.js +10 -6
  81. package/dist/src/model/parse-ttl.js.map +1 -1
  82. package/dist/src/model/validation/message.d.ts +2 -2
  83. package/dist/src/model/validation/message.js +19 -6
  84. package/dist/src/model/validation/message.js.map +1 -1
  85. package/dist/src/project/project.js +16 -7
  86. package/dist/src/project/project.js.map +1 -1
  87. package/dist/src/project/time-to-live.d.ts +14 -6
  88. package/dist/src/project/time-to-live.js +35 -23
  89. package/dist/src/project/time-to-live.js.map +1 -1
  90. package/dist/src/schema/graphql-base.js +1 -1
  91. package/dist/src/schema/preparation/source-validation-modules/schema/schema.json +7 -0
  92. package/dist/src/schema/preparation/source-validation-modules/schema/validate-schema.js +1 -1
  93. package/dist/src/schema/schema-builder.js +5 -5
  94. package/dist/src/schema/schema-builder.js.map +1 -1
  95. package/dist/src/schema-generation/create-input-types/input-types.d.ts +3 -3
  96. package/dist/src/schema-generation/create-input-types/input-types.js +6 -9
  97. package/dist/src/schema-generation/create-input-types/input-types.js.map +1 -1
  98. package/dist/src/schema-generation/delete-all-generator.d.ts +9 -2
  99. package/dist/src/schema-generation/delete-all-generator.js +4 -2
  100. package/dist/src/schema-generation/delete-all-generator.js.map +1 -1
  101. package/dist/src/schema-generation/flex-search-generator.d.ts +2 -2
  102. package/dist/src/schema-generation/flex-search-generator.js +5 -5
  103. package/dist/src/schema-generation/flex-search-generator.js.map +1 -1
  104. package/dist/src/schema-generation/query-node-object-type/context.d.ts +5 -0
  105. package/dist/src/schema-generation/query-node-object-type/context.js.map +1 -1
  106. package/dist/src/schema-generation/query-node-object-type/query-node-generator.d.ts +2 -1
  107. package/dist/src/schema-generation/query-node-object-type/query-node-generator.js +14 -6
  108. package/dist/src/schema-generation/query-node-object-type/query-node-generator.js.map +1 -1
  109. package/dist/src/schema-generation/utils/relations.d.ts +9 -1
  110. package/dist/src/schema-generation/utils/relations.js +46 -14
  111. package/dist/src/schema-generation/utils/relations.js.map +1 -1
  112. package/docs/flexSearch.md +9 -6
  113. package/docs/modelling.md +2 -2
  114. package/docs/time-to-live.md +25 -0
  115. package/package.json +3 -3
  116. package/dist/spec/schema/ast-validation-modules/flex-search.spec.js +0 -15
  117. package/dist/spec/schema/ast-validation-modules/flex-search.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"flex-search-generator.js","sourceRoot":"","sources":["../../../src/schema-generation/flex-search-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flex-search-generator.js","sourceRoot":"","sources":["../../../src/schema-generation/flex-search-generator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { FieldSelection } from '../../graphql/query-distiller';
2
+ import { Clock } from '../../execution/execution-options';
2
3
  /**
3
4
  * A token that corresponds to a FieldSelection but is local to one execution
4
5
  *
@@ -26,4 +27,8 @@ export interface FieldContext {
26
27
  * distinct token
27
28
  */
28
29
  readonly selectionToken: SelectionToken;
30
+ /**
31
+ * An interface to determine the current date/time
32
+ */
33
+ readonly clock: Clock;
29
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/schema-generation/query-node-object-type/context.ts"],"names":[],"mappings":";;;AAEA;;;;;;;GAOG;AACH,MAAa,cAAc;CAG1B;AAHD,wCAGC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/schema-generation/query-node-object-type/context.ts"],"names":[],"mappings":";;;AAGA;;;;;;;GAOG;AACH,MAAa,cAAc;CAG1B;AAHD,wCAGC"}
@@ -2,4 +2,5 @@ import { FieldSelection } from '../../graphql/query-distiller';
2
2
  import { QueryNode } from '../../query-tree';
3
3
  import { FieldContext } from './context';
4
4
  import { QueryNodeObjectType } from './definition';
5
- export declare function buildConditionalObjectQueryNode(sourceNode: QueryNode, type: QueryNodeObjectType, selectionSet: ReadonlyArray<FieldSelection>, context?: FieldContext): QueryNode;
5
+ export declare function createRootFieldContext(options?: Partial<Omit<FieldContext, 'selectionStack' | 'selectionTokenStack' | 'selectionToken'>>): FieldContext;
6
+ export declare function buildConditionalObjectQueryNode(sourceNode: QueryNode, type: QueryNodeObjectType, selectionSet: ReadonlyArray<FieldSelection>, context: FieldContext): QueryNode;
@@ -1,17 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildConditionalObjectQueryNode = void 0;
3
+ exports.buildConditionalObjectQueryNode = exports.createRootFieldContext = void 0;
4
4
  const graphql_1 = require("graphql");
5
5
  const query_tree_1 = require("../../query-tree");
6
6
  const group_by_equivalence_1 = require("../../utils/group-by-equivalence");
7
7
  const utils_1 = require("../../utils/utils");
8
8
  const context_1 = require("./context");
9
9
  const utils_2 = require("./utils");
10
- function buildConditionalObjectQueryNode(sourceNode, type, selectionSet, context = {
11
- selectionStack: [],
12
- selectionTokenStack: [],
13
- selectionToken: new context_1.SelectionToken(),
14
- }) {
10
+ const execution_options_1 = require("../../execution/execution-options");
11
+ function createRootFieldContext(options = {}) {
12
+ var _a;
13
+ return {
14
+ selectionStack: [],
15
+ selectionTokenStack: [],
16
+ selectionToken: new context_1.SelectionToken(),
17
+ clock: (_a = options.clock) !== null && _a !== void 0 ? _a : new execution_options_1.DefaultClock(),
18
+ ...options,
19
+ };
20
+ }
21
+ exports.createRootFieldContext = createRootFieldContext;
22
+ function buildConditionalObjectQueryNode(sourceNode, type, selectionSet, context) {
15
23
  if (sourceNode instanceof query_tree_1.ObjectQueryNode) {
16
24
  // shortcut, especially useful for namespace nodes where we always pass through an empty object but ignore it
17
25
  return buildObjectQueryNode(sourceNode, type, selectionSet, context);
@@ -1 +1 @@
1
- {"version":3,"file":"query-node-generator.js","sourceRoot":"","sources":["../../../../src/schema-generation/query-node-object-type/query-node-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-node-generator.js","sourceRoot":"","sources":["../../../../src/schema-generation/query-node-object-type/query-node-generator.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,20 @@ import { PreExecQueryParms, QueryNode } from '../../query-tree';
3
3
  import { PlainObject } from '../../utils/utils';
4
4
  import { CreateRootEntityInputType } from '../create-input-types';
5
5
  import { FieldContext } from '../query-node-object-type';
6
+ import { FieldPath } from '../../model/implementation/field-path';
6
7
  export declare function getSetEdgeStatements(sourceField: Field, sourceIDNode: QueryNode, targetID: string | null): ReadonlyArray<PreExecQueryParms>;
7
8
  export declare function getAddEdgesStatements(sourceField: Field, sourceIDNode: QueryNode, targetIDs: ReadonlyArray<string>): PreExecQueryParms[];
8
9
  export declare function getCreateAndAddEdgesStatements(sourceField: Field, sourceIDNode: QueryNode, createRootEntityInputType: CreateRootEntityInputType, createInputs: ReadonlyArray<PlainObject>, context: FieldContext): PreExecQueryParms[];
9
10
  export declare function getCreateAndSetEdgeStatements(sourceField: Field, sourceIDNode: QueryNode, createRootEntityInputType: CreateRootEntityInputType, createInput: PlainObject, context: FieldContext): ReadonlyArray<PreExecQueryParms>;
10
11
  export declare function getRemoveEdgesStatements(sourceField: Field, sourceIDNode: QueryNode, targetIDs: ReadonlyArray<string>): ReadonlyArray<PreExecQueryParms>;
12
+ export interface GetPreEntityRemovalStatementsOptions {
13
+ /**
14
+ * An array of paths to fields that should be treated as if they were configured with
15
+ * onDelete=CASCADE
16
+ */
17
+ readonly additionalCascadeFields?: ReadonlyArray<FieldPath>;
18
+ }
11
19
  /**
12
20
  * Gets a list of statements covering the relation delete actions (including edge removal) of a list of root entities
13
21
  */
14
- export declare function getPreEntityRemovalStatements(rootEntityType: RootEntityType, sourceIDsNode: QueryNode): ReadonlyArray<PreExecQueryParms>;
22
+ export declare function getPreEntityRemovalStatements(rootEntityType: RootEntityType, sourceIDsNode: QueryNode, { additionalCascadeFields }?: GetPreEntityRemovalStatementsOptions): ReadonlyArray<PreExecQueryParms>;
@@ -140,10 +140,12 @@ exports.getRemoveEdgesStatements = getRemoveEdgesStatements;
140
140
  /**
141
141
  * Gets a list of statements covering the relation delete actions (including edge removal) of a list of root entities
142
142
  */
143
- function getPreEntityRemovalStatements(rootEntityType, sourceIDsNode) {
143
+ function getPreEntityRemovalStatements(rootEntityType, sourceIDsNode, { additionalCascadeFields = [] } = {}) {
144
144
  return getPreEntityRemovalStatements0(rootEntityType, sourceIDsNode, {
145
145
  originalRootEntityType: rootEntityType,
146
146
  relationSideStack: [],
147
+ relationSideStackForCycleCheck: [],
148
+ additionalCascadeFields: additionalCascadeFields.map((f) => { var _a; return (_a = f.fields) !== null && _a !== void 0 ? _a : []; }),
147
149
  });
148
150
  }
149
151
  exports.getPreEntityRemovalStatements = getPreEntityRemovalStatements;
@@ -162,17 +164,19 @@ function getPreEntityRemovalStatements0(rootEntityType, sourceIDsNode, context)
162
164
  // CASCADE -> continue (we might find all three types there)
163
165
  // RESTRICT -> stop (we fail anyway)
164
166
  function compare(a, b) {
165
- if (a.deleteAction === model_1.RelationDeleteAction.RESTRICT) {
167
+ const aAction = getEffectiveDeleteAction(a, context);
168
+ const bAction = getEffectiveDeleteAction(b, context);
169
+ if (aAction === model_1.RelationDeleteAction.RESTRICT) {
166
170
  return -1;
167
171
  }
168
- if (b.deleteAction === model_1.RelationDeleteAction.RESTRICT) {
172
+ if (bAction === model_1.RelationDeleteAction.RESTRICT) {
169
173
  return 1;
170
174
  }
171
175
  // second, cascade before DELETE_EDGES because it might contain indirect RESTRICTs
172
- if (a.deleteAction === model_1.RelationDeleteAction.CASCADE) {
176
+ if (aAction === model_1.RelationDeleteAction.CASCADE) {
173
177
  return -1;
174
178
  }
175
- if (b.deleteAction === model_1.RelationDeleteAction.CASCADE) {
179
+ if (bAction === model_1.RelationDeleteAction.CASCADE) {
176
180
  return 1;
177
181
  }
178
182
  return 0;
@@ -188,19 +192,17 @@ function getPreEntityRemovalStatements0(rootEntityType, sourceIDsNode, context)
188
192
  * Gets statements that collectively remove any incoming or outgoing edges of the given root entities
189
193
  */
190
194
  function getPreEntityRemovalStatementsForRelationSide(relationSide, sourceIDsNode, context) {
191
- if (relationSide.deleteAction === model_1.RelationDeleteAction.REMOVE_EDGES) {
195
+ const effectiveDeleteAction = getEffectiveDeleteAction(relationSide, context);
196
+ if (effectiveDeleteAction === model_1.RelationDeleteAction.REMOVE_EDGES) {
192
197
  return [getRemoveAllEdgesStatement(relationSide, sourceIDsNode)];
193
198
  }
194
199
  // RESTRICT and CASCADE
195
200
  // don't recurse
196
- if (context.relationSideStack.includes(relationSide)) {
197
- // TODO either support this or validate it in the schema
201
+ if (context.relationSideStackForCycleCheck.includes(relationSide)) {
202
+ // should not occur because we validate this in the schema
198
203
  throw new Error(`onDelete=CASCADE on recursive entities`);
199
204
  }
200
- const newContext = {
201
- ...context,
202
- relationSideStack: [...context.relationSideStack, relationSide],
203
- };
205
+ const newRelationSideStack = [...context.relationSideStack, relationSide];
204
206
  // first, find the entities
205
207
  const sourceField = relationSide.getSourceFieldOrThrow();
206
208
  const segment = {
@@ -227,7 +229,7 @@ function getPreEntityRemovalStatementsForRelationSide(relationSide, sourceIDsNod
227
229
  captureRootEntities: false,
228
230
  alwaysProduceList: true,
229
231
  });
230
- switch (relationSide.deleteAction) {
232
+ switch (effectiveDeleteAction) {
231
233
  case model_1.RelationDeleteAction.RESTRICT:
232
234
  let idsNode = (0, map_1.mapToIDNodesWithOptimizations)(collectNode);
233
235
  // for recursive relations, make sure objects to-be-deleted don't block the deletion
@@ -240,13 +242,26 @@ function getPreEntityRemovalStatementsForRelationSide(relationSide, sourceIDsNod
240
242
  resultValidator: new query_tree_1.NoRestrictingObjectsOnDeleteValidator({
241
243
  restrictedRootEntityType: context.originalRootEntityType,
242
244
  restrictingRootEntityType: relationSide.targetType,
243
- path: newContext.relationSideStack,
245
+ path: newRelationSideStack,
244
246
  }),
245
247
  }),
246
248
  getRemoveAllEdgesStatement(relationSide, sourceIDsNode),
247
249
  ];
248
250
  case model_1.RelationDeleteAction.CASCADE:
249
251
  const targetIDsVariable = new query_tree_1.VariableQueryNode(sourceField.name + 'IDs');
252
+ // remove all paths unrelated to following this field, and strip this field from the others
253
+ const newAdditionalCascadeFields = context.additionalCascadeFields
254
+ .filter((f) => f[0] === relationSide.sourceField)
255
+ .map((p) => p.slice(1));
256
+ const newContext = {
257
+ originalRootEntityType: context.originalRootEntityType,
258
+ relationSideStack: newRelationSideStack,
259
+ // start checking for cycles as soon as we're done with the additionalFields
260
+ relationSideStackForCycleCheck: newAdditionalCascadeFields.length
261
+ ? []
262
+ : [...context.relationSideStackForCycleCheck, relationSide],
263
+ additionalCascadeFields: newAdditionalCascadeFields,
264
+ };
250
265
  return [
251
266
  // store the ids both for performance (don't repeat the collect) and to make sure the edges are not deleted too early
252
267
  new query_tree_1.PreExecQueryParms({
@@ -269,6 +284,23 @@ function getPreEntityRemovalStatementsForRelationSide(relationSide, sourceIDsNod
269
284
  throw new Error(`Unexpected deleteAction: ${relationSide.deleteAction}`);
270
285
  }
271
286
  }
287
+ function getEffectiveDeleteAction(relationSide, context) {
288
+ if (isCascadeField(relationSide, context)) {
289
+ return model_1.RelationDeleteAction.CASCADE;
290
+ }
291
+ return relationSide.deleteAction;
292
+ }
293
+ function isCascadeField(relationSide, context) {
294
+ if (relationSide.deleteAction === model_1.RelationDeleteAction.CASCADE) {
295
+ return true;
296
+ }
297
+ if (!relationSide.sourceField) {
298
+ // relation sides without sourceField can't be configured in additionalCascadeFields
299
+ // (there is no field to reference them)
300
+ return false;
301
+ }
302
+ return context.additionalCascadeFields.some((f) => f[0] === relationSide.sourceField);
303
+ }
272
304
  /**
273
305
  * Get a statement that removes all edges in a relation related to the given root entities
274
306
  */
@@ -1 +1 @@
1
- {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../../../src/schema-generation/utils/relations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../../../src/schema-generation/utils/relations.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,8 @@ type Order @rootEntity(flexSearch: true) {
15
15
  }
16
16
  ```
17
17
 
18
- This also means that the system fields (`id`, `createdAt` and `updatedAt`) are automatically
19
- indexed.
18
+ The system fields (`id`, `createdAt` and `updatedAt`) and fields annotated with `@key` are
19
+ automatically indexed.
20
20
 
21
21
  To add additional fields to the index, the `@flexSearch` or the `@flexSearchFulltext` annotation
22
22
  needs to be added to the field.
@@ -65,6 +65,9 @@ type Order @rootEntity(flexSearch: true, flexSearchLanguage: EN) {
65
65
  In this example an "expression search" would search in the fields `orderNumber` and `descriptionEN`
66
66
  but not the field `descriptionDE`.
67
67
 
68
+ A field annotated with `@key` is included in search by default. To disable this, manually specify
69
+ `@flexSearch(includeInSearch: false)` on the field.
70
+
68
71
  ### FlexSearch Order
69
72
 
70
73
  A rootEntity that is marked with `flexSearch: true` can also define a `flexSearchOrder`. This will
@@ -120,10 +123,10 @@ query {
120
123
  }
121
124
  ```
122
125
 
123
- The query also accepts the pagination arguments `first`, `skip` and `after`, the sorting argument
124
- `orderBy` and the regular filtering argument `filter`. Because the ArangoSearch-index cannot be used
125
- for sorting and regular filtering, these can be very slow for large amounts of data. To prevent slow
126
- queries, cruddl returns an error in these cases.
126
+ The query also accepts the pagination arguments `first`, `skip` and `after` and the sorting argument
127
+ `orderBy`. The regular filter argument is available as `postFilter`. Because the ArangoSearch-index
128
+ cannot be used for sorting and regular filtering, these can be very slow for large amounts of data.
129
+ To prevent slow queries, cruddl returns an error in these cases.
127
130
 
128
131
  ### Filter
129
132
 
package/docs/modelling.md CHANGED
@@ -692,8 +692,8 @@ The `DateTime` scalar type represents a point in time in UTC, in a format specif
692
692
  such as `2007-12-03T10:15:30Z` or `2007-12-03T10:15:30.123Z`.
693
693
 
694
694
  This scalar type rejects values without timezone specifier or with a timezone other than UTC. See
695
- also `LocalDate` and `LocalTime` for values without timezone specifier. To store Date/time values
696
- with timezones other than UTC, define a value object type with the fields you need.
695
+ also `OffsetDateTime` for a point in time with an explicit timezone offset, or `LocalDate` and
696
+ `LocalTime` for values without timezone specifier.
697
697
 
698
698
  The _second_ part is added if not specified, e.g. `2007-12-03T12:34Z` is converted to
699
699
  `2007-12-03T12:34:00Z`. Second fraction digits are cut off at the nearest three-digit group, e.g.
@@ -28,3 +28,28 @@ Any edges from relations including the deleted elements will also be deleted.
28
28
 
29
29
  The actual cleanup must be triggered manually by calling the executeTTLCleanup method on the
30
30
  `Project`.
31
+
32
+ ## Cascading Delete
33
+
34
+ If the type of a TTL configuration has relations annotated with `@relation(onDelete=CASCADE)`, this
35
+ cascading delete operation will also be performed when the objects are deleted due to TTL.
36
+
37
+ `@relation(onDelete=RESTRIICT)` currently does not work well with TTL because as soon as one item in
38
+ a batch cannot be deleted, the whole operation is cancelled.
39
+
40
+ You can configure some relation paths as cascading in the TTL configuration, overriding the regular
41
+ model configuration:
42
+
43
+ ```json
44
+ {
45
+ "timeToLive": [
46
+ {
47
+ "typeName": "Delivery",
48
+ // ...
49
+ "cascadeFields": ["handlingUnits", "handlingUnits.innerHandlingUnits"]
50
+ }
51
+ ]
52
+ }
53
+ ```
54
+
55
+ This will only have an effect when the objects are deleted by TTL.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cruddl",
3
- "version": "3.1.4",
3
+ "version": "3.2.0-0.deploy-test.2",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -47,7 +47,7 @@
47
47
  "@types/deep-equal-in-any-order": "^1.0.1",
48
48
  "@types/lodash": "^4.14.184",
49
49
  "@types/mocha": "^9.1.1",
50
- "@types/node": "^16.11.43",
50
+ "@types/node": "^18.11.18",
51
51
  "@types/pluralize": "0.0.29",
52
52
  "@types/uuid": "^8.3.4",
53
53
  "ajv-cli": "^5.0.0",
@@ -74,7 +74,7 @@
74
74
  "@js-joda/core": "^5.2.0",
75
75
  "ajv": "^8.11.0",
76
76
  "ansi-styles": "^5.2.0",
77
- "arangojs": "^7.8.0",
77
+ "arangojs": "^8.1.0",
78
78
  "deep-equal": "^2.0.5",
79
79
  "graphql-tag": "^2.12.4",
80
80
  "graphql-type-json": "^0.3.2",
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const helpers_1 = require("./helpers");
4
- describe('flexSearch', () => {
5
- describe('flexSearchSort', () => {
6
- it('warns about missing field', () => {
7
- (0, helpers_1.assertValidatorWarns)(`
8
- type Root @rootEntity(flexSearch: true, flexSearchOrder: [ { field: "nonExistant", direction: ASC } ]) {
9
- name: String
10
- }
11
- `, 'The provided flexSearchOrder is invalid. It must be a path that evaluates to a scalar value and the full path must be annotated with flexSearch.');
12
- });
13
- });
14
- });
15
- //# sourceMappingURL=flex-search.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flex-search.spec.js","sourceRoot":"","sources":["../../../../spec/schema/ast-validation-modules/flex-search.spec.ts"],"names":[],"mappings":";;AAAA,uCAAiD;AAEjD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACjC,IAAA,8BAAoB,EAChB;;;;aAIH,EACG,kJAAkJ,CACrJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}