cruddl 3.0.0 → 3.0.1
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/.editorconfig +7 -4
- package/.github/workflows/ci.yml +43 -31
- package/.github/workflows/codeql-analysis.yml +29 -29
- package/.mocharc.json +7 -0
- package/.prettierignore +1 -0
- package/.prettierrc +1 -2
- package/README.md +16 -13
- package/cruddl-bench.js +1 -1
- package/dist/core-exports.d.ts +3 -3
- package/dist/core-exports.js.map +1 -1
- package/dist/spec/authorization/move-errors-to-output-nodes.spec.js +51 -45
- package/dist/spec/authorization/move-errors-to-output-nodes.spec.js.map +1 -1
- package/dist/spec/authorization/permission-descriptor.spec.js +23 -23
- package/dist/spec/authorization/permission-descriptor.spec.js.map +1 -1
- package/dist/spec/authorization/permission-profile.spec.js +35 -30
- package/dist/spec/authorization/permission-profile.spec.js.map +1 -1
- package/dist/spec/database/arangodb/aql-generator.spec.js +4 -4
- package/dist/spec/database/arangodb/aql-generator.spec.js.map +1 -1
- package/dist/spec/database/arangodb/aql.spec.js +32 -32
- package/dist/spec/database/arangodb/aql.spec.js.map +1 -1
- package/dist/spec/database/arangodb/arangodb-adapter.spec.js +25 -25
- package/dist/spec/database/arangodb/arangodb-adapter.spec.js.map +1 -1
- package/dist/spec/database/arangodb/retry.spec.js +16 -15
- package/dist/spec/database/arangodb/retry.spec.js.map +1 -1
- package/dist/spec/database/arangodb/schema-migration/arango-search-helper.spec.js +25 -15
- package/dist/spec/database/arangodb/schema-migration/arango-search-helper.spec.js.map +1 -1
- package/dist/spec/database/like-helper.spec.js +39 -39
- package/dist/spec/database/like-helper.spec.js.map +1 -1
- package/dist/spec/dev/fast-server.js +6 -6
- package/dist/spec/dev/fast-server.js.map +1 -1
- package/dist/spec/dev/server.js +6 -6
- package/dist/spec/dev/server.js.map +1 -1
- package/dist/spec/dev/start.js +1 -1
- package/dist/spec/dev/start.js.map +1 -1
- package/dist/spec/graphql/query-distiller.spec.js +104 -101
- package/dist/spec/graphql/query-distiller.spec.js.map +1 -1
- package/dist/spec/helpers/log4js-logger-provider.js +3 -2
- package/dist/spec/helpers/log4js-logger-provider.js.map +1 -1
- package/dist/spec/meta-schema/meta-schema.spec.js +23 -23
- package/dist/spec/meta-schema/meta-schema.spec.js.map +1 -1
- package/dist/spec/model/create-model.spec.js +59 -59
- package/dist/spec/model/create-model.spec.js.map +1 -1
- package/dist/spec/model/implementation/billing-validation.spec.js +92 -74
- package/dist/spec/model/implementation/billing-validation.spec.js.map +1 -1
- package/dist/spec/model/implementation/collect-path.spec.js +131 -119
- package/dist/spec/model/implementation/collect-path.spec.js.map +1 -1
- package/dist/spec/model/implementation/entity-extenion-type.spec.js +21 -21
- package/dist/spec/model/implementation/entity-extenion-type.spec.js.map +1 -1
- package/dist/spec/model/implementation/field.spec.js +169 -166
- package/dist/spec/model/implementation/field.spec.js.map +1 -1
- package/dist/spec/model/implementation/flex-search-validation.spec.js +35 -31
- package/dist/spec/model/implementation/flex-search-validation.spec.js.map +1 -1
- package/dist/spec/model/implementation/i18n-fields.spec.js +107 -66
- package/dist/spec/model/implementation/i18n-fields.spec.js.map +1 -1
- package/dist/spec/model/implementation/i18n-types.spec.js +67 -56
- package/dist/spec/model/implementation/i18n-types.spec.js.map +1 -1
- package/dist/spec/model/implementation/i18n-validation.spec.js +74 -44
- package/dist/spec/model/implementation/i18n-validation.spec.js.map +1 -1
- package/dist/spec/model/implementation/indices.spec.js +34 -29
- package/dist/spec/model/implementation/indices.spec.js.map +1 -1
- package/dist/spec/model/implementation/model.spec.js +37 -35
- package/dist/spec/model/implementation/model.spec.js.map +1 -1
- package/dist/spec/model/implementation/namespace.spec.js +102 -54
- package/dist/spec/model/implementation/namespace.spec.js.map +1 -1
- package/dist/spec/model/implementation/object-type.spec.js +22 -20
- package/dist/spec/model/implementation/object-type.spec.js.map +1 -1
- package/dist/spec/model/implementation/relation.spec.js +26 -26
- package/dist/spec/model/implementation/relation.spec.js.map +1 -1
- package/dist/spec/model/implementation/root-entity-type.spec.js +167 -157
- package/dist/spec/model/implementation/root-entity-type.spec.js.map +1 -1
- package/dist/spec/model/implementation/type.spec.js +10 -10
- package/dist/spec/model/implementation/type.spec.js.map +1 -1
- package/dist/spec/model/implementation/validation-utils.js +4 -4
- package/dist/spec/model/implementation/validation-utils.js.map +1 -1
- package/dist/spec/model/model-spec.helper.js +10 -10
- package/dist/spec/model/model-spec.helper.js.map +1 -1
- package/dist/spec/performance/associations.perf.js +18 -10
- package/dist/spec/performance/associations.perf.js.map +1 -1
- package/dist/spec/performance/count.perf.js +7 -5
- package/dist/spec/performance/count.perf.js.map +1 -1
- package/dist/spec/performance/crud.perf.js +28 -20
- package/dist/spec/performance/crud.perf.js.map +1 -1
- package/dist/spec/performance/filter.perf.js +4 -4
- package/dist/spec/performance/filter.perf.js.map +1 -1
- package/dist/spec/performance/index.js +2 -2
- package/dist/spec/performance/index.js.map +1 -1
- package/dist/spec/performance/pagination.perf.js +6 -4
- package/dist/spec/performance/pagination.perf.js.map +1 -1
- package/dist/spec/performance/query-pipeline.perf.js +61 -26
- package/dist/spec/performance/query-pipeline.perf.js.map +1 -1
- package/dist/spec/performance/references.perf.js +7 -7
- package/dist/spec/performance/references.perf.js.map +1 -1
- package/dist/spec/performance/support/async-bench.js +43 -17
- package/dist/spec/performance/support/async-bench.js.map +1 -1
- package/dist/spec/performance/support/helpers.js +16 -15
- package/dist/spec/performance/support/helpers.js.map +1 -1
- package/dist/spec/performance/support/runner.js +16 -15
- package/dist/spec/performance/support/runner.js.map +1 -1
- package/dist/spec/project/project.spec.js +2 -2
- package/dist/spec/project/project.spec.js.map +1 -1
- package/dist/spec/query-tree/utils/simplify-booleans.spec.js +21 -21
- package/dist/spec/query-tree/utils/simplify-booleans.spec.js.map +1 -1
- package/dist/spec/regression/drop-test-db.js +1 -1
- package/dist/spec/regression/drop-test-db.js.map +1 -1
- package/dist/spec/regression/initialization.js +13 -13
- package/dist/spec/regression/initialization.js.map +1 -1
- package/dist/spec/regression/regression-suite.js +42 -37
- package/dist/spec/regression/regression-suite.js.map +1 -1
- package/dist/spec/regression/regressions.spec.js +11 -13
- package/dist/spec/regression/regressions.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/business-object.spec.js +2 -2
- package/dist/spec/schema/ast-validation-modules/business-object.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/check-directed-relation-edges-validator.spec.js +9 -9
- package/dist/spec/schema/ast-validation-modules/check-directed-relation-edges-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/collect-validation.spec.js +58 -58
- package/dist/spec/schema/ast-validation-modules/collect-validation.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/entity-directive-nesting-validator.spec.js +14 -14
- package/dist/spec/schema/ast-validation-modules/entity-directive-nesting-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/flex-search.spec.js +1 -1
- package/dist/spec/schema/ast-validation-modules/flex-search.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/helpers.js +25 -25
- package/dist/spec/schema/ast-validation-modules/helpers.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/illegal-enum-values.spec.js +3 -3
- package/dist/spec/schema/ast-validation-modules/illegal-enum-values.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/indices-validator.spec.js +18 -18
- package/dist/spec/schema/ast-validation-modules/indices-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/key-field-validator.spec.js +20 -20
- package/dist/spec/schema/ast-validation-modules/key-field-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/known-field-directive-validator.spec.js +3 -3
- package/dist/spec/schema/ast-validation-modules/known-field-directive-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/known-object-type-directive-validator.spec.js +6 -6
- package/dist/spec/schema/ast-validation-modules/known-object-type-directive-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/no-duplicate-types-validator.spec.js +5 -5
- package/dist/spec/schema/ast-validation-modules/no-duplicate-types-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/no-lists-of-lists-validator.spec.js +3 -3
- package/dist/spec/schema/ast-validation-modules/no-lists-of-lists-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/no-lists-of-references-validator.spec.js +2 -2
- package/dist/spec/schema/ast-validation-modules/no-lists-of-references-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/no-unused-non-root-object-types-validator.spec.js +2 -2
- package/dist/spec/schema/ast-validation-modules/no-unused-non-root-object-types-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/non-unique-fields-validator.spec.js +4 -4
- package/dist/spec/schema/ast-validation-modules/non-unique-fields-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/object-directive-count-validator.spec.js +6 -6
- package/dist/spec/schema/ast-validation-modules/object-directive-count-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/only-allowed-types-validator.spec.js +6 -6
- package/dist/spec/schema/ast-validation-modules/only-allowed-types-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/parent-field.spec.js +31 -31
- package/dist/spec/schema/ast-validation-modules/parent-field.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/references-only-to-root-entities-with-key-field-validator.spec.js +3 -3
- package/dist/spec/schema/ast-validation-modules/references-only-to-root-entities-with-key-field-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/references-with-key-field.spec.js +8 -8
- package/dist/spec/schema/ast-validation-modules/references-with-key-field.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/relations-only-in-root-entities-validator.spec.js +2 -2
- package/dist/spec/schema/ast-validation-modules/relations-only-in-root-entities-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/relations-only-to-root-entities-validator.spec.js +2 -2
- package/dist/spec/schema/ast-validation-modules/relations-only-to-root-entities-validator.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/relations.spec.js +16 -16
- package/dist/spec/schema/ast-validation-modules/relations.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/roles-and-permission-profile-combined.spec.js +6 -6
- package/dist/spec/schema/ast-validation-modules/roles-and-permission-profile-combined.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/roles-on-non-root-entity-types.spec.js +4 -4
- package/dist/spec/schema/ast-validation-modules/roles-on-non-root-entity-types.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/root-entities-without-read-roles.spec.js +3 -3
- package/dist/spec/schema/ast-validation-modules/root-entities-without-read-roles.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/root-field.spec.js +28 -28
- package/dist/spec/schema/ast-validation-modules/root-field.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/undefined-permission-profile.spec.js +26 -22
- package/dist/spec/schema/ast-validation-modules/undefined-permission-profile.spec.js.map +1 -1
- package/dist/spec/schema/ast-validation-modules/undefined-types.spec.js +6 -6
- package/dist/spec/schema/ast-validation-modules/undefined-types.spec.js.map +1 -1
- package/dist/spec/schema/preparation/ast-transformation-modules/add-namespaces-to-types-transformer.spec.js +19 -15
- package/dist/spec/schema/preparation/ast-transformation-modules/add-namespaces-to-types-transformer.spec.js.map +1 -1
- package/dist/spec/schema/scalars/date-time.spec.js +9 -9
- package/dist/spec/schema/scalars/date-time.spec.js.map +1 -1
- package/dist/spec/schema/scalars/fixed-point-decimals.spec.js +18 -18
- package/dist/spec/schema/scalars/fixed-point-decimals.spec.js.map +1 -1
- package/dist/spec/schema/scalars/int53.spec.js +11 -11
- package/dist/spec/schema/scalars/int53.spec.js.map +1 -1
- package/dist/spec/schema/scalars/local-date.spec.js +3 -6
- package/dist/spec/schema/scalars/local-date.spec.js.map +1 -1
- package/dist/spec/schema/scalars/local-time.spec.js +3 -3
- package/dist/spec/schema/scalars/local-time.spec.js.map +1 -1
- package/dist/spec/schema/scalars/offset-date-time.spec.js +14 -14
- package/dist/spec/schema/scalars/offset-date-time.spec.js.map +1 -1
- package/dist/spec/schema/scalars/string-map.spec.js +69 -69
- package/dist/spec/schema/scalars/string-map.spec.js.map +1 -1
- package/dist/spec/schema/schema-builder.spec.js +38 -38
- package/dist/spec/schema/schema-builder.spec.js.map +1 -1
- package/dist/spec/schema/source-validation-modules/check-graphql-syntax.spec.js +15 -15
- package/dist/spec/schema/source-validation-modules/check-graphql-syntax.spec.js.map +1 -1
- package/dist/spec/schema/source-validation-modules/check-json-syntax.spec.js +18 -18
- package/dist/spec/schema/source-validation-modules/check-json-syntax.spec.js.map +1 -1
- package/dist/spec/schema/source-validation-modules/check-yaml-syntax.spec.js +15 -15
- package/dist/spec/schema/source-validation-modules/check-yaml-syntax.spec.js.map +1 -1
- package/dist/spec/schema/source-validation-modules/graphql-rules.spec.js +24 -24
- package/dist/spec/schema/source-validation-modules/graphql-rules.spec.js.map +1 -1
- package/dist/spec/schema/source-validation-modules/permission-profile-validator.spec.js +34 -34
- package/dist/spec/schema/source-validation-modules/permission-profile-validator.spec.js.map +1 -1
- package/dist/spec/schema/source-validation-modules/sidecar-schema.spec.js +24 -24
- package/dist/spec/schema/source-validation-modules/sidecar-schema.spec.js.map +1 -1
- package/dist/spec/schema/source-validation-modules/source-validation-helper.js +1 -1
- package/dist/spec/schema/source-validation-modules/source-validation-helper.js.map +1 -1
- package/dist/spec/schema/source-validation-modules/yaml-parser.spec.js +31 -26
- package/dist/spec/schema/source-validation-modules/yaml-parser.spec.js.map +1 -1
- package/dist/spec/schema-generation/create-input-type-generator.spec.js +136 -125
- package/dist/spec/schema-generation/create-input-type-generator.spec.js.map +1 -1
- package/dist/spec/schema-generation/createdat-updatedat-modification.spec.js +21 -21
- package/dist/spec/schema-generation/createdat-updatedat-modification.spec.js.map +1 -1
- package/dist/spec/schema-generation/enum-type-generator.spec.js +5 -5
- package/dist/spec/schema-generation/enum-type-generator.spec.js.map +1 -1
- package/dist/spec/schema-generation/memorize-decorator.spec.js +4 -4
- package/dist/spec/schema-generation/memorize-decorator.spec.js.map +1 -1
- package/dist/spec/schema-generation/order-by-enum-generator.spec.js +38 -38
- package/dist/spec/schema-generation/order-by-enum-generator.spec.js.map +1 -1
- package/dist/spec/utils/group-by-equivalence.spec.js +2 -2
- package/dist/spec/utils/group-by-equivalence.spec.js.map +1 -1
- package/dist/spec/utils/utils.spec.js +5 -5
- package/dist/spec/utils/utils.spec.js.map +1 -1
- package/dist/spec/utils/visitor.spec.js +32 -26
- package/dist/spec/utils/visitor.spec.js.map +1 -1
- package/dist/src/authorization/execution.js +18 -12
- package/dist/src/authorization/execution.js.map +1 -1
- package/dist/src/authorization/move-errors-to-output-nodes.js +17 -11
- package/dist/src/authorization/move-errors-to-output-nodes.js.map +1 -1
- package/dist/src/authorization/permission-descriptors-in-model.js.map +1 -1
- package/dist/src/authorization/permission-descriptors.js +10 -7
- package/dist/src/authorization/permission-descriptors.js.map +1 -1
- package/dist/src/authorization/transformers/affected-field-info.js +1 -1
- package/dist/src/authorization/transformers/affected-field-info.js.map +1 -1
- package/dist/src/authorization/transformers/create-entities.js +7 -7
- package/dist/src/authorization/transformers/create-entities.js.map +1 -1
- package/dist/src/authorization/transformers/create-entity.js +6 -6
- package/dist/src/authorization/transformers/create-entity.js.map +1 -1
- package/dist/src/authorization/transformers/entities.js +6 -6
- package/dist/src/authorization/transformers/entities.js.map +1 -1
- package/dist/src/authorization/transformers/field.js +2 -2
- package/dist/src/authorization/transformers/field.js.map +1 -1
- package/dist/src/authorization/transformers/follow-edge.js +3 -3
- package/dist/src/authorization/transformers/follow-edge.js.map +1 -1
- package/dist/src/authorization/transformers/index.js.map +1 -1
- package/dist/src/authorization/transformers/traversal.js +6 -6
- package/dist/src/authorization/transformers/traversal.js.map +1 -1
- package/dist/src/authorization/transformers/update-delete-entities.js +15 -11
- package/dist/src/authorization/transformers/update-delete-entities.js.map +1 -1
- package/dist/src/config/logging.d.ts +1 -1
- package/dist/src/config/logging.js.map +1 -1
- package/dist/src/database/arangodb/aql-generator.d.ts +2 -2
- package/dist/src/database/arangodb/aql-generator.js +263 -248
- package/dist/src/database/arangodb/aql-generator.js.map +1 -1
- package/dist/src/database/arangodb/aql.js +26 -16
- package/dist/src/database/arangodb/aql.js.map +1 -1
- package/dist/src/database/arangodb/arango-basics.js +1 -1
- package/dist/src/database/arangodb/arango-basics.js.map +1 -1
- package/dist/src/database/arangodb/arangodb-adapter.js +89 -61
- package/dist/src/database/arangodb/arangodb-adapter.js.map +1 -1
- package/dist/src/database/arangodb/arangojs-instrumentation/custom-connection.js +10 -16
- package/dist/src/database/arangodb/arangojs-instrumentation/custom-connection.js.map +1 -1
- package/dist/src/database/arangodb/arangojs-instrumentation/custom-request.js +7 -7
- package/dist/src/database/arangodb/arangojs-instrumentation/custom-request.js.map +1 -1
- package/dist/src/database/arangodb/cancellation-manager.js +1 -1
- package/dist/src/database/arangodb/cancellation-manager.js.map +1 -1
- package/dist/src/database/arangodb/config.js +1 -1
- package/dist/src/database/arangodb/index.d.ts +1 -1
- package/dist/src/database/arangodb/index.js.map +1 -1
- package/dist/src/database/arangodb/revision-helper.js +6 -5
- package/dist/src/database/arangodb/revision-helper.js.map +1 -1
- package/dist/src/database/arangodb/schema-migration/analyzer.js +21 -15
- package/dist/src/database/arangodb/schema-migration/analyzer.js.map +1 -1
- package/dist/src/database/arangodb/schema-migration/arango-search-helpers.js +20 -12
- package/dist/src/database/arangodb/schema-migration/arango-search-helpers.js.map +1 -1
- package/dist/src/database/arangodb/schema-migration/index-helpers.js +15 -13
- package/dist/src/database/arangodb/schema-migration/index-helpers.js.map +1 -1
- package/dist/src/database/arangodb/schema-migration/migrations.js +4 -4
- package/dist/src/database/arangodb/schema-migration/migrations.js.map +1 -1
- package/dist/src/database/arangodb/schema-migration/performer.js +11 -9
- package/dist/src/database/arangodb/schema-migration/performer.js.map +1 -1
- package/dist/src/database/arangodb/version-helper.js +2 -2
- package/dist/src/database/arangodb/version-helper.js.map +1 -1
- package/dist/src/database/inmemory/inmemory-adapter.js +8 -5
- package/dist/src/database/inmemory/inmemory-adapter.js.map +1 -1
- package/dist/src/database/inmemory/inmemory-basics.js +1 -1
- package/dist/src/database/inmemory/inmemory-basics.js.map +1 -1
- package/dist/src/database/inmemory/js-generator.js +177 -171
- package/dist/src/database/inmemory/js-generator.js.map +1 -1
- package/dist/src/database/inmemory/js.js +43 -26
- package/dist/src/database/inmemory/js.js.map +1 -1
- package/dist/src/database/like-helpers.d.ts +1 -1
- package/dist/src/database/like-helpers.js +8 -6
- package/dist/src/database/like-helpers.js.map +1 -1
- package/dist/src/execution/operation-resolver.js +12 -9
- package/dist/src/execution/operation-resolver.js.map +1 -1
- package/dist/src/execution/runtime-errors.js +3 -1
- package/dist/src/execution/runtime-errors.js.map +1 -1
- package/dist/src/execution/schema-executor.js +22 -14
- package/dist/src/execution/schema-executor.js.map +1 -1
- package/dist/src/graphql/alias-based-resolvers.js +3 -3
- package/dist/src/graphql/alias-based-resolvers.js.map +1 -1
- package/dist/src/graphql/argument-values.js +3 -3
- package/dist/src/graphql/argument-values.js.map +1 -1
- package/dist/src/graphql/field-collection.js +4 -4
- package/dist/src/graphql/field-collection.js.map +1 -1
- package/dist/src/graphql/kinds.js.map +1 -1
- package/dist/src/graphql/language-utils.js +65 -60
- package/dist/src/graphql/language-utils.js.map +1 -1
- package/dist/src/graphql/operation-based-resolvers.d.ts +1 -1
- package/dist/src/graphql/operation-based-resolvers.js +10 -8
- package/dist/src/graphql/operation-based-resolvers.js.map +1 -1
- package/dist/src/graphql/operations.js +2 -2
- package/dist/src/graphql/operations.js.map +1 -1
- package/dist/src/graphql/query-distiller.js +25 -22
- package/dist/src/graphql/query-distiller.js.map +1 -1
- package/dist/src/graphql/schema-utils.js +1 -1
- package/dist/src/graphql/schema-utils.js.map +1 -1
- package/dist/src/graphql/value-from-ast.js +2 -2
- package/dist/src/graphql/value-from-ast.js.map +1 -1
- package/dist/src/meta-schema/meta-schema.js +28 -15
- package/dist/src/meta-schema/meta-schema.js.map +1 -1
- package/dist/src/model/create-model.js +89 -77
- package/dist/src/model/create-model.js.map +1 -1
- package/dist/src/model/implementation/billing.js +14 -11
- package/dist/src/model/implementation/billing.js.map +1 -1
- package/dist/src/model/implementation/built-in-types.js +14 -7
- package/dist/src/model/implementation/built-in-types.js.map +1 -1
- package/dist/src/model/implementation/child-entity-type.js +6 -5
- package/dist/src/model/implementation/child-entity-type.js.map +1 -1
- package/dist/src/model/implementation/collect-path.js +11 -11
- package/dist/src/model/implementation/collect-path.js.map +1 -1
- package/dist/src/model/implementation/entity-extension-type.js +2 -2
- package/dist/src/model/implementation/entity-extension-type.js.map +1 -1
- package/dist/src/model/implementation/enum-type.js +1 -1
- package/dist/src/model/implementation/enum-type.js.map +1 -1
- package/dist/src/model/implementation/field-path.js +4 -4
- package/dist/src/model/implementation/field-path.js.map +1 -1
- package/dist/src/model/implementation/field.js +49 -23
- package/dist/src/model/implementation/field.js.map +1 -1
- package/dist/src/model/implementation/i18n.d.ts +2 -2
- package/dist/src/model/implementation/i18n.js +41 -33
- package/dist/src/model/implementation/i18n.js.map +1 -1
- package/dist/src/model/implementation/indices.js.map +1 -1
- package/dist/src/model/implementation/model.js +15 -9
- package/dist/src/model/implementation/model.js.map +1 -1
- package/dist/src/model/implementation/namespace.js +24 -23
- package/dist/src/model/implementation/namespace.js.map +1 -1
- package/dist/src/model/implementation/object-type-base.js +6 -9
- package/dist/src/model/implementation/object-type-base.js.map +1 -1
- package/dist/src/model/implementation/permission-profile.js +8 -4
- package/dist/src/model/implementation/permission-profile.js.map +1 -1
- package/dist/src/model/implementation/relation.js.map +1 -1
- package/dist/src/model/implementation/roles-specifier.js +1 -1
- package/dist/src/model/implementation/roles-specifier.js.map +1 -1
- package/dist/src/model/implementation/root-entity-type.js +31 -16
- package/dist/src/model/implementation/root-entity-type.js.map +1 -1
- package/dist/src/model/implementation/time-to-live.js +5 -5
- package/dist/src/model/implementation/time-to-live.js.map +1 -1
- package/dist/src/model/implementation/type-base.js +2 -2
- package/dist/src/model/implementation/type-base.js.map +1 -1
- package/dist/src/model/implementation/type.js +1 -1
- package/dist/src/model/index.js.map +1 -1
- package/dist/src/model/parse-billing.js +3 -3
- package/dist/src/model/parse-billing.js.map +1 -1
- package/dist/src/model/parse-i18n.js +9 -9
- package/dist/src/model/parse-i18n.js.map +1 -1
- package/dist/src/model/parse-ttl.js +1 -1
- package/dist/src/model/utils/emedding-entity-types.js +12 -6
- package/dist/src/model/utils/emedding-entity-types.js.map +1 -1
- package/dist/src/model/validation/index.js.map +1 -1
- package/dist/src/model/validation/message.js +4 -4
- package/dist/src/model/validation/message.js.map +1 -1
- package/dist/src/model/validation/result.js +7 -7
- package/dist/src/model/validation/result.js.map +1 -1
- package/dist/src/model/validation/validation-context.js +1 -1
- package/dist/src/model/validation/validation-context.js.map +1 -1
- package/dist/src/project/project-from-fs.js +9 -14
- package/dist/src/project/project-from-fs.js.map +1 -1
- package/dist/src/project/project.js +13 -10
- package/dist/src/project/project.js.map +1 -1
- package/dist/src/project/source.js.map +1 -1
- package/dist/src/project/time-to-live.js +13 -13
- package/dist/src/project/time-to-live.js.map +1 -1
- package/dist/src/query-tree/base.js +1 -1
- package/dist/src/query-tree/base.js.map +1 -1
- package/dist/src/query-tree/errors.js +5 -3
- package/dist/src/query-tree/errors.js.map +1 -1
- package/dist/src/query-tree/flex-search.js +12 -7
- package/dist/src/query-tree/flex-search.js.map +1 -1
- package/dist/src/query-tree/index.js.map +1 -1
- package/dist/src/query-tree/lists.js +7 -5
- package/dist/src/query-tree/lists.js.map +1 -1
- package/dist/src/query-tree/literals.js +4 -2
- package/dist/src/query-tree/literals.js.map +1 -1
- package/dist/src/query-tree/mutations.js +11 -8
- package/dist/src/query-tree/mutations.js.map +1 -1
- package/dist/src/query-tree/objects.js +5 -3
- package/dist/src/query-tree/objects.js.map +1 -1
- package/dist/src/query-tree/operators.js.map +1 -1
- package/dist/src/query-tree/pre-exec.d.ts +1 -1
- package/dist/src/query-tree/pre-exec.js +12 -8
- package/dist/src/query-tree/pre-exec.js.map +1 -1
- package/dist/src/query-tree/quantifiers.js.map +1 -1
- package/dist/src/query-tree/queries.js +9 -8
- package/dist/src/query-tree/queries.js.map +1 -1
- package/dist/src/query-tree/type-check.js.map +1 -1
- package/dist/src/query-tree/utils/extract-variable-assignments.js +4 -5
- package/dist/src/query-tree/utils/extract-variable-assignments.js.map +1 -1
- package/dist/src/query-tree/utils/simplify-booleans.js.map +1 -1
- package/dist/src/query-tree/utils/static-evaluation.js +2 -2
- package/dist/src/query-tree/utils/static-evaluation.js.map +1 -1
- package/dist/src/query-tree/validation.js +13 -9
- package/dist/src/query-tree/validation.js.map +1 -1
- package/dist/src/query-tree/variables.js +3 -3
- package/dist/src/query-tree/variables.js.map +1 -1
- package/dist/src/query-tree/visitor.js +1 -1
- package/dist/src/query-tree/visitor.js.map +1 -1
- package/dist/src/schema/graphql-base.js +10 -4
- package/dist/src/schema/graphql-base.js.map +1 -1
- package/dist/src/schema/names.js +6 -6
- package/dist/src/schema/names.js.map +1 -1
- package/dist/src/schema/preparation/ast-validation-modules/indices-validator.js +9 -5
- package/dist/src/schema/preparation/ast-validation-modules/indices-validator.js.map +1 -1
- package/dist/src/schema/preparation/ast-validation-modules/key-field-validator.js +8 -4
- package/dist/src/schema/preparation/ast-validation-modules/key-field-validator.js.map +1 -1
- package/dist/src/schema/preparation/ast-validation-modules/no-lists-of-lists-validator.js +1 -1
- package/dist/src/schema/preparation/ast-validation-modules/no-lists-of-lists-validator.js.map +1 -1
- package/dist/src/schema/preparation/ast-validation-modules/no-unused-non-root-object-types-validator.js +4 -4
- package/dist/src/schema/preparation/ast-validation-modules/no-unused-non-root-object-types-validator.js.map +1 -1
- package/dist/src/schema/preparation/ast-validation-modules/roles-on-non-root-entity-types.js +4 -2
- package/dist/src/schema/preparation/ast-validation-modules/roles-on-non-root-entity-types.js.map +1 -1
- package/dist/src/schema/preparation/ast-validator.js +5 -5
- package/dist/src/schema/preparation/ast-validator.js.map +1 -1
- package/dist/src/schema/preparation/pre-merge-ast-transformation-modules/add-namespaces-to-types-transformer.js +15 -13
- package/dist/src/schema/preparation/pre-merge-ast-transformation-modules/add-namespaces-to-types-transformer.js.map +1 -1
- package/dist/src/schema/preparation/schema-transformation-modules/add-runtime-error-resolvers.js +6 -6
- package/dist/src/schema/preparation/schema-transformation-modules/add-runtime-error-resolvers.js.map +1 -1
- package/dist/src/schema/preparation/source-validation-modules/graphql-rules.js +9 -5
- package/dist/src/schema/preparation/source-validation-modules/graphql-rules.js.map +1 -1
- package/dist/src/schema/preparation/source-validation-modules/permission-profile-validator.js +11 -6
- package/dist/src/schema/preparation/source-validation-modules/permission-profile-validator.js.map +1 -1
- package/dist/src/schema/preparation/source-validation-modules/schema/schema.json +259 -259
- package/dist/src/schema/preparation/source-validation-modules/schema/validate-schema.d.ts +1 -1
- package/dist/src/schema/preparation/source-validation-modules/schema/validate-schema.js +167 -48
- package/dist/src/schema/preparation/source-validation-modules/sidecar-schema.js +3 -2
- package/dist/src/schema/preparation/source-validation-modules/sidecar-schema.js.map +1 -1
- package/dist/src/schema/preparation/transformation-pipeline.js +4 -8
- package/dist/src/schema/preparation/transformation-pipeline.js.map +1 -1
- package/dist/src/schema/scalars/date-time.js +6 -9
- package/dist/src/schema/scalars/date-time.js.map +1 -1
- package/dist/src/schema/scalars/fixed-point-decimals.js +2 -2
- package/dist/src/schema/scalars/fixed-point-decimals.js.map +1 -1
- package/dist/src/schema/scalars/int53.js +2 -2
- package/dist/src/schema/scalars/int53.js.map +1 -1
- package/dist/src/schema/scalars/local-date.js +3 -3
- package/dist/src/schema/scalars/local-date.js.map +1 -1
- package/dist/src/schema/scalars/local-time.js +3 -3
- package/dist/src/schema/scalars/local-time.js.map +1 -1
- package/dist/src/schema/scalars/offset-date-time.d.ts +1 -1
- package/dist/src/schema/scalars/offset-date-time.js +11 -11
- package/dist/src/schema/scalars/offset-date-time.js.map +1 -1
- package/dist/src/schema/scalars/string-map.js +2 -2
- package/dist/src/schema/scalars/string-map.js.map +1 -1
- package/dist/src/schema/schema-builder.js +23 -17
- package/dist/src/schema/schema-builder.js.map +1 -1
- package/dist/src/schema/schema-utils.js +31 -16
- package/dist/src/schema/schema-utils.js.map +1 -1
- package/dist/src/schema-generation/billing-type-generator.js +25 -22
- package/dist/src/schema-generation/billing-type-generator.js.map +1 -1
- package/dist/src/schema-generation/create-input-types/generator.js +20 -15
- package/dist/src/schema-generation/create-input-types/generator.js.map +1 -1
- package/dist/src/schema-generation/create-input-types/input-fields.js +8 -8
- package/dist/src/schema-generation/create-input-types/input-fields.js.map +1 -1
- package/dist/src/schema-generation/create-input-types/input-types.js +28 -28
- package/dist/src/schema-generation/create-input-types/input-types.js.map +1 -1
- package/dist/src/schema-generation/create-input-types/relation-fields.js +15 -14
- package/dist/src/schema-generation/create-input-types/relation-fields.js.map +1 -1
- package/dist/src/schema-generation/delete-all-generator.d.ts +1 -1
- package/dist/src/schema-generation/delete-all-generator.js +7 -7
- package/dist/src/schema-generation/delete-all-generator.js.map +1 -1
- package/dist/src/schema-generation/enum-type-generator.js +5 -5
- package/dist/src/schema-generation/enum-type-generator.js.map +1 -1
- package/dist/src/schema-generation/field-nodes.js +5 -5
- package/dist/src/schema-generation/field-nodes.js.map +1 -1
- package/dist/src/schema-generation/field-path-node.js +1 -1
- package/dist/src/schema-generation/field-path-node.js.map +1 -1
- package/dist/src/schema-generation/filter-augmentation.js +5 -5
- package/dist/src/schema-generation/filter-augmentation.js.map +1 -1
- package/dist/src/schema-generation/filter-input-types/constants.js +34 -24
- package/dist/src/schema-generation/filter-input-types/constants.js.map +1 -1
- package/dist/src/schema-generation/filter-input-types/filter-fields.js +33 -21
- package/dist/src/schema-generation/filter-input-types/filter-fields.js.map +1 -1
- package/dist/src/schema-generation/filter-input-types/generator.js +22 -16
- package/dist/src/schema-generation/filter-input-types/generator.js.map +1 -1
- package/dist/src/schema-generation/flex-search-filter-input-types/constants.js +33 -28
- package/dist/src/schema-generation/flex-search-filter-input-types/constants.js.map +1 -1
- package/dist/src/schema-generation/flex-search-filter-input-types/filter-fields.js +39 -20
- package/dist/src/schema-generation/flex-search-filter-input-types/filter-fields.js.map +1 -1
- package/dist/src/schema-generation/flex-search-filter-input-types/filter-types.js +1 -1
- package/dist/src/schema-generation/flex-search-filter-input-types/filter-types.js.map +1 -1
- package/dist/src/schema-generation/flex-search-filter-input-types/generator.js +23 -23
- package/dist/src/schema-generation/flex-search-filter-input-types/generator.js.map +1 -1
- package/dist/src/schema-generation/flex-search-generator.js +30 -24
- package/dist/src/schema-generation/flex-search-generator.js.map +1 -1
- package/dist/src/schema-generation/flex-search-post-filter-augmentation.js +6 -6
- package/dist/src/schema-generation/flex-search-post-filter-augmentation.js.map +1 -1
- package/dist/src/schema-generation/graphql-errors.js +1 -1
- package/dist/src/schema-generation/graphql-errors.js.map +1 -1
- package/dist/src/schema-generation/limit-augmentation.js +3 -4
- package/dist/src/schema-generation/limit-augmentation.js.map +1 -1
- package/dist/src/schema-generation/list-augmentation.js.map +1 -1
- package/dist/src/schema-generation/meta-type-generator.js +3 -3
- package/dist/src/schema-generation/meta-type-generator.js.map +1 -1
- package/dist/src/schema-generation/mutation-type-generator.js +85 -79
- package/dist/src/schema-generation/mutation-type-generator.js.map +1 -1
- package/dist/src/schema-generation/order-by-and-pagination-augmentation.js +26 -14
- package/dist/src/schema-generation/order-by-and-pagination-augmentation.js.map +1 -1
- package/dist/src/schema-generation/order-by-enum-generator.js +27 -19
- package/dist/src/schema-generation/order-by-enum-generator.js.map +1 -1
- package/dist/src/schema-generation/output-type-generator.js +30 -23
- package/dist/src/schema-generation/output-type-generator.js.map +1 -1
- package/dist/src/schema-generation/query-node-object-type/convert.js +11 -9
- package/dist/src/schema-generation/query-node-object-type/convert.js.map +1 -1
- package/dist/src/schema-generation/query-node-object-type/definition.js.map +1 -1
- package/dist/src/schema-generation/query-node-object-type/query-node-generator.js +23 -18
- package/dist/src/schema-generation/query-node-object-type/query-node-generator.js.map +1 -1
- package/dist/src/schema-generation/query-node-object-type/utils.js +4 -4
- package/dist/src/schema-generation/query-node-object-type/utils.js.map +1 -1
- package/dist/src/schema-generation/query-type-generator.js +16 -13
- package/dist/src/schema-generation/query-type-generator.js.map +1 -1
- package/dist/src/schema-generation/root-field-helper.js +17 -11
- package/dist/src/schema-generation/root-field-helper.js.map +1 -1
- package/dist/src/schema-generation/root-types-generator.js +3 -3
- package/dist/src/schema-generation/root-types-generator.js.map +1 -1
- package/dist/src/schema-generation/schema-generator.js +6 -4
- package/dist/src/schema-generation/schema-generator.js.map +1 -1
- package/dist/src/schema-generation/typed-input-object-type.js +12 -10
- package/dist/src/schema-generation/typed-input-object-type.js.map +1 -1
- package/dist/src/schema-generation/unique-field-arguments-generator.js +5 -5
- package/dist/src/schema-generation/unique-field-arguments-generator.js.map +1 -1
- package/dist/src/schema-generation/update-input-types/generator.js +31 -24
- package/dist/src/schema-generation/update-input-types/generator.js.map +1 -1
- package/dist/src/schema-generation/update-input-types/input-fields.js +24 -16
- package/dist/src/schema-generation/update-input-types/input-fields.js.map +1 -1
- package/dist/src/schema-generation/update-input-types/input-types.js +34 -26
- package/dist/src/schema-generation/update-input-types/input-types.js.map +1 -1
- package/dist/src/schema-generation/update-input-types/relation-fields.js +17 -14
- package/dist/src/schema-generation/update-input-types/relation-fields.js.map +1 -1
- package/dist/src/schema-generation/utils/billing-nodes.js +5 -5
- package/dist/src/schema-generation/utils/billing-nodes.js.map +1 -1
- package/dist/src/schema-generation/utils/entities-by-unique-field.js +6 -6
- package/dist/src/schema-generation/utils/entities-by-unique-field.js.map +1 -1
- package/dist/src/schema-generation/utils/filtering.js +5 -5
- package/dist/src/schema-generation/utils/filtering.js.map +1 -1
- package/dist/src/schema-generation/utils/flex-search-utils.js +4 -2
- package/dist/src/schema-generation/utils/flex-search-utils.js.map +1 -1
- package/dist/src/schema-generation/utils/input-types.d.ts +4 -4
- package/dist/src/schema-generation/utils/map.js +6 -5
- package/dist/src/schema-generation/utils/map.js.map +1 -1
- package/dist/src/schema-generation/utils/pagination.js +9 -9
- package/dist/src/schema-generation/utils/pagination.js.map +1 -1
- package/dist/src/schema-generation/utils/relations.js +43 -43
- package/dist/src/schema-generation/utils/relations.js.map +1 -1
- package/dist/src/utils/colors.js.map +1 -1
- package/dist/src/utils/group-by-equivalence.js.map +1 -1
- package/dist/src/utils/utils.d.ts +1 -1
- package/dist/src/utils/utils.js +13 -11
- package/dist/src/utils/utils.js.map +1 -1
- package/dist/src/utils/visitor.js +1 -1
- package/dist/src/utils/visitor.js.map +1 -1
- package/dist/src/utils/watch.js.map +1 -1
- package/docs/api.md +35 -25
- package/docs/architecture.md +17 -12
- package/docs/billing.md +15 -14
- package/docs/flexSearch.md +40 -34
- package/docs/i18n.md +24 -22
- package/docs/modelling.md +238 -204
- package/docs/time-to-live.md +8 -5
- package/package.json +114 -110
- package/tsconfig.json +28 -28
package/.editorconfig
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
root = true
|
|
2
2
|
|
|
3
|
-
[
|
|
4
|
-
end_of_line = lf
|
|
3
|
+
[*]
|
|
5
4
|
charset = utf-8
|
|
6
|
-
trim_trailing_whitespace = true
|
|
7
|
-
insert_final_newline = true
|
|
8
5
|
indent_style = space
|
|
9
6
|
indent_size = 4
|
|
7
|
+
max_line_length = 100
|
|
8
|
+
end_of_line = lf
|
|
9
|
+
insert_final_newline = true
|
|
10
|
+
|
|
11
|
+
[*.{json,yml,yaml}]
|
|
12
|
+
indent_size = 2
|
package/.github/workflows/ci.yml
CHANGED
|
@@ -1,34 +1,46 @@
|
|
|
1
1
|
name: CI
|
|
2
2
|
on: [push, pull_request]
|
|
3
3
|
jobs:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
4
|
+
test:
|
|
5
|
+
runs-on: ubuntu-latest
|
|
6
|
+
strategy:
|
|
7
|
+
matrix:
|
|
8
|
+
arango-image: ['arangodb:3.6', 'arangodb:3.7', 'arangodb:3.8', 'arangodb:3.9']
|
|
9
|
+
node-version: [14.x, 16.x]
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v2
|
|
12
|
+
- name: Use Node.js ${{ matrix.node-version }}
|
|
13
|
+
uses: actions/setup-node@v1
|
|
14
|
+
with:
|
|
15
|
+
node-version: ${{ matrix.node-version }}
|
|
16
|
+
- run:
|
|
17
|
+
docker run --name arangodb -p 127.0.0.1:8529:8529 -d -e ARANGO_NO_AUTH=1 ${{
|
|
18
|
+
matrix.arango-image }}
|
|
19
|
+
- run: timeout 10 docker logs --follow arangodb || true # wait until arangodb is started
|
|
20
|
+
- run: curl -L http://localhost:8529/_api/version
|
|
21
|
+
- run: npm ci
|
|
22
|
+
- run: npm test
|
|
23
|
+
audit:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v2
|
|
27
|
+
- name: Use Node.js ${{ matrix.node-version }}
|
|
28
|
+
uses: actions/setup-node@v1
|
|
29
|
+
with:
|
|
30
|
+
node-version: ${{ matrix.node-version }}
|
|
31
|
+
- run: npm ci
|
|
32
|
+
- run: npm audit
|
|
33
|
+
deploy:
|
|
34
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
35
|
+
runs-on: ubuntu-latest
|
|
36
|
+
needs: test
|
|
37
|
+
steps:
|
|
38
|
+
- uses: actions/checkout@v2
|
|
39
|
+
- uses: actions/setup-node@v1
|
|
40
|
+
with:
|
|
41
|
+
node-version: 16
|
|
42
|
+
registry-url: https://registry.npmjs.org/
|
|
43
|
+
- run: npm ci
|
|
44
|
+
- run: npm publish --tag next
|
|
45
|
+
env:
|
|
46
|
+
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
# the `language` matrix defined below to confirm you have the correct set of
|
|
10
10
|
# supported CodeQL languages.
|
|
11
11
|
#
|
|
12
|
-
name:
|
|
12
|
+
name: 'CodeQL'
|
|
13
13
|
|
|
14
14
|
on:
|
|
15
15
|
push:
|
|
16
|
-
branches: [
|
|
16
|
+
branches: [main]
|
|
17
17
|
pull_request:
|
|
18
18
|
# The branches below must be a subset of the branches above
|
|
19
|
-
branches: [
|
|
19
|
+
branches: [main]
|
|
20
20
|
schedule:
|
|
21
21
|
- cron: '24 11 * * 0'
|
|
22
22
|
|
|
@@ -32,39 +32,39 @@ jobs:
|
|
|
32
32
|
strategy:
|
|
33
33
|
fail-fast: false
|
|
34
34
|
matrix:
|
|
35
|
-
language: [
|
|
35
|
+
language: ['javascript']
|
|
36
36
|
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
|
37
37
|
# Learn more about CodeQL language support at https://git.io/codeql-language-support
|
|
38
38
|
|
|
39
39
|
steps:
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
- name: Checkout repository
|
|
41
|
+
uses: actions/checkout@v2
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
43
|
+
# Initializes the CodeQL tools for scanning.
|
|
44
|
+
- name: Initialize CodeQL
|
|
45
|
+
uses: github/codeql-action/init@v1
|
|
46
|
+
with:
|
|
47
|
+
languages: ${{ matrix.language }}
|
|
48
|
+
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
49
|
+
# By default, queries listed here will override any specified in a config file.
|
|
50
|
+
# Prefix the list here with "+" to use these queries and those in the config file.
|
|
51
|
+
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
54
|
+
# If this step fails, then you should remove it and run the build manually (see below)
|
|
55
|
+
- name: Autobuild
|
|
56
|
+
uses: github/codeql-action/autobuild@v1
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
# ℹ️ Command-line programs to run using the OS shell.
|
|
59
|
+
# 📚 https://git.io/JvXDl
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
|
62
|
+
# and modify them (or add more) to build your code if your project
|
|
63
|
+
# uses a compiled language
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
#- run: |
|
|
66
|
+
# make bootstrap
|
|
67
|
+
# make release
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
- name: Perform CodeQL Analysis
|
|
70
|
+
uses: github/codeql-action/analyze@v1
|
package/.mocharc.json
ADDED
package/.prettierignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
package-lock.json
|
package/.prettierrc
CHANGED
package/README.md
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
# cruddl
|
|
2
2
|
|
|
3
3
|
[](https://npmjs.org/cruddl)
|
|
4
|
-
[](https://github.com/AEB-labs/cruddl/actions?query=branch%
|
|
4
|
+
[](https://github.com/AEB-labs/cruddl/actions?query=branch%3Amain)
|
|
5
5
|
[](https://packagequality.com/#?package=cruddl)
|
|
6
6
|
|
|
7
|
-
**cruddl** - create a cuddly GraphQL API for your database, using the GraphQL SDL to model your
|
|
7
|
+
**cruddl** - create a cuddly GraphQL API for your database, using the GraphQL SDL to model your
|
|
8
|
+
schema.
|
|
8
9
|
|
|
9
|
-
This TypeScript library creates an executable GraphQL schema from a model definition and provides
|
|
10
|
-
to access a database. Currently, it supports the multi-model database
|
|
11
|
-
being inspired by existing projects like
|
|
12
|
-
[
|
|
13
|
-
(
|
|
10
|
+
This TypeScript library creates an executable GraphQL schema from a model definition and provides
|
|
11
|
+
queries and mutations to access a database. Currently, it supports the multi-model database
|
|
12
|
+
[ArangoDB](https://www.arangodb.com/). The concept being inspired by existing projects like
|
|
13
|
+
[prisma](https://github.com/graphcool/prisma) and
|
|
14
|
+
[join-monster](https://github.com/stems/join-monster), cruddl exploits the expressiveness of the
|
|
15
|
+
Arango Query Language (AQL) to generate one tailored query for each GraphQL request.
|
|
14
16
|
|
|
15
17
|
**[Try it online](https://aeb-labs.github.io/cruddl/)**
|
|
16
18
|
|
|
@@ -41,8 +43,8 @@ const db = new ArangoDBAdapter({
|
|
|
41
43
|
});
|
|
42
44
|
```
|
|
43
45
|
|
|
44
|
-
If you just want to explore the features, you can also use an in-memory database implementation -
|
|
45
|
-
anything else.
|
|
46
|
+
If you just want to explore the features, you can also use an in-memory database implementation -
|
|
47
|
+
but don't use this for anything else.
|
|
46
48
|
|
|
47
49
|
```typescript
|
|
48
50
|
import { InMemoryAdapter } from 'cruddl';
|
|
@@ -106,10 +108,11 @@ See the [modelling guide](docs/modelling.md) and the [api documentation](docs/ap
|
|
|
106
108
|
|
|
107
109
|
### Usage in a browser environment
|
|
108
110
|
|
|
109
|
-
The core of cruddl perfectly works in a browser (e.g., using webpack), and this can be useful to
|
|
110
|
-
schema on the fly or to validate a cruddl project. However, the ArangoDB
|
|
111
|
-
`path`. Unless you configure webpack to provide mock
|
|
112
|
-
|
|
111
|
+
The core of cruddl perfectly works in a browser (e.g., using webpack), and this can be useful to
|
|
112
|
+
generate a mock GraphQL schema on the fly or to validate a cruddl project. However, the ArangoDB
|
|
113
|
+
adapter only works with node imports like `path`. Unless you configure webpack to provide mock
|
|
114
|
+
modules for them, you will get an error when you import `cruddl` in a webpack environment. To solve
|
|
115
|
+
this, you can import the core symbols from `cruddl/core` and the `InMemoryAdapter` from
|
|
113
116
|
`cruddl/inmemory`.
|
|
114
117
|
|
|
115
118
|
## Running Tests
|
package/cruddl-bench.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require('ts-node').register({lazy: true, ignore: /node_modules\/(?!@aeb\/)/});
|
|
1
|
+
require('ts-node').register({ lazy: true, ignore: /node_modules\/(?!@aeb\/)/ });
|
|
2
2
|
require('./spec/performance');
|
package/dist/core-exports.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { RequestProfile, ProjectOptions, RequestContext, ModelOptions } from './src/config/interfaces';
|
|
1
|
+
export { RequestProfile, ProjectOptions, RequestContext, ModelOptions, } from './src/config/interfaces';
|
|
2
2
|
export { FieldResolverParameters } from './src/graphql/operation-based-resolvers';
|
|
3
3
|
export { Project, ProjectConfig } from './src/project/project';
|
|
4
4
|
export { InvalidProjectError } from './src/project/invalid-project-error';
|
|
5
5
|
export { ProjectSource, SourceConfig, SourceType, SourceLike } from './src/project/source';
|
|
6
6
|
export { SchemaExecutor, SchemaExecutionArgs } from './src/execution/schema-executor';
|
|
7
|
-
export { ExecutionOptions, MutationMode, ExecutionOptionsCallbackArgs } from './src/execution/execution-options';
|
|
7
|
+
export { ExecutionOptions, MutationMode, ExecutionOptionsCallbackArgs, } from './src/execution/execution-options';
|
|
8
8
|
export { ExecutionResult } from './src/execution/execution-result';
|
|
9
|
-
export { ValidationMessage, Severity, MessageLocation, SourcePosition, ValidationResult, Model } from './src/model';
|
|
9
|
+
export { ValidationMessage, Severity, MessageLocation, SourcePosition, ValidationResult, Model, } from './src/model';
|
|
10
10
|
export { DatabaseAdapter } from './src/database/database-adapter';
|
|
11
11
|
export { DIRECTIVES, CORE_SCALARS } from './src/schema/graphql-base';
|
|
12
12
|
export { Logger, LoggerProvider } from './src/config/logging';
|
package/dist/core-exports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-exports.js","sourceRoot":"","sources":["../core-exports.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"core-exports.js","sourceRoot":"","sources":["../core-exports.ts"],"names":[],"mappings":";;;;AAOA,iDAA+D;AAAtD,kGAAA,OAAO,OAAA;AAChB,6EAA0E;AAAjE,4HAAA,mBAAmB,OAAA;AAC5B,+CAA2F;AAAlF,uGAAA,aAAa,OAAA;AAAgB,oGAAA,UAAU,OAAA;AAChD,mEAAsF;AAA7E,iHAAA,cAAc,OAAA;AAOvB,qCAOqB;AANjB,0GAAA,iBAAiB,OAAA;AACjB,iGAAA,QAAQ,OAAA;AACR,wGAAA,eAAe,OAAA;AACf,uGAAA,cAAc,OAAA;AACd,yGAAA,gBAAgB,OAAA;AAChB,8FAAA,KAAK,OAAA;AAGT,0DAAqE;AAA5D,0GAAA,UAAU,OAAA;AAAE,4GAAA,YAAY,OAAA;AAEjC,iEAAoG;AAA3F,2HAAA,yBAAyB,OAAA;AAAE,yHAAA,uBAAuB,OAAA;AAC3D,qEAA2C;AAC3C,6CAA8C;AAArC,kGAAA,QAAQ,OAAA;AACjB,qFAAqF;AAA5E,uIAAA,0BAA0B,OAAA;AACnC,uEAAqE;AAA5D,qHAAA,gBAAgB,OAAA;AACzB,iEAA+E;AAAtE,+HAAA,6BAA6B,OAAA"}
|
|
@@ -9,39 +9,41 @@ describe('move-errors-to-output-nodes', () => {
|
|
|
9
9
|
const tree = new query_tree_1.ObjectQueryNode([
|
|
10
10
|
new query_tree_1.PropertySpecification('prop1', new query_tree_1.TransformListQueryNode({
|
|
11
11
|
listNode: new query_tree_1.ListQueryNode([]),
|
|
12
|
-
filterNode: new query_tree_1.RuntimeErrorQueryNode('filter error')
|
|
13
|
-
}))
|
|
12
|
+
filterNode: new query_tree_1.RuntimeErrorQueryNode('filter error'),
|
|
13
|
+
})),
|
|
14
14
|
]);
|
|
15
|
-
const newTree = move_errors_to_output_nodes_1.moveErrorsToOutputNodes(tree);
|
|
16
|
-
chai_1.expect(newTree.properties[0].valueNode.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
15
|
+
const newTree = (0, move_errors_to_output_nodes_1.moveErrorsToOutputNodes)(tree);
|
|
16
|
+
(0, chai_1.expect)(newTree.properties[0].valueNode.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
17
17
|
});
|
|
18
18
|
it('keeps errors in innerNode', () => {
|
|
19
19
|
const tree = new query_tree_1.ObjectQueryNode([
|
|
20
20
|
new query_tree_1.PropertySpecification('prop1', new query_tree_1.TransformListQueryNode({
|
|
21
21
|
listNode: new query_tree_1.ListQueryNode([]),
|
|
22
|
-
innerNode: new query_tree_1.RuntimeErrorQueryNode('filter error')
|
|
23
|
-
}))
|
|
22
|
+
innerNode: new query_tree_1.RuntimeErrorQueryNode('filter error'),
|
|
23
|
+
})),
|
|
24
24
|
]);
|
|
25
|
-
const newTree = move_errors_to_output_nodes_1.moveErrorsToOutputNodes(tree);
|
|
26
|
-
const transformList = newTree.properties[0]
|
|
27
|
-
|
|
28
|
-
chai_1.expect(transformList.
|
|
25
|
+
const newTree = (0, move_errors_to_output_nodes_1.moveErrorsToOutputNodes)(tree);
|
|
26
|
+
const transformList = newTree.properties[0]
|
|
27
|
+
.valueNode;
|
|
28
|
+
(0, chai_1.expect)(transformList.constructor.name).to.equal(query_tree_1.TransformListQueryNode.name);
|
|
29
|
+
(0, chai_1.expect)(transformList.innerNode.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
29
30
|
});
|
|
30
31
|
it('ConditionalQueryNode moves errors in condition up', () => {
|
|
31
32
|
const tree = new query_tree_1.ObjectQueryNode([
|
|
32
|
-
new query_tree_1.PropertySpecification('prop1', new query_tree_1.ConditionalQueryNode(new query_tree_1.RuntimeErrorQueryNode('condition error'), new query_tree_1.TransformListQueryNode({ listNode: new query_tree_1.ListQueryNode([]) }), new query_tree_1.TransformListQueryNode({ listNode: new query_tree_1.ListQueryNode([]) })))
|
|
33
|
+
new query_tree_1.PropertySpecification('prop1', new query_tree_1.ConditionalQueryNode(new query_tree_1.RuntimeErrorQueryNode('condition error'), new query_tree_1.TransformListQueryNode({ listNode: new query_tree_1.ListQueryNode([]) }), new query_tree_1.TransformListQueryNode({ listNode: new query_tree_1.ListQueryNode([]) }))),
|
|
33
34
|
]);
|
|
34
|
-
const newTree = move_errors_to_output_nodes_1.moveErrorsToOutputNodes(tree);
|
|
35
|
-
chai_1.expect(newTree.properties[0].valueNode.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
35
|
+
const newTree = (0, move_errors_to_output_nodes_1.moveErrorsToOutputNodes)(tree);
|
|
36
|
+
(0, chai_1.expect)(newTree.properties[0].valueNode.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
36
37
|
});
|
|
37
38
|
it('ConditionalQueryNode keeps errors in expression', () => {
|
|
38
39
|
const tree = new query_tree_1.ObjectQueryNode([
|
|
39
|
-
new query_tree_1.PropertySpecification('prop1', new query_tree_1.ConditionalQueryNode(new query_tree_1.ConstBoolQueryNode(true), new query_tree_1.TransformListQueryNode({ listNode: new query_tree_1.ListQueryNode([]) }), new query_tree_1.RuntimeErrorQueryNode('expression error')))
|
|
40
|
+
new query_tree_1.PropertySpecification('prop1', new query_tree_1.ConditionalQueryNode(new query_tree_1.ConstBoolQueryNode(true), new query_tree_1.TransformListQueryNode({ listNode: new query_tree_1.ListQueryNode([]) }), new query_tree_1.RuntimeErrorQueryNode('expression error'))),
|
|
40
41
|
]);
|
|
41
|
-
const newTree = move_errors_to_output_nodes_1.moveErrorsToOutputNodes(tree);
|
|
42
|
-
const conditionalQueryNode = newTree.properties[0]
|
|
43
|
-
|
|
44
|
-
chai_1.expect(conditionalQueryNode.
|
|
42
|
+
const newTree = (0, move_errors_to_output_nodes_1.moveErrorsToOutputNodes)(tree);
|
|
43
|
+
const conditionalQueryNode = newTree.properties[0]
|
|
44
|
+
.valueNode;
|
|
45
|
+
(0, chai_1.expect)(conditionalQueryNode.constructor.name).to.equal(query_tree_1.ConditionalQueryNode.name);
|
|
46
|
+
(0, chai_1.expect)(conditionalQueryNode.expr2.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
45
47
|
});
|
|
46
48
|
it('WithPreExecutionQueryNode moves errors in condition up', () => {
|
|
47
49
|
const tree = new query_tree_1.ObjectQueryNode([
|
|
@@ -49,13 +51,13 @@ describe('move-errors-to-output-nodes', () => {
|
|
|
49
51
|
resultNode: new query_tree_1.TransformListQueryNode({ listNode: new query_tree_1.ListQueryNode([]) }),
|
|
50
52
|
preExecQueries: [
|
|
51
53
|
new query_tree_1.PreExecQueryParms({
|
|
52
|
-
query: new query_tree_1.RuntimeErrorQueryNode('condition error')
|
|
53
|
-
})
|
|
54
|
-
]
|
|
55
|
-
}))
|
|
54
|
+
query: new query_tree_1.RuntimeErrorQueryNode('condition error'),
|
|
55
|
+
}),
|
|
56
|
+
],
|
|
57
|
+
})),
|
|
56
58
|
]);
|
|
57
|
-
const newTree = move_errors_to_output_nodes_1.moveErrorsToOutputNodes(tree);
|
|
58
|
-
chai_1.expect(newTree.properties[0].valueNode.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
59
|
+
const newTree = (0, move_errors_to_output_nodes_1.moveErrorsToOutputNodes)(tree);
|
|
60
|
+
(0, chai_1.expect)(newTree.properties[0].valueNode.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
59
61
|
});
|
|
60
62
|
it('moves errors in result node up', () => {
|
|
61
63
|
const tree = new query_tree_1.ObjectQueryNode([
|
|
@@ -63,13 +65,13 @@ describe('move-errors-to-output-nodes', () => {
|
|
|
63
65
|
resultNode: new query_tree_1.RuntimeErrorQueryNode('resultNode error'),
|
|
64
66
|
preExecQueries: [
|
|
65
67
|
new query_tree_1.PreExecQueryParms({
|
|
66
|
-
query: new query_tree_1.TransformListQueryNode({ listNode: new query_tree_1.ListQueryNode([]) })
|
|
67
|
-
})
|
|
68
|
-
]
|
|
69
|
-
}))
|
|
68
|
+
query: new query_tree_1.TransformListQueryNode({ listNode: new query_tree_1.ListQueryNode([]) }),
|
|
69
|
+
}),
|
|
70
|
+
],
|
|
71
|
+
})),
|
|
70
72
|
]);
|
|
71
|
-
const newTree = move_errors_to_output_nodes_1.moveErrorsToOutputNodes(tree);
|
|
72
|
-
chai_1.expect(newTree.properties[0].valueNode.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
73
|
+
const newTree = (0, move_errors_to_output_nodes_1.moveErrorsToOutputNodes)(tree);
|
|
74
|
+
(0, chai_1.expect)(newTree.properties[0].valueNode.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
73
75
|
});
|
|
74
76
|
it('do move up necessary error message', () => {
|
|
75
77
|
const tree = new query_tree_1.ObjectQueryNode([
|
|
@@ -77,29 +79,33 @@ describe('move-errors-to-output-nodes', () => {
|
|
|
77
79
|
resultNode: new query_tree_1.RuntimeErrorQueryNode('resultNode error'),
|
|
78
80
|
preExecQueries: [
|
|
79
81
|
new query_tree_1.PreExecQueryParms({
|
|
80
|
-
query: new query_tree_1.RuntimeErrorQueryNode('query error')
|
|
81
|
-
})
|
|
82
|
-
]
|
|
83
|
-
}))
|
|
82
|
+
query: new query_tree_1.RuntimeErrorQueryNode('query error'),
|
|
83
|
+
}),
|
|
84
|
+
],
|
|
85
|
+
})),
|
|
84
86
|
]);
|
|
85
|
-
const newTree = move_errors_to_output_nodes_1.moveErrorsToOutputNodes(tree);
|
|
86
|
-
chai_1.expect(newTree.properties[0].valueNode.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
87
|
-
chai_1.expect(newTree.properties[0].valueNode.message).to.equal('query error, resultNode error');
|
|
87
|
+
const newTree = (0, move_errors_to_output_nodes_1.moveErrorsToOutputNodes)(tree);
|
|
88
|
+
(0, chai_1.expect)(newTree.properties[0].valueNode.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
89
|
+
(0, chai_1.expect)(newTree.properties[0].valueNode.message).to.equal('query error, resultNode error');
|
|
88
90
|
});
|
|
89
91
|
it('does not unnecessarily move up error message', () => {
|
|
90
92
|
const tree = new query_tree_1.ObjectQueryNode([
|
|
91
93
|
new query_tree_1.PropertySpecification('prop1', new query_tree_1.WithPreExecutionQueryNode({
|
|
92
|
-
resultNode: new query_tree_1.ConditionalQueryNode(new query_tree_1.ConstBoolQueryNode(true), new query_tree_1.RuntimeErrorQueryNode(flex_search_generator_1.TOO_MANY_OBJECTS_ERROR, {
|
|
94
|
+
resultNode: new query_tree_1.ConditionalQueryNode(new query_tree_1.ConstBoolQueryNode(true), new query_tree_1.RuntimeErrorQueryNode(flex_search_generator_1.TOO_MANY_OBJECTS_ERROR, {
|
|
95
|
+
code: query_tree_1.FLEX_SEARCH_TOO_MANY_OBJECTS,
|
|
96
|
+
}), new query_tree_1.RuntimeErrorQueryNode(flex_search_generator_1.TOO_MANY_OBJECTS_ERROR, {
|
|
97
|
+
code: query_tree_1.FLEX_SEARCH_TOO_MANY_OBJECTS,
|
|
98
|
+
})),
|
|
93
99
|
preExecQueries: [
|
|
94
100
|
new query_tree_1.PreExecQueryParms({
|
|
95
|
-
query: new query_tree_1.RuntimeErrorQueryNode('query error')
|
|
96
|
-
})
|
|
97
|
-
]
|
|
98
|
-
}))
|
|
101
|
+
query: new query_tree_1.RuntimeErrorQueryNode('query error'),
|
|
102
|
+
}),
|
|
103
|
+
],
|
|
104
|
+
})),
|
|
99
105
|
]);
|
|
100
|
-
const newTree = move_errors_to_output_nodes_1.moveErrorsToOutputNodes(tree);
|
|
101
|
-
chai_1.expect(newTree.properties[0].valueNode.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
102
|
-
chai_1.expect(newTree.properties[0].valueNode.message).to.equal('query error');
|
|
106
|
+
const newTree = (0, move_errors_to_output_nodes_1.moveErrorsToOutputNodes)(tree);
|
|
107
|
+
(0, chai_1.expect)(newTree.properties[0].valueNode.constructor.name).to.equal(query_tree_1.RuntimeErrorQueryNode.name);
|
|
108
|
+
(0, chai_1.expect)(newTree.properties[0].valueNode.message).to.equal('query error');
|
|
103
109
|
});
|
|
104
110
|
});
|
|
105
111
|
//# sourceMappingURL=move-errors-to-output-nodes.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"move-errors-to-output-nodes.spec.js","sourceRoot":"","sources":["../../../spec/authorization/move-errors-to-output-nodes.spec.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,qGAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"move-errors-to-output-nodes.spec.js","sourceRoot":"","sources":["../../../spec/authorization/move-errors-to-output-nodes.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,13 +20,13 @@ describe('PermissionDescriptor', () => {
|
|
|
20
20
|
const authContext = { authRoles: [] };
|
|
21
21
|
const operation = auth_basics_1.AccessOperation.READ;
|
|
22
22
|
it('returns GRANTED if constant true', () => {
|
|
23
|
-
chai_1.expect(new MockPermissionDescriptor(query_tree_1.ConstBoolQueryNode.TRUE).canAccess(authContext, operation)).to.equal(permission_descriptors_1.PermissionResult.GRANTED);
|
|
23
|
+
(0, chai_1.expect)(new MockPermissionDescriptor(query_tree_1.ConstBoolQueryNode.TRUE).canAccess(authContext, operation)).to.equal(permission_descriptors_1.PermissionResult.GRANTED);
|
|
24
24
|
});
|
|
25
25
|
it('returns DENIED if constant false', () => {
|
|
26
|
-
chai_1.expect(new MockPermissionDescriptor(query_tree_1.ConstBoolQueryNode.FALSE).canAccess(authContext, operation)).to.equal(permission_descriptors_1.PermissionResult.DENIED);
|
|
26
|
+
(0, chai_1.expect)(new MockPermissionDescriptor(query_tree_1.ConstBoolQueryNode.FALSE).canAccess(authContext, operation)).to.equal(permission_descriptors_1.PermissionResult.DENIED);
|
|
27
27
|
});
|
|
28
28
|
it('returns CONDITIONAL on anything else', () => {
|
|
29
|
-
chai_1.expect(new MockPermissionDescriptor(new query_tree_1.LiteralQueryNode(true)).canAccess(authContext, operation)).to.equal(permission_descriptors_1.PermissionResult.CONDITIONAL);
|
|
29
|
+
(0, chai_1.expect)(new MockPermissionDescriptor(new query_tree_1.LiteralQueryNode(true)).canAccess(authContext, operation)).to.equal(permission_descriptors_1.PermissionResult.CONDITIONAL);
|
|
30
30
|
});
|
|
31
31
|
});
|
|
32
32
|
});
|
|
@@ -35,14 +35,14 @@ describe('ProfileBasedPermissionDescriptor', () => {
|
|
|
35
35
|
permissions: [
|
|
36
36
|
{
|
|
37
37
|
access: 'read',
|
|
38
|
-
roles: ['theRole']
|
|
38
|
+
roles: ['theRole'],
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
access: 'read',
|
|
42
42
|
roles: ['restricted'],
|
|
43
|
-
restrictToAccessGroups: ['groupA', 'groupB']
|
|
44
|
-
}
|
|
45
|
-
]
|
|
43
|
+
restrictToAccessGroups: ['groupA', 'groupB'],
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
46
|
});
|
|
47
47
|
const model = new model_1.Model({
|
|
48
48
|
types: [
|
|
@@ -52,34 +52,34 @@ describe('ProfileBasedPermissionDescriptor', () => {
|
|
|
52
52
|
fields: [
|
|
53
53
|
{
|
|
54
54
|
name: constants_1.ACCESS_GROUP_FIELD,
|
|
55
|
-
typeName: 'String'
|
|
56
|
-
}
|
|
57
|
-
]
|
|
58
|
-
}
|
|
59
|
-
]
|
|
55
|
+
typeName: 'String',
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
60
|
});
|
|
61
61
|
const descriptor = new permission_descriptors_1.ProfileBasedPermissionDescriptor(profile, model.getRootEntityTypeOrThrow('Test'));
|
|
62
62
|
it('grants access if role matches', () => {
|
|
63
|
-
chai_1.expect(descriptor.canAccess({ authRoles: ['theRole', 'other'] }, auth_basics_1.AccessOperation.READ)).to.equal(permission_descriptors_1.PermissionResult.GRANTED);
|
|
63
|
+
(0, chai_1.expect)(descriptor.canAccess({ authRoles: ['theRole', 'other'] }, auth_basics_1.AccessOperation.READ)).to.equal(permission_descriptors_1.PermissionResult.GRANTED);
|
|
64
64
|
});
|
|
65
65
|
it('denies access if no role matches', () => {
|
|
66
|
-
chai_1.expect(descriptor.canAccess({ authRoles: ['theRole2'] }, auth_basics_1.AccessOperation.READ)).to.equal(permission_descriptors_1.PermissionResult.DENIED);
|
|
66
|
+
(0, chai_1.expect)(descriptor.canAccess({ authRoles: ['theRole2'] }, auth_basics_1.AccessOperation.READ)).to.equal(permission_descriptors_1.PermissionResult.DENIED);
|
|
67
67
|
});
|
|
68
68
|
it('denies write access if role matches but has only read permissions', () => {
|
|
69
|
-
chai_1.expect(descriptor.canAccess({ authRoles: ['theRole'] }, auth_basics_1.AccessOperation.UPDATE)).to.equal(permission_descriptors_1.PermissionResult.DENIED);
|
|
69
|
+
(0, chai_1.expect)(descriptor.canAccess({ authRoles: ['theRole'] }, auth_basics_1.AccessOperation.UPDATE)).to.equal(permission_descriptors_1.PermissionResult.DENIED);
|
|
70
70
|
});
|
|
71
71
|
it('produces conditional QueryNode if only accessGroup-based permissions match', () => {
|
|
72
|
-
chai_1.expect(descriptor.canAccess({ authRoles: ['restricted'] }, auth_basics_1.AccessOperation.READ)).to.equal(permission_descriptors_1.PermissionResult.CONDITIONAL);
|
|
72
|
+
(0, chai_1.expect)(descriptor.canAccess({ authRoles: ['restricted'] }, auth_basics_1.AccessOperation.READ)).to.equal(permission_descriptors_1.PermissionResult.CONDITIONAL);
|
|
73
73
|
const instanceNode = new query_tree_1.VariableQueryNode('instance');
|
|
74
74
|
const condition = descriptor.getAccessCondition({ authRoles: ['restricted'] }, auth_basics_1.AccessOperation.READ, instanceNode);
|
|
75
|
-
chai_1.expect(condition).to.be.an.instanceof(query_tree_1.BinaryOperationQueryNode);
|
|
76
|
-
chai_1.expect(condition.lhs).to.be.an.instanceof(query_tree_1.FieldQueryNode);
|
|
75
|
+
(0, chai_1.expect)(condition).to.be.an.instanceof(query_tree_1.BinaryOperationQueryNode);
|
|
76
|
+
(0, chai_1.expect)(condition.lhs).to.be.an.instanceof(query_tree_1.FieldQueryNode);
|
|
77
77
|
const fieldNode = condition.lhs;
|
|
78
|
-
chai_1.expect(fieldNode.objectNode).to.equal(instanceNode);
|
|
79
|
-
chai_1.expect(condition.operator).to.equal(query_tree_1.BinaryOperator.IN);
|
|
80
|
-
chai_1.expect(condition.rhs).to.be.an.instanceof(query_tree_1.LiteralQueryNode);
|
|
81
|
-
chai_1.expect(condition.rhs.value).to.contain('groupA');
|
|
82
|
-
chai_1.expect(condition.rhs.value).to.contain('groupB');
|
|
78
|
+
(0, chai_1.expect)(fieldNode.objectNode).to.equal(instanceNode);
|
|
79
|
+
(0, chai_1.expect)(condition.operator).to.equal(query_tree_1.BinaryOperator.IN);
|
|
80
|
+
(0, chai_1.expect)(condition.rhs).to.be.an.instanceof(query_tree_1.LiteralQueryNode);
|
|
81
|
+
(0, chai_1.expect)(condition.rhs.value).to.contain('groupA');
|
|
82
|
+
(0, chai_1.expect)(condition.rhs.value).to.contain('groupB');
|
|
83
83
|
});
|
|
84
84
|
});
|
|
85
85
|
//# sourceMappingURL=permission-descriptor.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-descriptor.spec.js","sourceRoot":"","sources":["../../../spec/authorization/permission-descriptor.spec.ts"],"names":[],"mappings":";;AAAA,2FAIwD;AACxD,2CAAqE;AACrE,qEAAmF;AACnF,qDAQ8B;AAC9B,0DAAgE;AAChE,+BAA8B;AAE9B,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACvB,MAAM,wBAAyB,SAAQ,6CAAoB;YACvD,YAAoB,MAAiB;gBACjC,KAAK,EAAE,CAAC;gBADQ,WAAM,GAAN,MAAM,CAAW;YAErC,CAAC;YACD,kBAAkB,CACd,WAAwB,EACxB,SAA0B,EAC1B,eAA0B;gBAE1B,OAAO,IAAI,CAAC,MAAM,CAAC;YACvB,CAAC;SACJ;QACD,MAAM,WAAW,GAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,6BAAe,CAAC,IAAI,CAAC;QAEvC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,aAAM,
|
|
1
|
+
{"version":3,"file":"permission-descriptor.spec.js","sourceRoot":"","sources":["../../../spec/authorization/permission-descriptor.spec.ts"],"names":[],"mappings":"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"}
|