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.
- package/.github/workflows/ci.yml +4 -3
- package/.nvmrc +1 -1
- package/README.md +8 -0
- package/dist/spec/{schema/ast-validation-modules/flex-search.spec.d.ts → database/arangodb/ttl.spec.d.ts} +0 -0
- package/dist/spec/database/arangodb/ttl.spec.js +346 -0
- package/dist/spec/database/arangodb/ttl.spec.js.map +1 -0
- package/dist/spec/model/create-model.spec.js +26 -0
- package/dist/spec/model/create-model.spec.js.map +1 -1
- package/dist/spec/model/implementation/field.spec.js +8 -0
- package/dist/spec/model/implementation/field.spec.js.map +1 -1
- package/dist/spec/model/implementation/flex-search-validation.spec.js +70 -5
- package/dist/spec/model/implementation/flex-search-validation.spec.js.map +1 -1
- package/dist/spec/performance/query-pipeline.perf.js +3 -2
- package/dist/spec/performance/query-pipeline.perf.js.map +1 -1
- package/dist/spec/regression/initialization.js +2 -1
- package/dist/spec/regression/initialization.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/helpers.d.ts +10 -8
- package/dist/spec/schema/ast-validation-modules/helpers.js +28 -24
- package/dist/spec/schema/ast-validation-modules/helpers.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/ttl.spec.d.ts +1 -0
- package/dist/spec/schema/ast-validation-modules/ttl.spec.js +362 -0
- package/dist/spec/schema/ast-validation-modules/ttl.spec.js.map +1 -0
- package/dist/spec/schema/schema-builder.spec.js +22 -0
- package/dist/spec/schema/schema-builder.spec.js.map +1 -1
- package/dist/spec/schema/source-validation-modules/sidecar-schema.spec.js +14 -0
- package/dist/spec/schema/source-validation-modules/sidecar-schema.spec.js.map +1 -1
- package/dist/spec/schema-generation/create-input-type-generator.spec.js +1 -5
- package/dist/spec/schema-generation/create-input-type-generator.spec.js.map +1 -1
- package/dist/src/database/arangodb/aql-generator.d.ts +8 -1
- package/dist/src/database/arangodb/aql-generator.js +18 -9
- package/dist/src/database/arangodb/aql-generator.js.map +1 -1
- package/dist/src/database/arangodb/arangodb-adapter.js +3 -1
- package/dist/src/database/arangodb/arangodb-adapter.js.map +1 -1
- package/dist/src/database/arangodb/arangojs-instrumentation/custom-connection.d.ts +2 -2
- package/dist/src/database/arangodb/arangojs-instrumentation/custom-connection.js +8 -58
- package/dist/src/database/arangodb/arangojs-instrumentation/custom-connection.js.map +1 -1
- package/dist/src/database/arangodb/arangojs-instrumentation/custom-request.d.ts +18 -8
- package/dist/src/database/arangodb/arangojs-instrumentation/custom-request.js +14 -2
- package/dist/src/database/arangodb/arangojs-instrumentation/custom-request.js.map +1 -1
- package/dist/src/database/arangodb/schema-migration/analyzer.js +4 -4
- package/dist/src/database/arangodb/schema-migration/analyzer.js.map +1 -1
- package/dist/src/database/arangodb/schema-migration/arango-search-helpers.d.ts +9 -9
- package/dist/src/database/arangodb/schema-migration/arango-search-helpers.js +17 -9
- package/dist/src/database/arangodb/schema-migration/arango-search-helpers.js.map +1 -1
- package/dist/src/database/arangodb/schema-migration/migrations.d.ts +9 -5
- package/dist/src/database/arangodb/schema-migration/migrations.js.map +1 -1
- package/dist/src/database/arangodb/schema-migration/performer.js +6 -6
- package/dist/src/database/arangodb/schema-migration/performer.js.map +1 -1
- package/dist/src/database/inmemory/inmemory-adapter.d.ts +2 -1
- package/dist/src/database/inmemory/inmemory-adapter.js +16 -2
- package/dist/src/database/inmemory/inmemory-adapter.js.map +1 -1
- package/dist/src/database/inmemory/js-generator.d.ts +8 -1
- package/dist/src/database/inmemory/js-generator.js +16 -7
- package/dist/src/database/inmemory/js-generator.js.map +1 -1
- package/dist/src/execution/execution-options.d.ts +16 -0
- package/dist/src/execution/execution-options.js +10 -0
- package/dist/src/execution/execution-options.js.map +1 -1
- package/dist/src/execution/operation-resolver.js +4 -2
- package/dist/src/execution/operation-resolver.js.map +1 -1
- package/dist/src/model/config/indices.d.ts +3 -1
- package/dist/src/model/config/time-to-live.d.ts +8 -3
- package/dist/src/model/create-model.js +54 -25
- package/dist/src/model/create-model.js.map +1 -1
- package/dist/src/model/implementation/field-path.d.ts +19 -3
- package/dist/src/model/implementation/field-path.js +37 -3
- package/dist/src/model/implementation/field-path.js.map +1 -1
- package/dist/src/model/implementation/field.js +37 -2
- package/dist/src/model/implementation/field.js.map +1 -1
- package/dist/src/model/implementation/flex-search.d.ts +7 -2
- package/dist/src/model/implementation/flex-search.js +37 -3
- package/dist/src/model/implementation/flex-search.js.map +1 -1
- package/dist/src/model/implementation/relation.d.ts +22 -0
- package/dist/src/model/implementation/relation.js +6 -0
- package/dist/src/model/implementation/relation.js.map +1 -1
- package/dist/src/model/implementation/root-entity-type.js +3 -28
- package/dist/src/model/implementation/root-entity-type.js.map +1 -1
- package/dist/src/model/implementation/time-to-live.d.ts +5 -1
- package/dist/src/model/implementation/time-to-live.js +91 -5
- package/dist/src/model/implementation/time-to-live.js.map +1 -1
- package/dist/src/model/parse-ttl.js +10 -6
- package/dist/src/model/parse-ttl.js.map +1 -1
- package/dist/src/model/validation/message.d.ts +2 -2
- package/dist/src/model/validation/message.js +19 -6
- package/dist/src/model/validation/message.js.map +1 -1
- package/dist/src/project/project.js +16 -7
- package/dist/src/project/project.js.map +1 -1
- package/dist/src/project/time-to-live.d.ts +14 -6
- package/dist/src/project/time-to-live.js +35 -23
- package/dist/src/project/time-to-live.js.map +1 -1
- package/dist/src/schema/graphql-base.js +1 -1
- package/dist/src/schema/preparation/source-validation-modules/schema/schema.json +7 -0
- package/dist/src/schema/preparation/source-validation-modules/schema/validate-schema.js +1 -1
- package/dist/src/schema/schema-builder.js +5 -5
- package/dist/src/schema/schema-builder.js.map +1 -1
- package/dist/src/schema-generation/create-input-types/input-types.d.ts +3 -3
- package/dist/src/schema-generation/create-input-types/input-types.js +6 -9
- package/dist/src/schema-generation/create-input-types/input-types.js.map +1 -1
- package/dist/src/schema-generation/delete-all-generator.d.ts +9 -2
- package/dist/src/schema-generation/delete-all-generator.js +4 -2
- package/dist/src/schema-generation/delete-all-generator.js.map +1 -1
- package/dist/src/schema-generation/flex-search-generator.d.ts +2 -2
- package/dist/src/schema-generation/flex-search-generator.js +5 -5
- package/dist/src/schema-generation/flex-search-generator.js.map +1 -1
- package/dist/src/schema-generation/query-node-object-type/context.d.ts +5 -0
- package/dist/src/schema-generation/query-node-object-type/context.js.map +1 -1
- package/dist/src/schema-generation/query-node-object-type/query-node-generator.d.ts +2 -1
- package/dist/src/schema-generation/query-node-object-type/query-node-generator.js +14 -6
- package/dist/src/schema-generation/query-node-object-type/query-node-generator.js.map +1 -1
- package/dist/src/schema-generation/utils/relations.d.ts +9 -1
- package/dist/src/schema-generation/utils/relations.js +46 -14
- package/dist/src/schema-generation/utils/relations.js.map +1 -1
- package/docs/flexSearch.md +9 -6
- package/docs/modelling.md +2 -2
- package/docs/time-to-live.md +25 -0
- package/package.json +3 -3
- package/dist/spec/schema/ast-validation-modules/flex-search.spec.js +0 -15
- 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":";;;AAAA,qCAAuE;AAEvE,qEAA0F;AAC1F,8CAeuB;AACvB,2DAImC;AACnC,+CAAuD;AACvD,mDAM6B;AAC7B,2CAAmF;AACnF,0CAA8C;AAM9C,qEAMkC;AAClC,iEAAuE;AACvE,qDAAyC;AAE5B,QAAA,wCAAwC,GAAW,IAAI,CAAC;AACxD,QAAA,sBAAsB,GAAG,mBAAmB,CAAC;AAE1D;;GAEG;AACH,MAAa,mBAAmB;IAC5B,YACqB,uBAAsD,EACtD,mBAAwC,EACxC,
|
|
1
|
+
{"version":3,"file":"flex-search-generator.js","sourceRoot":"","sources":["../../../src/schema-generation/flex-search-generator.ts"],"names":[],"mappings":";;;AAAA,qCAAuE;AAEvE,qEAA0F;AAC1F,8CAeuB;AACvB,2DAImC;AACnC,+CAAuD;AACvD,mDAM6B;AAC7B,2CAAmF;AACnF,0CAA8C;AAM9C,qEAMkC;AAClC,iEAAuE;AACvE,qDAAyC;AAE5B,QAAA,wCAAwC,GAAW,IAAI,CAAC;AACxD,QAAA,sBAAsB,GAAG,mBAAmB,CAAC;AAE1D;;GAEG;AACH,MAAa,mBAAmB;IAC5B,YACqB,uBAAsD,EACtD,mBAAwC,EACxC,sBAAwD,EACxD,mBAAqD;QAHrD,4BAAuB,GAAvB,uBAAuB,CAA+B;QACtD,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,2BAAsB,GAAtB,sBAAsB,CAAkC;QACxD,wBAAmB,GAAnB,mBAAmB,CAAkC;IACvE,CAAC;IAEJ,QAAQ,CAAC,cAA8B;QACnC,MAAM,WAAW,GAAG;YAChB,IAAI,EAAE,IAAA,sCAA8B,EAAC,cAAc,CAAC;YACpD,IAAI,EAAE,IAAI,0CAAiB,CACvB,IAAI,6CAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAC9E;YACD,WAAW,EAAE,eAAe,cAAc,CAAC,UAAU,oBAAoB;YACzE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,iCAAmB,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;SAC7E,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAC5C,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAC/B,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,EACpD,cAAc,CACjB,EACD,cAAc,CACjB,CAAC;QACF,OAAO,IAAI,CAAC,oBAAoB,CAC5B,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,EAChE,cAAc,CACjB,CAAC;IACN,CAAC;IAED,YAAY,CAAC,cAA8B,EAAE,QAA6B;QACtE,MAAM,WAAW,GAAmB;YAChC,IAAI,EAAE,IAAA,wBAAgB,EAAC,IAAA,sCAA8B,EAAC,cAAc,CAAC,CAAC;YACtE,IAAI,EAAE,IAAI,6CAAoB,CAAC,QAAQ,CAAC;YACxC,WAAW,EAAE,eAAe,cAAc,CAAC,UAAU,oBAAoB;YACzE,0GAA0G;YAC1G,4GAA4G;YAC5G,4DAA4D;YAC5D,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,GAAG,EAAE;gBACV,OAAO,IAAI,iCAAmB,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC;YACvE,CAAC;SACJ,CAAC;QACF,OAAO,IAAI,CAAC,oBAAoB,CAC5B,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAC/B,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,EACpD,cAAc,CACjB,EACD,cAAc,CACjB,CAAC;IACN,CAAC;IAED,kBAAkB,CACd,WAA2B,EAC3B,cAA8B;QAE9B,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAC9B,OAAO,WAAW,CAAC;SACtB;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACpF,wFAAwF;QACxF,MAAM,OAAO,GAAkC,cAAc,CAAC,yBAAyB;YACnF,CAAC,CAAC;gBACI,CAAC,kCAAsB,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,YAAY,EAAE,EAAE;gBACjE,CAAC,sCAA0B,CAAC,EAAE,EAAE,IAAI,EAAE,uBAAa,EAAE;aACxD;YACH,CAAC,CAAC;gBACI,CAAC,kCAAsB,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,YAAY,EAAE,EAAE;aACpE,CAAC;QAER,OAAO;YACH,GAAG,WAAW;YACd,IAAI,EAAE;gBACF,GAAG,WAAW,CAAC,IAAI;gBACnB,GAAG,OAAO;aACb;YACD,OAAO,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;gBAChC,MAAM,YAAY,GAAG,IAAI,8BAAiB,CAAC,IAAA,oBAAY,EAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,yBAAyB,CACjD,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,cAAc,EACd,IAAI,CACP,CAAC;gBACF,OAAO,IAAI,iCAAmB,CAAC;oBAC3B,cAAc,EAAE,cAAc;oBAC9B,cAAc,EAAE,cAAc;oBAC9B,YAAY,EAAE,YAAY;iBAC7B,CAAC,CAAC;YACP,CAAC;SACJ,CAAC;IACN,CAAC;IAEO,yBAAyB,CAC7B,IAA0B,EAC1B,UAAsC,EACtC,YAA+B,EAC/B,cAA8B,EAC9B,IAA0B;QAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,kCAAsB,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,UAAU,GAAG,cAAc,CAAC,yBAAyB;YACvD,CAAC,CAAE,IAAI,CAAC,sCAA0B,CAAY;YAC9C,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,UAAU,GAAG,IAAA,wBAAgB,EAC/B,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAChE,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAA,wBAAgB,EACrC,IAAI,CAAC,mCAAmC,CAAC,cAAc,EAAE,YAAY,EAAE,UAAU,CAAC,CACrF,CAAC;QACF,IAAI,gBAAgB,KAAK,+BAAkB,CAAC,IAAI,EAAE;YAC9C,OAAO,UAAU,CAAC;SACrB;aAAM;YACH,OAAO,IAAA,wBAAgB,EACnB,IAAI,qCAAwB,CAAC,UAAU,EAAE,2BAAc,CAAC,GAAG,EAAE,gBAAgB,CAAC,CACjF,CAAC;SACL;IACL,CAAC;IAED;;;;;OAKG;IACK,mBAAmB,CACvB,cAA8B,EAC9B,IAA0B,EAC1B,OAA6B;QAE7B,MAAM,YAAY,GAAG,IAAI,8BAAiB,CAAC,IAAA,oBAAY,EAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACpF,MAAM,cAAc,GAAG,IAAI,CAAC,yBAAyB,CACjD,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,cAAc,EACd,OAAO,CACV,CAAC;QACF,OAAO,IAAI,qCAAwB,CAC/B,IAAI,2BAAc,CACd,IAAI,iCAAmB,CAAC;YACpB,cAAc,EAAE,cAAc;YAC9B,cAAc,EAAE,cAAc;YAC9B,YAAY,EAAE,YAAY;SAC7B,CAAC,CACL,EACD,2BAAc,CAAC,YAAY,EAC3B,IAAI,6BAAgB,CAChB,OAAO,CAAC,qCAAqC;YACzC,CAAC,CAAC,OAAO,CAAC,qCAAqC;YAC/C,CAAC,CAAC,gDAAwC,CACjD,CACJ,CAAC;IACN,CAAC;IAEO,oBAAoB,CACxB,WAA2B,EAC3B,cAA8B;QAE9B,OAAO;YACH,GAAG,WAAW;YACd,SAAS,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBACrC,MAAM,iBAAiB,GAAG,IAAI,8BAAiB,EAAE,CAAC;gBAClD,uKAAuK;gBACvK,sBAAsB;gBACtB,MAAM,SAAS,GAAG,IAAI,CAAC,2BAAe,CAAC,IAAI,IAAI,CAAC,sBAAU,CAAC,CAAC;gBAC5D,IACI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;oBAChD,CAAC,IAAI,CAAC,wBAAY,CAAC;wBACf,CAAC,IAAA,8CAA0B,EACvB,IAAI,CAAC,wBAAY,CAAC,EAClB,cAAc,CAAC,qBAAqB,CACvC,CAAC,EACR;oBACE,OAAO,IAAI,sCAAyB,CAAC;wBACjC,cAAc,EAAE;4BACZ,IAAI,8BAAiB,CAAC;gCAClB,cAAc,EAAE,iBAAiB;gCACjC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC;6BACjE,CAAC;yBACL;wBACD,UAAU,EAAE,IAAI,iCAAoB,CAChC,iBAAiB,EACjB,IAAI,kCAAqB,CAAC,8BAAsB,EAAE;4BAC9C,IAAI,EAAE,yCAA4B;yBACrC,CAAC,EACF,UAAU,CACb;qBACJ,CAAC,CAAC;iBACN;qBAAM;oBACH,OAAO,UAAU,CAAC;iBACrB;YACL,CAAC;SACJ,CAAC;IACN,CAAC;IAEO,mCAAmC,CACvC,cAA8B,EAC9B,YAA+B,EAC/B,eAAwB;QAExB,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE;YAC7C,OAAO,+BAAkB,CAAC,IAAI,CAAC;SAClC;QAED,MAAM,UAAU,GAAG,eAAe,CAAC;QAEnC,SAAS,qBAAqB,CAAC,KAAY,EAAE,OAAgB,EAAE;YAC3D,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE;gBACzB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM;qBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,2BAA2B,CAAC;qBACrE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;qBAChE,MAAM,CAAC,gBAAE,EAAE,+BAAkB,CAAC,KAAK,CAAC,CAAC;aAC7C;YAED,MAAM,YAAY,GAAG,IAAI,2CAA6B,CAClD,IAAI,+BAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACxD,IAAI,6BAAgB,CAAC,UAAU,CAAC,EAChC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC,+BAAiB,CAAC,CAAC,CAAC,8BAAgB,CAC9E,CAAC;YACF,MAAM,iBAAiB,GAAG,IAAI,gDAAkC,CAC5D,UAAU,EACV,uCAA0B,CAAC,2BAA2B,EACtD,2BAAc,CAAC,GAAG,EAClB,IAAI,+BAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACxD,KAAK,CAAC,oCAAoC,EAAE,EAC5C,IAAI,CACP,CAAC;YAEF,OAAO,IAAI,qCAAwB,CAC/B,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,kBAAkB;gBACjD,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,+BAAkB,CAAC,KAAK,EAC9B,2BAAc,CAAC,EAAE,EACjB,KAAK,CAAC,2BAA2B;gBACjC,KAAK,CAAC,0BAA0B;gBAChC,KAAK,CAAC,kBAAkB;gBACpB,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,+BAAkB,CAAC,KAAK,CACjC,CAAC;QACN,CAAC;QAED,OAAO,cAAc,CAAC,MAAM;aACvB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,0BAA0B,CAAC;aAC/E,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;aAC5C,MAAM,CAAC,gBAAE,EAAE,+BAAkB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;CACJ;AAzPD,kDAyPC"}
|
|
@@ -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":";;;
|
|
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
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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":";;;AAAA,qCAAoD;AAEpD,
|
|
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
|
-
|
|
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 (
|
|
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 (
|
|
176
|
+
if (aAction === model_1.RelationDeleteAction.CASCADE) {
|
|
173
177
|
return -1;
|
|
174
178
|
}
|
|
175
|
-
if (
|
|
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
|
-
|
|
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.
|
|
197
|
-
//
|
|
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
|
|
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 (
|
|
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:
|
|
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":";;;AAAA,uCAMqB;AAErB,
|
|
1
|
+
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../../../../src/schema-generation/utils/relations.ts"],"names":[],"mappings":"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"}
|
package/docs/flexSearch.md
CHANGED
|
@@ -15,8 +15,8 @@ type Order @rootEntity(flexSearch: true) {
|
|
|
15
15
|
}
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
|
|
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
|
|
124
|
-
`orderBy
|
|
125
|
-
for sorting and regular filtering, these can be very slow for large amounts of data.
|
|
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 `
|
|
696
|
-
|
|
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.
|
package/docs/time-to-live.md
CHANGED
|
@@ -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.
|
|
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": "^
|
|
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": "^
|
|
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"}
|