From 0c3dc2d2b567607e91f703d5d9ef72794dc755f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vincent=20Molini=C3=A9?= Date: Wed, 24 Dec 2025 15:53:51 +0100 Subject: [PATCH] fix(eslint): enforce type import --- .eslintrc.js | 6 +++ packages/_example/src/forest/agent.ts | 6 ++- .../src/forest/customizations/account.ts | 2 +- .../src/forest/customizations/card.ts | 2 +- .../src/forest/customizations/comment.ts | 2 +- .../src/forest/customizations/customer.ts | 2 +- .../_example/src/forest/customizations/dvd.ts | 3 +- .../src/forest/customizations/owner.ts | 2 +- .../src/forest/customizations/post.ts | 2 +- .../src/forest/customizations/rental.ts | 2 +- .../src/forest/customizations/review.ts | 2 +- .../src/forest/customizations/sale.ts | 2 +- .../src/forest/customizations/store.ts | 2 +- .../src/forest/datasources/typicode.ts | 6 +-- .../src/frameworks/nest-fastify-v8.ts | 7 ++- .../action-field-checkbox-group.ts | 3 +- .../action-fields/action-field-dropdown.ts | 3 +- .../action-field-multiple-choice.ts | 3 +- .../action-fields/action-field-radio-group.ts | 3 +- .../src/action-fields/action-field.ts | 2 +- .../src/action-fields/field-form-states.ts | 6 +-- .../src/action-fields/field-getter.ts | 2 +- .../agent-client/src/action-fields/types.ts | 2 +- .../action-layout/action-layout-container.ts | 2 +- .../action-layout/action-layout-element.ts | 2 +- .../src/action-layout/action-layout-input.ts | 2 +- .../src/action-layout/action-layout-page.ts | 2 +- .../agent-client/src/action-layout/errors.ts | 2 +- packages/agent-client/src/domains/action.ts | 4 +- packages/agent-client/src/domains/chart.ts | 2 +- .../src/domains/collection-chart.ts | 4 +- .../agent-client/src/domains/collection.ts | 8 +-- .../src/domains/remote-agent-client.ts | 6 +-- packages/agent-client/src/domains/segment.ts | 3 +- packages/agent-client/src/http-requester.ts | 3 +- packages/agent-client/src/index.ts | 6 ++- packages/agent-client/src/types.ts | 2 +- .../action-field-multiple-choice.test.ts | 3 +- .../test/action-fields/action-fields.test.ts | 3 +- .../action-fields/field-form-states.test.ts | 3 +- .../test/action-fields/field-getter.test.ts | 3 +- .../test/action-layout/action-layout.test.ts | 2 +- .../agent-client/test/domains/action.test.ts | 5 +- .../agent-client/test/domains/chart.test.ts | 3 +- .../test/domains/collection.test.ts | 3 +- .../test/domains/relation.test.ts | 3 +- .../test/domains/remote-agent-client.test.ts | 3 +- .../agent-client/test/domains/segment.test.ts | 3 +- packages/agent/src/agent.ts | 14 ++--- packages/agent/src/framework-mounter.ts | 4 +- packages/agent/src/index.ts | 4 +- packages/agent/src/mcp-middleware.ts | 4 +- .../src/routes/access/api-chart-collection.ts | 11 ++-- .../src/routes/access/api-chart-datasource.ts | 12 +++-- packages/agent/src/routes/access/chart.ts | 27 +++++----- .../agent/src/routes/access/count-related.ts | 5 +- packages/agent/src/routes/access/count.ts | 5 +- .../agent/src/routes/access/csv-related.ts | 13 ++--- packages/agent/src/routes/access/csv.ts | 5 +- packages/agent/src/routes/access/get.ts | 5 +- .../agent/src/routes/access/list-related.ts | 5 +- packages/agent/src/routes/access/list.ts | 4 +- .../routes/access/native-query-datasource.ts | 16 +++--- packages/agent/src/routes/base-route.ts | 7 ++- packages/agent/src/routes/capabilities.ts | 13 +++-- packages/agent/src/routes/collection-route.ts | 7 +-- packages/agent/src/routes/index.ts | 8 +-- .../action/action-authorization.ts | 13 ++--- .../src/routes/modification/action/action.ts | 25 ++++----- .../routes/modification/associate-related.ts | 15 +++--- .../agent/src/routes/modification/create.ts | 9 ++-- .../agent/src/routes/modification/delete.ts | 8 +-- .../modification/dissociate-delete-related.ts | 13 +++-- .../src/routes/modification/update-field.ts | 5 +- .../routes/modification/update-relation.ts | 17 +++--- .../agent/src/routes/modification/update.ts | 7 +-- packages/agent/src/routes/relation-route.ts | 8 +-- .../src/routes/security/authentication.ts | 5 +- .../agent/src/routes/security/ip-whitelist.ts | 7 +-- .../src/routes/security/scope-invalidation.ts | 5 +- .../agent/src/routes/system/error-handling.ts | 6 ++- .../agent/src/routes/system/healthcheck.ts | 4 +- packages/agent/src/routes/system/logger.ts | 6 +-- .../services/authorization/authorization.ts | 8 +-- .../agent/src/services/authorization/index.ts | 3 +- packages/agent/src/services/index.ts | 6 +-- .../actions/get-actions.ts | 5 +- .../update-record/execute-update-record.ts | 8 +-- .../update-record/update-record-plugin.ts | 4 +- .../actions/webhook/execute-webhook.ts | 11 ++-- .../actions/webhook/webhook-plugin.ts | 7 ++- .../model-customizations/customization.ts | 6 +-- .../src/services/segment-query-handler.ts | 2 +- packages/agent/src/services/serializer.ts | 11 ++-- packages/agent/src/services/type-overrides.ts | 2 +- packages/agent/src/types.ts | 6 +-- packages/agent/src/utils/body-parser.ts | 6 +-- .../agent/src/utils/condition-tree-parser.ts | 11 ++-- .../agent/src/utils/context-filter-factory.ts | 12 ++--- packages/agent/src/utils/csv-generator.ts | 13 ++--- packages/agent/src/utils/csv-route-context.ts | 2 +- .../src/utils/forest-schema/action-fields.ts | 2 +- .../src/utils/forest-schema/action-values.ts | 2 +- .../forest-schema/column-schema-validator.ts | 4 +- .../src/utils/forest-schema/filterable.ts | 2 +- .../generator-action-field-widget.ts | 4 +- .../utils/forest-schema/generator-actions.ts | 9 ++-- .../forest-schema/generator-collection.ts | 8 +-- .../utils/forest-schema/generator-fields.ts | 9 ++-- .../utils/forest-schema/generator-segments.ts | 4 +- .../src/utils/forest-schema/generator.ts | 6 +-- .../src/utils/forest-schema/validation.ts | 9 ++-- packages/agent/src/utils/id.ts | 5 +- packages/agent/src/utils/options-validator.ts | 4 +- packages/agent/src/utils/query-string.ts | 7 ++- .../forest-admin-http-driver-options.ts | 3 +- .../forest-admin-http-driver-services.ts | 3 +- packages/agent/test/agent-integration.test.ts | 11 ++-- packages/agent/test/framework-mounter.test.ts | 6 ++- .../access/native-query-datasource.test.ts | 3 +- .../agent/test/routes/base-routes.test.ts | 2 +- packages/agent/test/routes/index.test.ts | 2 +- .../action/action-authorization.test.ts | 3 +- .../routes/modification/action/action.test.ts | 10 ++-- .../routes/modification/update-field.test.ts | 9 ++-- .../routes/security/authentication.test.ts | 3 +- .../test/routes/security/ip-whitelist.test.ts | 3 +- .../security/scope-invalidation.test.ts | 3 +- .../test/routes/system/error-handling.test.ts | 3 +- .../agent/test/routes/system/logger.test.ts | 2 +- .../authorization/authorization.test.ts | 3 +- .../execute-update-record.test.ts | 5 +- .../update-record-plugin.test.ts | 11 ++-- .../actions/webhook/execute-webhook.test.ts | 7 +-- .../actions/webhook/webhook-plugin.test.ts | 11 ++-- .../customization.test.ts | 3 +- .../services/segment-query-handler.test.ts | 3 +- packages/agent/test/utils/body-parser.test.ts | 3 +- .../forest-schema/generator-actions.test.ts | 2 +- .../generator-fields_column.test.ts | 2 +- packages/agent/test/utils/id.test.ts | 2 +- .../agent/test/utils/query-string.test.ts | 3 +- .../src/collection-customizer.ts | 53 +++++++++---------- .../src/context/agent-context.ts | 6 +-- .../src/context/collection-context.ts | 4 +- .../context/relaxed-wrappers/collection.ts | 32 +++++------ .../context/relaxed-wrappers/datasource.ts | 4 +- .../src/datasource-customizer.ts | 8 +-- .../src/decorators/actions/collection.ts | 27 +++++----- .../src/decorators/actions/context/base.ts | 8 ++- .../src/decorators/actions/context/single.ts | 4 +- .../src/decorators/actions/result-builder.ts | 3 +- .../src/decorators/actions/types/actions.ts | 8 +-- .../src/decorators/actions/types/fields.ts | 2 +- .../src/decorators/binary/collection.ts | 9 ++-- .../src/decorators/chart/collection.ts | 12 ++--- .../src/decorators/chart/context.ts | 11 ++-- .../src/decorators/chart/datasource.ts | 12 ++--- .../src/decorators/chart/result-builder.ts | 6 ++- .../src/decorators/chart/types.ts | 11 ++-- .../src/decorators/composite-datasource.ts | 5 +- .../src/decorators/computed/collection.ts | 9 ++-- .../computed/helpers/compute-fields.ts | 10 ++-- .../computed/helpers/rewrite-projection.ts | 4 +- .../src/decorators/computed/types.ts | 7 ++- .../computed/utils/map-deprecated.ts | 4 +- .../src/decorators/decorators-stack-base.ts | 42 +++++++-------- .../decorators/decorators-stack-no-code.ts | 4 +- .../src/decorators/decorators-stack.ts | 4 +- .../src/decorators/empty/collection.ts | 11 ++-- .../src/decorators/hook/collection.ts | 44 ++++++--------- .../src/decorators/hook/context/aggregate.ts | 8 +-- .../src/decorators/hook/context/create.ts | 4 +- .../src/decorators/hook/context/delete.ts | 4 +- .../src/decorators/hook/context/hook.ts | 3 +- .../src/decorators/hook/context/list.ts | 10 +++- .../src/decorators/hook/context/update.ts | 4 +- .../src/decorators/hook/hook.ts | 4 +- .../src/decorators/hook/types.ts | 3 +- .../src/decorators/lazy-join/collection.ts | 5 +- .../operators-emulate/collection.ts | 17 +++--- .../src/decorators/operators-emulate/types.ts | 10 +++- .../operators-equivalence/collection.ts | 11 ++-- .../src/decorators/override/collection.ts | 13 ++--- .../src/decorators/override/context.ts | 4 +- .../src/decorators/override/types.ts | 4 +- .../src/decorators/publication/collection.ts | 7 ++- .../src/decorators/publication/datasource.ts | 4 +- .../src/decorators/relation/collection.ts | 20 +++---- .../src/decorators/relation/types.ts | 2 +- .../rename-collection/collection.ts | 9 ++-- .../rename-collection/datasource.ts | 4 +- .../src/decorators/rename-field/collection.ts | 7 ++- .../src/decorators/schema/collection.ts | 4 +- .../search/collection-search-context.ts | 4 +- .../src/decorators/search/collection.ts | 11 ++-- .../condition-tree-query-walker.ts | 17 +++--- .../custom-parser/fields-query-walker.ts | 3 +- .../build-basic-array-field-filter.ts | 9 ++-- .../build-boolean-field-filter.ts | 9 ++-- .../filter-builder/build-date-field-filter.ts | 10 ++-- .../build-enum-array-field-filter.ts | 2 +- .../filter-builder/build-enum-field-filter.ts | 9 ++-- .../build-number-array-field-filter.ts | 2 +- .../build-number-field-filter.ts | 9 ++-- .../build-string-array-field-filter.ts | 2 +- .../build-string-field-filter.ts | 9 ++-- .../filter-builder/build-uuid-field-filter.ts | 9 ++-- .../decorators/search/filter-builder/index.ts | 6 +-- .../utils/build-default-condition.ts | 4 +- .../filter-builder/utils/find-enum-value.ts | 2 +- .../src/decorators/search/parse-query.ts | 5 +- .../src/decorators/search/types.ts | 4 +- .../src/decorators/segment/collection.ts | 7 ++- .../src/decorators/segment/types.ts | 4 +- .../src/decorators/sort-emulate/collection.ts | 13 +++-- .../src/decorators/validation/collection.ts | 11 ++-- .../write/create-relations/collection.ts | 11 ++-- .../src/decorators/write/datasource.ts | 4 +- .../write/update-relations/collection.ts | 11 ++-- .../write/write-replace/collection.ts | 11 ++-- .../decorators/write/write-replace/context.ts | 4 +- .../decorators/write/write-replace/types.ts | 9 +++- .../src/plugins/add-external-relation.ts | 10 ++-- .../src/plugins/import-field.ts | 11 ++-- .../datasource-customizer/src/templates.ts | 2 +- packages/datasource-customizer/src/types.ts | 11 ++-- .../src/typing-generator.ts | 10 ++-- .../test/collection-customizer.test.ts | 22 ++++---- .../test/context/context.test.ts | 3 +- .../test/context/wrapper.test.ts | 5 +- .../decorators/actions/collection.test.ts | 17 +++--- .../test/decorators/actions/context.test.ts | 4 +- .../test/decorators/binary/collection.test.ts | 5 +- .../test/decorators/chart/collection.test.ts | 5 +- .../test/decorators/chart/datasource.test.ts | 3 +- .../decorators/composite-datasource.test.ts | 4 +- .../decorators/computed/collection.test.ts | 4 +- .../test/decorators/computed/utils.test.ts | 4 +- .../test/decorators/empty/collection.test.ts | 4 +- .../test/decorators/hook/collection.test.ts | 4 +- .../decorators/lazy-join/collection.test.ts | 10 ++-- .../operators-emulate/collection.test.ts | 9 ++-- .../operators-equivalence/collection.test.ts | 10 ++-- .../decorators/override/collection.test.ts | 4 +- .../decorators/publication/collection.test.ts | 6 ++- .../decorators/publication/datasource.test.ts | 3 +- .../decorators/relation/collection.test.ts | 11 ++-- .../rename-field/collection.test.ts | 4 +- .../decorators/search/collections.test.ts | 4 +- .../build-basic-array-field-filter.test.ts | 4 +- .../build-date-field-filter.test.ts | 4 +- .../build-enum-array-field-filter.test.ts | 8 ++- .../build-enum-field-filter.test.ts | 3 +- .../build-number-array-field.test.ts | 4 +- .../build-number-field-filter.test.ts | 3 +- .../build-string-array-field-filter.test.ts | 4 +- .../build-string-field-filter.test.ts | 4 +- .../build-uuid-field-filter.test.ts | 4 +- .../search/filter-builder/index.test.ts | 5 +- .../decorators/search/parse-query.test.ts | 9 ++-- .../decorators/segment/collection.test.ts | 4 +- .../sort-emulate/collection.test.ts | 7 ++- .../decorators/validation/collection.test.ts | 4 +- .../collection_many-to-one.test.ts | 3 +- .../collection_one-to-one.test.ts | 3 +- .../write-replace/collection_basics.test.ts | 4 +- .../write-replace/collection_relation.test.ts | 4 +- .../collection_simple-creations.test.ts | 6 ++- .../collection_simple-updates.test.ts | 4 +- .../datasource-dummy/src/collections/base.ts | 5 +- .../datasource-dummy/src/collections/books.ts | 2 +- .../src/collections/libraries-books.ts | 2 +- .../src/collections/libraries.ts | 2 +- .../src/collections/persons.ts | 2 +- packages/datasource-dummy/src/index.ts | 3 +- .../src/connection/create-connection.ts | 10 ++-- .../src/introspection/introspector.ts | 15 +++--- .../list-collections-from-introspection.ts | 2 +- .../reference-candidates-finder.ts | 2 +- .../reference-candidates-verifier.ts | 2 +- .../src/introspection/structure.ts | 3 +- .../src/introspection/types.ts | 2 +- .../datasource-mongo/src/odm-builder/index.ts | 5 +- packages/datasource-mongo/src/types.ts | 3 +- .../connection/create-connection.unit.test.ts | 5 +- .../test/index.integration.test.ts | 3 +- .../datasource-mongo/test/index.unit.test.ts | 5 +- .../introspector.integration.test.ts | 4 +- .../introspection/introspector.unit.test.ts | 3 +- ...ollections-from-introspection.unit.test.ts | 3 +- .../reference-candidates-finder.unit.test.ts | 3 +- ...reference-candidates-verifier.unit.test.ts | 3 +- .../test/introspection/structure.unit.test.ts | 3 +- .../test/odm-builder.unit.test.ts | 6 ++- .../datasource-mongoose/src/collection.ts | 12 ++--- .../datasource-mongoose/src/datasource.ts | 8 +-- packages/datasource-mongoose/src/index.ts | 6 +-- .../src/mongoose/schema.ts | 6 ++- .../datasource-mongoose/src/utils/helpers.ts | 3 +- .../datasource-mongoose/src/utils/options.ts | 8 +-- .../src/utils/pipeline/condition-generator.ts | 2 +- .../src/utils/pipeline/filter.ts | 15 +++--- .../src/utils/pipeline/group.ts | 8 ++- .../src/utils/pipeline/lookup.ts | 9 ++-- .../src/utils/pipeline/projection.ts | 4 +- .../src/utils/pipeline/reparent.ts | 2 +- .../src/utils/pipeline/virtual-fields.ts | 6 +-- .../src/utils/schema/fields.ts | 9 ++-- .../src/utils/schema/filter-operators.ts | 2 +- .../src/utils/schema/relations.ts | 4 +- .../src/utils/version-manager.ts | 4 +- packages/datasource-mongoose/test/_helpers.ts | 4 +- .../test/collection.test.ts | 4 +- .../flattener/collection_create.test.ts | 4 +- .../flattener/collection_list.test.ts | 3 +- .../flattener/collection_schema.test.ts | 2 +- .../flattener/collection_update.test.ts | 3 +- .../many-to-many/collection_aggregate.test.ts | 4 +- .../many-to-many/collection_create.test.ts | 4 +- .../many-to-many/collection_delete.test.ts | 4 +- .../many-to-many/collection_list.test.ts | 4 +- .../many-to-many/collection_update.test.ts | 4 +- .../many-to-one/collection_aggregate.test.ts | 7 ++- .../many-to-one/collection_list.test.ts | 4 +- .../review/collection_aggregate.test.ts | 6 ++- .../review/collection_create.test.ts | 3 +- .../review/collection_delete.test.ts | 7 ++- .../review/collection_list.test.ts | 15 ++---- .../review/collection_update.test.ts | 4 +- .../datasource-mongoose/test/schema.test.ts | 4 +- .../test/utils/options.integration.test.ts | 4 +- .../test/utils/pipeline/filter.test.ts | 6 ++- .../test/utils/pipeline/lookup.test.ts | 6 ++- .../test/utils/pipeline/reparent.test.ts | 4 +- .../utils/pipeline/virtual-fields.test.ts | 4 +- .../utils/schema/fields_flattener.test.ts | 6 ++- .../test/utils/schema/fields_simple.test.ts | 3 +- .../test/utils/schema/filter-operator.test.ts | 2 +- .../src/cache-interface/collection.ts | 6 +-- .../src/decorators/schema/collection.ts | 9 ++-- .../src/decorators/schema/data-source.ts | 6 ++- .../src/decorators/sync/collection.ts | 7 ++- .../src/synchronization/cache-target.ts | 4 +- .../datasource-replica/test/flattener.test.ts | 3 +- .../test/integrations/cache.test.ts | 3 +- .../test/integrations/factories.ts | 7 ++- .../test/integrations/pull-delta.test.ts | 3 +- .../test/integrations/pull-dump-delta.test.ts | 5 +- .../test/integrations/pull-dump.test.ts | 3 +- .../test/integrations/push-delta.test.ts | 3 +- .../integrations/schema/flattener.test.ts | 3 +- .../test/integrations/schema/schema.test.ts | 3 +- .../integrations/write-actions/create.test.ts | 3 +- .../integrations/write-actions/delete.test.ts | 3 +- .../integrations/write-actions/update.test.ts | 3 +- .../datasource-sequelize/src/collection.ts | 12 ++--- .../datasource-sequelize/src/datasource.ts | 9 ++-- packages/datasource-sequelize/src/index.ts | 6 +-- .../src/type-overrides.ts | 2 +- .../src/utils/aggregation.ts | 8 +-- .../src/utils/date-aggregation-converter.ts | 6 +-- .../model-to-collection-schema-converter.ts | 12 ++--- .../src/utils/query-converter.ts | 15 +++--- .../src/utils/serializer.ts | 2 +- .../src/utils/type-converter.ts | 7 +-- .../src/utils/un-ambigous.ts | 2 +- .../test/collection.test.ts | 7 +-- .../aggregation/count.integration.test.ts | 6 ++- .../list/filter.integration.test.ts | 11 ++-- .../utils/date-aggregation-converter.test.ts | 6 ++- ...del-to-collection-schema-converter.test.ts | 6 ++- .../test/utils/query-converter.unit.test.ts | 8 +-- .../test/utils/type-converter.unit.test.ts | 3 +- .../src/connection/connection-options.ts | 12 ++--- .../src/connection/connection-tester.ts | 2 +- .../src/connection/handle-errors.ts | 3 +- .../datasource-sql/src/connection/index.ts | 4 +- .../src/connection/sequelize-factory.ts | 6 +-- .../src/connection/services/service.ts | 2 +- .../src/connection/services/socks-proxy.ts | 7 +-- .../src/connection/services/ssh-tunnel.ts | 5 +- .../src/decorators/sql-datasource.ts | 8 +-- .../src/decorators/view-decorator.ts | 8 ++- packages/datasource-sql/src/index.ts | 14 ++--- .../introspection/dialects/dialect-factory.ts | 4 +- .../dialects/dialect.interface.ts | 5 +- .../introspection/dialects/mariadb-dialect.ts | 4 +- .../introspection/dialects/mssql-dialect.ts | 14 +++-- .../dialects/mysql-dialect/index.ts | 13 +++-- .../dialects/postgresql-dialect/index.ts | 13 +++-- .../introspection/dialects/sqlite-dialect.ts | 8 +-- .../helpers/default-value-parser.ts | 6 +-- .../helpers/sql-type-converter.ts | 6 +-- .../src/introspection/introspector.ts | 21 ++++---- .../list-collections-from-introspection.ts | 3 +- .../src/introspection/type-overrides.ts | 2 +- .../orm-builder/helpers/relation-extractor.ts | 4 +- .../helpers/relation-name-generator.ts | 6 +-- .../src/orm-builder/helpers/sequelize-type.ts | 7 +-- .../datasource-sql/src/orm-builder/model.ts | 14 ++--- .../src/orm-builder/relations.ts | 8 +-- packages/datasource-sql/src/types.ts | 7 ++- .../test/_helpers/connection-details.ts | 3 +- .../test/_helpers/setup-empty-database.ts | 5 +- .../test/_helpers/setup-id-is-not-a-pk.ts | 6 ++- .../test/_helpers/setup-simple-table.ts | 6 ++- .../test/_helpers/setup-soft-deleted.ts | 6 ++- .../test/_helpers/setup-using-all-types.ts | 8 +-- .../test/_helpers/setup-using-relations.ts | 6 ++- .../test/connection/connect.ssl.test.ts | 3 +- .../connection/connection-options.test.ts | 4 +- .../test/connection/connection-tester.test.ts | 2 +- .../datasource-factory.integration.test.ts | 6 ++- ...isconnected-sequlieze-factory.unit.test.ts | 4 +- .../test/datasource/views.integration.test.ts | 3 +- packages/datasource-sql/test/index.test.ts | 3 +- .../dialects/dialects.integration.test.ts | 3 +- .../helpers/default-value-parser.test.ts | 3 +- .../sql-type-converter.integration.test.ts | 12 +++-- .../helpers/sql-type-converter.test.ts | 3 +- .../introspection/introspector.unit.test.ts | 3 +- .../test/orm-builder/model.test.ts | 3 +- .../datasource-toolkit/src/base-collection.ts | 22 ++++---- .../datasource-toolkit/src/base-datasource.ts | 9 ++-- .../src/decorators/collection-decorator.ts | 21 ++++---- .../src/decorators/datasource-decorator.ts | 8 +-- packages/datasource-toolkit/src/factory.ts | 2 +- .../src/interfaces/action.ts | 2 +- .../src/interfaces/collection.ts | 19 +++---- .../src/interfaces/query/aggregation.ts | 3 +- .../query/condition-tree/equivalence.ts | 9 ++-- .../query/condition-tree/factory.ts | 12 +++-- .../query/condition-tree/nodes/base.ts | 10 ++-- .../query/condition-tree/nodes/branch.ts | 9 ++-- .../query/condition-tree/nodes/leaf.ts | 13 +++-- .../condition-tree/transforms/comparison.ts | 7 +-- .../condition-tree/transforms/pattern.ts | 4 +- .../query/condition-tree/transforms/time.ts | 8 +-- .../src/interfaces/query/filter/factory.ts | 16 +++--- .../src/interfaces/query/filter/paginated.ts | 10 ++-- .../interfaces/query/filter/unpaginated.ts | 3 +- .../src/interfaces/query/page.ts | 2 +- .../interfaces/query/projection/factory.ts | 3 +- .../src/interfaces/query/projection/index.ts | 5 +- .../src/interfaces/query/sort/factory.ts | 3 +- .../src/interfaces/query/sort/index.ts | 3 +- .../src/interfaces/schema.ts | 2 +- .../src/utils/collection.ts | 14 ++--- .../datasource-toolkit/src/utils/record.ts | 5 +- .../datasource-toolkit/src/utils/schema.ts | 17 +++--- .../src/validation/condition-tree.ts | 7 +-- .../src/validation/field.ts | 5 +- .../src/validation/projection.ts | 3 +- .../src/validation/record.ts | 5 +- .../src/validation/rules.ts | 4 +- .../datasource-toolkit/src/validation/sort.ts | 5 +- .../src/validation/type-getter.ts | 4 +- .../test/__factories__/aggregate-result.ts | 4 +- .../test/__factories__/caller.ts | 4 +- .../test/__factories__/collection.ts | 8 +-- .../test/__factories__/composite-id.ts | 4 +- .../test/__factories__/datasource.ts | 3 +- .../test/__factories__/record-data.ts | 4 +- .../__factories__/schema/collection-schema.ts | 4 +- .../__factories__/schema/column-schema.ts | 3 +- .../schema/many-to-many-schema.ts | 4 +- .../schema/many-to-one-schema.ts | 4 +- .../schema/one-to-many-schema.ts | 4 +- .../__factories__/schema/one-to-one-schema.ts | 4 +- .../test/base-collection.test.ts | 7 +-- .../test/base-datasource.test.ts | 6 ++- .../decorators/collection-decorator.test.ts | 9 ++-- .../decorators/datasource-decorator.test.ts | 3 +- .../test/interfaces/condition-tree.test.ts | 3 +- .../test/interfaces/filter-factory.test.ts | 8 +-- .../validation/condition-tree/date.test.ts | 4 +- .../validation/condition-tree/index.test.ts | 5 +- .../test/validation/type-getter.test.ts | 3 +- packages/forest-cloud/src/build-commands.ts | 3 +- .../forest-cloud/src/commands/bootstrap.ts | 4 +- packages/forest-cloud/src/commands/login.ts | 4 +- packages/forest-cloud/src/commands/logs.ts | 5 +- packages/forest-cloud/src/commands/package.ts | 4 +- packages/forest-cloud/src/commands/publish.ts | 4 +- packages/forest-cloud/src/commands/start.ts | 5 +- .../src/commands/update-typings.ts | 4 +- packages/forest-cloud/src/commands/version.ts | 4 +- .../forest-cloud/src/dialogs/action-runner.ts | 3 +- .../ask-to-overwrite-customizations.ts | 5 +- .../src/dialogs/check-latest-version.ts | 5 +- .../src/dialogs/display-customization-info.ts | 2 +- packages/forest-cloud/src/externals/logger.ts | 4 +- packages/forest-cloud/src/externals/login.ts | 4 +- packages/forest-cloud/src/make-commands.ts | 3 +- .../forest-cloud/src/services/bootstrap.ts | 5 +- .../src/services/environment-variables.ts | 3 +- .../src/services/event-subscriber.ts | 4 +- .../forest-cloud/src/services/http-server.ts | 5 +- .../forest-cloud/src/services/packager.ts | 3 +- packages/forest-cloud/src/services/publish.ts | 5 +- .../src/services/starting-agent-locally.ts | 16 +++--- .../src/services/update-typings.ts | 7 +-- packages/forest-cloud/src/shared.ts | 2 +- packages/forest-cloud/src/types.ts | 9 ++-- .../test/commands/bootstrap.test.ts | 3 +- .../test/commands/command-tester.ts | 7 +-- .../test/commands/publish.test.ts | 8 +-- packages/forest-cloud/test/commands/utils.ts | 3 +- .../test/externals/login.unit.test.ts | 3 +- .../test/services/action-runner.unit.test.ts | 3 +- .../test/services/bootstrap.unit.test.ts | 5 +- .../services/load-customization.unit.test.ts | 3 +- .../test/services/publish.unit.test.ts | 5 +- .../test/services/update-typings.unit.test.ts | 7 +-- packages/forestadmin-client/src/auth/index.ts | 15 ++++-- .../src/auth/type-overrides.ts | 2 +- .../src/build-application-services.ts | 20 +++---- .../forestadmin-client/src/charts/types.ts | 2 +- .../src/events-subscription/index.ts | 11 ++-- .../native-refresh-events-handler-service.ts | 10 ++-- .../src/forest-admin-client-with-cache.ts | 27 +++++----- packages/forestadmin-client/src/index.ts | 3 +- .../src/ip-whitelist/index.ts | 5 +- .../src/mcp-server-config/index.ts | 5 +- .../model-customization-from-api.ts | 7 +-- .../src/permissions/action-permission.ts | 8 ++- .../src/permissions/forest-http-api.ts | 12 ++--- .../permissions/generate-action-identifier.ts | 2 +- .../generate-actions-from-permissions.ts | 14 ++--- .../src/permissions/hash-chart.ts | 4 +- .../is-segment-query-allowed-on-connection.ts | 2 +- .../src/permissions/permission-with-cache.ts | 12 +++-- .../src/permissions/rendering-permission.ts | 16 +++--- .../src/permissions/user-permission.ts | 4 +- .../forestadmin-client/src/schema/index.ts | 5 +- packages/forestadmin-client/src/types.ts | 23 ++++---- .../src/utils/context-variables-injector.ts | 4 +- .../utils/context-variables-instantiator.ts | 8 +-- .../src/utils/context-variables.ts | 2 +- .../forestadmin-client/src/utils/server.ts | 6 ++- .../forest-admin-client-options.ts | 4 +- .../forest-admin-server-interface.ts | 2 +- .../test/__factories__/mcp-server-config.ts | 2 +- .../test/chart/chart-handler.test.ts | 10 ++-- .../model-customization-from-api.test.ts | 3 +- .../permissions/action-permission.test.ts | 8 +-- .../test/permissions/hash-chart.test.ts | 4 +- ...egment-query-allowed-on-connection.test.ts | 3 +- .../permissions/rendering-permission.test.ts | 4 +- .../test/utils/chart-detector.test.ts | 5 +- .../utils/context-variables-injector.test.ts | 4 +- .../src/tools/describe-collection.ts | 2 +- .../mcp-server/src/utils/with-activity-log.ts | 2 +- .../test/tools/list-related.test.ts | 5 +- .../test/utils/activity-logs-creator.test.ts | 2 +- .../src/field/make-field-writable.ts | 5 +- packages/plugin-aws-s3/src/types.ts | 6 +-- packages/plugin-aws-s3/src/utils/data-uri.ts | 2 +- packages/plugin-aws-s3/src/utils/s3.ts | 8 +-- packages/plugin-aws-s3/test/index.test.ts | 9 ++-- packages/plugin-export-advanced/src/index.ts | 2 +- .../src/renderers/xlsx.ts | 3 +- packages/plugin-export-advanced/src/types.ts | 2 +- .../plugin-export-advanced/test/index.test.ts | 3 +- .../src/flatten-column/customization.ts | 3 +- .../src/flatten-column/helpers.ts | 2 +- .../src/flatten-column/index.ts | 3 +- .../src/flatten-json-column/index.ts | 3 +- .../src/flatten-relation/helpers.ts | 3 +- .../test/flatten-column.test.ts | 4 +- .../test/flatten-json-column.test.ts | 4 +- .../test/flatten-json-column.unit.test.ts | 3 +- .../test/flatten-relation.test.ts | 4 +- 574 files changed, 1952 insertions(+), 1599 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index f6b7f802f3..2b05fdcf9f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -56,6 +56,12 @@ module.exports = { // No unused variables '@typescript-eslint/no-unused-vars': ['error'], + // Enforce type imports for type-only imports + '@typescript-eslint/consistent-type-imports': [ + 'error', + { prefer: 'type-imports', fixStyle: 'separate-type-imports' }, + ], + // No reassigning function parameters 'no-param-reassign': ['error', { props: false }], diff --git a/packages/_example/src/forest/agent.ts b/packages/_example/src/forest/agent.ts index 5c5eda52a7..ef9e210790 100644 --- a/packages/_example/src/forest/agent.ts +++ b/packages/_example/src/forest/agent.ts @@ -1,4 +1,7 @@ -import { AgentOptions, createAgent } from '@forestadmin/agent'; +import type { Schema } from './typings'; +import type { AgentOptions } from '@forestadmin/agent'; + +import { createAgent } from '@forestadmin/agent'; import { createMongoDataSource } from '@forestadmin/datasource-mongo'; import { createMongooseDataSource } from '@forestadmin/datasource-mongoose'; import { createSequelizeDataSource } from '@forestadmin/datasource-sequelize'; @@ -16,7 +19,6 @@ import customizeReview from './customizations/review'; import customizeSales from './customizations/sale'; import customizeStore from './customizations/store'; import createTypicode from './datasources/typicode'; -import { Schema } from './typings'; import mongoose, { connectionString } from '../connections/mongoose'; import sequelizeMsSql from '../connections/sequelize-mssql'; import sequelizeMySql from '../connections/sequelize-mysql'; diff --git a/packages/_example/src/forest/customizations/account.ts b/packages/_example/src/forest/customizations/account.ts index 631e864e27..70b86076ab 100644 --- a/packages/_example/src/forest/customizations/account.ts +++ b/packages/_example/src/forest/customizations/account.ts @@ -1,4 +1,4 @@ -import { AccountCustomizer } from '../typings'; +import type { AccountCustomizer } from '../typings'; export default (collection: AccountCustomizer) => collection.addManyToOneRelation('store', 'store', { foreignKey: 'storeId' }); diff --git a/packages/_example/src/forest/customizations/card.ts b/packages/_example/src/forest/customizations/card.ts index 90ea6cc0fc..2775a9ddf0 100644 --- a/packages/_example/src/forest/customizations/card.ts +++ b/packages/_example/src/forest/customizations/card.ts @@ -1,4 +1,4 @@ -import { CardCustomizer } from '../typings'; +import type { CardCustomizer } from '../typings'; export default (collection: CardCustomizer) => collection diff --git a/packages/_example/src/forest/customizations/comment.ts b/packages/_example/src/forest/customizations/comment.ts index e4c330ef9e..27681aa924 100644 --- a/packages/_example/src/forest/customizations/comment.ts +++ b/packages/_example/src/forest/customizations/comment.ts @@ -1,4 +1,4 @@ -import { CommentCustomizer } from '../typings'; +import type { CommentCustomizer } from '../typings'; export default (collection: CommentCustomizer) => collection.addManyToOneRelation('post', 'post', { foreignKey: 'postId' }); diff --git a/packages/_example/src/forest/customizations/customer.ts b/packages/_example/src/forest/customizations/customer.ts index 12f71ea449..e6724b17af 100644 --- a/packages/_example/src/forest/customizations/customer.ts +++ b/packages/_example/src/forest/customizations/customer.ts @@ -1,4 +1,4 @@ -import { CustomerCustomizer } from '../typings'; +import type { CustomerCustomizer } from '../typings'; export default (collection: CustomerCustomizer) => collection diff --git a/packages/_example/src/forest/customizations/dvd.ts b/packages/_example/src/forest/customizations/dvd.ts index 7edd243de9..7080e82fc8 100644 --- a/packages/_example/src/forest/customizations/dvd.ts +++ b/packages/_example/src/forest/customizations/dvd.ts @@ -1,5 +1,6 @@ +import type { DvdCustomizer } from '../typings'; + import sequelizeMsSql from '../../connections/sequelize-mssql'; -import { DvdCustomizer } from '../typings'; export default (collection: DvdCustomizer) => collection diff --git a/packages/_example/src/forest/customizations/owner.ts b/packages/_example/src/forest/customizations/owner.ts index 8770c74828..757824be60 100644 --- a/packages/_example/src/forest/customizations/owner.ts +++ b/packages/_example/src/forest/customizations/owner.ts @@ -1,4 +1,4 @@ -import { OwnerCustomizer } from '../typings'; +import type { OwnerCustomizer } from '../typings'; export default (collection: OwnerCustomizer) => collection diff --git a/packages/_example/src/forest/customizations/post.ts b/packages/_example/src/forest/customizations/post.ts index 8d1b05a64e..3c57348144 100644 --- a/packages/_example/src/forest/customizations/post.ts +++ b/packages/_example/src/forest/customizations/post.ts @@ -1,4 +1,4 @@ -import { PostCustomizer } from '../typings'; +import type { PostCustomizer } from '../typings'; export default (collection: PostCustomizer) => collection diff --git a/packages/_example/src/forest/customizations/rental.ts b/packages/_example/src/forest/customizations/rental.ts index 8f69171f8f..064d242be6 100644 --- a/packages/_example/src/forest/customizations/rental.ts +++ b/packages/_example/src/forest/customizations/rental.ts @@ -1,4 +1,4 @@ -import { RentalCustomizer } from '../typings'; +import type { RentalCustomizer } from '../typings'; export default (collection: RentalCustomizer) => collection diff --git a/packages/_example/src/forest/customizations/review.ts b/packages/_example/src/forest/customizations/review.ts index 423558a9b2..0cd5bdf7c1 100644 --- a/packages/_example/src/forest/customizations/review.ts +++ b/packages/_example/src/forest/customizations/review.ts @@ -1,4 +1,4 @@ -import { ReviewCustomizer } from '../typings'; +import type { ReviewCustomizer } from '../typings'; export default (collection: ReviewCustomizer) => collection.addManyToOneRelation('store', 'store', { foreignKey: 'storeId' }); diff --git a/packages/_example/src/forest/customizations/sale.ts b/packages/_example/src/forest/customizations/sale.ts index a2f54955f1..2679b10818 100644 --- a/packages/_example/src/forest/customizations/sale.ts +++ b/packages/_example/src/forest/customizations/sale.ts @@ -1,4 +1,4 @@ -import { SalesCustomizer } from '../typings'; +import type { SalesCustomizer } from '../typings'; export default (collection: SalesCustomizer) => collection.addManyToOneRelation('customerAccount', 'account', { diff --git a/packages/_example/src/forest/customizations/store.ts b/packages/_example/src/forest/customizations/store.ts index 1b6146acef..c1607b46df 100644 --- a/packages/_example/src/forest/customizations/store.ts +++ b/packages/_example/src/forest/customizations/store.ts @@ -1,4 +1,4 @@ -import { StoreCustomizer } from '../typings'; +import type { StoreCustomizer } from '../typings'; export default (collection: StoreCustomizer) => collection diff --git a/packages/_example/src/forest/datasources/typicode.ts b/packages/_example/src/forest/datasources/typicode.ts index e14f214513..5b4efc24ee 100644 --- a/packages/_example/src/forest/datasources/typicode.ts +++ b/packages/_example/src/forest/datasources/typicode.ts @@ -1,10 +1,8 @@ /* eslint-disable max-classes-per-file */ -import { +import type { AggregateResult, Aggregation, - BaseCollection, - BaseDataSource, Caller, DataSource, DataSourceFactory, @@ -14,6 +12,8 @@ import { Projection, RecordData, } from '@forestadmin/datasource-toolkit'; + +import { BaseCollection, BaseDataSource } from '@forestadmin/datasource-toolkit'; import superagent from 'superagent'; class TypicodeCollection extends BaseCollection { diff --git a/packages/_example/src/frameworks/nest-fastify-v8.ts b/packages/_example/src/frameworks/nest-fastify-v8.ts index f7d526d804..366d04fe58 100644 --- a/packages/_example/src/frameworks/nest-fastify-v8.ts +++ b/packages/_example/src/frameworks/nest-fastify-v8.ts @@ -1,7 +1,10 @@ /* eslint-disable max-classes-per-file */ -import { Controller, Get, INestApplication, Module } from '@nestjs/common'; +import type { INestApplication } from '@nestjs/common'; +import type { NestFastifyApplication } from '@nestjs/platform-fastify'; + +import { Controller, Get, Module } from '@nestjs/common'; import { NestFactory } from '@nestjs/core'; -import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify'; +import { FastifyAdapter } from '@nestjs/platform-fastify'; @Controller('/') class BasicController { diff --git a/packages/agent-client/src/action-fields/action-field-checkbox-group.ts b/packages/agent-client/src/action-fields/action-field-checkbox-group.ts index 207c7058e9..4c2cdb19da 100644 --- a/packages/agent-client/src/action-fields/action-field-checkbox-group.ts +++ b/packages/agent-client/src/action-fields/action-field-checkbox-group.ts @@ -1,5 +1,6 @@ +import type { PlainFieldOption } from './types'; + import ActionField from './action-field'; -import { PlainFieldOption } from './types'; export default class ActionFieldCheckboxGroup extends ActionField { getOptions(): PlainFieldOption[] | undefined { diff --git a/packages/agent-client/src/action-fields/action-field-dropdown.ts b/packages/agent-client/src/action-fields/action-field-dropdown.ts index 6d87e989e4..5d54ec3914 100644 --- a/packages/agent-client/src/action-fields/action-field-dropdown.ts +++ b/packages/agent-client/src/action-fields/action-field-dropdown.ts @@ -1,5 +1,6 @@ +import type { PlainFieldOption } from './types'; + import ActionField from './action-field'; -import { PlainFieldOption } from './types'; export default class ActionFieldDropdown extends ActionField { getOptions(): PlainFieldOption[] | undefined { diff --git a/packages/agent-client/src/action-fields/action-field-multiple-choice.ts b/packages/agent-client/src/action-fields/action-field-multiple-choice.ts index 79fceaec46..23fd032533 100644 --- a/packages/agent-client/src/action-fields/action-field-multiple-choice.ts +++ b/packages/agent-client/src/action-fields/action-field-multiple-choice.ts @@ -1,5 +1,6 @@ +import type { PlainFieldOption } from './types'; + import FieldGetter from './field-getter'; -import { PlainFieldOption } from './types'; export default class ActionFieldMultipleChoice extends FieldGetter { getOptions(): PlainFieldOption[] | undefined { diff --git a/packages/agent-client/src/action-fields/action-field-radio-group.ts b/packages/agent-client/src/action-fields/action-field-radio-group.ts index 80244103be..fa3283893a 100644 --- a/packages/agent-client/src/action-fields/action-field-radio-group.ts +++ b/packages/agent-client/src/action-fields/action-field-radio-group.ts @@ -1,5 +1,6 @@ +import type { PlainFieldOption } from './types'; + import ActionField from './action-field'; -import { PlainFieldOption } from './types'; export default class ActionFieldRadioGroup extends ActionField { async getOptions(): Promise { diff --git a/packages/agent-client/src/action-fields/action-field.ts b/packages/agent-client/src/action-fields/action-field.ts index 40d7ebeb90..7286a2178f 100644 --- a/packages/agent-client/src/action-fields/action-field.ts +++ b/packages/agent-client/src/action-fields/action-field.ts @@ -1,4 +1,4 @@ -import FieldFormStates from './field-form-states'; +import type FieldFormStates from './field-form-states'; export default abstract class ActionField { private readonly fieldsFormStates: FieldFormStates; diff --git a/packages/agent-client/src/action-fields/field-form-states.ts b/packages/agent-client/src/action-fields/field-form-states.ts index 21cf5a04d0..a7b313c20c 100644 --- a/packages/agent-client/src/action-fields/field-form-states.ts +++ b/packages/agent-client/src/action-fields/field-form-states.ts @@ -1,9 +1,9 @@ -import { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client'; +import type { PlainField, ResponseBody } from './types'; +import type HttpRequester from '../http-requester'; +import type { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client'; import ActionFieldMultipleChoice from './action-field-multiple-choice'; import FieldGetter from './field-getter'; -import { PlainField, ResponseBody } from './types'; -import HttpRequester from '../http-requester'; export default class FieldFormStates { private readonly fields: FieldGetter[]; diff --git a/packages/agent-client/src/action-fields/field-getter.ts b/packages/agent-client/src/action-fields/field-getter.ts index 594814f355..15e1b42514 100644 --- a/packages/agent-client/src/action-fields/field-getter.ts +++ b/packages/agent-client/src/action-fields/field-getter.ts @@ -1,4 +1,4 @@ -import { PlainField } from './types'; +import type { PlainField } from './types'; export default class FieldGetter { private readonly plainField: PlainField; diff --git a/packages/agent-client/src/action-fields/types.ts b/packages/agent-client/src/action-fields/types.ts index 39e667bb02..b8badad0cc 100644 --- a/packages/agent-client/src/action-fields/types.ts +++ b/packages/agent-client/src/action-fields/types.ts @@ -1,4 +1,4 @@ -import { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client'; +import type { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client'; export type ResponseBody = { fields: PlainField[]; diff --git a/packages/agent-client/src/action-layout/action-layout-container.ts b/packages/agent-client/src/action-layout/action-layout-container.ts index f9ace0f1e7..f09b68ab40 100644 --- a/packages/agent-client/src/action-layout/action-layout-container.ts +++ b/packages/agent-client/src/action-layout/action-layout-container.ts @@ -1,4 +1,4 @@ -import { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client'; +import type { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client'; import ActionLayoutElement from './action-layout-element'; import { NotFoundElementError, NotRightElementError } from './errors'; diff --git a/packages/agent-client/src/action-layout/action-layout-element.ts b/packages/agent-client/src/action-layout/action-layout-element.ts index 51730f7af2..2defe635d7 100644 --- a/packages/agent-client/src/action-layout/action-layout-element.ts +++ b/packages/agent-client/src/action-layout/action-layout-element.ts @@ -1,4 +1,4 @@ -import { +import type { ForestServerActionFormElementFieldReference, ForestServerActionFormLayoutElement, } from '@forestadmin/forestadmin-client'; diff --git a/packages/agent-client/src/action-layout/action-layout-input.ts b/packages/agent-client/src/action-layout/action-layout-input.ts index 38a5b34aa0..c9dfc143ef 100644 --- a/packages/agent-client/src/action-layout/action-layout-input.ts +++ b/packages/agent-client/src/action-layout/action-layout-input.ts @@ -1,4 +1,4 @@ -import { ForestServerActionFormElementFieldReference } from '@forestadmin/forestadmin-client'; +import type { ForestServerActionFormElementFieldReference } from '@forestadmin/forestadmin-client'; export default class ActionLayoutInput { protected readonly layoutItem: ForestServerActionFormElementFieldReference; diff --git a/packages/agent-client/src/action-layout/action-layout-page.ts b/packages/agent-client/src/action-layout/action-layout-page.ts index 856bdff07d..98ff42a62b 100644 --- a/packages/agent-client/src/action-layout/action-layout-page.ts +++ b/packages/agent-client/src/action-layout/action-layout-page.ts @@ -1,4 +1,4 @@ -import { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client'; +import type { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client'; import ActionLayoutElementsContainer from './action-layout-container'; import { NotRightElementError } from './errors'; diff --git a/packages/agent-client/src/action-layout/errors.ts b/packages/agent-client/src/action-layout/errors.ts index eea530206e..cd87fb2b9c 100644 --- a/packages/agent-client/src/action-layout/errors.ts +++ b/packages/agent-client/src/action-layout/errors.ts @@ -1,5 +1,5 @@ // eslint-disable-next-line max-classes-per-file -import { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client'; +import type { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client'; export class NotRightElementError extends Error { constructor(elementName: string, element: ForestServerActionFormLayoutElement) { diff --git a/packages/agent-client/src/domains/action.ts b/packages/agent-client/src/domains/action.ts index 523d4e24c9..95c3239a0e 100644 --- a/packages/agent-client/src/domains/action.ts +++ b/packages/agent-client/src/domains/action.ts @@ -1,6 +1,7 @@ +import type ActionField from '../action-fields/action-field'; +import type FieldFormStates from '../action-fields/field-form-states'; import type HttpRequester from '../http-requester'; -import ActionField from '../action-fields/action-field'; import ActionFieldCheckbox from '../action-fields/action-field-checkbox'; import ActionFieldCheckboxGroup from '../action-fields/action-field-checkbox-group'; import ActionFieldColorPicker from '../action-fields/action-field-color-picker'; @@ -13,7 +14,6 @@ import ActionFieldNumberList from '../action-fields/action-field-number-list'; import ActionFieldRadioGroup from '../action-fields/action-field-radio-group'; import ActionFieldString from '../action-fields/action-field-string'; import ActionFieldStringList from '../action-fields/action-field-string-list'; -import FieldFormStates from '../action-fields/field-form-states'; import ActionLayoutRoot from '../action-layout/action-layout-root'; export type BaseActionContext = { diff --git a/packages/agent-client/src/domains/chart.ts b/packages/agent-client/src/domains/chart.ts index 669b23365f..ebab0eed29 100644 --- a/packages/agent-client/src/domains/chart.ts +++ b/packages/agent-client/src/domains/chart.ts @@ -1,4 +1,4 @@ -import { +import type { DistributionChart, LeaderboardChart, ObjectiveChart, diff --git a/packages/agent-client/src/domains/collection-chart.ts b/packages/agent-client/src/domains/collection-chart.ts index c1678cb182..2b144e17ff 100644 --- a/packages/agent-client/src/domains/collection-chart.ts +++ b/packages/agent-client/src/domains/collection-chart.ts @@ -1,4 +1,5 @@ -import { +import type { ChartInterface } from './chart'; +import type { DistributionChart, LeaderboardChart, ObjectiveChart, @@ -7,7 +8,6 @@ import { ValueChart, } from '@forestadmin/datasource-toolkit'; -import { ChartInterface } from './chart'; import HttpRequester from '../http-requester'; export type ChartContext = { diff --git a/packages/agent-client/src/domains/collection.ts b/packages/agent-client/src/domains/collection.ts index c72f429943..e84acbd841 100644 --- a/packages/agent-client/src/domains/collection.ts +++ b/packages/agent-client/src/domains/collection.ts @@ -1,13 +1,13 @@ import type { ExportOptions, LiveQueryOptions, SelectOptions } from '../types'; +import type { ActionEndpointsByCollection, BaseActionContext } from './action'; +import type HttpRequester from '../http-requester'; +import type { WriteStream } from 'fs'; -import { WriteStream } from 'fs'; - -import Action, { ActionEndpointsByCollection, BaseActionContext } from './action'; +import Action from './action'; import CollectionChart from './collection-chart'; import Relation from './relation'; import Segment from './segment'; import FieldFormStates from '../action-fields/field-form-states'; -import HttpRequester from '../http-requester'; import QuerySerializer from '../query-serializer'; export default class Collection extends CollectionChart { diff --git a/packages/agent-client/src/domains/remote-agent-client.ts b/packages/agent-client/src/domains/remote-agent-client.ts index 1f2c6ed4b8..e081d1902c 100644 --- a/packages/agent-client/src/domains/remote-agent-client.ts +++ b/packages/agent-client/src/domains/remote-agent-client.ts @@ -1,9 +1,9 @@ -import { RawTreeWithSources } from '@forestadmin/forestadmin-client'; +import type { ActionEndpointsByCollection } from './action'; +import type HttpRequester from '../http-requester'; +import type { RawTreeWithSources } from '@forestadmin/forestadmin-client'; -import { ActionEndpointsByCollection } from './action'; import Chart from './chart'; import Collection from './collection'; -import HttpRequester from '../http-requester'; export type SmartActionPermissionsOverride = Partial<{ triggerEnabled: boolean; diff --git a/packages/agent-client/src/domains/segment.ts b/packages/agent-client/src/domains/segment.ts index 6fca47cbde..a8ce4027e4 100644 --- a/packages/agent-client/src/domains/segment.ts +++ b/packages/agent-client/src/domains/segment.ts @@ -1,7 +1,6 @@ import type HttpRequester from '../http-requester'; import type { ExportOptions, LiveQueryOptions, SelectOptions } from '../types'; - -import { WriteStream } from 'node:fs'; +import type { WriteStream } from 'node:fs'; import QuerySerializer from '../query-serializer'; diff --git a/packages/agent-client/src/http-requester.ts b/packages/agent-client/src/http-requester.ts index 14e177fea4..cbc3efd45e 100644 --- a/packages/agent-client/src/http-requester.ts +++ b/packages/agent-client/src/http-requester.ts @@ -1,4 +1,5 @@ -import { WriteStream } from 'fs'; +import type { WriteStream } from 'fs'; + import { Deserializer } from 'jsonapi-serializer'; import superagent from 'superagent'; diff --git a/packages/agent-client/src/index.ts b/packages/agent-client/src/index.ts index 019db5cf09..9cf263eb3c 100644 --- a/packages/agent-client/src/index.ts +++ b/packages/agent-client/src/index.ts @@ -1,5 +1,7 @@ -import { ActionEndpointsByCollection } from './domains/action'; -import RemoteAgentClient, { PermissionsOverride } from './domains/remote-agent-client'; +import type { ActionEndpointsByCollection } from './domains/action'; +import type { PermissionsOverride } from './domains/remote-agent-client'; + +import RemoteAgentClient from './domains/remote-agent-client'; import HttpRequester from './http-requester'; // eslint-disable-next-line import/prefer-default-export diff --git a/packages/agent-client/src/types.ts b/packages/agent-client/src/types.ts index 38cc35a88e..bd644b9b3c 100644 --- a/packages/agent-client/src/types.ts +++ b/packages/agent-client/src/types.ts @@ -1,4 +1,4 @@ -import { PlainFilter, PlainSortClause } from '@forestadmin/datasource-toolkit'; +import type { PlainFilter, PlainSortClause } from '@forestadmin/datasource-toolkit'; export type BaseOptions = { filters?: PlainFilter['conditionTree']; // Filters to apply to the query diff --git a/packages/agent-client/test/action-fields/action-field-multiple-choice.test.ts b/packages/agent-client/test/action-fields/action-field-multiple-choice.test.ts index cbfede4d94..f58559aacf 100644 --- a/packages/agent-client/test/action-fields/action-field-multiple-choice.test.ts +++ b/packages/agent-client/test/action-fields/action-field-multiple-choice.test.ts @@ -1,5 +1,6 @@ +import type { PlainField, PlainFieldOption } from '../../src/action-fields/types'; + import ActionFieldMultipleChoice from '../../src/action-fields/action-field-multiple-choice'; -import { PlainField, PlainFieldOption } from '../../src/action-fields/types'; describe('ActionFieldMultipleChoice', () => { const createPlainField = (options?: PlainFieldOption[], value?: unknown): PlainField => ({ diff --git a/packages/agent-client/test/action-fields/action-fields.test.ts b/packages/agent-client/test/action-fields/action-fields.test.ts index c60529f894..d33fd608a4 100644 --- a/packages/agent-client/test/action-fields/action-fields.test.ts +++ b/packages/agent-client/test/action-fields/action-fields.test.ts @@ -1,3 +1,5 @@ +import type HttpRequester from '../../src/http-requester'; + import ActionFieldCheckbox from '../../src/action-fields/action-field-checkbox'; import ActionFieldCheckboxGroup from '../../src/action-fields/action-field-checkbox-group'; import ActionFieldColorPicker from '../../src/action-fields/action-field-color-picker'; @@ -11,7 +13,6 @@ import ActionFieldRadioGroup from '../../src/action-fields/action-field-radio-gr import ActionFieldString from '../../src/action-fields/action-field-string'; import ActionFieldStringList from '../../src/action-fields/action-field-string-list'; import FieldFormStates from '../../src/action-fields/field-form-states'; -import HttpRequester from '../../src/http-requester'; jest.mock('../../src/http-requester'); diff --git a/packages/agent-client/test/action-fields/field-form-states.test.ts b/packages/agent-client/test/action-fields/field-form-states.test.ts index f42f97a2ba..c6966b29fa 100644 --- a/packages/agent-client/test/action-fields/field-form-states.test.ts +++ b/packages/agent-client/test/action-fields/field-form-states.test.ts @@ -1,5 +1,6 @@ +import type HttpRequester from '../../src/http-requester'; + import FieldFormStates from '../../src/action-fields/field-form-states'; -import HttpRequester from '../../src/http-requester'; jest.mock('../../src/http-requester'); diff --git a/packages/agent-client/test/action-fields/field-getter.test.ts b/packages/agent-client/test/action-fields/field-getter.test.ts index af24d5426e..9c89b45f68 100644 --- a/packages/agent-client/test/action-fields/field-getter.test.ts +++ b/packages/agent-client/test/action-fields/field-getter.test.ts @@ -1,5 +1,6 @@ +import type { PlainField } from '../../src/action-fields/types'; + import FieldGetter from '../../src/action-fields/field-getter'; -import { PlainField } from '../../src/action-fields/types'; describe('FieldGetter', () => { const createPlainField = (overrides: Partial = {}): PlainField => ({ diff --git a/packages/agent-client/test/action-layout/action-layout.test.ts b/packages/agent-client/test/action-layout/action-layout.test.ts index b2d947eb6f..f9eb546f74 100644 --- a/packages/agent-client/test/action-layout/action-layout.test.ts +++ b/packages/agent-client/test/action-layout/action-layout.test.ts @@ -1,4 +1,4 @@ -import { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client'; +import type { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client'; import ActionLayoutElement from '../../src/action-layout/action-layout-element'; import ActionLayoutInput from '../../src/action-layout/action-layout-input'; diff --git a/packages/agent-client/test/domains/action.test.ts b/packages/agent-client/test/domains/action.test.ts index bb92744eb3..68b5ac4090 100644 --- a/packages/agent-client/test/domains/action.test.ts +++ b/packages/agent-client/test/domains/action.test.ts @@ -1,6 +1,7 @@ -import FieldFormStates from '../../src/action-fields/field-form-states'; +import type FieldFormStates from '../../src/action-fields/field-form-states'; +import type HttpRequester from '../../src/http-requester'; + import Action from '../../src/domains/action'; -import HttpRequester from '../../src/http-requester'; jest.mock('../../src/http-requester'); jest.mock('../../src/action-fields/field-form-states'); diff --git a/packages/agent-client/test/domains/chart.test.ts b/packages/agent-client/test/domains/chart.test.ts index efdb8fafcf..c32f962e78 100644 --- a/packages/agent-client/test/domains/chart.test.ts +++ b/packages/agent-client/test/domains/chart.test.ts @@ -1,5 +1,6 @@ +import type HttpRequester from '../../src/http-requester'; + import Chart from '../../src/domains/chart'; -import HttpRequester from '../../src/http-requester'; // Create a concrete implementation for testing since Chart is abstract class TestChart extends Chart { diff --git a/packages/agent-client/test/domains/collection.test.ts b/packages/agent-client/test/domains/collection.test.ts index 01b1c7ba20..1b31dff973 100644 --- a/packages/agent-client/test/domains/collection.test.ts +++ b/packages/agent-client/test/domains/collection.test.ts @@ -1,5 +1,6 @@ +import type HttpRequester from '../../src/http-requester'; + import Collection from '../../src/domains/collection'; -import HttpRequester from '../../src/http-requester'; jest.mock('../../src/http-requester'); jest.mock('../../src/action-fields/field-form-states'); diff --git a/packages/agent-client/test/domains/relation.test.ts b/packages/agent-client/test/domains/relation.test.ts index abf455b4fd..e0299d7bd1 100644 --- a/packages/agent-client/test/domains/relation.test.ts +++ b/packages/agent-client/test/domains/relation.test.ts @@ -1,5 +1,6 @@ +import type HttpRequester from '../../src/http-requester'; + import Relation from '../../src/domains/relation'; -import HttpRequester from '../../src/http-requester'; jest.mock('../../src/http-requester'); diff --git a/packages/agent-client/test/domains/remote-agent-client.test.ts b/packages/agent-client/test/domains/remote-agent-client.test.ts index 874a7e8d64..b0faac4d5a 100644 --- a/packages/agent-client/test/domains/remote-agent-client.test.ts +++ b/packages/agent-client/test/domains/remote-agent-client.test.ts @@ -1,5 +1,6 @@ +import type HttpRequester from '../../src/http-requester'; + import RemoteAgentClient from '../../src/domains/remote-agent-client'; -import HttpRequester from '../../src/http-requester'; jest.mock('../../src/http-requester'); diff --git a/packages/agent-client/test/domains/segment.test.ts b/packages/agent-client/test/domains/segment.test.ts index 870a11c594..e2b8e48222 100644 --- a/packages/agent-client/test/domains/segment.test.ts +++ b/packages/agent-client/test/domains/segment.test.ts @@ -1,5 +1,6 @@ +import type HttpRequester from '../../src/http-requester'; + import Segment from '../../src/domains/segment'; -import HttpRequester from '../../src/http-requester'; jest.mock('../../src/http-requester'); diff --git a/packages/agent/src/agent.ts b/packages/agent/src/agent.ts index 587f87f577..cc9e298549 100644 --- a/packages/agent/src/agent.ts +++ b/packages/agent/src/agent.ts @@ -1,15 +1,18 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { +import type { ForestAdminHttpDriverServices } from './services'; +import type { AgentOptions, AgentOptionsWithDefaults, HttpCallback } from './types'; +import type { CollectionCustomizer, DataSourceChartDefinition, - DataSourceCustomizer, DataSourceOptions, Plugin, TCollectionName, TSchema, } from '@forestadmin/datasource-customizer'; -import { DataSource, DataSourceFactory } from '@forestadmin/datasource-toolkit'; -import { ForestSchema } from '@forestadmin/forestadmin-client'; +import type { DataSource, DataSourceFactory } from '@forestadmin/datasource-toolkit'; +import type { ForestSchema } from '@forestadmin/forestadmin-client'; + +import { DataSourceCustomizer } from '@forestadmin/datasource-customizer'; import bodyParser from '@koa/bodyparser'; import cors from '@koa/cors'; import Router from '@koa/router'; @@ -18,9 +21,8 @@ import stringify from 'json-stringify-pretty-compact'; import FrameworkMounter from './framework-mounter'; import makeRoutes from './routes'; -import makeServices, { ForestAdminHttpDriverServices } from './services'; +import makeServices from './services'; import CustomizationService from './services/model-customizations/customization'; -import { AgentOptions, AgentOptionsWithDefaults, HttpCallback } from './types'; import SchemaGenerator from './utils/forest-schema/generator'; import OptionsValidator from './utils/options-validator'; diff --git a/packages/agent/src/framework-mounter.ts b/packages/agent/src/framework-mounter.ts index f6e7f0286b..a9eafece2c 100644 --- a/packages/agent/src/framework-mounter.ts +++ b/packages/agent/src/framework-mounter.ts @@ -1,15 +1,15 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ +import type { HttpCallback } from './types'; import type { Logger } from '@forestadmin/datasource-toolkit'; +import type net from 'net'; import Router from '@koa/router'; import { createServer } from 'http'; import Koa from 'koa'; -import net from 'net'; import path from 'path'; import FastifyAdapter from './fastify-adapter'; import McpMiddleware from './mcp-middleware'; -import { HttpCallback } from './types'; export default class FrameworkMounter { public standaloneServerPort: number; diff --git a/packages/agent/src/index.ts b/packages/agent/src/index.ts index 5914601d92..49ade7e5dd 100644 --- a/packages/agent/src/index.ts +++ b/packages/agent/src/index.ts @@ -1,7 +1,7 @@ -import { TSchema } from '@forestadmin/datasource-customizer'; +import type { AgentOptions } from './types'; +import type { TSchema } from '@forestadmin/datasource-customizer'; import Agent from './agent'; -import { AgentOptions } from './types'; export function createAgent(options: AgentOptions): Agent { return new Agent(options); diff --git a/packages/agent/src/mcp-middleware.ts b/packages/agent/src/mcp-middleware.ts index cad2e36ec7..ad29f0a4a3 100644 --- a/packages/agent/src/mcp-middleware.ts +++ b/packages/agent/src/mcp-middleware.ts @@ -1,6 +1,6 @@ -import Koa from 'koa'; +import type { HttpCallback } from './types'; +import type Koa from 'koa'; -import { HttpCallback } from './types'; import expressToKoa from './utils/express-to-koa'; /** diff --git a/packages/agent/src/routes/access/api-chart-collection.ts b/packages/agent/src/routes/access/api-chart-collection.ts index 238fea7a0e..190597ddce 100644 --- a/packages/agent/src/routes/access/api-chart-collection.ts +++ b/packages/agent/src/routes/access/api-chart-collection.ts @@ -1,11 +1,12 @@ -import { Chart, DataSource } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; +import type { ForestAdminHttpDriverServices } from '../../services'; +import type { AgentOptionsWithDefaults } from '../../types'; +import type { Chart, DataSource } from '@forestadmin/datasource-toolkit'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; + import path from 'path'; import { v1 as uuidv1 } from 'uuid'; -import { ForestAdminHttpDriverServices } from '../../services'; -import { AgentOptionsWithDefaults } from '../../types'; import IdUtils from '../../utils/id'; import QueryStringParser from '../../utils/query-string'; import CollectionRoute from '../collection-route'; diff --git a/packages/agent/src/routes/access/api-chart-datasource.ts b/packages/agent/src/routes/access/api-chart-datasource.ts index 1c9d5f7bb1..605f1ced1c 100644 --- a/packages/agent/src/routes/access/api-chart-datasource.ts +++ b/packages/agent/src/routes/access/api-chart-datasource.ts @@ -1,11 +1,13 @@ -import { DataSource } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; +import type { ForestAdminHttpDriverServices } from '../../services'; +import type { AgentOptionsWithDefaults } from '../../types'; +import type { DataSource } from '@forestadmin/datasource-toolkit'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; + import path from 'path'; import { v1 as uuidv1 } from 'uuid'; -import { ForestAdminHttpDriverServices } from '../../services'; -import { AgentOptionsWithDefaults, RouteType } from '../../types'; +import { RouteType } from '../../types'; import QueryStringParser from '../../utils/query-string'; import BaseRoute from '../base-route'; diff --git a/packages/agent/src/routes/access/chart.ts b/packages/agent/src/routes/access/chart.ts index ed2fa9683b..ebea91fc42 100644 --- a/packages/agent/src/routes/access/chart.ts +++ b/packages/agent/src/routes/access/chart.ts @@ -1,27 +1,30 @@ -import { - Aggregation, +import type { Caller, - CollectionUtils, ConditionTreeBranch, - ConditionTreeFactory, - ConditionTreeLeaf, DateOperation, Filter, - FilterFactory, - SchemaUtils, - ValidationError, } from '@forestadmin/datasource-toolkit'; -import { +import type { Chart, - ChartType, LeaderboardChart, LineChart, ObjectiveChart, PieChart, ValueChart, } from '@forestadmin/forestadmin-client'; -import Router from '@koa/router'; -import { Context } from 'koa'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; + +import { + Aggregation, + CollectionUtils, + ConditionTreeFactory, + ConditionTreeLeaf, + FilterFactory, + SchemaUtils, + ValidationError, +} from '@forestadmin/datasource-toolkit'; +import { ChartType } from '@forestadmin/forestadmin-client'; import { DateTime } from 'luxon'; import { v1 as uuidv1 } from 'uuid'; diff --git a/packages/agent/src/routes/access/count-related.ts b/packages/agent/src/routes/access/count-related.ts index 942a6c2af5..ec2819c723 100644 --- a/packages/agent/src/routes/access/count-related.ts +++ b/packages/agent/src/routes/access/count-related.ts @@ -1,6 +1,7 @@ +import type Router from '@koa/router'; +import type { Context } from 'koa'; + import { Aggregation, CollectionUtils } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; import ContextFilterFactory from '../../utils/context-filter-factory'; import IdUtils from '../../utils/id'; diff --git a/packages/agent/src/routes/access/count.ts b/packages/agent/src/routes/access/count.ts index 73a1976b0b..b312b440b9 100644 --- a/packages/agent/src/routes/access/count.ts +++ b/packages/agent/src/routes/access/count.ts @@ -1,6 +1,7 @@ +import type Router from '@koa/router'; +import type { Context } from 'koa'; + import { Aggregation } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; import ContextFilterFactory from '../../utils/context-filter-factory'; import QueryStringParser from '../../utils/query-string'; diff --git a/packages/agent/src/routes/access/csv-related.ts b/packages/agent/src/routes/access/csv-related.ts index dbfa9bd99a..ceb550be5b 100644 --- a/packages/agent/src/routes/access/csv-related.ts +++ b/packages/agent/src/routes/access/csv-related.ts @@ -1,11 +1,8 @@ -import { - Caller, - CollectionUtils, - PaginatedFilter, - Projection, -} from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; +import type { Caller, PaginatedFilter, Projection } from '@forestadmin/datasource-toolkit'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; + +import { CollectionUtils } from '@forestadmin/datasource-toolkit'; import { Readable } from 'stream'; import ContextFilterFactory from '../../utils/context-filter-factory'; diff --git a/packages/agent/src/routes/access/csv.ts b/packages/agent/src/routes/access/csv.ts index 7c6ee8207a..cc45031689 100644 --- a/packages/agent/src/routes/access/csv.ts +++ b/packages/agent/src/routes/access/csv.ts @@ -1,5 +1,6 @@ -import Router from '@koa/router'; -import { Context } from 'koa'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; + import { Readable } from 'stream'; import ContextFilterFactory from '../../utils/context-filter-factory'; diff --git a/packages/agent/src/routes/access/get.ts b/packages/agent/src/routes/access/get.ts index 26b32c85b5..4e7af200bf 100644 --- a/packages/agent/src/routes/access/get.ts +++ b/packages/agent/src/routes/access/get.ts @@ -1,6 +1,7 @@ +import type Router from '@koa/router'; +import type { Context } from 'koa'; + import { ConditionTreeFactory, PaginatedFilter } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; import { HttpCode } from '../../types'; import IdUtils from '../../utils/id'; diff --git a/packages/agent/src/routes/access/list-related.ts b/packages/agent/src/routes/access/list-related.ts index 284da86542..3fe4c6d267 100644 --- a/packages/agent/src/routes/access/list-related.ts +++ b/packages/agent/src/routes/access/list-related.ts @@ -1,6 +1,7 @@ +import type Router from '@koa/router'; +import type { Context } from 'koa'; + import { CollectionUtils } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; import ContextFilterFactory from '../../utils/context-filter-factory'; import IdUtils from '../../utils/id'; diff --git a/packages/agent/src/routes/access/list.ts b/packages/agent/src/routes/access/list.ts index e2a3484a8c..42a6b54c69 100644 --- a/packages/agent/src/routes/access/list.ts +++ b/packages/agent/src/routes/access/list.ts @@ -1,5 +1,5 @@ -import Router from '@koa/router'; -import { Context } from 'koa'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; import ContextFilterFactory from '../../utils/context-filter-factory'; import QueryStringParser from '../../utils/query-string'; diff --git a/packages/agent/src/routes/access/native-query-datasource.ts b/packages/agent/src/routes/access/native-query-datasource.ts index 8b047bf7c3..7d534feeaa 100644 --- a/packages/agent/src/routes/access/native-query-datasource.ts +++ b/packages/agent/src/routes/access/native-query-datasource.ts @@ -1,11 +1,15 @@ -import { Caller, DataSource, UnprocessableError } from '@forestadmin/datasource-toolkit'; -import { ChartType, QueryChart } from '@forestadmin/forestadmin-client'; -import Router from '@koa/router'; -import { Context } from 'koa'; +import type { ForestAdminHttpDriverServices } from '../../services'; +import type { AgentOptionsWithDefaults } from '../../types'; +import type { Caller, DataSource } from '@forestadmin/datasource-toolkit'; +import type { QueryChart } from '@forestadmin/forestadmin-client'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; + +import { UnprocessableError } from '@forestadmin/datasource-toolkit'; +import { ChartType } from '@forestadmin/forestadmin-client'; import { v1 as uuidv1 } from 'uuid'; -import { ForestAdminHttpDriverServices } from '../../services'; -import { AgentOptionsWithDefaults, RouteType } from '../../types'; +import { RouteType } from '../../types'; import BaseRoute from '../base-route'; function isQueryChartRequest(body): body is QueryChart { diff --git a/packages/agent/src/routes/base-route.ts b/packages/agent/src/routes/base-route.ts index c6b03495cc..c5734ab69d 100644 --- a/packages/agent/src/routes/base-route.ts +++ b/packages/agent/src/routes/base-route.ts @@ -1,7 +1,6 @@ -import Router from '@koa/router'; - -import { ForestAdminHttpDriverServices } from '../services'; -import { AgentOptionsWithDefaults, RouteType } from '../types'; +import type { ForestAdminHttpDriverServices } from '../services'; +import type { AgentOptionsWithDefaults, RouteType } from '../types'; +import type Router from '@koa/router'; export default abstract class BaseRoute { protected readonly services: ForestAdminHttpDriverServices; diff --git a/packages/agent/src/routes/capabilities.ts b/packages/agent/src/routes/capabilities.ts index e131f2ad0e..de5dd8e3f9 100644 --- a/packages/agent/src/routes/capabilities.ts +++ b/packages/agent/src/routes/capabilities.ts @@ -1,10 +1,13 @@ -import { ColumnSchema, DataSource, FieldSchema, TypeGetter } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; +import type { ForestAdminHttpDriverServices } from '../services'; +import type { AgentOptionsWithDefaults } from '../types'; +import type { ColumnSchema, DataSource, FieldSchema } from '@forestadmin/datasource-toolkit'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; + +import { TypeGetter } from '@forestadmin/datasource-toolkit'; import BaseRoute from './base-route'; -import { ForestAdminHttpDriverServices } from '../services'; -import { AgentOptionsWithDefaults, HttpCode, RouteType } from '../types'; +import { HttpCode, RouteType } from '../types'; export default class Capabilities extends BaseRoute { readonly type = RouteType.PrivateRoute; diff --git a/packages/agent/src/routes/collection-route.ts b/packages/agent/src/routes/collection-route.ts index 40b78dd9cc..998992c6eb 100644 --- a/packages/agent/src/routes/collection-route.ts +++ b/packages/agent/src/routes/collection-route.ts @@ -1,8 +1,9 @@ -import { Collection, DataSource } from '@forestadmin/datasource-toolkit'; +import type { ForestAdminHttpDriverServices } from '../services'; +import type { AgentOptionsWithDefaults } from '../types'; +import type { Collection, DataSource } from '@forestadmin/datasource-toolkit'; import BaseRoute from './base-route'; -import { ForestAdminHttpDriverServices } from '../services'; -import { AgentOptionsWithDefaults, RouteType } from '../types'; +import { RouteType } from '../types'; export default abstract class CollectionRoute extends BaseRoute { type = RouteType.PrivateRoute; diff --git a/packages/agent/src/routes/index.ts b/packages/agent/src/routes/index.ts index 689430088a..4b336cdb5c 100644 --- a/packages/agent/src/routes/index.ts +++ b/packages/agent/src/routes/index.ts @@ -1,7 +1,8 @@ -import { DataSource } from '@forestadmin/datasource-toolkit'; +import type { ForestAdminHttpDriverServices as Services } from '../services'; +import type { AgentOptionsWithDefaults as Options } from '../types'; +import type BaseRoute from './base-route'; +import type { DataSource } from '@forestadmin/datasource-toolkit'; -import { ForestAdminHttpDriverServices as Services } from '../services'; -import { AgentOptionsWithDefaults as Options } from '../types'; import CollectionApiChartRoute from './access/api-chart-collection'; import DataSourceApiChartRoute from './access/api-chart-datasource'; import Chart from './access/chart'; @@ -13,7 +14,6 @@ import Get from './access/get'; import List from './access/list'; import ListRelated from './access/list-related'; import NativeQueryDatasource from './access/native-query-datasource'; -import BaseRoute from './base-route'; import Capabilities from './capabilities'; import ActionRoute from './modification/action/action'; import AssociateRelated from './modification/associate-related'; diff --git a/packages/agent/src/routes/modification/action/action-authorization.ts b/packages/agent/src/routes/modification/action/action-authorization.ts index 68066eab31..9bdbb220ef 100644 --- a/packages/agent/src/routes/modification/action/action-authorization.ts +++ b/packages/agent/src/routes/modification/action/action-authorization.ts @@ -1,12 +1,7 @@ -import { - Aggregation, - Caller, - Collection, - ConditionTreeFactory, - Filter, - ForbiddenError, -} from '@forestadmin/datasource-toolkit'; -import { ForestAdminClient } from '@forestadmin/forestadmin-client'; +import type { Caller, Collection, Filter } from '@forestadmin/datasource-toolkit'; +import type { ForestAdminClient } from '@forestadmin/forestadmin-client'; + +import { Aggregation, ConditionTreeFactory, ForbiddenError } from '@forestadmin/datasource-toolkit'; import hashObject from 'object-hash'; import ApprovalNotAllowedError from './errors/approval-not-allowed-error'; diff --git a/packages/agent/src/routes/modification/action/action.ts b/packages/agent/src/routes/modification/action/action.ts index 99ea8cac09..d0a0fd2e2b 100644 --- a/packages/agent/src/routes/modification/action/action.ts +++ b/packages/agent/src/routes/modification/action/action.ts @@ -1,22 +1,23 @@ +import type { ForestAdminHttpDriverServices } from '../../../services'; +import type { + SmartActionApprovalRequestBody, + SmartActionHookRequestBody, + SmartActionRequestBody, +} from '../../../services/authorization/types'; +import type { AgentOptionsWithDefaults } from '../../../types'; +import type { DataSource, Filter } from '@forestadmin/datasource-toolkit'; +import type { UserInfo } from '@forestadmin/forestadmin-client'; +import type Router from '@koa/router'; +import type { Context, Next } from 'koa'; + import { ConditionTreeFactory, - DataSource, - Filter, FilterFactory, UnprocessableError, } from '@forestadmin/datasource-toolkit'; -import { UserInfo } from '@forestadmin/forestadmin-client'; -import Router from '@koa/router'; -import { Context, Next } from 'koa'; import ActionAuthorizationService from './action-authorization'; -import { ForestAdminHttpDriverServices } from '../../../services'; -import { - SmartActionApprovalRequestBody, - SmartActionHookRequestBody, - SmartActionRequestBody, -} from '../../../services/authorization/types'; -import { AgentOptionsWithDefaults, HttpCode } from '../../../types'; +import { HttpCode } from '../../../types'; import BodyParser from '../../../utils/body-parser'; import ContextFilterFactory from '../../../utils/context-filter-factory'; import ForestValueConverter from '../../../utils/forest-schema/action-values'; diff --git a/packages/agent/src/routes/modification/associate-related.ts b/packages/agent/src/routes/modification/associate-related.ts index be2e9a4140..28bb41b824 100644 --- a/packages/agent/src/routes/modification/associate-related.ts +++ b/packages/agent/src/routes/modification/associate-related.ts @@ -1,16 +1,19 @@ -import { +import type { Caller, - CollectionUtils, CompositeId, ConditionTree, - ConditionTreeFactory, - ConditionTreeLeaf, ManyToManySchema, OneToManySchema, +} from '@forestadmin/datasource-toolkit'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; + +import { + CollectionUtils, + ConditionTreeFactory, + ConditionTreeLeaf, SchemaUtils, } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; import { HttpCode } from '../../types'; import ContextFilterFactory from '../../utils/context-filter-factory'; diff --git a/packages/agent/src/routes/modification/create.ts b/packages/agent/src/routes/modification/create.ts index 4d3bba09bd..3af66fcc3a 100644 --- a/packages/agent/src/routes/modification/create.ts +++ b/packages/agent/src/routes/modification/create.ts @@ -1,16 +1,15 @@ +import type { CompositeId, ManyToOneSchema, RecordData } from '@forestadmin/datasource-toolkit'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; + import { CollectionUtils, - CompositeId, ConditionTreeFactory, ConditionTreeLeaf, Filter, - ManyToOneSchema, - RecordData, RecordValidator, SchemaUtils, } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; import QueryStringParser from '../../utils/query-string'; import CollectionRoute from '../collection-route'; diff --git a/packages/agent/src/routes/modification/delete.ts b/packages/agent/src/routes/modification/delete.ts index 12b4434bf0..d0293fcb4d 100644 --- a/packages/agent/src/routes/modification/delete.ts +++ b/packages/agent/src/routes/modification/delete.ts @@ -1,8 +1,10 @@ +import type { SelectionIds } from '../../types'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; + import { ConditionTreeFactory } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; -import { HttpCode, SelectionIds } from '../../types'; +import { HttpCode } from '../../types'; import BodyParser from '../../utils/body-parser'; import ContextFilterFactory from '../../utils/context-filter-factory'; import IdUtils from '../../utils/id'; diff --git a/packages/agent/src/routes/modification/dissociate-delete-related.ts b/packages/agent/src/routes/modification/dissociate-delete-related.ts index 0c06badb01..49c6930419 100644 --- a/packages/agent/src/routes/modification/dissociate-delete-related.ts +++ b/packages/agent/src/routes/modification/dissociate-delete-related.ts @@ -1,16 +1,19 @@ -import { +import type { Caller, CompositeId, - ConditionTreeFactory, Filter, - FilterFactory, ManyToManySchema, OneToManySchema, +} from '@forestadmin/datasource-toolkit'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; + +import { + ConditionTreeFactory, + FilterFactory, SchemaUtils, ValidationError, } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; import { HttpCode } from '../../types'; import BodyParser from '../../utils/body-parser'; diff --git a/packages/agent/src/routes/modification/update-field.ts b/packages/agent/src/routes/modification/update-field.ts index f3227513fc..e4ec735837 100644 --- a/packages/agent/src/routes/modification/update-field.ts +++ b/packages/agent/src/routes/modification/update-field.ts @@ -1,3 +1,6 @@ +import type Router from '@koa/router'; +import type { Context } from 'koa'; + import { ConditionTreeFactory, FieldValidator, @@ -5,8 +8,6 @@ import { Projection, ValidationError, } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; import { HttpCode } from '../../types'; import IdUtils from '../../utils/id'; diff --git a/packages/agent/src/routes/modification/update-relation.ts b/packages/agent/src/routes/modification/update-relation.ts index 021b6cbdc9..82dc3452f7 100644 --- a/packages/agent/src/routes/modification/update-relation.ts +++ b/packages/agent/src/routes/modification/update-relation.ts @@ -1,18 +1,21 @@ -import { - Aggregation, +import type { Caller, - CollectionUtils, CompositeId, ConditionTree, + ManyToOneSchema, + OneToOneSchema, +} from '@forestadmin/datasource-toolkit'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; + +import { + Aggregation, + CollectionUtils, ConditionTreeFactory, ConditionTreeLeaf, Filter, - ManyToOneSchema, - OneToOneSchema, SchemaUtils, } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; import { HttpCode } from '../../types'; import IdUtils from '../../utils/id'; diff --git a/packages/agent/src/routes/modification/update.ts b/packages/agent/src/routes/modification/update.ts index d36fe2fa53..a19f832218 100644 --- a/packages/agent/src/routes/modification/update.ts +++ b/packages/agent/src/routes/modification/update.ts @@ -1,13 +1,14 @@ +import type { RecordData } from '@forestadmin/datasource-toolkit'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; + import { ConditionTreeFactory, Filter, ProjectionFactory, - RecordData, RecordValidator, SchemaUtils, } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; import IdUtils from '../../utils/id'; import QueryStringParser from '../../utils/query-string'; diff --git a/packages/agent/src/routes/relation-route.ts b/packages/agent/src/routes/relation-route.ts index f34a20319e..86ff80c748 100644 --- a/packages/agent/src/routes/relation-route.ts +++ b/packages/agent/src/routes/relation-route.ts @@ -1,8 +1,10 @@ -import { Collection, DataSource, SchemaUtils } from '@forestadmin/datasource-toolkit'; +import type { ForestAdminHttpDriverServices } from '../services'; +import type { AgentOptionsWithDefaults } from '../types'; +import type { Collection, DataSource } from '@forestadmin/datasource-toolkit'; + +import { SchemaUtils } from '@forestadmin/datasource-toolkit'; import CollectionRoute from './collection-route'; -import { ForestAdminHttpDriverServices } from '../services'; -import { AgentOptionsWithDefaults } from '../types'; export default abstract class RelationRoute extends CollectionRoute { protected readonly relationName: string; diff --git a/packages/agent/src/routes/security/authentication.ts b/packages/agent/src/routes/security/authentication.ts index aea63878db..432b3394b5 100644 --- a/packages/agent/src/routes/security/authentication.ts +++ b/packages/agent/src/routes/security/authentication.ts @@ -1,8 +1,9 @@ +import type Router from '@koa/router'; +import type { Context, Next } from 'koa'; + import { ValidationError } from '@forestadmin/datasource-toolkit'; import { AuthenticationError, ForbiddenError } from '@forestadmin/forestadmin-client'; -import Router from '@koa/router'; import jsonwebtoken from 'jsonwebtoken'; -import { Context, Next } from 'koa'; import jwt from 'koa-jwt'; import { RouteType } from '../../types'; diff --git a/packages/agent/src/routes/security/ip-whitelist.ts b/packages/agent/src/routes/security/ip-whitelist.ts index a507b4a86f..ab88476127 100644 --- a/packages/agent/src/routes/security/ip-whitelist.ts +++ b/packages/agent/src/routes/security/ip-whitelist.ts @@ -1,7 +1,8 @@ -import { IpWhitelistConfiguration } from '@forestadmin/forestadmin-client'; -import Router from '@koa/router'; +import type { IpWhitelistConfiguration } from '@forestadmin/forestadmin-client'; +import type Router from '@koa/router'; +import type { Context, Next } from 'koa'; + import IpUtil from 'forest-ip-utils'; -import { Context, Next } from 'koa'; import { HttpCode, RouteType } from '../../types'; import BaseRoute from '../base-route'; diff --git a/packages/agent/src/routes/security/scope-invalidation.ts b/packages/agent/src/routes/security/scope-invalidation.ts index b3da918412..30363fb919 100644 --- a/packages/agent/src/routes/security/scope-invalidation.ts +++ b/packages/agent/src/routes/security/scope-invalidation.ts @@ -1,6 +1,7 @@ +import type Router from '@koa/router'; +import type { Context } from 'koa'; + import { ValidationError } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context } from 'koa'; import { HttpCode, RouteType } from '../../types'; import BaseRoute from '../base-route'; diff --git a/packages/agent/src/routes/system/error-handling.ts b/packages/agent/src/routes/system/error-handling.ts index 89a0507a1b..1b717563ee 100644 --- a/packages/agent/src/routes/system/error-handling.ts +++ b/packages/agent/src/routes/system/error-handling.ts @@ -1,3 +1,6 @@ +import type Router from '@koa/router'; +import type { Context, Next } from 'koa'; + import { BadRequestError, BusinessError, @@ -6,8 +9,7 @@ import { UnprocessableError, ValidationError, } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context, HttpError, Next } from 'koa'; +import { HttpError } from 'koa'; import { HttpCode, RouteType } from '../../types'; import BaseRoute from '../base-route'; diff --git a/packages/agent/src/routes/system/healthcheck.ts b/packages/agent/src/routes/system/healthcheck.ts index 3223ebc7bf..3037a47697 100644 --- a/packages/agent/src/routes/system/healthcheck.ts +++ b/packages/agent/src/routes/system/healthcheck.ts @@ -1,5 +1,5 @@ -import Router from '@koa/router'; -import { Context } from 'koa'; +import type Router from '@koa/router'; +import type { Context } from 'koa'; import { HttpCode, RouteType } from '../../types'; import BaseRoute from '../base-route'; diff --git a/packages/agent/src/routes/system/logger.ts b/packages/agent/src/routes/system/logger.ts index 58c57b0a10..81345e9a4d 100644 --- a/packages/agent/src/routes/system/logger.ts +++ b/packages/agent/src/routes/system/logger.ts @@ -1,6 +1,6 @@ -import { LoggerLevel } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; -import { Context, Next } from 'koa'; +import type { LoggerLevel } from '@forestadmin/datasource-toolkit'; +import type Router from '@koa/router'; +import type { Context, Next } from 'koa'; import { HttpCode, RouteType } from '../../types'; import BaseRoute from '../base-route'; diff --git a/packages/agent/src/services/authorization/authorization.ts b/packages/agent/src/services/authorization/authorization.ts index f732c1de6e..e7a9ac8a28 100644 --- a/packages/agent/src/services/authorization/authorization.ts +++ b/packages/agent/src/services/authorization/authorization.ts @@ -1,12 +1,14 @@ -import { Collection, ConditionTree, UnprocessableError } from '@forestadmin/datasource-toolkit'; +import type { Collection, ConditionTree } from '@forestadmin/datasource-toolkit'; +import type { ForestAdminClient } from '@forestadmin/forestadmin-client'; +import type { Context } from 'koa'; + +import { UnprocessableError } from '@forestadmin/datasource-toolkit'; import { ChainedSQLQueryError, CollectionActionEvent, EmptySQLQueryError, - ForestAdminClient, NonSelectSQLQueryError, } from '@forestadmin/forestadmin-client'; -import { Context } from 'koa'; import { HttpCode } from '../../types'; import ConditionTreeParser from '../../utils/condition-tree-parser'; diff --git a/packages/agent/src/services/authorization/index.ts b/packages/agent/src/services/authorization/index.ts index a13bb3bcd5..80d1943161 100644 --- a/packages/agent/src/services/authorization/index.ts +++ b/packages/agent/src/services/authorization/index.ts @@ -1,5 +1,6 @@ +import type { AgentOptionsWithDefaults } from '../../types'; + import AuthorizationService from './authorization'; -import { AgentOptionsWithDefaults } from '../../types'; export default function authorizationServiceFactory( options: AgentOptionsWithDefaults, diff --git a/packages/agent/src/services/index.ts b/packages/agent/src/services/index.ts index b0c7d5b3e8..f7f720ee5c 100644 --- a/packages/agent/src/services/index.ts +++ b/packages/agent/src/services/index.ts @@ -1,10 +1,10 @@ -import { ChartHandlerInterface } from '@forestadmin/forestadmin-client'; +import type { AgentOptionsWithDefaults } from '../types'; +import type AuthorizationService from './authorization/authorization'; +import type { ChartHandlerInterface } from '@forestadmin/forestadmin-client'; import authorizationServiceFactory from './authorization'; -import AuthorizationService from './authorization/authorization'; import SegmentQueryHandler from './segment-query-handler'; import Serializer from './serializer'; -import { AgentOptionsWithDefaults } from '../types'; export type ForestAdminHttpDriverServices = { serializer: Serializer; diff --git a/packages/agent/src/services/model-customizations/actions/get-actions.ts b/packages/agent/src/services/model-customizations/actions/get-actions.ts index 6e9f29f5d2..41e9ad22bb 100644 --- a/packages/agent/src/services/model-customizations/actions/get-actions.ts +++ b/packages/agent/src/services/model-customizations/actions/get-actions.ts @@ -1,10 +1,11 @@ -import { +import type { ActionConfiguration, ActionType, ModelCustomization, - ModelCustomizationType, } from '@forestadmin/forestadmin-client'; +import { ModelCustomizationType } from '@forestadmin/forestadmin-client'; + export default function getActions( type: ActionType, configuration: ModelCustomization[], diff --git a/packages/agent/src/services/model-customizations/actions/update-record/execute-update-record.ts b/packages/agent/src/services/model-customizations/actions/update-record/execute-update-record.ts index a6acf8ee2f..65077ca287 100644 --- a/packages/agent/src/services/model-customizations/actions/update-record/execute-update-record.ts +++ b/packages/agent/src/services/model-customizations/actions/update-record/execute-update-record.ts @@ -1,6 +1,8 @@ -import { ActionContext, TSchema } from '@forestadmin/datasource-customizer'; -import { ActionResult, BusinessError } from '@forestadmin/datasource-toolkit'; -import { UpdateRecordAction } from '@forestadmin/forestadmin-client'; +import type { ActionContext, TSchema } from '@forestadmin/datasource-customizer'; +import type { ActionResult } from '@forestadmin/datasource-toolkit'; +import type { UpdateRecordAction } from '@forestadmin/forestadmin-client'; + +import { BusinessError } from '@forestadmin/datasource-toolkit'; const genericErrorMessage = actionName => `The no-code action ${actionName} cannot be triggered due to a` + diff --git a/packages/agent/src/services/model-customizations/actions/update-record/update-record-plugin.ts b/packages/agent/src/services/model-customizations/actions/update-record/update-record-plugin.ts index e1c3b783f5..3c60917d0a 100644 --- a/packages/agent/src/services/model-customizations/actions/update-record/update-record-plugin.ts +++ b/packages/agent/src/services/model-customizations/actions/update-record/update-record-plugin.ts @@ -1,5 +1,5 @@ -import { Plugin } from '@forestadmin/datasource-customizer'; -import { +import type { Plugin } from '@forestadmin/datasource-customizer'; +import type { ModelCustomization, UpdateRecordActionConfiguration, } from '@forestadmin/forestadmin-client'; diff --git a/packages/agent/src/services/model-customizations/actions/webhook/execute-webhook.ts b/packages/agent/src/services/model-customizations/actions/webhook/execute-webhook.ts index b754c72866..7187c7d527 100644 --- a/packages/agent/src/services/model-customizations/actions/webhook/execute-webhook.ts +++ b/packages/agent/src/services/model-customizations/actions/webhook/execute-webhook.ts @@ -1,7 +1,10 @@ -import { ActionContext, TFieldName, TRow, TSchema } from '@forestadmin/datasource-customizer'; -import { ActionResult, SchemaUtils } from '@forestadmin/datasource-toolkit'; -import { WebhookAction } from '@forestadmin/forestadmin-client'; -import superagent, { ResponseError } from 'superagent'; +import type { ActionContext, TFieldName, TRow, TSchema } from '@forestadmin/datasource-customizer'; +import type { ActionResult } from '@forestadmin/datasource-toolkit'; +import type { WebhookAction } from '@forestadmin/forestadmin-client'; +import type { ResponseError } from 'superagent'; + +import { SchemaUtils } from '@forestadmin/datasource-toolkit'; +import superagent from 'superagent'; function generateBody( action: WebhookAction, diff --git a/packages/agent/src/services/model-customizations/actions/webhook/webhook-plugin.ts b/packages/agent/src/services/model-customizations/actions/webhook/webhook-plugin.ts index 2c08ca6b4b..7a23b14ee4 100644 --- a/packages/agent/src/services/model-customizations/actions/webhook/webhook-plugin.ts +++ b/packages/agent/src/services/model-customizations/actions/webhook/webhook-plugin.ts @@ -1,5 +1,8 @@ -import { Plugin } from '@forestadmin/datasource-customizer'; -import { ModelCustomization, WebhookActionConfiguration } from '@forestadmin/forestadmin-client'; +import type { Plugin } from '@forestadmin/datasource-customizer'; +import type { + ModelCustomization, + WebhookActionConfiguration, +} from '@forestadmin/forestadmin-client'; import executeWebhook from './execute-webhook'; import getActions from '../get-actions'; diff --git a/packages/agent/src/services/model-customizations/customization.ts b/packages/agent/src/services/model-customizations/customization.ts index 1357d704d0..4a203f97ed 100644 --- a/packages/agent/src/services/model-customizations/customization.ts +++ b/packages/agent/src/services/model-customizations/customization.ts @@ -1,7 +1,7 @@ -import { Plugin } from '@forestadmin/datasource-customizer'; -import { ForestAdminClient, ModelCustomization } from '@forestadmin/forestadmin-client'; +import type { AgentOptionsWithDefaults } from '../../types'; +import type { Plugin } from '@forestadmin/datasource-customizer'; +import type { ForestAdminClient, ModelCustomization } from '@forestadmin/forestadmin-client'; -import { AgentOptionsWithDefaults } from '../../types'; import UpdateRecordActionsPlugin from './actions/update-record/update-record-plugin'; import WebhookActionsPlugin from './actions/webhook/webhook-plugin'; diff --git a/packages/agent/src/services/segment-query-handler.ts b/packages/agent/src/services/segment-query-handler.ts index e7b2aa42cd..d0ed2265e2 100644 --- a/packages/agent/src/services/segment-query-handler.ts +++ b/packages/agent/src/services/segment-query-handler.ts @@ -1,8 +1,8 @@ import type { Caller, PaginatedFilter } from '@forestadmin/datasource-toolkit'; import type { ContextVariablesInstantiatorInterface } from '@forestadmin/forestadmin-client'; +import type { Context } from 'koa'; import { ContextVariablesInjector } from '@forestadmin/forestadmin-client'; -import { Context } from 'koa'; export default class SegmentQueryHandler { private readonly contextVariablesInstantiator: ContextVariablesInstantiatorInterface; diff --git a/packages/agent/src/services/serializer.ts b/packages/agent/src/services/serializer.ts index b4715b0258..8ac6002c66 100644 --- a/packages/agent/src/services/serializer.ts +++ b/packages/agent/src/services/serializer.ts @@ -1,13 +1,10 @@ -import { - Collection, - CollectionSchema, - RecordData, - SchemaUtils, -} from '@forestadmin/datasource-toolkit'; +import type { JsonApiRelationshipOptionsExt } from './type-overrides'; +import type { Collection, CollectionSchema, RecordData } from '@forestadmin/datasource-toolkit'; + +import { SchemaUtils } from '@forestadmin/datasource-toolkit'; import JsonApiSerializer from 'json-api-serializer'; import path from 'path'; -import { JsonApiRelationshipOptionsExt } from './type-overrides'; import IdUtils from '../utils/id'; type SerializedRecord = { forestId: string }; diff --git a/packages/agent/src/services/type-overrides.ts b/packages/agent/src/services/type-overrides.ts index e1fbd5944e..669470776b 100644 --- a/packages/agent/src/services/type-overrides.ts +++ b/packages/agent/src/services/type-overrides.ts @@ -1,4 +1,4 @@ -import JSONAPISerializer from 'json-api-serializer'; +import type JSONAPISerializer from 'json-api-serializer'; export interface JsonApiRelationshipOptionsExt extends JSONAPISerializer.RelationshipOptions { deserialize?: (data: Record) => unknown; diff --git a/packages/agent/src/types.ts b/packages/agent/src/types.ts index 010d7b5ec1..c003a86880 100644 --- a/packages/agent/src/types.ts +++ b/packages/agent/src/types.ts @@ -1,6 +1,6 @@ -import { CompositeId, Logger, LoggerLevel } from '@forestadmin/datasource-toolkit'; -import { ForestAdminClient } from '@forestadmin/forestadmin-client'; -import { IncomingMessage, ServerResponse } from 'http'; +import type { CompositeId, Logger, LoggerLevel } from '@forestadmin/datasource-toolkit'; +import type { ForestAdminClient } from '@forestadmin/forestadmin-client'; +import type { IncomingMessage, ServerResponse } from 'http'; /** Options to configure behavior of an agent's forestadmin driver */ export type AgentOptions = { diff --git a/packages/agent/src/utils/body-parser.ts b/packages/agent/src/utils/body-parser.ts index 85d3113df8..4d44cacc10 100644 --- a/packages/agent/src/utils/body-parser.ts +++ b/packages/agent/src/utils/body-parser.ts @@ -1,8 +1,8 @@ -import { CollectionSchema } from '@forestadmin/datasource-toolkit'; -import { Context } from 'koa'; +import type { SelectionIds } from '../types'; +import type { CollectionSchema } from '@forestadmin/datasource-toolkit'; +import type { Context } from 'koa'; import IdUtils from './id'; -import { SelectionIds } from '../types'; export default class BodyParser { static parseSelectionIds(schema: CollectionSchema, context: Context): SelectionIds { diff --git a/packages/agent/src/utils/condition-tree-parser.ts b/packages/agent/src/utils/condition-tree-parser.ts index 690d1673e7..406be45b51 100644 --- a/packages/agent/src/utils/condition-tree-parser.ts +++ b/packages/agent/src/utils/condition-tree-parser.ts @@ -1,16 +1,19 @@ -import { +import type { Aggregator, Collection, - CollectionUtils, ColumnSchema, ColumnType, ConditionTree, - ConditionTreeBranch, - ConditionTreeLeaf, Operator, PlainConditionTreeLeaf, } from '@forestadmin/datasource-toolkit'; +import { + CollectionUtils, + ConditionTreeBranch, + ConditionTreeLeaf, +} from '@forestadmin/datasource-toolkit'; + const STRING_TO_BOOLEAN = { true: true, yes: true, diff --git a/packages/agent/src/utils/context-filter-factory.ts b/packages/agent/src/utils/context-filter-factory.ts index 528fe054d2..30939c55b5 100644 --- a/packages/agent/src/utils/context-filter-factory.ts +++ b/packages/agent/src/utils/context-filter-factory.ts @@ -1,11 +1,7 @@ -import { - Collection, - ConditionTree, - ConditionTreeFactory, - Filter, - PaginatedFilter, -} from '@forestadmin/datasource-toolkit'; -import { Context } from 'koa'; +import type { Collection, ConditionTree } from '@forestadmin/datasource-toolkit'; +import type { Context } from 'koa'; + +import { ConditionTreeFactory, Filter, PaginatedFilter } from '@forestadmin/datasource-toolkit'; import QueryStringParser from './query-string'; diff --git a/packages/agent/src/utils/csv-generator.ts b/packages/agent/src/utils/csv-generator.ts index c69b31472d..9e0e30f5c9 100644 --- a/packages/agent/src/utils/csv-generator.ts +++ b/packages/agent/src/utils/csv-generator.ts @@ -1,14 +1,7 @@ +import type { Caller, Collection, Projection, RecordData } from '@forestadmin/datasource-toolkit'; + import { writeToString } from '@fast-csv/format'; -import { - Caller, - Collection, - Page, - PaginatedFilter, - Projection, - RecordData, - RecordUtils, - SortFactory, -} from '@forestadmin/datasource-toolkit'; +import { Page, PaginatedFilter, RecordUtils, SortFactory } from '@forestadmin/datasource-toolkit'; export const CHUNK_SIZE = 1000; diff --git a/packages/agent/src/utils/csv-route-context.ts b/packages/agent/src/utils/csv-route-context.ts index a41a6eca03..f315b2f7dc 100644 --- a/packages/agent/src/utils/csv-route-context.ts +++ b/packages/agent/src/utils/csv-route-context.ts @@ -1,4 +1,4 @@ -import { Context } from 'koa'; +import type { Context } from 'koa'; export default class CsvRouteContext { static buildResponse(context: Context): void { diff --git a/packages/agent/src/utils/forest-schema/action-fields.ts b/packages/agent/src/utils/forest-schema/action-fields.ts index 2909748d62..b07f0806b9 100644 --- a/packages/agent/src/utils/forest-schema/action-fields.ts +++ b/packages/agent/src/utils/forest-schema/action-fields.ts @@ -1,4 +1,4 @@ -import { +import type { ActionField, ActionFieldAddressAutocomplete, ActionFieldCheckbox, diff --git a/packages/agent/src/utils/forest-schema/action-values.ts b/packages/agent/src/utils/forest-schema/action-values.ts index b75d85a5be..d2a3291540 100644 --- a/packages/agent/src/utils/forest-schema/action-values.ts +++ b/packages/agent/src/utils/forest-schema/action-values.ts @@ -1,4 +1,4 @@ -import { ActionField, CompositeId, DataSource, File } from '@forestadmin/datasource-toolkit'; +import type { ActionField, CompositeId, DataSource, File } from '@forestadmin/datasource-toolkit'; import ActionFields from './action-fields'; import SchemaGeneratorActions from './generator-actions'; diff --git a/packages/agent/src/utils/forest-schema/column-schema-validator.ts b/packages/agent/src/utils/forest-schema/column-schema-validator.ts index 5858ead795..48a9875999 100644 --- a/packages/agent/src/utils/forest-schema/column-schema-validator.ts +++ b/packages/agent/src/utils/forest-schema/column-schema-validator.ts @@ -1,4 +1,6 @@ -import { ColumnSchema, ValidationError } from '@forestadmin/datasource-toolkit'; +import type { ColumnSchema } from '@forestadmin/datasource-toolkit'; + +import { ValidationError } from '@forestadmin/datasource-toolkit'; export default class ColumnSchemaValidator { static validate(column: ColumnSchema, name: string): void { diff --git a/packages/agent/src/utils/forest-schema/filterable.ts b/packages/agent/src/utils/forest-schema/filterable.ts index 7baf1ff92d..b14ae46721 100644 --- a/packages/agent/src/utils/forest-schema/filterable.ts +++ b/packages/agent/src/utils/forest-schema/filterable.ts @@ -1,4 +1,4 @@ -import { Operator } from '@forestadmin/datasource-toolkit'; +import type { Operator } from '@forestadmin/datasource-toolkit'; export default class FrontendFilterableUtils { /** diff --git a/packages/agent/src/utils/forest-schema/generator-action-field-widget.ts b/packages/agent/src/utils/forest-schema/generator-action-field-widget.ts index e3b3af0827..723a609ff1 100644 --- a/packages/agent/src/utils/forest-schema/generator-action-field-widget.ts +++ b/packages/agent/src/utils/forest-schema/generator-action-field-widget.ts @@ -1,4 +1,4 @@ -import { +import type { ActionField, ActionFieldAddressAutocomplete, ActionFieldCheckboxGroupAll, @@ -14,7 +14,7 @@ import { ActionFieldTextInputList, ActionFieldUserDropdown, } from '@forestadmin/datasource-toolkit'; -import { +import type { ForestServerActionField, ForestServerActionFieldAddressAutocompleteOptions, ForestServerActionFieldCheckboxGroupOptions, diff --git a/packages/agent/src/utils/forest-schema/generator-actions.ts b/packages/agent/src/utils/forest-schema/generator-actions.ts index fd192f8050..3a7e87649b 100644 --- a/packages/agent/src/utils/forest-schema/generator-actions.ts +++ b/packages/agent/src/utils/forest-schema/generator-actions.ts @@ -1,4 +1,5 @@ -import { +import type { AgentOptionsWithDefaults } from '../../types'; +import type { ActionField, ActionFormElement, ActionLayoutElement, @@ -6,20 +7,20 @@ import { DataSource, LayoutElementInput, PrimitiveTypes, - SchemaUtils, } from '@forestadmin/datasource-toolkit'; -import { +import type { ForestServerAction, ForestServerActionField, ForestServerActionFormElementFieldReference, ForestServerActionFormLayoutElement, } from '@forestadmin/forestadmin-client'; + +import { SchemaUtils } from '@forestadmin/datasource-toolkit'; import path from 'path'; import ActionFields from './action-fields'; import ForestValueConverter from './action-values'; import GeneratorActionFieldWidget from './generator-action-field-widget'; -import { AgentOptionsWithDefaults } from '../../types'; export default class SchemaGeneratorActions { private readonly useUnsafeActionEndpoint: boolean; diff --git a/packages/agent/src/utils/forest-schema/generator-collection.ts b/packages/agent/src/utils/forest-schema/generator-collection.ts index ed7007ab3e..eb2c2c831a 100644 --- a/packages/agent/src/utils/forest-schema/generator-collection.ts +++ b/packages/agent/src/utils/forest-schema/generator-collection.ts @@ -1,15 +1,17 @@ -import { Collection, SchemaUtils } from '@forestadmin/datasource-toolkit'; -import { +import type { AgentOptionsWithDefaults } from '../../types'; +import type { Collection } from '@forestadmin/datasource-toolkit'; +import type { ForestServerAction, ForestServerCollection, ForestServerField, ForestServerSegment, } from '@forestadmin/forestadmin-client'; +import { SchemaUtils } from '@forestadmin/datasource-toolkit'; + import SchemaGeneratorActions from './generator-actions'; import SchemaGeneratorFields from './generator-fields'; import SchemaGeneratorSegments from './generator-segments'; -import { AgentOptionsWithDefaults } from '../../types'; export default class SchemaGeneratorCollection { private readonly schemaGeneratorActions: SchemaGeneratorActions; diff --git a/packages/agent/src/utils/forest-schema/generator-fields.ts b/packages/agent/src/utils/forest-schema/generator-fields.ts index f6abbce0f1..eb469f2133 100644 --- a/packages/agent/src/utils/forest-schema/generator-fields.ts +++ b/packages/agent/src/utils/forest-schema/generator-fields.ts @@ -1,6 +1,5 @@ -import { +import type { Collection, - CollectionUtils, ColumnSchema, ColumnType, FieldTypes, @@ -9,10 +8,10 @@ import { OneToManySchema, OneToOneSchema, PrimitiveTypes, - SchemaUtils, - ValidationError, } from '@forestadmin/datasource-toolkit'; -import { ForestServerColumnType, ForestServerField } from '@forestadmin/forestadmin-client'; +import type { ForestServerColumnType, ForestServerField } from '@forestadmin/forestadmin-client'; + +import { CollectionUtils, SchemaUtils, ValidationError } from '@forestadmin/datasource-toolkit'; import ColumnSchemaValidator from './column-schema-validator'; import FrontendFilterableUtils from './filterable'; diff --git a/packages/agent/src/utils/forest-schema/generator-segments.ts b/packages/agent/src/utils/forest-schema/generator-segments.ts index 75ca88331d..83f066fcf5 100644 --- a/packages/agent/src/utils/forest-schema/generator-segments.ts +++ b/packages/agent/src/utils/forest-schema/generator-segments.ts @@ -1,5 +1,5 @@ -import { Collection, CollectionSchema } from '@forestadmin/datasource-toolkit'; -import { ForestServerSegment } from '@forestadmin/forestadmin-client'; +import type { Collection, CollectionSchema } from '@forestadmin/datasource-toolkit'; +import type { ForestServerSegment } from '@forestadmin/forestadmin-client'; export default class SchemaGeneratorSegments { static buildSchema( diff --git a/packages/agent/src/utils/forest-schema/generator.ts b/packages/agent/src/utils/forest-schema/generator.ts index 85ded5e5dd..b69848907e 100644 --- a/packages/agent/src/utils/forest-schema/generator.ts +++ b/packages/agent/src/utils/forest-schema/generator.ts @@ -1,8 +1,8 @@ -import { DataSource } from '@forestadmin/datasource-toolkit'; -import { ForestSchema } from '@forestadmin/forestadmin-client'; +import type { AgentOptionsWithDefaults } from '../../types'; +import type { DataSource } from '@forestadmin/datasource-toolkit'; +import type { ForestSchema } from '@forestadmin/forestadmin-client'; import SchemaGeneratorCollection from './generator-collection'; -import { AgentOptionsWithDefaults } from '../../types'; export default class SchemaGenerator { private readonly schemaGeneratorCollection: SchemaGeneratorCollection; diff --git a/packages/agent/src/utils/forest-schema/validation.ts b/packages/agent/src/utils/forest-schema/validation.ts index db74615321..e86e57ea66 100644 --- a/packages/agent/src/utils/forest-schema/validation.ts +++ b/packages/agent/src/utils/forest-schema/validation.ts @@ -1,13 +1,16 @@ -import { +import type { ColumnSchema, ColumnSchemaValidation, ColumnType, + Operator, +} from '@forestadmin/datasource-toolkit'; +import type { ForestServerField } from '@forestadmin/forestadmin-client'; + +import { ConditionTreeBranch, ConditionTreeEquivalent, ConditionTreeLeaf, - Operator, } from '@forestadmin/datasource-toolkit'; -import { ForestServerField } from '@forestadmin/forestadmin-client'; type FrontendValidation = ForestServerField['validations'][number]; type Validation = ColumnSchemaValidation[number]; diff --git a/packages/agent/src/utils/id.ts b/packages/agent/src/utils/id.ts index 615bd52fb9..e63ee44e15 100644 --- a/packages/agent/src/utils/id.ts +++ b/packages/agent/src/utils/id.ts @@ -1,8 +1,7 @@ +import type { CollectionSchema, CompositeId, RecordData } from '@forestadmin/datasource-toolkit'; + import { - CollectionSchema, - CompositeId, FieldValidator, - RecordData, SchemaUtils, UnprocessableError, ValidationError, diff --git a/packages/agent/src/utils/options-validator.ts b/packages/agent/src/utils/options-validator.ts index e491e3161a..3178192798 100644 --- a/packages/agent/src/utils/options-validator.ts +++ b/packages/agent/src/utils/options-validator.ts @@ -1,9 +1,9 @@ +import type { AgentOptions, AgentOptionsWithDefaults } from '../types'; + import createForestAdminClient from '@forestadmin/forestadmin-client'; import { existsSync } from 'fs'; import path from 'path'; -import { AgentOptions, AgentOptionsWithDefaults } from '../types'; - const DEFAULT_MINIMUM_CACHE_DURATION = 60; // One year cache duration when using events const DEFAULT_CACHE_DURATION_WITH_EVENTS = 31560000; diff --git a/packages/agent/src/utils/query-string.ts b/packages/agent/src/utils/query-string.ts index 229a66b0c7..b48ff6da0c 100644 --- a/packages/agent/src/utils/query-string.ts +++ b/packages/agent/src/utils/query-string.ts @@ -1,8 +1,8 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ +import type { Caller, Collection, ConditionTree } from '@forestadmin/datasource-toolkit'; +import type { Context } from 'koa'; + import { - Caller, - Collection, - ConditionTree, ConditionTreeValidator, Page, Projection, @@ -14,7 +14,6 @@ import { UnprocessableError, ValidationError, } from '@forestadmin/datasource-toolkit'; -import { Context } from 'koa'; import { v4 as uuidv4 } from 'uuid'; import ConditionTreeParser from './condition-tree-parser'; diff --git a/packages/agent/test/__factories__/forest-admin-http-driver-options.ts b/packages/agent/test/__factories__/forest-admin-http-driver-options.ts index af77ae79bb..bf64613f23 100644 --- a/packages/agent/test/__factories__/forest-admin-http-driver-options.ts +++ b/packages/agent/test/__factories__/forest-admin-http-driver-options.ts @@ -1,7 +1,8 @@ +import type { AgentOptionsWithDefaults } from '../../src/types'; + import { Factory } from 'fishery'; import forestAdminClientFactory from './forest-admin-client'; -import { AgentOptionsWithDefaults } from '../../src/types'; export default Factory.define(() => ({ authSecret: 'not_so_random_auth_secret', diff --git a/packages/agent/test/__factories__/forest-admin-http-driver-services.ts b/packages/agent/test/__factories__/forest-admin-http-driver-services.ts index f40c40af1a..7c3d3b4ab3 100644 --- a/packages/agent/test/__factories__/forest-admin-http-driver-services.ts +++ b/packages/agent/test/__factories__/forest-admin-http-driver-services.ts @@ -1,9 +1,10 @@ +import type { ForestAdminHttpDriverServices } from '../../src/services'; + import { Factory } from 'fishery'; import factoryAuthorization from './authorization/authorization'; import factorySegmentQueryHandler from './segment-query-handler'; import factorySerializer from './serializer'; -import { ForestAdminHttpDriverServices } from '../../src/services'; export default Factory.define(() => ({ serializer: factorySerializer.build(), diff --git a/packages/agent/test/agent-integration.test.ts b/packages/agent/test/agent-integration.test.ts index 4272ea9f1f..a755b17820 100644 --- a/packages/agent/test/agent-integration.test.ts +++ b/packages/agent/test/agent-integration.test.ts @@ -1,9 +1,12 @@ /* eslint-disable max-classes-per-file */ +import type { SqliteSetupResult } from './__helper__/sqlite-setup'; +import type { NestFastifyApplication } from '@nestjs/platform-fastify'; + import { createSqlDataSource } from '@forestadmin/datasource-sql'; import { Module } from '@nestjs/common'; import { NestFactory } from '@nestjs/core'; -import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify'; +import { FastifyAdapter } from '@nestjs/platform-fastify'; import express from 'express'; import Fastify3 from 'fastify'; import Fastify2 from 'fastify2'; @@ -15,11 +18,7 @@ import path from 'path'; import superagent from 'superagent'; import MockForestServer from './__helper__/mock-forest-server'; -import { - SqliteSetupResult, - getTestCollectionsSchema, - setupSqliteDatabase, -} from './__helper__/sqlite-setup'; +import { getTestCollectionsSchema, setupSqliteDatabase } from './__helper__/sqlite-setup'; import Agent from '../src/agent'; const AUTH_SECRET = 'test-auth-secret-32-chars-min!!!'; diff --git a/packages/agent/test/framework-mounter.test.ts b/packages/agent/test/framework-mounter.test.ts index de9b974fbe..621b792c09 100644 --- a/packages/agent/test/framework-mounter.test.ts +++ b/packages/agent/test/framework-mounter.test.ts @@ -1,9 +1,11 @@ /* eslint-disable max-classes-per-file */ -import { Logger } from '@forestadmin/datasource-toolkit'; +import type { Logger } from '@forestadmin/datasource-toolkit'; +import type { NestFastifyApplication } from '@nestjs/platform-fastify'; + import Router from '@koa/router'; import { Module } from '@nestjs/common'; import { NestFactory } from '@nestjs/core'; -import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify'; +import { FastifyAdapter } from '@nestjs/platform-fastify'; import express from 'express'; import Fastify3 from 'fastify'; import Fastify2 from 'fastify2'; diff --git a/packages/agent/test/routes/access/native-query-datasource.test.ts b/packages/agent/test/routes/access/native-query-datasource.test.ts index 127b8ac1bf..fa54ce777a 100644 --- a/packages/agent/test/routes/access/native-query-datasource.test.ts +++ b/packages/agent/test/routes/access/native-query-datasource.test.ts @@ -1,6 +1,7 @@ +import type { Context } from 'koa'; + import { UnprocessableError } from '@forestadmin/datasource-toolkit'; import { ChartType } from '@forestadmin/forestadmin-client'; -import { Context } from 'koa'; import makeRoutes from '../../../src/routes'; import DataSourceNativeQueryRoute from '../../../src/routes/access/native-query-datasource'; diff --git a/packages/agent/test/routes/base-routes.test.ts b/packages/agent/test/routes/base-routes.test.ts index a607a71640..38c9a96eb2 100644 --- a/packages/agent/test/routes/base-routes.test.ts +++ b/packages/agent/test/routes/base-routes.test.ts @@ -1,4 +1,4 @@ -import Router from '@koa/router'; +import type Router from '@koa/router'; import BaseRoute from '../../src/routes/base-route'; import { RouteType } from '../../src/types'; diff --git a/packages/agent/test/routes/index.test.ts b/packages/agent/test/routes/index.test.ts index 2afaaa7ceb..b52174213f 100644 --- a/packages/agent/test/routes/index.test.ts +++ b/packages/agent/test/routes/index.test.ts @@ -1,4 +1,4 @@ -import { DataSource } from '@forestadmin/datasource-toolkit'; +import type { DataSource } from '@forestadmin/datasource-toolkit'; import makeRoutes, { CAPABILITIES_ROUTES_CTOR, diff --git a/packages/agent/test/routes/modification/action/action-authorization.test.ts b/packages/agent/test/routes/modification/action/action-authorization.test.ts index 5d9efcc7e2..4012a43bea 100644 --- a/packages/agent/test/routes/modification/action/action-authorization.test.ts +++ b/packages/agent/test/routes/modification/action/action-authorization.test.ts @@ -1,5 +1,6 @@ +import type { ForestAdminClient } from '@forestadmin/forestadmin-client'; + import { ForbiddenError } from '@forestadmin/datasource-toolkit'; -import { ForestAdminClient } from '@forestadmin/forestadmin-client'; import ActionAuthorizationService from '../../../../src/routes/modification/action/action-authorization'; import CustomActionTriggerForbiddenError from '../../../../src/routes/modification/action/errors/custom-action-trigger-forbidden-error'; diff --git a/packages/agent/test/routes/modification/action/action.test.ts b/packages/agent/test/routes/modification/action/action.test.ts index 94e17e3b8a..7b4351af22 100644 --- a/packages/agent/test/routes/modification/action/action.test.ts +++ b/packages/agent/test/routes/modification/action/action.test.ts @@ -1,10 +1,6 @@ -import { - ActionResult, - DataSource, - Filter, - ForbiddenError, - UnprocessableError, -} from '@forestadmin/datasource-toolkit'; +import type { ActionResult, DataSource } from '@forestadmin/datasource-toolkit'; + +import { Filter, ForbiddenError, UnprocessableError } from '@forestadmin/datasource-toolkit'; import { createMockContext } from '@shopify/jest-koa-mocks'; import { Readable } from 'stream'; diff --git a/packages/agent/test/routes/modification/update-field.test.ts b/packages/agent/test/routes/modification/update-field.test.ts index 100d4c95be..f354f25156 100644 --- a/packages/agent/test/routes/modification/update-field.test.ts +++ b/packages/agent/test/routes/modification/update-field.test.ts @@ -1,9 +1,6 @@ -import { - ConditionTreeFactory, - DataSource, - Projection, - ValidationError, -} from '@forestadmin/datasource-toolkit'; +import type { DataSource } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory, Projection, ValidationError } from '@forestadmin/datasource-toolkit'; import { createMockContext } from '@shopify/jest-koa-mocks'; import UpdateField from '../../../src/routes/modification/update-field'; diff --git a/packages/agent/test/routes/security/authentication.test.ts b/packages/agent/test/routes/security/authentication.test.ts index ffacb5d7f3..ccc31e8a30 100644 --- a/packages/agent/test/routes/security/authentication.test.ts +++ b/packages/agent/test/routes/security/authentication.test.ts @@ -1,9 +1,10 @@ +import type { AgentOptionsWithDefaults } from '../../../src/types'; + import { AuthenticationError, ForbiddenError } from '@forestadmin/forestadmin-client'; import { createMockContext } from '@shopify/jest-koa-mocks'; import { errors } from 'openid-client'; import Authentication from '../../../src/routes/security/authentication'; -import { AgentOptionsWithDefaults } from '../../../src/types'; import * as factories from '../../__factories__'; describe('Authentication', () => { diff --git a/packages/agent/test/routes/security/ip-whitelist.test.ts b/packages/agent/test/routes/security/ip-whitelist.test.ts index 5d8e710272..cc7c236a1a 100644 --- a/packages/agent/test/routes/security/ip-whitelist.test.ts +++ b/packages/agent/test/routes/security/ip-whitelist.test.ts @@ -1,5 +1,6 @@ +import type { Context, Next } from 'koa'; + import { createMockContext } from '@shopify/jest-koa-mocks'; -import { Context, Next } from 'koa'; import IpWhitelist from '../../../src/routes/security/ip-whitelist'; import { HttpCode } from '../../../src/types'; diff --git a/packages/agent/test/routes/security/scope-invalidation.test.ts b/packages/agent/test/routes/security/scope-invalidation.test.ts index 9921b53e84..e6a479921b 100644 --- a/packages/agent/test/routes/security/scope-invalidation.test.ts +++ b/packages/agent/test/routes/security/scope-invalidation.test.ts @@ -1,4 +1,5 @@ -import Router from '@koa/router'; +import type Router from '@koa/router'; + import { createMockContext } from '@shopify/jest-koa-mocks'; import ScopeInvalidation from '../../../src/routes/security/scope-invalidation'; diff --git a/packages/agent/test/routes/system/error-handling.test.ts b/packages/agent/test/routes/system/error-handling.test.ts index fa1c19bce8..41f4f59423 100644 --- a/packages/agent/test/routes/system/error-handling.test.ts +++ b/packages/agent/test/routes/system/error-handling.test.ts @@ -1,3 +1,5 @@ +import type Router from '@koa/router'; + import { BadRequestError, ForbiddenError, @@ -5,7 +7,6 @@ import { UnprocessableError, ValidationError, } from '@forestadmin/datasource-toolkit'; -import Router from '@koa/router'; import { createMockContext } from '@shopify/jest-koa-mocks'; import ErrorHandling from '../../../src/routes/system/error-handling'; diff --git a/packages/agent/test/routes/system/logger.test.ts b/packages/agent/test/routes/system/logger.test.ts index 4da502f59a..297099cee3 100644 --- a/packages/agent/test/routes/system/logger.test.ts +++ b/packages/agent/test/routes/system/logger.test.ts @@ -1,4 +1,4 @@ -import Router from '@koa/router'; +import type Router from '@koa/router'; import Logger from '../../../src/routes/system/logger'; import * as factories from '../../__factories__'; diff --git a/packages/agent/test/services/authorization/authorization.test.ts b/packages/agent/test/services/authorization/authorization.test.ts index f1e49da9e6..f11182aebd 100644 --- a/packages/agent/test/services/authorization/authorization.test.ts +++ b/packages/agent/test/services/authorization/authorization.test.ts @@ -1,3 +1,5 @@ +import type { Context } from 'koa'; + import { ChainedSQLQueryError, ChartType, @@ -5,7 +7,6 @@ import { EmptySQLQueryError, NonSelectSQLQueryError, } from '@forestadmin/forestadmin-client'; -import { Context } from 'koa'; import AuthorizationService from '../../../src/services/authorization/authorization'; import { HttpCode } from '../../../src/types'; diff --git a/packages/agent/test/services/model-customizations/actions/update-record/execute-update-record.test.ts b/packages/agent/test/services/model-customizations/actions/update-record/execute-update-record.test.ts index fade35a0d1..5f13463a1f 100644 --- a/packages/agent/test/services/model-customizations/actions/update-record/execute-update-record.test.ts +++ b/packages/agent/test/services/model-customizations/actions/update-record/execute-update-record.test.ts @@ -1,6 +1,7 @@ -import { ActionContext } from '@forestadmin/datasource-customizer'; +import type { ActionContext } from '@forestadmin/datasource-customizer'; +import type { UpdateRecordAction } from '@forestadmin/forestadmin-client/src/model-customizations/types'; + import { BusinessError } from '@forestadmin/datasource-toolkit'; -import { UpdateRecordAction } from '@forestadmin/forestadmin-client/src/model-customizations/types'; import executeUpdateRecord from '../../../../../src/services/model-customizations/actions/update-record/execute-update-record'; diff --git a/packages/agent/test/services/model-customizations/actions/update-record/update-record-plugin.test.ts b/packages/agent/test/services/model-customizations/actions/update-record/update-record-plugin.test.ts index 0c7c06f8e1..142e57ceb0 100644 --- a/packages/agent/test/services/model-customizations/actions/update-record/update-record-plugin.test.ts +++ b/packages/agent/test/services/model-customizations/actions/update-record/update-record-plugin.test.ts @@ -1,9 +1,8 @@ -import { ActionContext, CollectionCustomizer } from '@forestadmin/datasource-customizer'; -import { ActionScope } from '@forestadmin/datasource-toolkit'; -import { - ActionType, - ModelCustomizationType, -} from '@forestadmin/forestadmin-client/src/model-customizations/types'; +import type { ActionContext, CollectionCustomizer } from '@forestadmin/datasource-customizer'; +import type { ActionScope } from '@forestadmin/datasource-toolkit'; +import type { ActionType } from '@forestadmin/forestadmin-client/src/model-customizations/types'; + +import { ModelCustomizationType } from '@forestadmin/forestadmin-client/src/model-customizations/types'; import executeUpdateRecord from '../../../../../src/services/model-customizations/actions/update-record/execute-update-record'; import UpdateRecordActionsPlugin from '../../../../../src/services/model-customizations/actions/update-record/update-record-plugin'; diff --git a/packages/agent/test/services/model-customizations/actions/webhook/execute-webhook.test.ts b/packages/agent/test/services/model-customizations/actions/webhook/execute-webhook.test.ts index a49250e769..7305db993e 100644 --- a/packages/agent/test/services/model-customizations/actions/webhook/execute-webhook.test.ts +++ b/packages/agent/test/services/model-customizations/actions/webhook/execute-webhook.test.ts @@ -1,9 +1,10 @@ -import { ActionContext } from '@forestadmin/datasource-customizer'; -import { SchemaUtils } from '@forestadmin/datasource-toolkit'; -import { +import type { ActionContext } from '@forestadmin/datasource-customizer'; +import type { ActionScope, WebhookAction, } from '@forestadmin/forestadmin-client/src/model-customizations/types'; + +import { SchemaUtils } from '@forestadmin/datasource-toolkit'; import superagent from 'superagent'; import executeWebhook from '../../../../../src/services/model-customizations/actions/webhook/execute-webhook'; diff --git a/packages/agent/test/services/model-customizations/actions/webhook/webhook-plugin.test.ts b/packages/agent/test/services/model-customizations/actions/webhook/webhook-plugin.test.ts index f31b17f8ad..a4e67cc0a6 100644 --- a/packages/agent/test/services/model-customizations/actions/webhook/webhook-plugin.test.ts +++ b/packages/agent/test/services/model-customizations/actions/webhook/webhook-plugin.test.ts @@ -1,9 +1,8 @@ -import { ActionContext, CollectionCustomizer } from '@forestadmin/datasource-customizer'; -import { ActionScope } from '@forestadmin/datasource-toolkit'; -import { - ActionType, - ModelCustomizationType, -} from '@forestadmin/forestadmin-client/src/model-customizations/types'; +import type { ActionContext, CollectionCustomizer } from '@forestadmin/datasource-customizer'; +import type { ActionScope } from '@forestadmin/datasource-toolkit'; +import type { ActionType } from '@forestadmin/forestadmin-client/src/model-customizations/types'; + +import { ModelCustomizationType } from '@forestadmin/forestadmin-client/src/model-customizations/types'; import executeWebhook from '../../../../../src/services/model-customizations/actions/webhook/execute-webhook'; import WebhookActionsPlugin from '../../../../../src/services/model-customizations/actions/webhook/webhook-plugin'; diff --git a/packages/agent/test/services/model-customizations/customization.test.ts b/packages/agent/test/services/model-customizations/customization.test.ts index b8e8a8fa5a..65c94bfe45 100644 --- a/packages/agent/test/services/model-customizations/customization.test.ts +++ b/packages/agent/test/services/model-customizations/customization.test.ts @@ -1,4 +1,5 @@ -import { CollectionCustomizer } from '@forestadmin/datasource-customizer'; +import type { CollectionCustomizer } from '@forestadmin/datasource-customizer'; + import { ModelCustomizationType } from '@forestadmin/forestadmin-client/src/model-customizations/types'; import UpdateRecordActionsPlugin from '../../../src/services/model-customizations/actions/update-record/update-record-plugin'; diff --git a/packages/agent/test/services/segment-query-handler.test.ts b/packages/agent/test/services/segment-query-handler.test.ts index 3739d8a70d..c2549f1ee2 100644 --- a/packages/agent/test/services/segment-query-handler.test.ts +++ b/packages/agent/test/services/segment-query-handler.test.ts @@ -1,5 +1,6 @@ +import type { Context } from 'koa'; + import { PaginatedFilter } from '@forestadmin/datasource-toolkit'; -import { Context } from 'koa'; import SegmentQueryHandler from '../../src/services/segment-query-handler'; diff --git a/packages/agent/test/utils/body-parser.test.ts b/packages/agent/test/utils/body-parser.test.ts index e2bcadd8e0..7f5063c1a3 100644 --- a/packages/agent/test/utils/body-parser.test.ts +++ b/packages/agent/test/utils/body-parser.test.ts @@ -1,4 +1,5 @@ -import { CollectionSchema } from '@forestadmin/datasource-toolkit'; +import type { CollectionSchema } from '@forestadmin/datasource-toolkit'; + import { createMockContext } from '@shopify/jest-koa-mocks'; import BodyParser from '../../src/utils/body-parser'; diff --git a/packages/agent/test/utils/forest-schema/generator-actions.test.ts b/packages/agent/test/utils/forest-schema/generator-actions.test.ts index 793cffcf1f..ca5bf41fc1 100644 --- a/packages/agent/test/utils/forest-schema/generator-actions.test.ts +++ b/packages/agent/test/utils/forest-schema/generator-actions.test.ts @@ -1,4 +1,4 @@ -import { Collection } from '@forestadmin/datasource-toolkit'; +import type { Collection } from '@forestadmin/datasource-toolkit'; import SchemaGeneratorActions from '../../../src/utils/forest-schema/generator-actions'; import * as factories from '../../__factories__'; diff --git a/packages/agent/test/utils/forest-schema/generator-fields_column.test.ts b/packages/agent/test/utils/forest-schema/generator-fields_column.test.ts index 9509ae56c4..3b0ee6f1c6 100644 --- a/packages/agent/test/utils/forest-schema/generator-fields_column.test.ts +++ b/packages/agent/test/utils/forest-schema/generator-fields_column.test.ts @@ -1,4 +1,4 @@ -import { FieldTypes } from '@forestadmin/datasource-toolkit'; +import type { FieldTypes } from '@forestadmin/datasource-toolkit'; import SchemaGeneratorFields from '../../../src/utils/forest-schema/generator-fields'; import * as factories from '../../__factories__'; diff --git a/packages/agent/test/utils/id.test.ts b/packages/agent/test/utils/id.test.ts index 2bfa249475..5634096b5d 100644 --- a/packages/agent/test/utils/id.test.ts +++ b/packages/agent/test/utils/id.test.ts @@ -1,4 +1,4 @@ -import { CollectionSchema } from '@forestadmin/datasource-toolkit'; +import type { CollectionSchema } from '@forestadmin/datasource-toolkit'; import IdUtils from '../../src/utils/id'; import * as factories from '../__factories__'; diff --git a/packages/agent/test/utils/query-string.test.ts b/packages/agent/test/utils/query-string.test.ts index 0fcc54e017..cc4cf079ff 100644 --- a/packages/agent/test/utils/query-string.test.ts +++ b/packages/agent/test/utils/query-string.test.ts @@ -1,6 +1,7 @@ +import type { Context } from 'koa'; + import { Projection, UnprocessableError, ValidationError } from '@forestadmin/datasource-toolkit'; import { createMockContext } from '@shopify/jest-koa-mocks'; -import { Context } from 'koa'; import QueryStringParser from '../../src/utils/query-string'; import * as factories from '../__factories__'; diff --git a/packages/datasource-customizer/src/collection-customizer.ts b/packages/datasource-customizer/src/collection-customizer.ts index 4f184d33f3..932b302597 100644 --- a/packages/datasource-customizer/src/collection-customizer.ts +++ b/packages/datasource-customizer/src/collection-customizer.ts @@ -1,33 +1,21 @@ -import { - CollectionSchema, - CollectionUtils, - Logger, - Operator, - SchemaUtils, - allowedOperatorsForColumnType, -} from '@forestadmin/datasource-toolkit'; - -import DataSourceCustomizer from './datasource-customizer'; -import { ActionDefinition } from './decorators/actions/types/actions'; -import { BinaryMode } from './decorators/binary/types'; -import { CollectionChartDefinition } from './decorators/chart/types'; -import { ComputedDefinition } from './decorators/computed/types'; -import mapDeprecated from './decorators/computed/utils/map-deprecated'; -import DecoratorsStackBase from './decorators/decorators-stack-base'; -import { HookHandler, HookPosition, HookType, HooksContext } from './decorators/hook/types'; -import { OperatorDefinition } from './decorators/operators-emulate/types'; -import { +import type DataSourceCustomizer from './datasource-customizer'; +import type { ActionDefinition } from './decorators/actions/types/actions'; +import type { BinaryMode } from './decorators/binary/types'; +import type { CollectionChartDefinition } from './decorators/chart/types'; +import type { ComputedDefinition } from './decorators/computed/types'; +import type DecoratorsStackBase from './decorators/decorators-stack-base'; +import type { HookHandler, HookPosition, HookType, HooksContext } from './decorators/hook/types'; +import type { OperatorDefinition } from './decorators/operators-emulate/types'; +import type { CreateOverrideHandler, DeleteOverrideHandler, UpdateOverrideHandler, } from './decorators/override/types'; -import { RelationDefinition } from './decorators/relation/types'; -import { SearchDefinition } from './decorators/search/types'; -import { SegmentDefinition } from './decorators/segment/types'; -import { WriteDefinition } from './decorators/write/write-replace/types'; -import addExternalRelation from './plugins/add-external-relation'; -import importField from './plugins/import-field'; -import { +import type { RelationDefinition } from './decorators/relation/types'; +import type { SearchDefinition } from './decorators/search/types'; +import type { SegmentDefinition } from './decorators/segment/types'; +import type { WriteDefinition } from './decorators/write/write-replace/types'; +import type { TCollectionName, TColumnName, TColumnNameAndRelationName, @@ -35,7 +23,18 @@ import { TSchema, TSortClause, } from './templates'; -import { OneToManyEmbeddedDefinition, Plugin } from './types'; +import type { OneToManyEmbeddedDefinition, Plugin } from './types'; +import type { CollectionSchema, Logger, Operator } from '@forestadmin/datasource-toolkit'; + +import { + CollectionUtils, + SchemaUtils, + allowedOperatorsForColumnType, +} from '@forestadmin/datasource-toolkit'; + +import mapDeprecated from './decorators/computed/utils/map-deprecated'; +import addExternalRelation from './plugins/add-external-relation'; +import importField from './plugins/import-field'; export default class CollectionCustomizer< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/context/agent-context.ts b/packages/datasource-customizer/src/context/agent-context.ts index e8ef60fa4c..d2385955a6 100644 --- a/packages/datasource-customizer/src/context/agent-context.ts +++ b/packages/datasource-customizer/src/context/agent-context.ts @@ -1,12 +1,12 @@ +import type { TSchema } from '../templates'; +import type { Caller, DataSource } from '@forestadmin/datasource-toolkit'; + import { - Caller, - DataSource, ForbiddenError, UnprocessableError, ValidationError, } from '@forestadmin/datasource-toolkit'; -import { TSchema } from '../templates'; import RelaxedDataSource from './relaxed-wrappers/datasource'; export default class AgentCustomizationContext { diff --git a/packages/datasource-customizer/src/context/collection-context.ts b/packages/datasource-customizer/src/context/collection-context.ts index 3ea0f35394..62c9aba46e 100644 --- a/packages/datasource-customizer/src/context/collection-context.ts +++ b/packages/datasource-customizer/src/context/collection-context.ts @@ -1,7 +1,7 @@ -import { Caller, Collection } from '@forestadmin/datasource-toolkit'; +import type { TCollectionName, TSchema } from '../templates'; +import type { Caller, Collection } from '@forestadmin/datasource-toolkit'; import AgentCustomizationContext from './agent-context'; -import { TCollectionName, TSchema } from '../templates'; import RelaxedCollection from './relaxed-wrappers/collection'; export default class CollectionCustomizationContext< diff --git a/packages/datasource-customizer/src/context/relaxed-wrappers/collection.ts b/packages/datasource-customizer/src/context/relaxed-wrappers/collection.ts index d1ed63e5ca..5370cfc2ee 100644 --- a/packages/datasource-customizer/src/context/relaxed-wrappers/collection.ts +++ b/packages/datasource-customizer/src/context/relaxed-wrappers/collection.ts @@ -1,32 +1,34 @@ -import { +import type { + TAggregateResult, + TAggregation, + TCollectionName, + TFieldName, + TFilter, + TPaginatedFilter, + TPartialSimpleRow, + TRow, + TSchema, +} from '../../templates'; +import type { ActionFormElement, ActionResult, - Aggregation, Caller, Collection, CollectionSchema, + RecordData, +} from '@forestadmin/datasource-toolkit'; + +import { + Aggregation, ConditionTreeFactory, Filter, Page, PaginatedFilter, Projection, - RecordData, RecordValidator, Sort, } from '@forestadmin/datasource-toolkit'; -import { - TAggregateResult, - TAggregation, - TCollectionName, - TFieldName, - TFilter, - TPaginatedFilter, - TPartialSimpleRow, - TRow, - TSchema, -} from '../../templates'; - /** Collection wrapper which accepts plain objects in all methods */ export default class RelaxedCollection< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/context/relaxed-wrappers/datasource.ts b/packages/datasource-customizer/src/context/relaxed-wrappers/datasource.ts index 9c1eb71967..c9d0d9d140 100644 --- a/packages/datasource-customizer/src/context/relaxed-wrappers/datasource.ts +++ b/packages/datasource-customizer/src/context/relaxed-wrappers/datasource.ts @@ -1,7 +1,7 @@ -import { Caller, DataSource } from '@forestadmin/datasource-toolkit'; +import type { TCollectionName, TSchema } from '../../templates'; +import type { Caller, DataSource } from '@forestadmin/datasource-toolkit'; import RelaxedCollection from './collection'; -import { TCollectionName, TSchema } from '../../templates'; /** DataSource wrapper which accepts plain objects in all methods */ export default class RelaxedDataSource { diff --git a/packages/datasource-customizer/src/datasource-customizer.ts b/packages/datasource-customizer/src/datasource-customizer.ts index c3473185a0..089dffa9d3 100644 --- a/packages/datasource-customizer/src/datasource-customizer.ts +++ b/packages/datasource-customizer/src/datasource-customizer.ts @@ -1,4 +1,7 @@ -import { +import type { DataSourceChartDefinition } from './decorators/chart/types'; +import type { TCollectionName, TSchema } from './templates'; +import type { DataSourceOptions, Plugin } from './types'; +import type { Collection, DataSource, DataSourceFactory, @@ -7,14 +10,11 @@ import { } from '@forestadmin/datasource-toolkit'; import CollectionCustomizer from './collection-customizer'; -import { DataSourceChartDefinition } from './decorators/chart/types'; import CompositeDatasource from './decorators/composite-datasource'; import DecoratorsStack from './decorators/decorators-stack'; import DecoratorsStackNoCode from './decorators/decorators-stack-no-code'; import PublicationDataSourceDecorator from './decorators/publication/datasource'; import RenameCollectionDataSourceDecorator from './decorators/rename-collection/datasource'; -import { TCollectionName, TSchema } from './templates'; -import { DataSourceOptions, Plugin } from './types'; import TypingGenerator from './typing-generator'; export type Options = { diff --git a/packages/datasource-customizer/src/decorators/actions/collection.ts b/packages/datasource-customizer/src/decorators/actions/collection.ts index e34ac5eb1a..6bf2ea8615 100644 --- a/packages/datasource-customizer/src/decorators/actions/collection.ts +++ b/packages/datasource-customizer/src/decorators/actions/collection.ts @@ -1,8 +1,18 @@ -import { +import type { ActionBulk, ActionDefinition, ActionGlobal, ActionSingle } from './types/actions'; +import type { + DynamicField, + DynamicForm, + DynamicFormElement, + DynamicFormElementOrPage, + Handler, + SearchOptionsHandler, + ValueOrHandler, +} from './types/fields'; +import type { TSchema } from '../../templates'; +import type { ActionFormElement, ActionResult, Caller, - CollectionDecorator, CollectionSchema, DataSourceDecorator, Filter, @@ -12,20 +22,11 @@ import { RecordData, } from '@forestadmin/datasource-toolkit'; +import { CollectionDecorator } from '@forestadmin/datasource-toolkit'; + import ActionContext from './context/base'; import ActionContextSingle from './context/single'; import ResultBuilder from './result-builder'; -import { ActionBulk, ActionDefinition, ActionGlobal, ActionSingle } from './types/actions'; -import { - DynamicField, - DynamicForm, - DynamicFormElement, - DynamicFormElementOrPage, - Handler, - SearchOptionsHandler, - ValueOrHandler, -} from './types/fields'; -import { TSchema } from '../../templates'; type DynamicFieldWithId = DynamicField & { id: string }; diff --git a/packages/datasource-customizer/src/decorators/actions/context/base.ts b/packages/datasource-customizer/src/decorators/actions/context/base.ts index f099c6bac9..5c49bcb75c 100644 --- a/packages/datasource-customizer/src/decorators/actions/context/base.ts +++ b/packages/datasource-customizer/src/decorators/actions/context/base.ts @@ -1,17 +1,15 @@ /* eslint-disable max-classes-per-file */ +import type { TCollectionName, TFieldName, TFilter, TRow, TSchema } from '../../../templates'; +import type { Caller, Collection, CompositeId, RecordData } from '@forestadmin/datasource-toolkit'; + import { - Caller, - Collection, - CompositeId, Deferred, Projection, ProjectionValidator, - RecordData, RecordUtils, } from '@forestadmin/datasource-toolkit'; import CollectionCustomizationContext from '../../../context/collection-context'; -import { TCollectionName, TFieldName, TFilter, TRow, TSchema } from '../../../templates'; export default class ActionContext< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/actions/context/single.ts b/packages/datasource-customizer/src/decorators/actions/context/single.ts index 533738e428..9c630ff511 100644 --- a/packages/datasource-customizer/src/decorators/actions/context/single.ts +++ b/packages/datasource-customizer/src/decorators/actions/context/single.ts @@ -1,7 +1,7 @@ -import { CompositeId } from '@forestadmin/datasource-toolkit'; +import type { TCollectionName, TFieldName, TFieldType, TRow, TSchema } from '../../../templates'; +import type { CompositeId } from '@forestadmin/datasource-toolkit'; import ActionContext from './base'; -import { TCollectionName, TFieldName, TFieldType, TRow, TSchema } from '../../../templates'; export default class ActionContextSingle< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/actions/result-builder.ts b/packages/datasource-customizer/src/decorators/actions/result-builder.ts index 9cce668939..fd102ae184 100644 --- a/packages/datasource-customizer/src/decorators/actions/result-builder.ts +++ b/packages/datasource-customizer/src/decorators/actions/result-builder.ts @@ -1,4 +1,5 @@ -import { ActionHeaders, ActionResult } from '@forestadmin/datasource-toolkit'; +import type { ActionHeaders, ActionResult } from '@forestadmin/datasource-toolkit'; + import { Readable } from 'stream'; export default class ResultBuilder { diff --git a/packages/datasource-customizer/src/decorators/actions/types/actions.ts b/packages/datasource-customizer/src/decorators/actions/types/actions.ts index 1b53dbf8a1..cb2bcef889 100644 --- a/packages/datasource-customizer/src/decorators/actions/types/actions.ts +++ b/packages/datasource-customizer/src/decorators/actions/types/actions.ts @@ -1,10 +1,10 @@ -import { ActionResult, ActionScope } from '@forestadmin/datasource-toolkit'; +import type { DynamicForm } from './fields'; +import type { TCollectionName, TSchema } from '../../../templates'; +import type ResultBuilder from '../result-builder'; +import type { ActionResult, ActionScope } from '@forestadmin/datasource-toolkit'; -import { DynamicForm } from './fields'; -import { TCollectionName, TSchema } from '../../../templates'; import ActionContext from '../context/base'; import ActionContextSingle from '../context/single'; -import ResultBuilder from '../result-builder'; export { ActionContext, ActionContextSingle }; diff --git a/packages/datasource-customizer/src/decorators/actions/types/fields.ts b/packages/datasource-customizer/src/decorators/actions/types/fields.ts index 5f65fbd00f..3a98a9ba18 100644 --- a/packages/datasource-customizer/src/decorators/actions/types/fields.ts +++ b/packages/datasource-customizer/src/decorators/actions/types/fields.ts @@ -1,4 +1,4 @@ -import { CompositeId, File, Json } from '@forestadmin/datasource-toolkit'; +import type { CompositeId, File, Json } from '@forestadmin/datasource-toolkit'; type UnionKeys = T extends T ? keyof T : never; type StrictUnionHelper = T extends any diff --git a/packages/datasource-customizer/src/decorators/binary/collection.ts b/packages/datasource-customizer/src/decorators/binary/collection.ts index 37491b03a9..9bce499577 100644 --- a/packages/datasource-customizer/src/decorators/binary/collection.ts +++ b/packages/datasource-customizer/src/decorators/binary/collection.ts @@ -1,8 +1,8 @@ -import { +import type { BinaryMode } from './types'; +import type { AggregateResult, Aggregation, Caller, - CollectionDecorator, CollectionSchema, ColumnSchema, ColumnType, @@ -14,11 +14,10 @@ import { PaginatedFilter, Projection, RecordData, - SchemaUtils, } from '@forestadmin/datasource-toolkit'; -import FileType from 'file-type'; -import { BinaryMode } from './types'; +import { CollectionDecorator, SchemaUtils } from '@forestadmin/datasource-toolkit'; +import FileType from 'file-type'; /** * As the transport layer between the forest admin agent and the frontend is JSON-API, binary data diff --git a/packages/datasource-customizer/src/decorators/chart/collection.ts b/packages/datasource-customizer/src/decorators/chart/collection.ts index 90158ea41a..2c57bac2fc 100644 --- a/packages/datasource-customizer/src/decorators/chart/collection.ts +++ b/packages/datasource-customizer/src/decorators/chart/collection.ts @@ -1,14 +1,10 @@ -import { - Caller, - Chart, - CollectionDecorator, - CollectionSchema, - CompositeId, -} from '@forestadmin/datasource-toolkit'; +import type { CollectionChartDefinition } from './types'; +import type { Caller, Chart, CollectionSchema, CompositeId } from '@forestadmin/datasource-toolkit'; + +import { CollectionDecorator } from '@forestadmin/datasource-toolkit'; import CollectionChartContext from './context'; import ResultBuilder from './result-builder'; -import { CollectionChartDefinition } from './types'; export default class ChartCollectionDecorator extends CollectionDecorator { private charts: Record = {}; diff --git a/packages/datasource-customizer/src/decorators/chart/context.ts b/packages/datasource-customizer/src/decorators/chart/context.ts index 470a49fb71..51a573471f 100644 --- a/packages/datasource-customizer/src/decorators/chart/context.ts +++ b/packages/datasource-customizer/src/decorators/chart/context.ts @@ -1,12 +1,9 @@ -import { - Caller, - Collection, - CompositeId, - ConditionTreeFactory, -} from '@forestadmin/datasource-toolkit'; +import type { TCollectionName, TConditionTree, TFieldName, TRow, TSchema } from '../../templates'; +import type { Caller, Collection, CompositeId } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory } from '@forestadmin/datasource-toolkit'; import CollectionCustomizationContext from '../../context/collection-context'; -import { TCollectionName, TConditionTree, TFieldName, TRow, TSchema } from '../../templates'; export default class CollectionChartContext< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/chart/datasource.ts b/packages/datasource-customizer/src/decorators/chart/datasource.ts index f4313626e8..1d33c2ee24 100644 --- a/packages/datasource-customizer/src/decorators/chart/datasource.ts +++ b/packages/datasource-customizer/src/decorators/chart/datasource.ts @@ -1,14 +1,10 @@ -import { - Caller, - Chart, - DataSource, - DataSourceDecorator, - DataSourceSchema, -} from '@forestadmin/datasource-toolkit'; +import type { DataSourceChartDefinition } from './types'; +import type { Caller, Chart, DataSource, DataSourceSchema } from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; import ChartCollectionDecorator from './collection'; import ResultBuilder from './result-builder'; -import { DataSourceChartDefinition } from './types'; import AgentCustomizationContext from '../../context/agent-context'; export default class ChartDataSourceDecorator extends DataSourceDecorator { diff --git a/packages/datasource-customizer/src/decorators/chart/result-builder.ts b/packages/datasource-customizer/src/decorators/chart/result-builder.ts index fb62c14aae..09217d2793 100644 --- a/packages/datasource-customizer/src/decorators/chart/result-builder.ts +++ b/packages/datasource-customizer/src/decorators/chart/result-builder.ts @@ -1,4 +1,4 @@ -import { +import type { DateOperation, DistributionChart, LeaderboardChart, @@ -9,7 +9,9 @@ import { TimeBasedChart, ValueChart, } from '@forestadmin/datasource-toolkit'; -import { DateTime, DateTimeUnit } from 'luxon'; +import type { DateTimeUnit } from 'luxon'; + +import { DateTime } from 'luxon'; export default class ResultBuilder { private static readonly formats: Record = { diff --git a/packages/datasource-customizer/src/decorators/chart/types.ts b/packages/datasource-customizer/src/decorators/chart/types.ts index a57407c493..87dfc597a6 100644 --- a/packages/datasource-customizer/src/decorators/chart/types.ts +++ b/packages/datasource-customizer/src/decorators/chart/types.ts @@ -1,9 +1,8 @@ -import { Chart } from '@forestadmin/datasource-toolkit'; - -import CollectionChartContext from './context'; -import ResultBuilder from './result-builder'; -import AgentCustomizationContext from '../../context/agent-context'; -import { TCollectionName, TSchema } from '../../templates'; +import type CollectionChartContext from './context'; +import type ResultBuilder from './result-builder'; +import type AgentCustomizationContext from '../../context/agent-context'; +import type { TCollectionName, TSchema } from '../../templates'; +import type { Chart } from '@forestadmin/datasource-toolkit'; export type DataSourceChartDefinition = ( context: AgentCustomizationContext, diff --git a/packages/datasource-customizer/src/decorators/composite-datasource.ts b/packages/datasource-customizer/src/decorators/composite-datasource.ts index 1d24623754..09a212992f 100644 --- a/packages/datasource-customizer/src/decorators/composite-datasource.ts +++ b/packages/datasource-customizer/src/decorators/composite-datasource.ts @@ -1,12 +1,13 @@ -import { +import type { Caller, Chart, Collection, DataSource, DataSourceSchema, - MissingCollectionError, } from '@forestadmin/datasource-toolkit'; +import { MissingCollectionError } from '@forestadmin/datasource-toolkit'; + export default class CompositeDatasource implements DataSource { diff --git a/packages/datasource-customizer/src/decorators/computed/collection.ts b/packages/datasource-customizer/src/decorators/computed/collection.ts index 0d77c3a9a1..de13f4dcd6 100644 --- a/packages/datasource-customizer/src/decorators/computed/collection.ts +++ b/packages/datasource-customizer/src/decorators/computed/collection.ts @@ -1,21 +1,20 @@ -import { +import type { ComputedDefinition } from './types'; +import type { AggregateResult, Aggregation, Caller, - CollectionDecorator, CollectionSchema, DataSourceDecorator, - FieldValidator, Filter, PaginatedFilter, Projection, RecordData, - SchemaUtils, } from '@forestadmin/datasource-toolkit'; +import { CollectionDecorator, FieldValidator, SchemaUtils } from '@forestadmin/datasource-toolkit'; + import computeFromRecords from './helpers/compute-fields'; import rewriteField from './helpers/rewrite-projection'; -import { ComputedDefinition } from './types'; import CollectionCustomizationContext from '../../context/collection-context'; /** Decorator injects computed fields */ diff --git a/packages/datasource-customizer/src/decorators/computed/helpers/compute-fields.ts b/packages/datasource-customizer/src/decorators/computed/helpers/compute-fields.ts index de4e53850c..e56963f93e 100644 --- a/packages/datasource-customizer/src/decorators/computed/helpers/compute-fields.ts +++ b/packages/datasource-customizer/src/decorators/computed/helpers/compute-fields.ts @@ -1,8 +1,10 @@ -import { Projection, RecordData } from '@forestadmin/datasource-toolkit'; +import type CollectionCustomizationContext from '../../../context/collection-context'; +import type ComputedCollection from '../collection'; +import type { ComputedDefinition } from '../types'; +import type { RecordData } from '@forestadmin/datasource-toolkit'; + +import { Projection } from '@forestadmin/datasource-toolkit'; -import CollectionCustomizationContext from '../../../context/collection-context'; -import ComputedCollection from '../collection'; -import { ComputedDefinition } from '../types'; import transformUniqueValues from '../utils/deduplication'; import { flatten, unflatten, withNullMarkers } from '../utils/flattener'; diff --git a/packages/datasource-customizer/src/decorators/computed/helpers/rewrite-projection.ts b/packages/datasource-customizer/src/decorators/computed/helpers/rewrite-projection.ts index a2a1e9e7b5..7df91d0794 100644 --- a/packages/datasource-customizer/src/decorators/computed/helpers/rewrite-projection.ts +++ b/packages/datasource-customizer/src/decorators/computed/helpers/rewrite-projection.ts @@ -1,6 +1,6 @@ -import { Projection, SchemaUtils } from '@forestadmin/datasource-toolkit'; +import type ComputedCollection from '../collection'; -import ComputedCollection from '../collection'; +import { Projection, SchemaUtils } from '@forestadmin/datasource-toolkit'; export default function rewriteField(collection: ComputedCollection, path: string): Projection { // Projection is targeting a field on another collection => recurse. diff --git a/packages/datasource-customizer/src/decorators/computed/types.ts b/packages/datasource-customizer/src/decorators/computed/types.ts index d8dd01c0a1..12af1c17b9 100644 --- a/packages/datasource-customizer/src/decorators/computed/types.ts +++ b/packages/datasource-customizer/src/decorators/computed/types.ts @@ -1,7 +1,6 @@ -import { ColumnType } from '@forestadmin/datasource-toolkit'; - -import CollectionCustomizationContext from '../../context/collection-context'; -import { TCollectionName, TFieldName, TRow, TSchema } from '../../templates'; +import type CollectionCustomizationContext from '../../context/collection-context'; +import type { TCollectionName, TFieldName, TRow, TSchema } from '../../templates'; +import type { ColumnType } from '@forestadmin/datasource-toolkit'; export interface ComputedDefinition< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/computed/utils/map-deprecated.ts b/packages/datasource-customizer/src/decorators/computed/utils/map-deprecated.ts index 150a43f2b5..84b9d2ce72 100644 --- a/packages/datasource-customizer/src/decorators/computed/utils/map-deprecated.ts +++ b/packages/datasource-customizer/src/decorators/computed/utils/map-deprecated.ts @@ -1,5 +1,5 @@ -import { TCollectionName, TSchema } from '../../../templates'; -import { ComputedDefinition } from '../types'; +import type { TCollectionName, TSchema } from '../../../templates'; +import type { ComputedDefinition } from '../types'; /** * transforms deprecated computed fields into their new definition diff --git a/packages/datasource-customizer/src/decorators/decorators-stack-base.ts b/packages/datasource-customizer/src/decorators/decorators-stack-base.ts index f82ef4585e..9d432a6ea8 100644 --- a/packages/datasource-customizer/src/decorators/decorators-stack-base.ts +++ b/packages/datasource-customizer/src/decorators/decorators-stack-base.ts @@ -1,26 +1,22 @@ -import { - DataSource, - DataSourceDecorator, - Logger, - MissingSchemaElementError, -} from '@forestadmin/datasource-toolkit'; - -import ActionCollectionDecorator from './actions/collection'; -import BinaryCollectionDecorator from './binary/collection'; -import ChartDataSourceDecorator from './chart/datasource'; -import ComputedCollectionDecorator from './computed/collection'; -import HookCollectionDecorator from './hook/collection'; -import OperatorsEmulateCollectionDecorator from './operators-emulate/collection'; -import OverrideCollectionDecorator from './override/collection'; -import PublicationDataSourceDecorator from './publication/datasource'; -import RelationCollectionDecorator from './relation/collection'; -import RenameFieldCollectionDecorator from './rename-field/collection'; -import SchemaCollectionDecorator from './schema/collection'; -import SearchCollectionDecorator from './search/collection'; -import SegmentCollectionDecorator from './segment/collection'; -import SortEmulateCollectionDecorator from './sort-emulate/collection'; -import ValidationCollectionDecorator from './validation/collection'; -import WriteDataSourceDecorator from './write/datasource'; +import type ActionCollectionDecorator from './actions/collection'; +import type BinaryCollectionDecorator from './binary/collection'; +import type ChartDataSourceDecorator from './chart/datasource'; +import type ComputedCollectionDecorator from './computed/collection'; +import type HookCollectionDecorator from './hook/collection'; +import type OperatorsEmulateCollectionDecorator from './operators-emulate/collection'; +import type OverrideCollectionDecorator from './override/collection'; +import type PublicationDataSourceDecorator from './publication/datasource'; +import type RelationCollectionDecorator from './relation/collection'; +import type RenameFieldCollectionDecorator from './rename-field/collection'; +import type SchemaCollectionDecorator from './schema/collection'; +import type SearchCollectionDecorator from './search/collection'; +import type SegmentCollectionDecorator from './segment/collection'; +import type SortEmulateCollectionDecorator from './sort-emulate/collection'; +import type ValidationCollectionDecorator from './validation/collection'; +import type WriteDataSourceDecorator from './write/datasource'; +import type { DataSource, DataSourceDecorator, Logger } from '@forestadmin/datasource-toolkit'; + +import { MissingSchemaElementError } from '@forestadmin/datasource-toolkit'; export type Options = { ignoreMissingSchemaElementErrors?: boolean; diff --git a/packages/datasource-customizer/src/decorators/decorators-stack-no-code.ts b/packages/datasource-customizer/src/decorators/decorators-stack-no-code.ts index fd5306f99a..664f053133 100644 --- a/packages/datasource-customizer/src/decorators/decorators-stack-no-code.ts +++ b/packages/datasource-customizer/src/decorators/decorators-stack-no-code.ts @@ -1,4 +1,6 @@ -import { DataSource, DataSourceDecorator } from '@forestadmin/datasource-toolkit'; +import type { DataSource } from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; import ActionCollectionDecorator from './actions/collection'; import DecoratorsStackBase from './decorators-stack-base'; diff --git a/packages/datasource-customizer/src/decorators/decorators-stack.ts b/packages/datasource-customizer/src/decorators/decorators-stack.ts index b343ac8205..c58ef5b21a 100644 --- a/packages/datasource-customizer/src/decorators/decorators-stack.ts +++ b/packages/datasource-customizer/src/decorators/decorators-stack.ts @@ -1,4 +1,6 @@ -import { DataSource, DataSourceDecorator } from '@forestadmin/datasource-toolkit'; +import type { DataSource } from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; import ActionCollectionDecorator from './actions/collection'; import BinaryCollectionDecorator from './binary/collection'; diff --git a/packages/datasource-customizer/src/decorators/empty/collection.ts b/packages/datasource-customizer/src/decorators/empty/collection.ts index df091ef53b..a9e2c56838 100644 --- a/packages/datasource-customizer/src/decorators/empty/collection.ts +++ b/packages/datasource-customizer/src/decorators/empty/collection.ts @@ -1,17 +1,20 @@ -import { +import type { AggregateResult, Aggregation, Caller, - CollectionDecorator, ConditionTree, - ConditionTreeBranch, - ConditionTreeLeaf, Filter, PaginatedFilter, Projection, RecordData, } from '@forestadmin/datasource-toolkit'; +import { + CollectionDecorator, + ConditionTreeBranch, + ConditionTreeLeaf, +} from '@forestadmin/datasource-toolkit'; + /** * Avoid performing useless database requests: * Using segments + scopes + filters + jointure emulation often yields requests which have diff --git a/packages/datasource-customizer/src/decorators/hook/collection.ts b/packages/datasource-customizer/src/decorators/hook/collection.ts index 6a76dcca7c..09644d671a 100644 --- a/packages/datasource-customizer/src/decorators/hook/collection.ts +++ b/packages/datasource-customizer/src/decorators/hook/collection.ts @@ -1,42 +1,28 @@ -import { +import type { HookBeforeAggregateContext } from './context/aggregate'; +import type { HookBeforeCreateContext } from './context/create'; +import type { HookBeforeDeleteContext } from './context/delete'; +import type HookContext from './context/hook'; +import type { HookBeforeListContext } from './context/list'; +import type { HookBeforeUpdateContext } from './context/update'; +import type { HookHandler, HookPosition, HookType, HooksContext } from './types'; +import type { AggregateResult, Aggregation, Caller, - CollectionDecorator, Filter, PaginatedFilter, Projection, RecordData, } from '@forestadmin/datasource-toolkit'; -import { - HookAfterAggregateContext, - HookBeforeAggregateContext, - InternalHookBeforeAggregateContext, -} from './context/aggregate'; -import { - HookAfterCreateContext, - HookBeforeCreateContext, - InternalHookBeforeCreateContext, -} from './context/create'; -import { - HookAfterDeleteContext, - HookBeforeDeleteContext, - InternalHookBeforeDeleteContext, -} from './context/delete'; -import HookContext from './context/hook'; -import { - HookAfterListContext, - HookBeforeListContext, - InternalHookBeforeListContext, -} from './context/list'; -import { - HookAfterUpdateContext, - HookBeforeUpdateContext, - InternalHookBeforeUpdateContext, -} from './context/update'; +import { CollectionDecorator } from '@forestadmin/datasource-toolkit'; + +import { HookAfterAggregateContext, InternalHookBeforeAggregateContext } from './context/aggregate'; +import { HookAfterCreateContext, InternalHookBeforeCreateContext } from './context/create'; +import { HookAfterDeleteContext, InternalHookBeforeDeleteContext } from './context/delete'; +import { HookAfterListContext, InternalHookBeforeListContext } from './context/list'; +import { HookAfterUpdateContext, InternalHookBeforeUpdateContext } from './context/update'; import Hooks from './hook'; -import { HookHandler, HookPosition, HookType, HooksContext } from './types'; export default class CollectionHookDecorator extends CollectionDecorator { private hooks: { [type in HookType<'After'>]: Hooks } = { diff --git a/packages/datasource-customizer/src/decorators/hook/context/aggregate.ts b/packages/datasource-customizer/src/decorators/hook/context/aggregate.ts index b3d0d1126e..f3e9046545 100644 --- a/packages/datasource-customizer/src/decorators/hook/context/aggregate.ts +++ b/packages/datasource-customizer/src/decorators/hook/context/aggregate.ts @@ -1,15 +1,15 @@ /* eslint-disable max-classes-per-file */ -import { Aggregation, Caller, Collection, Filter } from '@forestadmin/datasource-toolkit'; - -import HookContext from './hook'; -import { +import type { TAggregateResult, TAggregation, TCollectionName, TFilter, TSchema, } from '../../../templates'; +import type { Aggregation, Caller, Collection, Filter } from '@forestadmin/datasource-toolkit'; + +import HookContext from './hook'; export class HookBeforeAggregateContext< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/hook/context/create.ts b/packages/datasource-customizer/src/decorators/hook/context/create.ts index f8e847fa22..f37f05efa5 100644 --- a/packages/datasource-customizer/src/decorators/hook/context/create.ts +++ b/packages/datasource-customizer/src/decorators/hook/context/create.ts @@ -1,9 +1,9 @@ /* eslint-disable max-classes-per-file */ -import { Caller, Collection, RecordData } from '@forestadmin/datasource-toolkit'; +import type { TCollectionName, TRow, TSchema } from '../../../templates'; +import type { Caller, Collection, RecordData } from '@forestadmin/datasource-toolkit'; import HookContext from './hook'; -import { TCollectionName, TRow, TSchema } from '../../../templates'; export class HookBeforeCreateContext< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/hook/context/delete.ts b/packages/datasource-customizer/src/decorators/hook/context/delete.ts index 77db15015d..eb38a98feb 100644 --- a/packages/datasource-customizer/src/decorators/hook/context/delete.ts +++ b/packages/datasource-customizer/src/decorators/hook/context/delete.ts @@ -1,9 +1,9 @@ /* eslint-disable max-classes-per-file */ -import { Caller, Collection, Filter } from '@forestadmin/datasource-toolkit'; +import type { TCollectionName, TFilter, TSchema } from '../../../templates'; +import type { Caller, Collection, Filter } from '@forestadmin/datasource-toolkit'; import HookContext from './hook'; -import { TCollectionName, TFilter, TSchema } from '../../../templates'; export class HookBeforeDeleteContext< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/hook/context/hook.ts b/packages/datasource-customizer/src/decorators/hook/context/hook.ts index 44ddd30d02..f9fcffd1cf 100644 --- a/packages/datasource-customizer/src/decorators/hook/context/hook.ts +++ b/packages/datasource-customizer/src/decorators/hook/context/hook.ts @@ -1,5 +1,6 @@ +import type { TCollectionName, TSchema } from '../../../templates'; + import CollectionCustomizationContext from '../../../context/collection-context'; -import { TCollectionName, TSchema } from '../../../templates'; export default abstract class HookContext< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/hook/context/list.ts b/packages/datasource-customizer/src/decorators/hook/context/list.ts index 5dd7dbf242..385d0ef317 100644 --- a/packages/datasource-customizer/src/decorators/hook/context/list.ts +++ b/packages/datasource-customizer/src/decorators/hook/context/list.ts @@ -1,6 +1,13 @@ /* eslint-disable max-classes-per-file */ -import { +import type { + TCollectionName, + TFieldName, + TPaginatedFilter, + TRow, + TSchema, +} from '../../../templates'; +import type { Caller, Collection, PaginatedFilter, @@ -9,7 +16,6 @@ import { } from '@forestadmin/datasource-toolkit'; import HookContext from './hook'; -import { TCollectionName, TFieldName, TPaginatedFilter, TRow, TSchema } from '../../../templates'; export class HookBeforeListContext< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/hook/context/update.ts b/packages/datasource-customizer/src/decorators/hook/context/update.ts index 8df168caa4..b2d3d99310 100644 --- a/packages/datasource-customizer/src/decorators/hook/context/update.ts +++ b/packages/datasource-customizer/src/decorators/hook/context/update.ts @@ -1,8 +1,8 @@ /* eslint-disable max-classes-per-file */ -import { Caller, Collection, Filter, RecordData } from '@forestadmin/datasource-toolkit'; +import type { TCollectionName, TFilter, TRow, TSchema } from '../../../templates'; +import type { Caller, Collection, Filter, RecordData } from '@forestadmin/datasource-toolkit'; import HookContext from './hook'; -import { TCollectionName, TFilter, TRow, TSchema } from '../../../templates'; export class HookBeforeUpdateContext< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/hook/hook.ts b/packages/datasource-customizer/src/decorators/hook/hook.ts index 2951998b0d..9ccd40020a 100644 --- a/packages/datasource-customizer/src/decorators/hook/hook.ts +++ b/packages/datasource-customizer/src/decorators/hook/hook.ts @@ -1,5 +1,5 @@ -import HookContext from './context/hook'; -import { HookHandler, HookPosition } from './types'; +import type HookContext from './context/hook'; +import type { HookHandler, HookPosition } from './types'; export default class Hooks { private before: HookHandler[] = []; diff --git a/packages/datasource-customizer/src/decorators/hook/types.ts b/packages/datasource-customizer/src/decorators/hook/types.ts index 47531fc29b..c5c1153a4a 100644 --- a/packages/datasource-customizer/src/decorators/hook/types.ts +++ b/packages/datasource-customizer/src/decorators/hook/types.ts @@ -1,10 +1,11 @@ +import type { TCollectionName, TSchema } from '../../templates'; + import { HookAfterAggregateContext, HookBeforeAggregateContext } from './context/aggregate'; import { HookAfterCreateContext, HookBeforeCreateContext } from './context/create'; import { HookAfterDeleteContext, HookBeforeDeleteContext } from './context/delete'; import HookContext from './context/hook'; import { HookAfterListContext, HookBeforeListContext } from './context/list'; import { HookAfterUpdateContext, HookBeforeUpdateContext } from './context/update'; -import { TCollectionName, TSchema } from '../../templates'; export { HookContext, diff --git a/packages/datasource-customizer/src/decorators/lazy-join/collection.ts b/packages/datasource-customizer/src/decorators/lazy-join/collection.ts index 5241f78675..0a73dd51f5 100644 --- a/packages/datasource-customizer/src/decorators/lazy-join/collection.ts +++ b/packages/datasource-customizer/src/decorators/lazy-join/collection.ts @@ -1,8 +1,7 @@ -import { +import type { AggregateResult, Aggregation, Caller, - CollectionDecorator, FieldSchema, Filter, ManyToOneSchema, @@ -11,6 +10,8 @@ import { RecordData, } from '@forestadmin/datasource-toolkit'; +import { CollectionDecorator } from '@forestadmin/datasource-toolkit'; + export default class LazyJoinDecorator extends CollectionDecorator { override async list( caller: Caller, diff --git a/packages/datasource-customizer/src/decorators/operators-emulate/collection.ts b/packages/datasource-customizer/src/decorators/operators-emulate/collection.ts index 12c11cb7b3..bd06be8d90 100644 --- a/packages/datasource-customizer/src/decorators/operators-emulate/collection.ts +++ b/packages/datasource-customizer/src/decorators/operators-emulate/collection.ts @@ -1,21 +1,24 @@ -import { +import type { OperatorDefinition } from './types'; +import type { Caller, - CollectionDecorator, CollectionSchema, ColumnSchema, - ConditionTree, - ConditionTreeFactory, ConditionTreeLeaf, - ConditionTreeValidator, DataSourceDecorator, FieldSchema, - FieldValidator, Operator, +} from '@forestadmin/datasource-toolkit'; + +import { + CollectionDecorator, + ConditionTree, + ConditionTreeFactory, + ConditionTreeValidator, + FieldValidator, PaginatedFilter, SchemaUtils, } from '@forestadmin/datasource-toolkit'; -import { OperatorDefinition } from './types'; import CollectionCustomizationContext from '../../context/collection-context'; export default class OperatorsEmulateCollectionDecorator extends CollectionDecorator { diff --git a/packages/datasource-customizer/src/decorators/operators-emulate/types.ts b/packages/datasource-customizer/src/decorators/operators-emulate/types.ts index cf40409599..b5aae77cbd 100644 --- a/packages/datasource-customizer/src/decorators/operators-emulate/types.ts +++ b/packages/datasource-customizer/src/decorators/operators-emulate/types.ts @@ -1,5 +1,11 @@ -import CollectionCustomizationContext from '../../context/collection-context'; -import { TCollectionName, TColumnName, TConditionTree, TFieldType, TSchema } from '../../templates'; +import type CollectionCustomizationContext from '../../context/collection-context'; +import type { + TCollectionName, + TColumnName, + TConditionTree, + TFieldType, + TSchema, +} from '../../templates'; export type OperatorDefinition< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/operators-equivalence/collection.ts b/packages/datasource-customizer/src/decorators/operators-equivalence/collection.ts index a02ca7d0e5..9a97fb2012 100644 --- a/packages/datasource-customizer/src/decorators/operators-equivalence/collection.ts +++ b/packages/datasource-customizer/src/decorators/operators-equivalence/collection.ts @@ -1,12 +1,15 @@ -import { +import type { Caller, - CollectionDecorator, CollectionSchema, - CollectionUtils, ColumnSchema, - ConditionTreeEquivalent, FieldSchema, PaginatedFilter, +} from '@forestadmin/datasource-toolkit'; + +import { + CollectionDecorator, + CollectionUtils, + ConditionTreeEquivalent, allOperators, } from '@forestadmin/datasource-toolkit'; diff --git a/packages/datasource-customizer/src/decorators/override/collection.ts b/packages/datasource-customizer/src/decorators/override/collection.ts index 452215c539..ba22b54ec3 100644 --- a/packages/datasource-customizer/src/decorators/override/collection.ts +++ b/packages/datasource-customizer/src/decorators/override/collection.ts @@ -1,18 +1,13 @@ -import { - Caller, - CollectionDecorator, - Filter, - RecordData, - SchemaUtils, - ValidationError, -} from '@forestadmin/datasource-toolkit'; +import type { CreateOverrideHandler, DeleteOverrideHandler, UpdateOverrideHandler } from './types'; +import type { Caller, Filter, RecordData } from '@forestadmin/datasource-toolkit'; + +import { CollectionDecorator, SchemaUtils, ValidationError } from '@forestadmin/datasource-toolkit'; import { CreateOverrideCustomizationContext, DeleteOverrideCustomizationContext, UpdateOverrideCustomizationContext, } from './context'; -import { CreateOverrideHandler, DeleteOverrideHandler, UpdateOverrideHandler } from './types'; export default class OverrideCollectionDecorator extends CollectionDecorator { private createHandler: CreateOverrideHandler; diff --git a/packages/datasource-customizer/src/decorators/override/context.ts b/packages/datasource-customizer/src/decorators/override/context.ts index 8b3a823345..906adb6022 100644 --- a/packages/datasource-customizer/src/decorators/override/context.ts +++ b/packages/datasource-customizer/src/decorators/override/context.ts @@ -1,8 +1,8 @@ // eslint-disable-next-line max-classes-per-file -import { Caller, Collection, Filter } from '@forestadmin/datasource-toolkit'; +import type { TCollectionName, TFilter, TPartialSimpleRow, TSchema } from '../../templates'; +import type { Caller, Collection, Filter } from '@forestadmin/datasource-toolkit'; import CollectionCustomizationContext from '../../context/collection-context'; -import { TCollectionName, TFilter, TPartialSimpleRow, TSchema } from '../../templates'; export class CreateOverrideCustomizationContext< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/override/types.ts b/packages/datasource-customizer/src/decorators/override/types.ts index ede2cc3ded..2cec3eb6fc 100644 --- a/packages/datasource-customizer/src/decorators/override/types.ts +++ b/packages/datasource-customizer/src/decorators/override/types.ts @@ -1,9 +1,9 @@ -import { +import type { CreateOverrideCustomizationContext, DeleteOverrideCustomizationContext, UpdateOverrideCustomizationContext, } from './context'; -import { TCollectionName, TPartialSimpleRow, TSchema } from '../../templates'; +import type { TCollectionName, TPartialSimpleRow, TSchema } from '../../templates'; export type CreateOverrideHandler< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/publication/collection.ts b/packages/datasource-customizer/src/decorators/publication/collection.ts index 2ae7e870e0..6c1758251f 100644 --- a/packages/datasource-customizer/src/decorators/publication/collection.ts +++ b/packages/datasource-customizer/src/decorators/publication/collection.ts @@ -1,13 +1,12 @@ -import { +import type PublicationDataSourceDecorator from './datasource'; +import type { Caller, - CollectionDecorator, CollectionSchema, FieldSchema, RecordData, - SchemaUtils, } from '@forestadmin/datasource-toolkit'; -import PublicationDataSourceDecorator from './datasource'; +import { CollectionDecorator, SchemaUtils } from '@forestadmin/datasource-toolkit'; /** This decorator allows hiding fields */ export default class PublicationCollectionDecorator extends CollectionDecorator { diff --git a/packages/datasource-customizer/src/decorators/publication/datasource.ts b/packages/datasource-customizer/src/decorators/publication/datasource.ts index 17ad14e4f5..02a73a1f92 100644 --- a/packages/datasource-customizer/src/decorators/publication/datasource.ts +++ b/packages/datasource-customizer/src/decorators/publication/datasource.ts @@ -1,4 +1,6 @@ -import { DataSource, DataSourceDecorator, Logger } from '@forestadmin/datasource-toolkit'; +import type { DataSource, Logger } from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; import PublicationCollectionDecorator from './collection'; diff --git a/packages/datasource-customizer/src/decorators/relation/collection.ts b/packages/datasource-customizer/src/decorators/relation/collection.ts index 921c38aff3..1bb2969d4c 100644 --- a/packages/datasource-customizer/src/decorators/relation/collection.ts +++ b/packages/datasource-customizer/src/decorators/relation/collection.ts @@ -1,25 +1,27 @@ -import { +import type { RelationDefinition } from './types'; +import type { AggregateResult, Aggregation, Caller, Collection, - CollectionDecorator, CollectionSchema, - CollectionUtils, ColumnSchema, ConditionTree, - ConditionTreeLeaf, DataSourceDecorator, - Filter, PaginatedFilter, - Projection, RecordData, - RecordUtils, RelationSchema, - SchemaUtils, } from '@forestadmin/datasource-toolkit'; -import { RelationDefinition } from './types'; +import { + CollectionDecorator, + CollectionUtils, + ConditionTreeLeaf, + Filter, + Projection, + RecordUtils, + SchemaUtils, +} from '@forestadmin/datasource-toolkit'; export default class RelationCollectionDecorator extends CollectionDecorator { override readonly dataSource: DataSourceDecorator; diff --git a/packages/datasource-customizer/src/decorators/relation/types.ts b/packages/datasource-customizer/src/decorators/relation/types.ts index 2d4eac331d..790117192c 100644 --- a/packages/datasource-customizer/src/decorators/relation/types.ts +++ b/packages/datasource-customizer/src/decorators/relation/types.ts @@ -1,4 +1,4 @@ -import { +import type { ManyToManySchema, ManyToOneSchema, OneToManySchema, diff --git a/packages/datasource-customizer/src/decorators/rename-collection/collection.ts b/packages/datasource-customizer/src/decorators/rename-collection/collection.ts index e6afcb6dc9..9e53e2a71e 100644 --- a/packages/datasource-customizer/src/decorators/rename-collection/collection.ts +++ b/packages/datasource-customizer/src/decorators/rename-collection/collection.ts @@ -1,10 +1,7 @@ -import { - CollectionDecorator, - CollectionSchema, - FieldSchema, -} from '@forestadmin/datasource-toolkit'; +import type CollectionRenameDataSourceDecorator from './datasource'; +import type { CollectionSchema, FieldSchema } from '@forestadmin/datasource-toolkit'; -import CollectionRenameDataSourceDecorator from './datasource'; +import { CollectionDecorator } from '@forestadmin/datasource-toolkit'; /** * This decorator renames collections. diff --git a/packages/datasource-customizer/src/decorators/rename-collection/datasource.ts b/packages/datasource-customizer/src/decorators/rename-collection/datasource.ts index 18fb520bb0..568c283e61 100644 --- a/packages/datasource-customizer/src/decorators/rename-collection/datasource.ts +++ b/packages/datasource-customizer/src/decorators/rename-collection/datasource.ts @@ -1,4 +1,6 @@ -import { DataSource, DataSourceDecorator } from '@forestadmin/datasource-toolkit'; +import type { DataSource } from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; import RenameCollectionCollectionDecorator from './collection'; diff --git a/packages/datasource-customizer/src/decorators/rename-field/collection.ts b/packages/datasource-customizer/src/decorators/rename-field/collection.ts index 45596e4ae0..5b1f7d57b3 100644 --- a/packages/datasource-customizer/src/decorators/rename-field/collection.ts +++ b/packages/datasource-customizer/src/decorators/rename-field/collection.ts @@ -1,19 +1,18 @@ -import { +import type { AggregateResult, Aggregation, Caller, - CollectionDecorator, CollectionSchema, DataSourceDecorator, FieldSchema, - FieldValidator, Filter, PaginatedFilter, Projection, RecordData, - SchemaUtils, } from '@forestadmin/datasource-toolkit'; +import { CollectionDecorator, FieldValidator, SchemaUtils } from '@forestadmin/datasource-toolkit'; + /** * This decorator renames fields. * diff --git a/packages/datasource-customizer/src/decorators/schema/collection.ts b/packages/datasource-customizer/src/decorators/schema/collection.ts index 9249356e9d..ded0e47fe6 100644 --- a/packages/datasource-customizer/src/decorators/schema/collection.ts +++ b/packages/datasource-customizer/src/decorators/schema/collection.ts @@ -1,4 +1,6 @@ -import { CollectionDecorator, CollectionSchema } from '@forestadmin/datasource-toolkit'; +import type { CollectionSchema } from '@forestadmin/datasource-toolkit'; + +import { CollectionDecorator } from '@forestadmin/datasource-toolkit'; /** * This decorator allows to override parts of the collections schema. diff --git a/packages/datasource-customizer/src/decorators/search/collection-search-context.ts b/packages/datasource-customizer/src/decorators/search/collection-search-context.ts index 22dd79d884..6075889efe 100644 --- a/packages/datasource-customizer/src/decorators/search/collection-search-context.ts +++ b/packages/datasource-customizer/src/decorators/search/collection-search-context.ts @@ -1,7 +1,7 @@ -import { Caller, Collection } from '@forestadmin/datasource-toolkit'; +import type { TCollectionName, TConditionTree, TFieldName, TSchema } from '../../templates'; +import type { Caller, Collection } from '@forestadmin/datasource-toolkit'; import CollectionCustomizationContext from '../../context/collection-context'; -import { TCollectionName, TConditionTree, TFieldName, TSchema } from '../../templates'; export type SearchOptions< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/search/collection.ts b/packages/datasource-customizer/src/decorators/search/collection.ts index 88dc408d34..4e5d8f0df3 100644 --- a/packages/datasource-customizer/src/decorators/search/collection.ts +++ b/packages/datasource-customizer/src/decorators/search/collection.ts @@ -1,20 +1,21 @@ -import { +import type { SearchOptions } from './collection-search-context'; +import type { SearchDefinition } from './types'; +import type { Caller, Collection, - CollectionDecorator, CollectionSchema, ColumnSchema, ConditionTree, - ConditionTreeFactory, DataSourceDecorator, PaginatedFilter, PlainConditionTree, } from '@forestadmin/datasource-toolkit'; -import CollectionSearchContext, { SearchOptions } from './collection-search-context'; +import { CollectionDecorator, ConditionTreeFactory } from '@forestadmin/datasource-toolkit'; + +import CollectionSearchContext from './collection-search-context'; import normalizeName from './normalize-name'; import { extractSpecifiedFields, generateConditionTree, parseQuery } from './parse-query'; -import { SearchDefinition } from './types'; export default class SearchCollectionDecorator extends CollectionDecorator { override dataSource: DataSourceDecorator; diff --git a/packages/datasource-customizer/src/decorators/search/custom-parser/condition-tree-query-walker.ts b/packages/datasource-customizer/src/decorators/search/custom-parser/condition-tree-query-walker.ts index 645541f81c..aa82d05163 100644 --- a/packages/datasource-customizer/src/decorators/search/custom-parser/condition-tree-query-walker.ts +++ b/packages/datasource-customizer/src/decorators/search/custom-parser/condition-tree-query-walker.ts @@ -1,18 +1,15 @@ -import { - Caller, - ColumnSchema, - ConditionTree, - ConditionTreeFactory, -} from '@forestadmin/datasource-toolkit'; - -import buildFieldFilter from '../filter-builder/index'; -import QueryListener from '../generated-parser/QueryListener'; -import { +import type { NegatedContext, PropertyMatchingContext, QuotedContext, WordContext, } from '../generated-parser/QueryParser'; +import type { Caller, ColumnSchema, ConditionTree } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory } from '@forestadmin/datasource-toolkit'; + +import buildFieldFilter from '../filter-builder/index'; +import QueryListener from '../generated-parser/QueryListener'; import normalizeName from '../normalize-name'; export default class ConditionTreeQueryWalker extends QueryListener { diff --git a/packages/datasource-customizer/src/decorators/search/custom-parser/fields-query-walker.ts b/packages/datasource-customizer/src/decorators/search/custom-parser/fields-query-walker.ts index ca89e4fa97..d8c53b00bf 100644 --- a/packages/datasource-customizer/src/decorators/search/custom-parser/fields-query-walker.ts +++ b/packages/datasource-customizer/src/decorators/search/custom-parser/fields-query-walker.ts @@ -1,5 +1,6 @@ +import type { PropertyMatchingContext } from '../generated-parser/QueryParser'; + import QueryListener from '../generated-parser/QueryListener'; -import { PropertyMatchingContext } from '../generated-parser/QueryParser'; export default class FieldsQueryWalker extends QueryListener { public fields: string[] = []; diff --git a/packages/datasource-customizer/src/decorators/search/filter-builder/build-basic-array-field-filter.ts b/packages/datasource-customizer/src/decorators/search/filter-builder/build-basic-array-field-filter.ts index 1a6e96b05d..ed2f8871c4 100644 --- a/packages/datasource-customizer/src/decorators/search/filter-builder/build-basic-array-field-filter.ts +++ b/packages/datasource-customizer/src/decorators/search/filter-builder/build-basic-array-field-filter.ts @@ -1,9 +1,6 @@ -import { - ConditionTree, - ConditionTreeFactory, - ConditionTreeLeaf, - Operator, -} from '@forestadmin/datasource-toolkit'; +import type { ConditionTree, Operator } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import buildDefaultCondition from './utils/build-default-condition'; diff --git a/packages/datasource-customizer/src/decorators/search/filter-builder/build-boolean-field-filter.ts b/packages/datasource-customizer/src/decorators/search/filter-builder/build-boolean-field-filter.ts index 5513cedf00..ded38777ae 100644 --- a/packages/datasource-customizer/src/decorators/search/filter-builder/build-boolean-field-filter.ts +++ b/packages/datasource-customizer/src/decorators/search/filter-builder/build-boolean-field-filter.ts @@ -1,9 +1,6 @@ -import { - ConditionTree, - ConditionTreeFactory, - ConditionTreeLeaf, - Operator, -} from '@forestadmin/datasource-toolkit'; +import type { ConditionTree, Operator } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import buildDefaultCondition from './utils/build-default-condition'; diff --git a/packages/datasource-customizer/src/decorators/search/filter-builder/build-date-field-filter.ts b/packages/datasource-customizer/src/decorators/search/filter-builder/build-date-field-filter.ts index 013de93fb2..8f96711d90 100644 --- a/packages/datasource-customizer/src/decorators/search/filter-builder/build-date-field-filter.ts +++ b/packages/datasource-customizer/src/decorators/search/filter-builder/build-date-field-filter.ts @@ -1,11 +1,7 @@ /* eslint-disable no-continue */ -import { - ColumnType, - ConditionTree, - ConditionTreeFactory, - ConditionTreeLeaf, - Operator, -} from '@forestadmin/datasource-toolkit'; +import type { ColumnType, ConditionTree, Operator } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import { DateTime } from 'luxon'; import buildDefaultCondition from './utils/build-default-condition'; diff --git a/packages/datasource-customizer/src/decorators/search/filter-builder/build-enum-array-field-filter.ts b/packages/datasource-customizer/src/decorators/search/filter-builder/build-enum-array-field-filter.ts index bbd878f938..e223bc959d 100644 --- a/packages/datasource-customizer/src/decorators/search/filter-builder/build-enum-array-field-filter.ts +++ b/packages/datasource-customizer/src/decorators/search/filter-builder/build-enum-array-field-filter.ts @@ -1,4 +1,4 @@ -import { ColumnSchema, ConditionTree } from '@forestadmin/datasource-toolkit'; +import type { ColumnSchema, ConditionTree } from '@forestadmin/datasource-toolkit'; import buildBasicArrayFieldFilter from './build-basic-array-field-filter'; import buildDefaultCondition from './utils/build-default-condition'; diff --git a/packages/datasource-customizer/src/decorators/search/filter-builder/build-enum-field-filter.ts b/packages/datasource-customizer/src/decorators/search/filter-builder/build-enum-field-filter.ts index 503a417029..055ba2b326 100644 --- a/packages/datasource-customizer/src/decorators/search/filter-builder/build-enum-field-filter.ts +++ b/packages/datasource-customizer/src/decorators/search/filter-builder/build-enum-field-filter.ts @@ -1,9 +1,6 @@ -import { - ColumnSchema, - ConditionTree, - ConditionTreeFactory, - ConditionTreeLeaf, -} from '@forestadmin/datasource-toolkit'; +import type { ColumnSchema, ConditionTree } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import buildDefaultCondition from './utils/build-default-condition'; import findEnumValue from './utils/find-enum-value'; diff --git a/packages/datasource-customizer/src/decorators/search/filter-builder/build-number-array-field-filter.ts b/packages/datasource-customizer/src/decorators/search/filter-builder/build-number-array-field-filter.ts index e7dba103c4..e4f8c68b11 100644 --- a/packages/datasource-customizer/src/decorators/search/filter-builder/build-number-array-field-filter.ts +++ b/packages/datasource-customizer/src/decorators/search/filter-builder/build-number-array-field-filter.ts @@ -1,4 +1,4 @@ -import { ConditionTree, Operator } from '@forestadmin/datasource-toolkit'; +import type { ConditionTree, Operator } from '@forestadmin/datasource-toolkit'; import buildBasicArrayFieldFilter from './build-basic-array-field-filter'; import buildDefaultCondition from './utils/build-default-condition'; diff --git a/packages/datasource-customizer/src/decorators/search/filter-builder/build-number-field-filter.ts b/packages/datasource-customizer/src/decorators/search/filter-builder/build-number-field-filter.ts index 3575a158c6..ae0f0a9ec9 100644 --- a/packages/datasource-customizer/src/decorators/search/filter-builder/build-number-field-filter.ts +++ b/packages/datasource-customizer/src/decorators/search/filter-builder/build-number-field-filter.ts @@ -1,10 +1,7 @@ /* eslint-disable no-continue */ -import { - ConditionTree, - ConditionTreeFactory, - ConditionTreeLeaf, - Operator, -} from '@forestadmin/datasource-toolkit'; +import type { ConditionTree, Operator } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import buildDefaultCondition from './utils/build-default-condition'; diff --git a/packages/datasource-customizer/src/decorators/search/filter-builder/build-string-array-field-filter.ts b/packages/datasource-customizer/src/decorators/search/filter-builder/build-string-array-field-filter.ts index 659410b5d9..1f79116d19 100644 --- a/packages/datasource-customizer/src/decorators/search/filter-builder/build-string-array-field-filter.ts +++ b/packages/datasource-customizer/src/decorators/search/filter-builder/build-string-array-field-filter.ts @@ -1,4 +1,4 @@ -import { ConditionTree, Operator } from '@forestadmin/datasource-toolkit'; +import type { ConditionTree, Operator } from '@forestadmin/datasource-toolkit'; import buildBasicArrayFieldFilter from './build-basic-array-field-filter'; diff --git a/packages/datasource-customizer/src/decorators/search/filter-builder/build-string-field-filter.ts b/packages/datasource-customizer/src/decorators/search/filter-builder/build-string-field-filter.ts index 07b07e298a..f4dc009dcc 100644 --- a/packages/datasource-customizer/src/decorators/search/filter-builder/build-string-field-filter.ts +++ b/packages/datasource-customizer/src/decorators/search/filter-builder/build-string-field-filter.ts @@ -1,11 +1,8 @@ /* eslint-disable no-continue */ -import { - ConditionTree, - ConditionTreeFactory, - ConditionTreeLeaf, - Operator, -} from '@forestadmin/datasource-toolkit'; +import type { ConditionTree, Operator } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import buildDefaultCondition from './utils/build-default-condition'; diff --git a/packages/datasource-customizer/src/decorators/search/filter-builder/build-uuid-field-filter.ts b/packages/datasource-customizer/src/decorators/search/filter-builder/build-uuid-field-filter.ts index 5541417303..735845f984 100644 --- a/packages/datasource-customizer/src/decorators/search/filter-builder/build-uuid-field-filter.ts +++ b/packages/datasource-customizer/src/decorators/search/filter-builder/build-uuid-field-filter.ts @@ -1,9 +1,6 @@ -import { - ConditionTree, - ConditionTreeFactory, - ConditionTreeLeaf, - Operator, -} from '@forestadmin/datasource-toolkit'; +import type { ConditionTree, Operator } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import { validate as uuidValidate } from 'uuid'; import buildDefaultCondition from './utils/build-default-condition'; diff --git a/packages/datasource-customizer/src/decorators/search/filter-builder/index.ts b/packages/datasource-customizer/src/decorators/search/filter-builder/index.ts index e5541ade4c..118341a707 100644 --- a/packages/datasource-customizer/src/decorators/search/filter-builder/index.ts +++ b/packages/datasource-customizer/src/decorators/search/filter-builder/index.ts @@ -1,13 +1,13 @@ -import { +import type { Caller, ColumnSchema, ColumnType, ConditionTree, - ConditionTreeFactory, - ConditionTreeLeaf, PrimitiveTypes, } from '@forestadmin/datasource-toolkit'; +import { ConditionTreeFactory, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; + import buildBooleanFieldFilter from './build-boolean-field-filter'; import buildDateFieldFilter from './build-date-field-filter'; import buildEnumArrayFieldFilter from './build-enum-array-field-filter'; diff --git a/packages/datasource-customizer/src/decorators/search/filter-builder/utils/build-default-condition.ts b/packages/datasource-customizer/src/decorators/search/filter-builder/utils/build-default-condition.ts index b530df1f39..ededa14c26 100644 --- a/packages/datasource-customizer/src/decorators/search/filter-builder/utils/build-default-condition.ts +++ b/packages/datasource-customizer/src/decorators/search/filter-builder/utils/build-default-condition.ts @@ -1,4 +1,6 @@ -import { ConditionTree, ConditionTreeFactory } from '@forestadmin/datasource-toolkit'; +import type { ConditionTree } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory } from '@forestadmin/datasource-toolkit'; export default function buildDefaultCondition(isNegated: boolean): ConditionTree { return isNegated ? ConditionTreeFactory.MatchAll : ConditionTreeFactory.MatchNone; diff --git a/packages/datasource-customizer/src/decorators/search/filter-builder/utils/find-enum-value.ts b/packages/datasource-customizer/src/decorators/search/filter-builder/utils/find-enum-value.ts index 19f47286a7..bee9edad03 100644 --- a/packages/datasource-customizer/src/decorators/search/filter-builder/utils/find-enum-value.ts +++ b/packages/datasource-customizer/src/decorators/search/filter-builder/utils/find-enum-value.ts @@ -1,4 +1,4 @@ -import { ColumnSchema } from '@forestadmin/datasource-toolkit'; +import type { ColumnSchema } from '@forestadmin/datasource-toolkit'; function normalize(value: string): string { return value.trim().toLocaleLowerCase(); diff --git a/packages/datasource-customizer/src/decorators/search/parse-query.ts b/packages/datasource-customizer/src/decorators/search/parse-query.ts index 8117a28561..71d7adcb4e 100644 --- a/packages/datasource-customizer/src/decorators/search/parse-query.ts +++ b/packages/datasource-customizer/src/decorators/search/parse-query.ts @@ -1,4 +1,6 @@ -import { Caller, ColumnSchema, ConditionTree } from '@forestadmin/datasource-toolkit'; +import type { QueryContext } from './generated-parser/QueryParser'; +import type { Caller, ColumnSchema, ConditionTree } from '@forestadmin/datasource-toolkit'; + import { CharStream, CommonTokenStream, ParseTreeWalker } from 'antlr4'; import ConditionTreeQueryWalker from './custom-parser/condition-tree-query-walker'; @@ -15,7 +17,6 @@ import CustomQueryParser from './custom-parser/custom-query-parser'; */ import FieldsQueryWalker from './custom-parser/fields-query-walker'; import QueryLexer from './generated-parser/QueryLexer'; -import { QueryContext } from './generated-parser/QueryParser'; export function parseQuery(query: string): QueryContext { const chars = new CharStream(query?.trim()); // replace this with a FileStream as required diff --git a/packages/datasource-customizer/src/decorators/search/types.ts b/packages/datasource-customizer/src/decorators/search/types.ts index 675ed2d8aa..a1ae0af9c5 100644 --- a/packages/datasource-customizer/src/decorators/search/types.ts +++ b/packages/datasource-customizer/src/decorators/search/types.ts @@ -1,5 +1,5 @@ -import CollectionSearchContext from './collection-search-context'; -import { TCollectionName, TConditionTree, TSchema } from '../../templates'; +import type CollectionSearchContext from './collection-search-context'; +import type { TCollectionName, TConditionTree, TSchema } from '../../templates'; export type SearchDefinition< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/segment/collection.ts b/packages/datasource-customizer/src/decorators/segment/collection.ts index e4a8f25600..7c5a04d25d 100644 --- a/packages/datasource-customizer/src/decorators/segment/collection.ts +++ b/packages/datasource-customizer/src/decorators/segment/collection.ts @@ -1,17 +1,16 @@ +import type { SegmentDefinition } from './types'; +import type { Caller, CollectionSchema, PaginatedFilter } from '@forestadmin/datasource-toolkit'; + import { BusinessError, - Caller, CollectionDecorator, - CollectionSchema, ConditionTree, ConditionTreeFactory, ConditionTreeLeaf, ConditionTreeValidator, - PaginatedFilter, SchemaUtils, } from '@forestadmin/datasource-toolkit'; -import { SegmentDefinition } from './types'; import CollectionCustomizationContext from '../../context/collection-context'; export default class SegmentCollectionDecorator extends CollectionDecorator { diff --git a/packages/datasource-customizer/src/decorators/segment/types.ts b/packages/datasource-customizer/src/decorators/segment/types.ts index a97848be99..45b5596645 100644 --- a/packages/datasource-customizer/src/decorators/segment/types.ts +++ b/packages/datasource-customizer/src/decorators/segment/types.ts @@ -1,5 +1,5 @@ -import CollectionCustomizationContext from '../../context/collection-context'; -import { TCollectionName, TConditionTree, TSchema } from '../../templates'; +import type CollectionCustomizationContext from '../../context/collection-context'; +import type { TCollectionName, TConditionTree, TSchema } from '../../templates'; export type SegmentDefinition< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/sort-emulate/collection.ts b/packages/datasource-customizer/src/decorators/sort-emulate/collection.ts index f4817f22d9..b605b7af42 100644 --- a/packages/datasource-customizer/src/decorators/sort-emulate/collection.ts +++ b/packages/datasource-customizer/src/decorators/sort-emulate/collection.ts @@ -1,16 +1,19 @@ -import { +import type { Caller, - CollectionDecorator, CollectionSchema, - ConditionTreeFactory, DataSourceDecorator, FieldSchema, - FieldValidator, - Filter, PaginatedFilter, PlainSortClause, Projection, RecordData, +} from '@forestadmin/datasource-toolkit'; + +import { + CollectionDecorator, + ConditionTreeFactory, + FieldValidator, + Filter, RecordUtils, SchemaUtils, Sort, diff --git a/packages/datasource-customizer/src/decorators/validation/collection.ts b/packages/datasource-customizer/src/decorators/validation/collection.ts index 4ad0d258f0..f586f16443 100644 --- a/packages/datasource-customizer/src/decorators/validation/collection.ts +++ b/packages/datasource-customizer/src/decorators/validation/collection.ts @@ -1,14 +1,17 @@ -import { +import type { Caller, - CollectionDecorator, CollectionSchema, ColumnSchema, ColumnSchemaValidation, - ConditionTreeFactory, ConditionTreeLeaf, - FieldValidator, Filter, RecordData, +} from '@forestadmin/datasource-toolkit'; + +import { + CollectionDecorator, + ConditionTreeFactory, + FieldValidator, SchemaUtils, ValidationError, } from '@forestadmin/datasource-toolkit'; diff --git a/packages/datasource-customizer/src/decorators/write/create-relations/collection.ts b/packages/datasource-customizer/src/decorators/write/create-relations/collection.ts index 7470a72ee6..859baa1ab7 100644 --- a/packages/datasource-customizer/src/decorators/write/create-relations/collection.ts +++ b/packages/datasource-customizer/src/decorators/write/create-relations/collection.ts @@ -1,11 +1,14 @@ -import { +import type { Caller, - CollectionDecorator, - ConditionTreeLeaf, - Filter, ManyToOneSchema, OneToOneSchema, RecordData, +} from '@forestadmin/datasource-toolkit'; + +import { + CollectionDecorator, + ConditionTreeLeaf, + Filter, SchemaUtils, } from '@forestadmin/datasource-toolkit'; diff --git a/packages/datasource-customizer/src/decorators/write/datasource.ts b/packages/datasource-customizer/src/decorators/write/datasource.ts index c2745e3c26..30c11029a9 100644 --- a/packages/datasource-customizer/src/decorators/write/datasource.ts +++ b/packages/datasource-customizer/src/decorators/write/datasource.ts @@ -1,4 +1,6 @@ -import { DataSource, DataSourceDecorator } from '@forestadmin/datasource-toolkit'; +import type { DataSource } from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; import CreateRelationsCollectionDecorator from './create-relations/collection'; import UpdateRelationsCollectionDecorator from './update-relations/collection'; diff --git a/packages/datasource-customizer/src/decorators/write/update-relations/collection.ts b/packages/datasource-customizer/src/decorators/write/update-relations/collection.ts index 6bc3455b80..d919fd587c 100644 --- a/packages/datasource-customizer/src/decorators/write/update-relations/collection.ts +++ b/packages/datasource-customizer/src/decorators/write/update-relations/collection.ts @@ -1,12 +1,15 @@ -import { +import type { Caller, + ManyToOneSchema, + OneToOneSchema, + RecordData, +} from '@forestadmin/datasource-toolkit'; + +import { CollectionDecorator, ConditionTreeFactory, Filter, - ManyToOneSchema, - OneToOneSchema, Projection, - RecordData, SchemaUtils, } from '@forestadmin/datasource-toolkit'; diff --git a/packages/datasource-customizer/src/decorators/write/write-replace/collection.ts b/packages/datasource-customizer/src/decorators/write/write-replace/collection.ts index c74618a6bf..d610e07d0f 100644 --- a/packages/datasource-customizer/src/decorators/write/write-replace/collection.ts +++ b/packages/datasource-customizer/src/decorators/write/write-replace/collection.ts @@ -1,17 +1,20 @@ -import { +import type { WriteDefinition } from './types'; +import type { Caller, - CollectionDecorator, CollectionSchema, DataSourceDecorator, - FieldValidator, Filter, RecordData, +} from '@forestadmin/datasource-toolkit'; + +import { + CollectionDecorator, + FieldValidator, RecordValidator, SchemaUtils, } from '@forestadmin/datasource-toolkit'; import WriteCustomizationContext from './context'; -import { WriteDefinition } from './types'; export default class WriteReplacerCollectionDecorator extends CollectionDecorator { private handlers: Record = {}; diff --git a/packages/datasource-customizer/src/decorators/write/write-replace/context.ts b/packages/datasource-customizer/src/decorators/write/write-replace/context.ts index 8991bedddf..e530a7da85 100644 --- a/packages/datasource-customizer/src/decorators/write/write-replace/context.ts +++ b/packages/datasource-customizer/src/decorators/write/write-replace/context.ts @@ -1,7 +1,7 @@ -import { Caller, Collection, Filter } from '@forestadmin/datasource-toolkit'; +import type { TCollectionName, TFilter, TPartialSimpleRow, TSchema } from '../../../templates'; +import type { Caller, Collection, Filter } from '@forestadmin/datasource-toolkit'; import CollectionCustomizationContext from '../../../context/collection-context'; -import { TCollectionName, TFilter, TPartialSimpleRow, TSchema } from '../../../templates'; export default class WriteCustomizationContext< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/decorators/write/write-replace/types.ts b/packages/datasource-customizer/src/decorators/write/write-replace/types.ts index 57054060ed..a6fb9c4408 100644 --- a/packages/datasource-customizer/src/decorators/write/write-replace/types.ts +++ b/packages/datasource-customizer/src/decorators/write/write-replace/types.ts @@ -1,5 +1,12 @@ +import type { + TCollectionName, + TFieldName, + TFieldType, + TPartialRow, + TSchema, +} from '../../../templates'; + import WriteCustomizationContext from './context'; -import { TCollectionName, TFieldName, TFieldType, TPartialRow, TSchema } from '../../../templates'; export { WriteCustomizationContext }; diff --git a/packages/datasource-customizer/src/plugins/add-external-relation.ts b/packages/datasource-customizer/src/plugins/add-external-relation.ts index f3a1bcb116..6122ca6f9a 100644 --- a/packages/datasource-customizer/src/plugins/add-external-relation.ts +++ b/packages/datasource-customizer/src/plugins/add-external-relation.ts @@ -1,9 +1,9 @@ -import { SchemaUtils } from '@forestadmin/datasource-toolkit'; +import type CollectionCustomizer from '../collection-customizer'; +import type DataSourceCustomizer from '../datasource-customizer'; +import type { TCollectionName, TFieldName, TSchema } from '../templates'; +import type { OneToManyEmbeddedDefinition } from '../types'; -import CollectionCustomizer from '../collection-customizer'; -import DataSourceCustomizer from '../datasource-customizer'; -import { TCollectionName, TFieldName, TSchema } from '../templates'; -import { OneToManyEmbeddedDefinition } from '../types'; +import { SchemaUtils } from '@forestadmin/datasource-toolkit'; export default async function addExternalRelation< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/plugins/import-field.ts b/packages/datasource-customizer/src/plugins/import-field.ts index 9977fe1216..a0dc7c2076 100644 --- a/packages/datasource-customizer/src/plugins/import-field.ts +++ b/packages/datasource-customizer/src/plugins/import-field.ts @@ -1,9 +1,10 @@ -import { ColumnSchema, RecordUtils, SchemaUtils } from '@forestadmin/datasource-toolkit'; +import type CollectionCustomizer from '../collection-customizer'; +import type DataSourceCustomizer from '../datasource-customizer'; +import type { OperatorDefinition } from '../decorators/operators-emulate/types'; +import type { TCollectionName, TColumnName, TFieldName, TSchema } from '../templates'; +import type { ColumnSchema } from '@forestadmin/datasource-toolkit'; -import CollectionCustomizer from '../collection-customizer'; -import DataSourceCustomizer from '../datasource-customizer'; -import { OperatorDefinition } from '../decorators/operators-emulate/types'; -import { TCollectionName, TColumnName, TFieldName, TSchema } from '../templates'; +import { RecordUtils, SchemaUtils } from '@forestadmin/datasource-toolkit'; export default async function importField< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/templates.ts b/packages/datasource-customizer/src/templates.ts index b7612a3812..2c0c324f36 100644 --- a/packages/datasource-customizer/src/templates.ts +++ b/packages/datasource-customizer/src/templates.ts @@ -1,4 +1,4 @@ -import { +import type { AggregationOperation, Aggregator, DateOperation, diff --git a/packages/datasource-customizer/src/types.ts b/packages/datasource-customizer/src/types.ts index 9e49a26e10..01005a9237 100644 --- a/packages/datasource-customizer/src/types.ts +++ b/packages/datasource-customizer/src/types.ts @@ -1,9 +1,8 @@ -import { Logger, PrimitiveTypes } from '@forestadmin/datasource-toolkit'; - -import CollectionCustomizer from './collection-customizer'; -import CollectionCustomizationContext from './context/collection-context'; -import DataSourceCustomizer from './datasource-customizer'; -import { TCollectionName, TFieldName, TRow, TSchema } from './templates'; +import type CollectionCustomizer from './collection-customizer'; +import type CollectionCustomizationContext from './context/collection-context'; +import type DataSourceCustomizer from './datasource-customizer'; +import type { TCollectionName, TFieldName, TRow, TSchema } from './templates'; +import type { Logger, PrimitiveTypes } from '@forestadmin/datasource-toolkit'; export type OneToManyEmbeddedDefinition< S extends TSchema = TSchema, diff --git a/packages/datasource-customizer/src/typing-generator.ts b/packages/datasource-customizer/src/typing-generator.ts index 41a89c0479..fee94994e9 100644 --- a/packages/datasource-customizer/src/typing-generator.ts +++ b/packages/datasource-customizer/src/typing-generator.ts @@ -1,12 +1,14 @@ -import type { Logger, ManyToOneSchema, OneToOneSchema } from '@forestadmin/datasource-toolkit'; - -import { +import type { Collection, - CollectionUtils, ColumnSchema, ColumnType, DataSource, + Logger, + ManyToOneSchema, + OneToOneSchema, } from '@forestadmin/datasource-toolkit'; + +import { CollectionUtils } from '@forestadmin/datasource-toolkit'; import { readFile, writeFile } from 'fs/promises'; export default class TypingGenerator { diff --git a/packages/datasource-customizer/test/collection-customizer.test.ts b/packages/datasource-customizer/test/collection-customizer.test.ts index 92f6f6320a..4439f185a9 100644 --- a/packages/datasource-customizer/test/collection-customizer.test.ts +++ b/packages/datasource-customizer/test/collection-customizer.test.ts @@ -1,22 +1,18 @@ /* eslint-disable @typescript-eslint/ban-ts-comment */ -import { - ColumnSchema, - ConditionTreeLeaf, - MissingFieldError, - Sort, -} from '@forestadmin/datasource-toolkit'; -import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; - -import { +import type { CollectionCustomizationContext, - CollectionCustomizer, ComputedDefinition, DataSourceChartDefinition, - DataSourceCustomizer, } from '../src'; -import { ActionDefinition } from '../src/decorators/actions/types/actions'; -import { WriteDefinition } from '../src/decorators/write/write-replace/types'; +import type { ActionDefinition } from '../src/decorators/actions/types/actions'; +import type { WriteDefinition } from '../src/decorators/write/write-replace/types'; +import type { ColumnSchema } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeLeaf, MissingFieldError, Sort } from '@forestadmin/datasource-toolkit'; +import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; + +import { CollectionCustomizer, DataSourceCustomizer } from '../src'; describe('Builder > Collection', () => { const logger = () => {}; diff --git a/packages/datasource-customizer/test/context/context.test.ts b/packages/datasource-customizer/test/context/context.test.ts index e31c2696be..acb360b062 100644 --- a/packages/datasource-customizer/test/context/context.test.ts +++ b/packages/datasource-customizer/test/context/context.test.ts @@ -1,4 +1,5 @@ -import { Caller, Collection } from '@forestadmin/datasource-toolkit'; +import type { Caller, Collection } from '@forestadmin/datasource-toolkit'; + import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import CollectionCustomizationContext from '../../src/context/collection-context'; diff --git a/packages/datasource-customizer/test/context/wrapper.test.ts b/packages/datasource-customizer/test/context/wrapper.test.ts index b519fd12c0..862ec1218e 100644 --- a/packages/datasource-customizer/test/context/wrapper.test.ts +++ b/packages/datasource-customizer/test/context/wrapper.test.ts @@ -1,9 +1,8 @@ +import type { Caller, Collection, DataSource } from '@forestadmin/datasource-toolkit'; + import { Aggregation, - Caller, - Collection, ConditionTreeLeaf, - DataSource, Filter, MissingFieldError, Page, diff --git a/packages/datasource-customizer/test/decorators/actions/collection.test.ts b/packages/datasource-customizer/test/decorators/actions/collection.test.ts index ebf41cc686..1052e8d8ce 100644 --- a/packages/datasource-customizer/test/decorators/actions/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/actions/collection.test.ts @@ -1,17 +1,12 @@ -import { - ActionScope, - Collection, - DataSource, - DataSourceDecorator, - File, - Filter, -} from '@forestadmin/datasource-toolkit'; +import type ActionContextSingle from '../../../src/decorators/actions/context/single'; +import type { DynamicField } from '../../../src/decorators/actions/types/fields'; +import type { TSchema } from '../../../src/templates'; +import type { ActionScope, Collection, DataSource, File } from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator, Filter } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import ActionCollection from '../../../src/decorators/actions/collection'; -import ActionContextSingle from '../../../src/decorators/actions/context/single'; -import { DynamicField } from '../../../src/decorators/actions/types/fields'; -import { TSchema } from '../../../src/templates'; describe('ActionDecorator', () => { // State diff --git a/packages/datasource-customizer/test/decorators/actions/context.test.ts b/packages/datasource-customizer/test/decorators/actions/context.test.ts index f378afaa19..8102fab319 100644 --- a/packages/datasource-customizer/test/decorators/actions/context.test.ts +++ b/packages/datasource-customizer/test/decorators/actions/context.test.ts @@ -1,4 +1,6 @@ -import { Collection, Filter } from '@forestadmin/datasource-toolkit'; +import type { Collection } from '@forestadmin/datasource-toolkit'; + +import { Filter } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import ActionContext from '../../../src/decorators/actions/context/base'; diff --git a/packages/datasource-customizer/test/decorators/binary/collection.test.ts b/packages/datasource-customizer/test/decorators/binary/collection.test.ts index dd625e25d9..c3d821ada0 100644 --- a/packages/datasource-customizer/test/decorators/binary/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/binary/collection.test.ts @@ -1,14 +1,13 @@ +import type { AggregateResult, Collection, RecordData } from '@forestadmin/datasource-toolkit'; + import { - AggregateResult, Aggregation, - Collection, ConditionTreeBranch, ConditionTreeLeaf, DataSourceDecorator, Filter, PaginatedFilter, Projection, - RecordData, } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; diff --git a/packages/datasource-customizer/test/decorators/chart/collection.test.ts b/packages/datasource-customizer/test/decorators/chart/collection.test.ts index e48bc0a39d..3d0b578964 100644 --- a/packages/datasource-customizer/test/decorators/chart/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/chart/collection.test.ts @@ -1,8 +1,9 @@ -import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; -import { +import type { Collection, DataSource, } from '@forestadmin/datasource-toolkit/dist/src/interfaces/collection'; + +import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import ChartCollectionDecorator from '../../../src/decorators/chart/collection'; diff --git a/packages/datasource-customizer/test/decorators/chart/datasource.test.ts b/packages/datasource-customizer/test/decorators/chart/datasource.test.ts index 2cbf27666f..5e2df0a9ec 100644 --- a/packages/datasource-customizer/test/decorators/chart/datasource.test.ts +++ b/packages/datasource-customizer/test/decorators/chart/datasource.test.ts @@ -1,4 +1,5 @@ -import { DataSource } from '@forestadmin/datasource-toolkit/dist/src/interfaces/collection'; +import type { DataSource } from '@forestadmin/datasource-toolkit/dist/src/interfaces/collection'; + import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import ChartDataSourceDecorator from '../../../src/decorators/chart/datasource'; diff --git a/packages/datasource-customizer/test/decorators/composite-datasource.test.ts b/packages/datasource-customizer/test/decorators/composite-datasource.test.ts index 66c6fdcf60..f34c7d0539 100644 --- a/packages/datasource-customizer/test/decorators/composite-datasource.test.ts +++ b/packages/datasource-customizer/test/decorators/composite-datasource.test.ts @@ -1,4 +1,6 @@ -import { Collection, MissingCollectionError } from '@forestadmin/datasource-toolkit'; +import type { Collection } from '@forestadmin/datasource-toolkit'; + +import { MissingCollectionError } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import CompositeDataSource from '../../src/decorators/composite-datasource'; diff --git a/packages/datasource-customizer/test/decorators/computed/collection.test.ts b/packages/datasource-customizer/test/decorators/computed/collection.test.ts index 5cc8b3c9b4..0f8e17e34b 100644 --- a/packages/datasource-customizer/test/decorators/computed/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/computed/collection.test.ts @@ -1,7 +1,7 @@ +import type { Collection, DataSource } from '@forestadmin/datasource-toolkit'; + import { Aggregation, - Collection, - DataSource, DataSourceDecorator, MissingFieldError, PaginatedFilter, diff --git a/packages/datasource-customizer/test/decorators/computed/utils.test.ts b/packages/datasource-customizer/test/decorators/computed/utils.test.ts index 963c7795e9..6dad6e51e1 100644 --- a/packages/datasource-customizer/test/decorators/computed/utils.test.ts +++ b/packages/datasource-customizer/test/decorators/computed/utils.test.ts @@ -1,6 +1,6 @@ -import { ColumnType } from '@forestadmin/datasource-toolkit'; +import type { ComputedDefinition } from '../../../src/decorators/computed/types'; +import type { ColumnType } from '@forestadmin/datasource-toolkit'; -import { ComputedDefinition } from '../../../src/decorators/computed/types'; import transformUniqueValues from '../../../src/decorators/computed/utils/deduplication'; import { flatten, diff --git a/packages/datasource-customizer/test/decorators/empty/collection.test.ts b/packages/datasource-customizer/test/decorators/empty/collection.test.ts index 1d3e8791e0..f606787d0c 100644 --- a/packages/datasource-customizer/test/decorators/empty/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/empty/collection.test.ts @@ -1,4 +1,6 @@ -import { Collection, DataSource, DataSourceDecorator } from '@forestadmin/datasource-toolkit'; +import type { Collection, DataSource } from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import EmptyCollectionDecorator from '../../../src/decorators/empty/collection'; diff --git a/packages/datasource-customizer/test/decorators/hook/collection.test.ts b/packages/datasource-customizer/test/decorators/hook/collection.test.ts index 3b002a7b31..f95f041c82 100644 --- a/packages/datasource-customizer/test/decorators/hook/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/hook/collection.test.ts @@ -1,4 +1,6 @@ -import { Collection, DataSource, DataSourceDecorator } from '@forestadmin/datasource-toolkit'; +import type { Collection, DataSource } from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import CollectionHookDecorator from '../../../src/decorators/hook/collection'; diff --git a/packages/datasource-customizer/test/decorators/lazy-join/collection.test.ts b/packages/datasource-customizer/test/decorators/lazy-join/collection.test.ts index 81851ad7f7..d52d0ac9c3 100644 --- a/packages/datasource-customizer/test/decorators/lazy-join/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/lazy-join/collection.test.ts @@ -1,10 +1,6 @@ -import { - Aggregation, - Collection, - DataSource, - DataSourceDecorator, - Projection, -} from '@forestadmin/datasource-toolkit'; +import type { Collection, DataSource } from '@forestadmin/datasource-toolkit'; + +import { Aggregation, DataSourceDecorator, Projection } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import LazyJoinDecorator from '../../../src/decorators/lazy-join/collection'; diff --git a/packages/datasource-customizer/test/decorators/operators-emulate/collection.test.ts b/packages/datasource-customizer/test/decorators/operators-emulate/collection.test.ts index 92b10f4f2a..3490a042c1 100644 --- a/packages/datasource-customizer/test/decorators/operators-emulate/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/operators-emulate/collection.test.ts @@ -1,13 +1,16 @@ -import { +import type { Collection, ColumnSchema, - ConditionTreeLeaf, DataSource, + RecordData, +} from '@forestadmin/datasource-toolkit'; + +import { + ConditionTreeLeaf, DataSourceDecorator, MissingFieldError, PaginatedFilter, Projection, - RecordData, RelationFieldAccessDeniedError, } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; diff --git a/packages/datasource-customizer/test/decorators/operators-equivalence/collection.test.ts b/packages/datasource-customizer/test/decorators/operators-equivalence/collection.test.ts index d73ade0ba0..05372718f8 100644 --- a/packages/datasource-customizer/test/decorators/operators-equivalence/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/operators-equivalence/collection.test.ts @@ -1,10 +1,6 @@ -import { - Collection, - ColumnSchema, - ConditionTreeLeaf, - PaginatedFilter, - Projection, -} from '@forestadmin/datasource-toolkit'; +import type { Collection, ColumnSchema } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeLeaf, PaginatedFilter, Projection } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import OperatorsDecorator from '../../../src/decorators/operators-equivalence/collection'; diff --git a/packages/datasource-customizer/test/decorators/override/collection.test.ts b/packages/datasource-customizer/test/decorators/override/collection.test.ts index 63d83abd4d..e076d4d1a6 100644 --- a/packages/datasource-customizer/test/decorators/override/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/override/collection.test.ts @@ -1,4 +1,6 @@ -import { Collection, DataSource, DataSourceDecorator } from '@forestadmin/datasource-toolkit'; +import type { Collection, DataSource } from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import OverrideCollectionDecorator from '../../../src/decorators/override/collection'; diff --git a/packages/datasource-customizer/test/decorators/publication/collection.test.ts b/packages/datasource-customizer/test/decorators/publication/collection.test.ts index 5bb8b11856..bb6829e935 100644 --- a/packages/datasource-customizer/test/decorators/publication/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/publication/collection.test.ts @@ -1,7 +1,9 @@ -import { Collection, DataSource, MissingFieldError } from '@forestadmin/datasource-toolkit'; +import type PublicationCollectionDecorator from '../../../src/decorators/publication/collection'; +import type { Collection, DataSource } from '@forestadmin/datasource-toolkit'; + +import { MissingFieldError } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import PublicationCollectionDecorator from '../../../src/decorators/publication/collection'; import PublicationDataSourceDecorator from '../../../src/decorators/publication/datasource'; describe('PublicationCollectionDecorator', () => { diff --git a/packages/datasource-customizer/test/decorators/publication/datasource.test.ts b/packages/datasource-customizer/test/decorators/publication/datasource.test.ts index 1d2e71fce6..d0bf525a60 100644 --- a/packages/datasource-customizer/test/decorators/publication/datasource.test.ts +++ b/packages/datasource-customizer/test/decorators/publication/datasource.test.ts @@ -1,4 +1,5 @@ -import { DataSource } from '@forestadmin/datasource-toolkit'; +import type { DataSource } from '@forestadmin/datasource-toolkit'; + import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import PublicationDataSourceDecorator from '../../../src/decorators/publication/datasource'; diff --git a/packages/datasource-customizer/test/decorators/relation/collection.test.ts b/packages/datasource-customizer/test/decorators/relation/collection.test.ts index c8d5b8697d..b1df8b6e0e 100644 --- a/packages/datasource-customizer/test/decorators/relation/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/relation/collection.test.ts @@ -1,12 +1,15 @@ -import { - Aggregation, +import type { Collection, ColumnSchema, - ConditionTreeLeaf, DataSource, + ManyToManySchema, +} from '@forestadmin/datasource-toolkit'; + +import { + Aggregation, + ConditionTreeLeaf, DataSourceDecorator, Filter, - ManyToManySchema, MissingColumnError, PaginatedFilter, Projection, diff --git a/packages/datasource-customizer/test/decorators/rename-field/collection.test.ts b/packages/datasource-customizer/test/decorators/rename-field/collection.test.ts index 2c3732c159..fcd1ae5bf1 100644 --- a/packages/datasource-customizer/test/decorators/rename-field/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/rename-field/collection.test.ts @@ -1,9 +1,9 @@ +import type { Collection, DataSource } from '@forestadmin/datasource-toolkit'; + import { Aggregation, - Collection, ConditionTreeBranch, ConditionTreeLeaf, - DataSource, DataSourceDecorator, Filter, MissingFieldError, diff --git a/packages/datasource-customizer/test/decorators/search/collections.test.ts b/packages/datasource-customizer/test/decorators/search/collections.test.ts index f6db218579..54e261bca6 100644 --- a/packages/datasource-customizer/test/decorators/search/collections.test.ts +++ b/packages/datasource-customizer/test/decorators/search/collections.test.ts @@ -1,6 +1,6 @@ +import type { Collection, CollectionSchema } from '@forestadmin/datasource-toolkit'; + import { - Collection, - CollectionSchema, ConditionTreeFactory, ConditionTreeLeaf, DataSourceDecorator, diff --git a/packages/datasource-customizer/test/decorators/search/filter-builder/build-basic-array-field-filter.test.ts b/packages/datasource-customizer/test/decorators/search/filter-builder/build-basic-array-field-filter.test.ts index 9fcdf39f64..f9308316ec 100644 --- a/packages/datasource-customizer/test/decorators/search/filter-builder/build-basic-array-field-filter.test.ts +++ b/packages/datasource-customizer/test/decorators/search/filter-builder/build-basic-array-field-filter.test.ts @@ -1,4 +1,6 @@ -import { ConditionTreeFactory, ConditionTreeLeaf, Operator } from '@forestadmin/datasource-toolkit'; +import type { Operator } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import buildBasicArrayFieldFilter from '../../../../src/decorators/search/filter-builder/build-basic-array-field-filter'; diff --git a/packages/datasource-customizer/test/decorators/search/filter-builder/build-date-field-filter.test.ts b/packages/datasource-customizer/test/decorators/search/filter-builder/build-date-field-filter.test.ts index 92b58017e8..0e32851986 100644 --- a/packages/datasource-customizer/test/decorators/search/filter-builder/build-date-field-filter.test.ts +++ b/packages/datasource-customizer/test/decorators/search/filter-builder/build-date-field-filter.test.ts @@ -1,8 +1,8 @@ +import type { ColumnType, Operator } from '@forestadmin/datasource-toolkit'; + import { - ColumnType, ConditionTreeFactory, ConditionTreeLeaf, - Operator, allOperators, } from '@forestadmin/datasource-toolkit'; diff --git a/packages/datasource-customizer/test/decorators/search/filter-builder/build-enum-array-field-filter.test.ts b/packages/datasource-customizer/test/decorators/search/filter-builder/build-enum-array-field-filter.test.ts index 7afa71e3ff..c120a70e0d 100644 --- a/packages/datasource-customizer/test/decorators/search/filter-builder/build-enum-array-field-filter.test.ts +++ b/packages/datasource-customizer/test/decorators/search/filter-builder/build-enum-array-field-filter.test.ts @@ -1,8 +1,6 @@ -import { - ColumnSchema, - ConditionTreeFactory, - ConditionTreeLeaf, -} from '@forestadmin/datasource-toolkit'; +import type { ColumnSchema } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import buildBasicArrayFieldFilter from '../../../../src/decorators/search/filter-builder/build-basic-array-field-filter'; import buildEnumArrayFieldFilter from '../../../../src/decorators/search/filter-builder/build-enum-array-field-filter'; diff --git a/packages/datasource-customizer/test/decorators/search/filter-builder/build-enum-field-filter.test.ts b/packages/datasource-customizer/test/decorators/search/filter-builder/build-enum-field-filter.test.ts index d3ef4abd2a..9588b5334f 100644 --- a/packages/datasource-customizer/test/decorators/search/filter-builder/build-enum-field-filter.test.ts +++ b/packages/datasource-customizer/test/decorators/search/filter-builder/build-enum-field-filter.test.ts @@ -1,5 +1,6 @@ +import type { ColumnSchema } from '@forestadmin/datasource-toolkit'; + import { - ColumnSchema, ConditionTreeFactory, ConditionTreeLeaf, allOperators, diff --git a/packages/datasource-customizer/test/decorators/search/filter-builder/build-number-array-field.test.ts b/packages/datasource-customizer/test/decorators/search/filter-builder/build-number-array-field.test.ts index 2ca70bfead..2a546d3786 100644 --- a/packages/datasource-customizer/test/decorators/search/filter-builder/build-number-array-field.test.ts +++ b/packages/datasource-customizer/test/decorators/search/filter-builder/build-number-array-field.test.ts @@ -1,4 +1,6 @@ -import { ConditionTreeFactory, ConditionTreeLeaf, Operator } from '@forestadmin/datasource-toolkit'; +import type { Operator } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import buildBasicArrayFieldFilter from '../../../../src/decorators/search/filter-builder/build-basic-array-field-filter'; import buildNumberArrayFieldFilter from '../../../../src/decorators/search/filter-builder/build-number-array-field-filter'; diff --git a/packages/datasource-customizer/test/decorators/search/filter-builder/build-number-field-filter.test.ts b/packages/datasource-customizer/test/decorators/search/filter-builder/build-number-field-filter.test.ts index 3fa410b101..1c8bd036d6 100644 --- a/packages/datasource-customizer/test/decorators/search/filter-builder/build-number-field-filter.test.ts +++ b/packages/datasource-customizer/test/decorators/search/filter-builder/build-number-field-filter.test.ts @@ -1,7 +1,8 @@ +import type { Operator } from '@forestadmin/datasource-toolkit'; + import { ConditionTreeFactory, ConditionTreeLeaf, - Operator, allOperators, } from '@forestadmin/datasource-toolkit'; diff --git a/packages/datasource-customizer/test/decorators/search/filter-builder/build-string-array-field-filter.test.ts b/packages/datasource-customizer/test/decorators/search/filter-builder/build-string-array-field-filter.test.ts index 6cc6de9dd0..d74a0ad0a1 100644 --- a/packages/datasource-customizer/test/decorators/search/filter-builder/build-string-array-field-filter.test.ts +++ b/packages/datasource-customizer/test/decorators/search/filter-builder/build-string-array-field-filter.test.ts @@ -1,4 +1,6 @@ -import { ConditionTreeLeaf, Operator } from '@forestadmin/datasource-toolkit'; +import type { Operator } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import buildBasicArrayFieldFilter from '../../../../src/decorators/search/filter-builder/build-basic-array-field-filter'; import buildStringArrayFieldFilter from '../../../../src/decorators/search/filter-builder/build-string-array-field-filter'; diff --git a/packages/datasource-customizer/test/decorators/search/filter-builder/build-string-field-filter.test.ts b/packages/datasource-customizer/test/decorators/search/filter-builder/build-string-field-filter.test.ts index f6dc7d1f4a..a2beb940da 100644 --- a/packages/datasource-customizer/test/decorators/search/filter-builder/build-string-field-filter.test.ts +++ b/packages/datasource-customizer/test/decorators/search/filter-builder/build-string-field-filter.test.ts @@ -1,4 +1,6 @@ -import { ConditionTreeFactory, ConditionTreeLeaf, Operator } from '@forestadmin/datasource-toolkit'; +import type { Operator } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import buildStringFieldFilter from '../../../../src/decorators/search/filter-builder/build-string-field-filter'; diff --git a/packages/datasource-customizer/test/decorators/search/filter-builder/build-uuid-field-filter.test.ts b/packages/datasource-customizer/test/decorators/search/filter-builder/build-uuid-field-filter.test.ts index e7cd665c1f..cb39cd9a56 100644 --- a/packages/datasource-customizer/test/decorators/search/filter-builder/build-uuid-field-filter.test.ts +++ b/packages/datasource-customizer/test/decorators/search/filter-builder/build-uuid-field-filter.test.ts @@ -1,4 +1,6 @@ -import { ConditionTreeFactory, ConditionTreeLeaf, Operator } from '@forestadmin/datasource-toolkit'; +import type { Operator } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import buildUuidFieldFilter from '../../../../src/decorators/search/filter-builder/build-uuid-field-filter'; diff --git a/packages/datasource-customizer/test/decorators/search/filter-builder/index.test.ts b/packages/datasource-customizer/test/decorators/search/filter-builder/index.test.ts index 95ec29b8b9..4ff48310fa 100644 --- a/packages/datasource-customizer/test/decorators/search/filter-builder/index.test.ts +++ b/packages/datasource-customizer/test/decorators/search/filter-builder/index.test.ts @@ -1,9 +1,8 @@ +import type { Caller, ColumnSchema, PrimitiveTypes } from '@forestadmin/datasource-toolkit'; + import { - Caller, - ColumnSchema, ConditionTreeFactory, ConditionTreeLeaf, - PrimitiveTypes, allOperators, } from '@forestadmin/datasource-toolkit'; diff --git a/packages/datasource-customizer/test/decorators/search/parse-query.test.ts b/packages/datasource-customizer/test/decorators/search/parse-query.test.ts index 0340b6984c..bdb2eac59d 100644 --- a/packages/datasource-customizer/test/decorators/search/parse-query.test.ts +++ b/packages/datasource-customizer/test/decorators/search/parse-query.test.ts @@ -1,9 +1,6 @@ -import { - Caller, - ColumnSchema, - ConditionTreeFactory, - Operator, -} from '@forestadmin/datasource-toolkit'; +import type { Caller, ColumnSchema, Operator } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeFactory } from '@forestadmin/datasource-toolkit'; import { generateConditionTree, parseQuery } from '../../../src/decorators/search/parse-query'; diff --git a/packages/datasource-customizer/test/decorators/segment/collection.test.ts b/packages/datasource-customizer/test/decorators/segment/collection.test.ts index acd1e0f096..00ce6d8157 100644 --- a/packages/datasource-customizer/test/decorators/segment/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/segment/collection.test.ts @@ -1,8 +1,8 @@ +import type { Collection, DataSource } from '@forestadmin/datasource-toolkit'; + import { BusinessError, - Collection, ConditionTreeLeaf, - DataSource, MissingFieldError, } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; diff --git a/packages/datasource-customizer/test/decorators/sort-emulate/collection.test.ts b/packages/datasource-customizer/test/decorators/sort-emulate/collection.test.ts index a3107eb517..eba13f9b5a 100644 --- a/packages/datasource-customizer/test/decorators/sort-emulate/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/sort-emulate/collection.test.ts @@ -1,13 +1,16 @@ -import { +import type { Collection, ColumnSchema, DataSource, + RecordData, +} from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator, MissingFieldError, Page, PaginatedFilter, Projection, - RecordData, Sort, } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; diff --git a/packages/datasource-customizer/test/decorators/validation/collection.test.ts b/packages/datasource-customizer/test/decorators/validation/collection.test.ts index 0ae9cd23af..fc9da66fdf 100644 --- a/packages/datasource-customizer/test/decorators/validation/collection.test.ts +++ b/packages/datasource-customizer/test/decorators/validation/collection.test.ts @@ -1,6 +1,6 @@ +import type { Collection, DataSource } from '@forestadmin/datasource-toolkit'; + import { - Collection, - DataSource, DataSourceDecorator, MissingFieldError, RelationFieldAccessDeniedError, diff --git a/packages/datasource-customizer/test/decorators/write/update-relations/collection_many-to-one.test.ts b/packages/datasource-customizer/test/decorators/write/update-relations/collection_many-to-one.test.ts index 5ac99c7342..e4e52c21dd 100644 --- a/packages/datasource-customizer/test/decorators/write/update-relations/collection_many-to-one.test.ts +++ b/packages/datasource-customizer/test/decorators/write/update-relations/collection_many-to-one.test.ts @@ -1,6 +1,7 @@ /* eslint-disable no-plusplus */ +import type { Collection } from '@forestadmin/datasource-toolkit'; + import { - Collection, ConditionTreeLeaf, DataSourceDecorator, Filter, diff --git a/packages/datasource-customizer/test/decorators/write/update-relations/collection_one-to-one.test.ts b/packages/datasource-customizer/test/decorators/write/update-relations/collection_one-to-one.test.ts index 7d604625c0..91caee3d39 100644 --- a/packages/datasource-customizer/test/decorators/write/update-relations/collection_one-to-one.test.ts +++ b/packages/datasource-customizer/test/decorators/write/update-relations/collection_one-to-one.test.ts @@ -1,6 +1,7 @@ /* eslint-disable no-plusplus */ +import type { Collection } from '@forestadmin/datasource-toolkit'; + import { - Collection, ConditionTreeLeaf, DataSourceDecorator, Filter, diff --git a/packages/datasource-customizer/test/decorators/write/write-replace/collection_basics.test.ts b/packages/datasource-customizer/test/decorators/write/write-replace/collection_basics.test.ts index 16a6305864..ea04a4b22a 100644 --- a/packages/datasource-customizer/test/decorators/write/write-replace/collection_basics.test.ts +++ b/packages/datasource-customizer/test/decorators/write/write-replace/collection_basics.test.ts @@ -1,4 +1,6 @@ -import { ColumnSchema, DataSource, MissingFieldError } from '@forestadmin/datasource-toolkit'; +import type { ColumnSchema, DataSource } from '@forestadmin/datasource-toolkit'; + +import { MissingFieldError } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import WriteDecorator from '../../../../src/decorators/write/write-replace/collection'; diff --git a/packages/datasource-customizer/test/decorators/write/write-replace/collection_relation.test.ts b/packages/datasource-customizer/test/decorators/write/write-replace/collection_relation.test.ts index 03bafb1712..0e8a6104a7 100644 --- a/packages/datasource-customizer/test/decorators/write/write-replace/collection_relation.test.ts +++ b/packages/datasource-customizer/test/decorators/write/write-replace/collection_relation.test.ts @@ -1,5 +1,7 @@ /* eslint-disable no-plusplus */ -import { Collection, DataSourceDecorator } from '@forestadmin/datasource-toolkit'; +import type { Collection } from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import WriteReplacerCollectionDecorator from '../../../../src/decorators/write/write-replace/collection'; diff --git a/packages/datasource-customizer/test/decorators/write/write-replace/collection_simple-creations.test.ts b/packages/datasource-customizer/test/decorators/write/write-replace/collection_simple-creations.test.ts index 3389717a19..6297681bb5 100644 --- a/packages/datasource-customizer/test/decorators/write/write-replace/collection_simple-creations.test.ts +++ b/packages/datasource-customizer/test/decorators/write/write-replace/collection_simple-creations.test.ts @@ -1,8 +1,10 @@ -import { Collection, MissingFieldError } from '@forestadmin/datasource-toolkit'; +import type WriteReplacerCollectionDecorator from '../../../../src/decorators/write/write-replace/collection'; +import type { Collection } from '@forestadmin/datasource-toolkit'; + +import { MissingFieldError } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import WriteDataSourceDecorator from '../../../../src/decorators/write/datasource'; -import WriteReplacerCollectionDecorator from '../../../../src/decorators/write/write-replace/collection'; const caller = factories.caller.build(); diff --git a/packages/datasource-customizer/test/decorators/write/write-replace/collection_simple-updates.test.ts b/packages/datasource-customizer/test/decorators/write/write-replace/collection_simple-updates.test.ts index fa0b3b05aa..6e17d27d91 100644 --- a/packages/datasource-customizer/test/decorators/write/write-replace/collection_simple-updates.test.ts +++ b/packages/datasource-customizer/test/decorators/write/write-replace/collection_simple-updates.test.ts @@ -1,4 +1,6 @@ -import { Collection, MissingFieldError } from '@forestadmin/datasource-toolkit'; +import type { Collection } from '@forestadmin/datasource-toolkit'; + +import { MissingFieldError } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import WriteReplacerCollectionDecorator from '../../../../src/decorators/write/write-replace/collection'; diff --git a/packages/datasource-dummy/src/collections/base.ts b/packages/datasource-dummy/src/collections/base.ts index 0265f29753..9268236a49 100644 --- a/packages/datasource-dummy/src/collections/base.ts +++ b/packages/datasource-dummy/src/collections/base.ts @@ -1,8 +1,7 @@ -import { +import type { ActionResult, AggregateResult, Aggregation, - BaseCollection, Caller, DataSource, FieldSchema, @@ -13,6 +12,8 @@ import { RecordData, } from '@forestadmin/datasource-toolkit'; +import { BaseCollection } from '@forestadmin/datasource-toolkit'; + export default class BaseDummyCollection extends BaseCollection { private static supportedOperators = new Set([ 'Blank', diff --git a/packages/datasource-dummy/src/collections/books.ts b/packages/datasource-dummy/src/collections/books.ts index 97cb93a043..f391374b45 100644 --- a/packages/datasource-dummy/src/collections/books.ts +++ b/packages/datasource-dummy/src/collections/books.ts @@ -1,4 +1,4 @@ -import { DataSource, FieldSchema, RecordData } from '@forestadmin/datasource-toolkit'; +import type { DataSource, FieldSchema, RecordData } from '@forestadmin/datasource-toolkit'; import BaseDummyCollection from './base'; diff --git a/packages/datasource-dummy/src/collections/libraries-books.ts b/packages/datasource-dummy/src/collections/libraries-books.ts index 5d8ddaf107..edab40476d 100644 --- a/packages/datasource-dummy/src/collections/libraries-books.ts +++ b/packages/datasource-dummy/src/collections/libraries-books.ts @@ -1,4 +1,4 @@ -import { DataSource, FieldSchema, RecordData } from '@forestadmin/datasource-toolkit'; +import type { DataSource, FieldSchema, RecordData } from '@forestadmin/datasource-toolkit'; import BaseDummyCollection from './base'; diff --git a/packages/datasource-dummy/src/collections/libraries.ts b/packages/datasource-dummy/src/collections/libraries.ts index 792d613cb0..a8db328715 100644 --- a/packages/datasource-dummy/src/collections/libraries.ts +++ b/packages/datasource-dummy/src/collections/libraries.ts @@ -1,4 +1,4 @@ -import { DataSource, FieldSchema, RecordData } from '@forestadmin/datasource-toolkit'; +import type { DataSource, FieldSchema, RecordData } from '@forestadmin/datasource-toolkit'; import BaseDummyCollection from './base'; diff --git a/packages/datasource-dummy/src/collections/persons.ts b/packages/datasource-dummy/src/collections/persons.ts index a6247f2ad5..72341af61d 100644 --- a/packages/datasource-dummy/src/collections/persons.ts +++ b/packages/datasource-dummy/src/collections/persons.ts @@ -1,4 +1,4 @@ -import { DataSource, FieldSchema, RecordData } from '@forestadmin/datasource-toolkit'; +import type { DataSource, FieldSchema, RecordData } from '@forestadmin/datasource-toolkit'; import BaseDummyCollection from './base'; diff --git a/packages/datasource-dummy/src/index.ts b/packages/datasource-dummy/src/index.ts index fe609bbe45..5f65d5e505 100644 --- a/packages/datasource-dummy/src/index.ts +++ b/packages/datasource-dummy/src/index.ts @@ -1,5 +1,6 @@ +import type { DataSourceFactory } from '@forestadmin/datasource-toolkit'; + import { DataSourceCustomizer } from '@forestadmin/datasource-customizer'; -import { DataSourceFactory } from '@forestadmin/datasource-toolkit'; import DummyDataSource from './datasource'; diff --git a/packages/datasource-mongo/src/connection/create-connection.ts b/packages/datasource-mongo/src/connection/create-connection.ts index 99ccd04570..8ced37edcf 100644 --- a/packages/datasource-mongo/src/connection/create-connection.ts +++ b/packages/datasource-mongo/src/connection/create-connection.ts @@ -1,11 +1,11 @@ import type { ConnectionParams } from '../types'; -import type { Server } from 'net'; +import type { Connection } from 'mongoose'; +import type { AddressInfo, Server } from 'net'; import type { Client } from 'ssh2'; -import type { SshOptions } from 'tunnel-ssh'; +import type { ForwardOptions, ServerOptions, SshOptions, TunnelOptions } from 'tunnel-ssh'; -import mongoose, { Connection } from 'mongoose'; -import { AddressInfo } from 'net'; -import { ForwardOptions, ServerOptions, TunnelOptions, createTunnel } from 'tunnel-ssh'; +import mongoose from 'mongoose'; +import { createTunnel } from 'tunnel-ssh'; import { ConnectionError, SshConnectError } from '../errors'; diff --git a/packages/datasource-mongo/src/introspection/introspector.ts b/packages/datasource-mongo/src/introspection/introspector.ts index a81837ed30..bb121eea4b 100644 --- a/packages/datasource-mongo/src/introspection/introspector.ts +++ b/packages/datasource-mongo/src/introspection/introspector.ts @@ -1,9 +1,4 @@ -import { IntrospectionFormatError } from '@forestadmin/datasource-toolkit'; - -import ReferenceCandidateFinder from './reference-candidates-finder'; -import ReferenceCandidateVerifier from './reference-candidates-verifier'; -import Structure from './structure'; -import { +import type { Introspection, ModelAnalysis, ModelStudy, @@ -11,7 +6,13 @@ import { NodeStudy, PrimitiveDefinition, } from './types'; -import { IntrospectionOptions } from '../types'; +import type { IntrospectionOptions } from '../types'; + +import { IntrospectionFormatError } from '@forestadmin/datasource-toolkit'; + +import ReferenceCandidateFinder from './reference-candidates-finder'; +import ReferenceCandidateVerifier from './reference-candidates-verifier'; +import Structure from './structure'; export default class Introspector { static readonly FORMAT_VERSION = 1; diff --git a/packages/datasource-mongo/src/introspection/list-collections-from-introspection.ts b/packages/datasource-mongo/src/introspection/list-collections-from-introspection.ts index 15672e436e..14a0b5a7fe 100644 --- a/packages/datasource-mongo/src/introspection/list-collections-from-introspection.ts +++ b/packages/datasource-mongo/src/introspection/list-collections-from-introspection.ts @@ -1,4 +1,4 @@ -import { Introspection } from './types'; +import type { Introspection } from './types'; export default function listCollectionsFromIntrospection(introspection: Introspection): string[] { if (!introspection) { diff --git a/packages/datasource-mongo/src/introspection/reference-candidates-finder.ts b/packages/datasource-mongo/src/introspection/reference-candidates-finder.ts index 949c21fc21..070a4604f8 100644 --- a/packages/datasource-mongo/src/introspection/reference-candidates-finder.ts +++ b/packages/datasource-mongo/src/introspection/reference-candidates-finder.ts @@ -1,6 +1,6 @@ /* eslint-disable no-underscore-dangle */ -import { ModelStudy, NodeStudy, Primitive } from './types'; +import type { ModelStudy, NodeStudy, Primitive } from './types'; /** * Build the list of nodes which are reference candidates by model. diff --git a/packages/datasource-mongo/src/introspection/reference-candidates-verifier.ts b/packages/datasource-mongo/src/introspection/reference-candidates-verifier.ts index 48e61eee30..0478af0da4 100644 --- a/packages/datasource-mongo/src/introspection/reference-candidates-verifier.ts +++ b/packages/datasource-mongo/src/introspection/reference-candidates-verifier.ts @@ -1,6 +1,6 @@ /* eslint-disable no-underscore-dangle */ -import { MongoCollection, MongoDb, NodeStudy } from './types'; +import type { MongoCollection, MongoDb, NodeStudy } from './types'; export default class ReferenceCandidateVerifier { /** Filter out all candidates where references can't be found */ diff --git a/packages/datasource-mongo/src/introspection/structure.ts b/packages/datasource-mongo/src/introspection/structure.ts index 2bd20b550e..a22eaca9e5 100644 --- a/packages/datasource-mongo/src/introspection/structure.ts +++ b/packages/datasource-mongo/src/introspection/structure.ts @@ -1,7 +1,6 @@ +import type { ModelStudy, MongoCollection, MongoDb, NodeStudy, Primitive } from './types'; import type { Binary } from 'bson'; -import { ModelStudy, MongoCollection, MongoDb, NodeStudy, Primitive } from './types'; - export default class Structure { static async introspect( connection: MongoDb, diff --git a/packages/datasource-mongo/src/introspection/types.ts b/packages/datasource-mongo/src/introspection/types.ts index a77629a1d6..b30663be0a 100644 --- a/packages/datasource-mongo/src/introspection/types.ts +++ b/packages/datasource-mongo/src/introspection/types.ts @@ -1,4 +1,4 @@ -import { Connection } from 'mongoose'; +import type { Connection } from 'mongoose'; export type MongoDb = Connection['db']; export type MongoCollection = ReturnType; diff --git a/packages/datasource-mongo/src/odm-builder/index.ts b/packages/datasource-mongo/src/odm-builder/index.ts index 4bf5423272..4698c32756 100644 --- a/packages/datasource-mongo/src/odm-builder/index.ts +++ b/packages/datasource-mongo/src/odm-builder/index.ts @@ -1,7 +1,8 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { Connection, Mongoose, Schema } from 'mongoose'; +import type { ModelAnalysis, ModelDefinition, PrimitiveDefinition } from '../introspection/types'; +import type { Connection, Mongoose } from 'mongoose'; -import { ModelAnalysis, ModelDefinition, PrimitiveDefinition } from '../introspection/types'; +import { Schema } from 'mongoose'; export default class OdmBuilder { private static readonly primitives: Partial> = { diff --git a/packages/datasource-mongo/src/types.ts b/packages/datasource-mongo/src/types.ts index 5a1326dadf..7ad60a5fce 100644 --- a/packages/datasource-mongo/src/types.ts +++ b/packages/datasource-mongo/src/types.ts @@ -1,7 +1,6 @@ import type { MongooseOptions as DataSourceMongooseOptions } from '@forestadmin/datasource-mongoose'; import type { ConnectOptions } from 'mongoose'; - -import { SshOptions } from 'tunnel-ssh'; +import type { SshOptions } from 'tunnel-ssh'; /** Options for the introspection */ export type IntrospectionOptions = { diff --git a/packages/datasource-mongo/test/connection/create-connection.unit.test.ts b/packages/datasource-mongo/test/connection/create-connection.unit.test.ts index 4d0a07b036..fecefe466e 100644 --- a/packages/datasource-mongo/test/connection/create-connection.unit.test.ts +++ b/packages/datasource-mongo/test/connection/create-connection.unit.test.ts @@ -1,10 +1,11 @@ +import type { ConnectionParams } from '../../src'; +import type { Connection } from 'mongoose'; import type { AddressInfo, Server } from 'net'; import type { Client } from 'ssh2'; -import mongoose, { Connection } from 'mongoose'; +import mongoose from 'mongoose'; import { createTunnel } from 'tunnel-ssh'; -import { ConnectionParams } from '../../src'; import createConnection from '../../src/connection/create-connection'; import { ConnectionError, SshConnectError } from '../../src/errors'; diff --git a/packages/datasource-mongo/test/index.integration.test.ts b/packages/datasource-mongo/test/index.integration.test.ts index 60fde303cd..20ade0c2f5 100644 --- a/packages/datasource-mongo/test/index.integration.test.ts +++ b/packages/datasource-mongo/test/index.integration.test.ts @@ -1,7 +1,8 @@ +import type { Introspection } from '../src'; + import mongoose, { Schema } from 'mongoose'; import { - Introspection, buildDisconnectedMongooseInstance, buildMongooseInstance, createMongoDataSource, diff --git a/packages/datasource-mongo/test/index.unit.test.ts b/packages/datasource-mongo/test/index.unit.test.ts index dfac7792ef..e247026818 100644 --- a/packages/datasource-mongo/test/index.unit.test.ts +++ b/packages/datasource-mongo/test/index.unit.test.ts @@ -1,9 +1,10 @@ +import type { IntrospectorParams } from '../src'; +import type { Introspection } from '../src/introspection/types'; import type { Connection } from 'mongoose'; -import { IntrospectorParams, buildMongooseInstance, introspect } from '../src'; +import { buildMongooseInstance, introspect } from '../src'; import createConnection from '../src/connection/create-connection'; import Introspector from '../src/introspection/introspector'; -import { Introspection } from '../src/introspection/types'; import OdmBuilder from '../src/odm-builder'; jest.mock('@forestadmin/datasource-mongoose'); diff --git a/packages/datasource-mongo/test/introspection/introspector.integration.test.ts b/packages/datasource-mongo/test/introspection/introspector.integration.test.ts index c529993692..eec03236bf 100644 --- a/packages/datasource-mongo/test/introspection/introspector.integration.test.ts +++ b/packages/datasource-mongo/test/introspection/introspector.integration.test.ts @@ -1,5 +1,7 @@ +import type { Connection } from 'mongoose'; + import crypto from 'crypto'; -import { Connection, Schema, Types, createConnection } from 'mongoose'; +import { Schema, Types, createConnection } from 'mongoose'; import Introspector from '../../src/introspection/introspector'; diff --git a/packages/datasource-mongo/test/introspection/introspector.unit.test.ts b/packages/datasource-mongo/test/introspection/introspector.unit.test.ts index ac95b2310f..eeaca21c76 100644 --- a/packages/datasource-mongo/test/introspection/introspector.unit.test.ts +++ b/packages/datasource-mongo/test/introspection/introspector.unit.test.ts @@ -1,10 +1,11 @@ +import type { Introspection, ModelStudy, MongoDb } from '../../src/introspection/types'; + import mongoose from 'mongoose'; import Introspector from '../../src/introspection/introspector'; import ReferenceCandidateFinder from '../../src/introspection/reference-candidates-finder'; import ReferenceCandidateVerifier from '../../src/introspection/reference-candidates-verifier'; import Structure from '../../src/introspection/structure'; -import { Introspection, ModelStudy, MongoDb } from '../../src/introspection/types'; const { ObjectId } = mongoose.mongo; diff --git a/packages/datasource-mongo/test/introspection/list-collections-from-introspection.unit.test.ts b/packages/datasource-mongo/test/introspection/list-collections-from-introspection.unit.test.ts index fad95492b0..e88d6812e0 100644 --- a/packages/datasource-mongo/test/introspection/list-collections-from-introspection.unit.test.ts +++ b/packages/datasource-mongo/test/introspection/list-collections-from-introspection.unit.test.ts @@ -1,5 +1,6 @@ +import type { Introspection } from '../../src/introspection/types'; + import listCollectionsFromIntrospection from '../../src/introspection/list-collections-from-introspection'; -import { Introspection } from '../../src/introspection/types'; describe('listCollectionsFromIntrospection', () => { it('should return an empty array if introspection is falsy', () => { diff --git a/packages/datasource-mongo/test/introspection/reference-candidates-finder.unit.test.ts b/packages/datasource-mongo/test/introspection/reference-candidates-finder.unit.test.ts index a3eff12909..935c4c76ce 100644 --- a/packages/datasource-mongo/test/introspection/reference-candidates-finder.unit.test.ts +++ b/packages/datasource-mongo/test/introspection/reference-candidates-finder.unit.test.ts @@ -1,7 +1,8 @@ +import type { ModelStudy } from '../../src/introspection/types'; + import mongoose from 'mongoose'; import ReferenceCandidateFinder from '../../src/introspection/reference-candidates-finder'; -import { ModelStudy } from '../../src/introspection/types'; const { ObjectId } = mongoose.mongo; diff --git a/packages/datasource-mongo/test/introspection/reference-candidates-verifier.unit.test.ts b/packages/datasource-mongo/test/introspection/reference-candidates-verifier.unit.test.ts index 1d93fccfb7..69c9d75c7f 100644 --- a/packages/datasource-mongo/test/introspection/reference-candidates-verifier.unit.test.ts +++ b/packages/datasource-mongo/test/introspection/reference-candidates-verifier.unit.test.ts @@ -1,7 +1,8 @@ +import type { MongoDb, NodeStudy } from '../../src/introspection/types'; + import mongoose from 'mongoose'; import ReferenceCandidatesVerifier from '../../src/introspection/reference-candidates-verifier'; -import { MongoDb, NodeStudy } from '../../src/introspection/types'; const { ObjectId, Binary } = mongoose.mongo; diff --git a/packages/datasource-mongo/test/introspection/structure.unit.test.ts b/packages/datasource-mongo/test/introspection/structure.unit.test.ts index 0202be2a0c..62efd3584e 100644 --- a/packages/datasource-mongo/test/introspection/structure.unit.test.ts +++ b/packages/datasource-mongo/test/introspection/structure.unit.test.ts @@ -1,8 +1,9 @@ +import type { MongoDb } from '../../src/introspection/types'; + import { randomUUID } from 'crypto'; import mongoose from 'mongoose'; import Structure from '../../src/introspection/structure'; -import { MongoDb } from '../../src/introspection/types'; const { Decimal128, Int32, Long, Timestamp, ObjectId, Binary } = mongoose.mongo; diff --git a/packages/datasource-mongo/test/odm-builder.unit.test.ts b/packages/datasource-mongo/test/odm-builder.unit.test.ts index d523068d70..af258e57c3 100644 --- a/packages/datasource-mongo/test/odm-builder.unit.test.ts +++ b/packages/datasource-mongo/test/odm-builder.unit.test.ts @@ -1,6 +1,8 @@ -import { Connection, Schema } from 'mongoose'; +import type { ModelDefinition } from '../src/introspection/types'; +import type { Connection } from 'mongoose'; + +import { Schema } from 'mongoose'; -import { ModelDefinition } from '../src/introspection/types'; import OrmBuilder from '../src/odm-builder/index'; jest.mock('mongoose', () => { diff --git a/packages/datasource-mongoose/src/collection.ts b/packages/datasource-mongoose/src/collection.ts index 130bd49dd2..b8a02bf2ad 100644 --- a/packages/datasource-mongoose/src/collection.ts +++ b/packages/datasource-mongoose/src/collection.ts @@ -1,21 +1,21 @@ /* eslint-disable @typescript-eslint/naming-convention */ /* eslint-disable no-underscore-dangle */ -import { +import type { Stack } from './types'; +import type { AggregateResult, Aggregation, - BaseCollection, Caller, DataSource, Filter, PaginatedFilter, - Projection, RecordData, - ValidationError, } from '@forestadmin/datasource-toolkit'; -import { Error, Model, PipelineStage } from 'mongoose'; +import type { Model, PipelineStage } from 'mongoose'; + +import { BaseCollection, Projection, ValidationError } from '@forestadmin/datasource-toolkit'; +import { Error } from 'mongoose'; import MongooseSchema from './mongoose/schema'; -import { Stack } from './types'; import addNullValues from './utils/add-null-values'; import { buildSubdocumentPatch, diff --git a/packages/datasource-mongoose/src/datasource.ts b/packages/datasource-mongoose/src/datasource.ts index da3b2892af..be644d643b 100644 --- a/packages/datasource-mongoose/src/datasource.ts +++ b/packages/datasource-mongoose/src/datasource.ts @@ -1,9 +1,11 @@ -import { BaseDataSource, Logger } from '@forestadmin/datasource-toolkit'; -import { Connection, Model, Mongoose } from 'mongoose'; +import type { MongooseOptions, Stack } from './types'; +import type { Logger } from '@forestadmin/datasource-toolkit'; +import type { Connection, Model, Mongoose } from 'mongoose'; + +import { BaseDataSource } from '@forestadmin/datasource-toolkit'; import MongooseCollection from './collection'; import MongooseSchema from './mongoose/schema'; -import { MongooseOptions, Stack } from './types'; import { unnest } from './utils/helpers'; import OptionsParser from './utils/options'; import RelationGenerator from './utils/schema/relations'; diff --git a/packages/datasource-mongoose/src/index.ts b/packages/datasource-mongoose/src/index.ts index dd5b31472f..38c71ce25e 100644 --- a/packages/datasource-mongoose/src/index.ts +++ b/packages/datasource-mongoose/src/index.ts @@ -1,8 +1,8 @@ -import { DataSourceFactory } from '@forestadmin/datasource-toolkit'; -import { Connection, Mongoose } from 'mongoose'; +import type { MongooseOptions } from './types'; +import type { DataSourceFactory } from '@forestadmin/datasource-toolkit'; +import type { Connection, Mongoose } from 'mongoose'; import MongooseDatasource from './datasource'; -import { MongooseOptions } from './types'; export { default as MongooseCollection } from './collection'; export { default as MongooseDatasource } from './datasource'; diff --git a/packages/datasource-mongoose/src/mongoose/schema.ts b/packages/datasource-mongoose/src/mongoose/schema.ts index 2b27e2c25d..744c391a8e 100644 --- a/packages/datasource-mongoose/src/mongoose/schema.ts +++ b/packages/datasource-mongoose/src/mongoose/schema.ts @@ -1,8 +1,10 @@ /* eslint-disable no-underscore-dangle */ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { Model, Schema, SchemaType } from 'mongoose'; +import type { Stack } from '../types'; +import type { Model, SchemaType } from 'mongoose'; + +import { Schema } from 'mongoose'; -import { Stack } from '../types'; import { recursiveDelete, recursiveSet } from '../utils/helpers'; import isShemaType from '../utils/schema/is-schema-type'; import VersionManager from '../utils/version-manager'; diff --git a/packages/datasource-mongoose/src/utils/helpers.ts b/packages/datasource-mongoose/src/utils/helpers.ts index df14d63ea1..b1cb72f000 100644 --- a/packages/datasource-mongoose/src/utils/helpers.ts +++ b/packages/datasource-mongoose/src/utils/helpers.ts @@ -1,5 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { RecordData } from '@forestadmin/datasource-toolkit'; +import type { RecordData } from '@forestadmin/datasource-toolkit'; + import { Types, isValidObjectId } from 'mongoose'; /** diff --git a/packages/datasource-mongoose/src/utils/options.ts b/packages/datasource-mongoose/src/utils/options.ts index 8ca4839668..4fd6c5c531 100644 --- a/packages/datasource-mongoose/src/utils/options.ts +++ b/packages/datasource-mongoose/src/utils/options.ts @@ -1,12 +1,12 @@ -import { Model } from 'mongoose'; - -import MongooseSchema from '../mongoose/schema'; -import { +import type { FlattenOptions, LegacyFlattenOptions, ManualFlattenOptions, MongooseOptions, } from '../types'; +import type { Model } from 'mongoose'; + +import MongooseSchema from '../mongoose/schema'; export default class OptionsParser { static parseOptions(model: Model, options: MongooseOptions): FlattenOptions { diff --git a/packages/datasource-mongoose/src/utils/pipeline/condition-generator.ts b/packages/datasource-mongoose/src/utils/pipeline/condition-generator.ts index 6d39fe342b..bc0ee23162 100644 --- a/packages/datasource-mongoose/src/utils/pipeline/condition-generator.ts +++ b/packages/datasource-mongoose/src/utils/pipeline/condition-generator.ts @@ -1,4 +1,4 @@ -import { AnyExpression } from 'mongoose'; +import type { AnyExpression } from 'mongoose'; export const FOREST_RECORD_DOES_NOT_EXIST = 'FOREST_RECORD_DOES_NOT_EXIST'; export default class ConditionGenerator { diff --git a/packages/datasource-mongoose/src/utils/pipeline/filter.ts b/packages/datasource-mongoose/src/utils/pipeline/filter.ts index ad215b0319..1cf405d502 100644 --- a/packages/datasource-mongoose/src/utils/pipeline/filter.ts +++ b/packages/datasource-mongoose/src/utils/pipeline/filter.ts @@ -1,15 +1,12 @@ -import { - ConditionTree, - ConditionTreeBranch, - ConditionTreeLeaf, - Operator, - PaginatedFilter, -} from '@forestadmin/datasource-toolkit'; +import type { Stack } from '../../types'; +import type { ConditionTree, Operator, PaginatedFilter } from '@forestadmin/datasource-toolkit'; +import type { Model, PipelineStage } from 'mongoose'; + +import { ConditionTreeBranch, ConditionTreeLeaf } from '@forestadmin/datasource-toolkit'; import { DateTime } from 'luxon'; -import { Model, PipelineStage, Types, isValidObjectId } from 'mongoose'; +import { Types, isValidObjectId } from 'mongoose'; import MongooseSchema from '../../mongoose/schema'; -import { Stack } from '../../types'; import VersionManager from '../version-manager'; const STRING_OPERATORS = ['Match', 'NotContains', 'LongerThan', 'ShorterThan']; diff --git a/packages/datasource-mongoose/src/utils/pipeline/group.ts b/packages/datasource-mongoose/src/utils/pipeline/group.ts index 2c35deaab2..57e5d6c406 100644 --- a/packages/datasource-mongoose/src/utils/pipeline/group.ts +++ b/packages/datasource-mongoose/src/utils/pipeline/group.ts @@ -1,5 +1,9 @@ -import { Aggregation, AggregationOperation, DateOperation } from '@forestadmin/datasource-toolkit'; -import { AccumulatorOperator, PipelineStage } from 'mongoose'; +import type { + Aggregation, + AggregationOperation, + DateOperation, +} from '@forestadmin/datasource-toolkit'; +import type { AccumulatorOperator, PipelineStage } from 'mongoose'; /** Transform a forest admin aggregation into mongo pipeline */ export default class GroupGenerator { diff --git a/packages/datasource-mongoose/src/utils/pipeline/lookup.ts b/packages/datasource-mongoose/src/utils/pipeline/lookup.ts index 6b8fc81816..bfb8480ca5 100644 --- a/packages/datasource-mongoose/src/utils/pipeline/lookup.ts +++ b/packages/datasource-mongoose/src/utils/pipeline/lookup.ts @@ -1,8 +1,9 @@ -import { Projection } from '@forestadmin/datasource-toolkit'; -import { Model, PipelineStage } from 'mongoose'; +import type { SchemaNode } from '../../mongoose/schema'; +import type { Stack } from '../../types'; +import type { Projection } from '@forestadmin/datasource-toolkit'; +import type { Model, PipelineStage } from 'mongoose'; -import MongooseSchema, { SchemaNode } from '../../mongoose/schema'; -import { Stack } from '../../types'; +import MongooseSchema from '../../mongoose/schema'; export type LookupOptions = { include?: Set; diff --git a/packages/datasource-mongoose/src/utils/pipeline/projection.ts b/packages/datasource-mongoose/src/utils/pipeline/projection.ts index 83a21e23e5..e5f58303bb 100644 --- a/packages/datasource-mongoose/src/utils/pipeline/projection.ts +++ b/packages/datasource-mongoose/src/utils/pipeline/projection.ts @@ -1,5 +1,5 @@ -import { Projection } from '@forestadmin/datasource-toolkit'; -import { PipelineStage } from 'mongoose'; +import type { Projection } from '@forestadmin/datasource-toolkit'; +import type { PipelineStage } from 'mongoose'; import { FOREST_RECORD_DOES_NOT_EXIST } from './condition-generator'; diff --git a/packages/datasource-mongoose/src/utils/pipeline/reparent.ts b/packages/datasource-mongoose/src/utils/pipeline/reparent.ts index b389ee2886..bfadb9a1fa 100644 --- a/packages/datasource-mongoose/src/utils/pipeline/reparent.ts +++ b/packages/datasource-mongoose/src/utils/pipeline/reparent.ts @@ -1,4 +1,4 @@ -import { Model, PipelineStage } from 'mongoose'; +import type { Model, PipelineStage } from 'mongoose'; import ConditionGenerator from './condition-generator'; import MongooseSchema from '../../mongoose/schema'; diff --git a/packages/datasource-mongoose/src/utils/pipeline/virtual-fields.ts b/packages/datasource-mongoose/src/utils/pipeline/virtual-fields.ts index 73a13546fc..b05b35d748 100644 --- a/packages/datasource-mongoose/src/utils/pipeline/virtual-fields.ts +++ b/packages/datasource-mongoose/src/utils/pipeline/virtual-fields.ts @@ -1,8 +1,8 @@ -import { Projection } from '@forestadmin/datasource-toolkit'; -import { AnyExpression, Model, PipelineStage } from 'mongoose'; +import type { Stack } from '../../types'; +import type { Projection } from '@forestadmin/datasource-toolkit'; +import type { AnyExpression, Model, PipelineStage } from 'mongoose'; import ConditionGenerator from './condition-generator'; -import { Stack } from '../../types'; /** * When using the `asModel` options, users can request/filter on the virtual _id and parentId fields diff --git a/packages/datasource-mongoose/src/utils/schema/fields.ts b/packages/datasource-mongoose/src/utils/schema/fields.ts index 9dfe4b5e07..f30eb9ead0 100644 --- a/packages/datasource-mongoose/src/utils/schema/fields.ts +++ b/packages/datasource-mongoose/src/utils/schema/fields.ts @@ -1,18 +1,19 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable no-underscore-dangle */ -import { +import type { SchemaBranch, SchemaNode } from '../../mongoose/schema'; +import type { Stack } from '../../types'; +import type { CollectionSchema, ColumnSchema, ColumnType, ManyToOneSchema, PrimitiveTypes, } from '@forestadmin/datasource-toolkit'; -import { Model, SchemaType } from 'mongoose'; +import type { Model, SchemaType } from 'mongoose'; import FilterOperatorsGenerator from './filter-operators'; import isSchemaType from './is-schema-type'; -import MongooseSchema, { SchemaBranch, SchemaNode } from '../../mongoose/schema'; -import { Stack } from '../../types'; +import MongooseSchema from '../../mongoose/schema'; import { escape } from '../helpers'; import VersionManager from '../version-manager'; diff --git a/packages/datasource-mongoose/src/utils/schema/filter-operators.ts b/packages/datasource-mongoose/src/utils/schema/filter-operators.ts index 6e5b18b033..a12cb9c717 100644 --- a/packages/datasource-mongoose/src/utils/schema/filter-operators.ts +++ b/packages/datasource-mongoose/src/utils/schema/filter-operators.ts @@ -1,4 +1,4 @@ -import { ColumnType, Operator } from '@forestadmin/datasource-toolkit'; +import type { ColumnType, Operator } from '@forestadmin/datasource-toolkit'; export default class FilterOperatorsGenerator { static readonly defaultOperators: Partial = ['Equal', 'NotEqual', 'Present']; diff --git a/packages/datasource-mongoose/src/utils/schema/relations.ts b/packages/datasource-mongoose/src/utils/schema/relations.ts index a87528071d..780c5206b5 100644 --- a/packages/datasource-mongoose/src/utils/schema/relations.ts +++ b/packages/datasource-mongoose/src/utils/schema/relations.ts @@ -1,6 +1,6 @@ -import { Collection, ManyToOneSchema } from '@forestadmin/datasource-toolkit'; +import type MongooseCollection from '../../collection'; +import type { Collection, ManyToOneSchema } from '@forestadmin/datasource-toolkit'; -import MongooseCollection from '../../collection'; import MongooseSchema from '../../mongoose/schema'; import { escape } from '../helpers'; diff --git a/packages/datasource-mongoose/src/utils/version-manager.ts b/packages/datasource-mongoose/src/utils/version-manager.ts index b324e2e761..69c7f535bd 100644 --- a/packages/datasource-mongoose/src/utils/version-manager.ts +++ b/packages/datasource-mongoose/src/utils/version-manager.ts @@ -1,4 +1,6 @@ -import mongoose, { Schema } from 'mongoose'; +import type { Schema } from 'mongoose'; + +import mongoose from 'mongoose'; import isSchemaType from './schema/is-schema-type'; diff --git a/packages/datasource-mongoose/test/_helpers.ts b/packages/datasource-mongoose/test/_helpers.ts index 3f922da1ae..6f7b982637 100644 --- a/packages/datasource-mongoose/test/_helpers.ts +++ b/packages/datasource-mongoose/test/_helpers.ts @@ -1,5 +1,7 @@ /* eslint-disable import/prefer-default-export */ -import { Model, Schema, deleteModel, model } from 'mongoose'; +import type { Model, Schema } from 'mongoose'; + +import { deleteModel, model } from 'mongoose'; export function buildModel(schema: Schema, modelName = 'aModel'): Model { try { diff --git a/packages/datasource-mongoose/test/collection.test.ts b/packages/datasource-mongoose/test/collection.test.ts index c598eeb46d..37e9e730fd 100644 --- a/packages/datasource-mongoose/test/collection.test.ts +++ b/packages/datasource-mongoose/test/collection.test.ts @@ -1,7 +1,9 @@ /* eslint-disable no-underscore-dangle */ /* eslint-disable jest/no-disabled-tests */ -import { Connection, Schema, model } from 'mongoose'; +import type { Connection } from 'mongoose'; + +import { Schema, model } from 'mongoose'; import MongooseCollection from '../src/collection'; import MongooseDatasource from '../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/flattener/collection_create.test.ts b/packages/datasource-mongoose/test/integration/flattener/collection_create.test.ts index c14d168739..ea4cb27538 100644 --- a/packages/datasource-mongoose/test/integration/flattener/collection_create.test.ts +++ b/packages/datasource-mongoose/test/integration/flattener/collection_create.test.ts @@ -1,4 +1,6 @@ /* eslint-disable no-underscore-dangle */ +import type { Connection } from 'mongoose'; + import { ConditionTreeLeaf, Filter, @@ -6,7 +8,7 @@ import { Projection, } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import mongoose, { Connection, Schema, Types, mongo } from 'mongoose'; +import mongoose, { Schema, Types, mongo } from 'mongoose'; import setupFlattener, { setupConnection } from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/flattener/collection_list.test.ts b/packages/datasource-mongoose/test/integration/flattener/collection_list.test.ts index 251e7edaa3..a42ac7b56c 100644 --- a/packages/datasource-mongoose/test/integration/flattener/collection_list.test.ts +++ b/packages/datasource-mongoose/test/integration/flattener/collection_list.test.ts @@ -1,7 +1,8 @@ /* eslint-disable no-underscore-dangle */ +import type { Connection } from 'mongoose'; + import { ConditionTreeLeaf, Filter, Projection } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection } from 'mongoose'; import setupFlattener from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/flattener/collection_schema.test.ts b/packages/datasource-mongoose/test/integration/flattener/collection_schema.test.ts index d3db635c8b..40ef95c074 100644 --- a/packages/datasource-mongoose/test/integration/flattener/collection_schema.test.ts +++ b/packages/datasource-mongoose/test/integration/flattener/collection_schema.test.ts @@ -1,4 +1,4 @@ -import { Connection } from 'mongoose'; +import type { Connection } from 'mongoose'; import setupFlattener from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/flattener/collection_update.test.ts b/packages/datasource-mongoose/test/integration/flattener/collection_update.test.ts index 53144dd10b..074905daac 100644 --- a/packages/datasource-mongoose/test/integration/flattener/collection_update.test.ts +++ b/packages/datasource-mongoose/test/integration/flattener/collection_update.test.ts @@ -1,7 +1,8 @@ /* eslint-disable no-underscore-dangle */ +import type { Connection } from 'mongoose'; + import { Filter, ValidationError } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection } from 'mongoose'; import setupFlattener from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/many-to-many/collection_aggregate.test.ts b/packages/datasource-mongoose/test/integration/many-to-many/collection_aggregate.test.ts index 8abd3ee0b8..2f12d4c1fe 100644 --- a/packages/datasource-mongoose/test/integration/many-to-many/collection_aggregate.test.ts +++ b/packages/datasource-mongoose/test/integration/many-to-many/collection_aggregate.test.ts @@ -1,8 +1,10 @@ /* eslint-disable no-underscore-dangle */ +import type { Connection } from 'mongoose'; + import { Aggregation } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection, Types } from 'mongoose'; +import { Types } from 'mongoose'; import setupWith2ManyToManyRelations from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/many-to-many/collection_create.test.ts b/packages/datasource-mongoose/test/integration/many-to-many/collection_create.test.ts index 3b50238efe..0a3e87c116 100644 --- a/packages/datasource-mongoose/test/integration/many-to-many/collection_create.test.ts +++ b/packages/datasource-mongoose/test/integration/many-to-many/collection_create.test.ts @@ -1,8 +1,10 @@ /* eslint-disable no-underscore-dangle */ +import type { Connection } from 'mongoose'; + import { Projection } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection, Types } from 'mongoose'; +import { Types } from 'mongoose'; import setupWith2ManyToManyRelations from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/many-to-many/collection_delete.test.ts b/packages/datasource-mongoose/test/integration/many-to-many/collection_delete.test.ts index 331afe1aae..0876f8576a 100644 --- a/packages/datasource-mongoose/test/integration/many-to-many/collection_delete.test.ts +++ b/packages/datasource-mongoose/test/integration/many-to-many/collection_delete.test.ts @@ -1,8 +1,10 @@ /* eslint-disable no-underscore-dangle */ +import type { Connection } from 'mongoose'; + import { Filter, Projection } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection, Types } from 'mongoose'; +import { Types } from 'mongoose'; import setupWith2ManyToManyRelations from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/many-to-many/collection_list.test.ts b/packages/datasource-mongoose/test/integration/many-to-many/collection_list.test.ts index 6e55d34de5..027228e21d 100644 --- a/packages/datasource-mongoose/test/integration/many-to-many/collection_list.test.ts +++ b/packages/datasource-mongoose/test/integration/many-to-many/collection_list.test.ts @@ -1,8 +1,10 @@ /* eslint-disable no-underscore-dangle */ +import type { Connection } from 'mongoose'; + import { Projection } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection, Types } from 'mongoose'; +import { Types } from 'mongoose'; import setupWith2ManyToManyRelations from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/many-to-many/collection_update.test.ts b/packages/datasource-mongoose/test/integration/many-to-many/collection_update.test.ts index 924677c073..b01061f2ce 100644 --- a/packages/datasource-mongoose/test/integration/many-to-many/collection_update.test.ts +++ b/packages/datasource-mongoose/test/integration/many-to-many/collection_update.test.ts @@ -1,8 +1,10 @@ /* eslint-disable no-underscore-dangle */ +import type { Connection } from 'mongoose'; + import { Filter, Projection } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection, Types } from 'mongoose'; +import { Types } from 'mongoose'; import setupWith2ManyToManyRelations from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/many-to-one/collection_aggregate.test.ts b/packages/datasource-mongoose/test/integration/many-to-one/collection_aggregate.test.ts index c096261ad4..8f0fee4348 100644 --- a/packages/datasource-mongoose/test/integration/many-to-one/collection_aggregate.test.ts +++ b/packages/datasource-mongoose/test/integration/many-to-one/collection_aggregate.test.ts @@ -1,8 +1,11 @@ /* eslint-disable no-underscore-dangle */ -import { Aggregation, Collection, DataSource, Filter } from '@forestadmin/datasource-toolkit'; +import type { Collection, DataSource } from '@forestadmin/datasource-toolkit'; +import type { Connection } from 'mongoose'; + +import { Aggregation, Filter } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection, Types } from 'mongoose'; +import { Types } from 'mongoose'; import setupWithManyToOneRelation from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/many-to-one/collection_list.test.ts b/packages/datasource-mongoose/test/integration/many-to-one/collection_list.test.ts index f725f6d103..a8c26f860f 100644 --- a/packages/datasource-mongoose/test/integration/many-to-one/collection_list.test.ts +++ b/packages/datasource-mongoose/test/integration/many-to-one/collection_list.test.ts @@ -1,8 +1,10 @@ /* eslint-disable no-underscore-dangle */ +import type { Connection } from 'mongoose'; + import { Projection, Sort } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection, Types } from 'mongoose'; +import { Types } from 'mongoose'; import setupWithManyToOneRelation from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/review/collection_aggregate.test.ts b/packages/datasource-mongoose/test/integration/review/collection_aggregate.test.ts index aeb376635e..4b476dc712 100644 --- a/packages/datasource-mongoose/test/integration/review/collection_aggregate.test.ts +++ b/packages/datasource-mongoose/test/integration/review/collection_aggregate.test.ts @@ -1,8 +1,10 @@ /* eslint-disable no-underscore-dangle */ -import { Aggregation, Collection, DataSource, Filter } from '@forestadmin/datasource-toolkit'; +import type { Collection, DataSource } from '@forestadmin/datasource-toolkit'; +import type { Connection } from 'mongoose'; + +import { Aggregation, Filter } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection } from 'mongoose'; import setupReview from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/review/collection_create.test.ts b/packages/datasource-mongoose/test/integration/review/collection_create.test.ts index cd95543be3..814e4ada10 100644 --- a/packages/datasource-mongoose/test/integration/review/collection_create.test.ts +++ b/packages/datasource-mongoose/test/integration/review/collection_create.test.ts @@ -1,8 +1,9 @@ /* eslint-disable no-underscore-dangle */ +import type { Connection } from 'mongoose'; + import { ValidationError } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection } from 'mongoose'; import setupReview from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/review/collection_delete.test.ts b/packages/datasource-mongoose/test/integration/review/collection_delete.test.ts index fcbbda5356..28d8a9eab2 100644 --- a/packages/datasource-mongoose/test/integration/review/collection_delete.test.ts +++ b/packages/datasource-mongoose/test/integration/review/collection_delete.test.ts @@ -1,8 +1,11 @@ /* eslint-disable no-underscore-dangle */ -import { Caller, Filter, Projection } from '@forestadmin/datasource-toolkit'; +import type { Caller } from '@forestadmin/datasource-toolkit'; +import type { Connection } from 'mongoose'; + +import { Filter, Projection } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection, Schema, Types } from 'mongoose'; +import { Schema, Types } from 'mongoose'; import setupReview from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/review/collection_list.test.ts b/packages/datasource-mongoose/test/integration/review/collection_list.test.ts index e809eab0ee..ff4a9b4403 100644 --- a/packages/datasource-mongoose/test/integration/review/collection_list.test.ts +++ b/packages/datasource-mongoose/test/integration/review/collection_list.test.ts @@ -1,16 +1,11 @@ /* eslint-disable no-underscore-dangle */ -import { - Aggregator, - ConditionTreeLeaf, - Operator, - Page, - PaginatedFilter, - Projection, - Sort, -} from '@forestadmin/datasource-toolkit'; +import type { Aggregator, ConditionTreeLeaf, Operator } from '@forestadmin/datasource-toolkit'; +import type { Connection } from 'mongoose'; + +import { Page, PaginatedFilter, Projection, Sort } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection, Types } from 'mongoose'; +import { Types } from 'mongoose'; import setupReview from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/integration/review/collection_update.test.ts b/packages/datasource-mongoose/test/integration/review/collection_update.test.ts index 6ea0272bf4..0d55b01f38 100644 --- a/packages/datasource-mongoose/test/integration/review/collection_update.test.ts +++ b/packages/datasource-mongoose/test/integration/review/collection_update.test.ts @@ -1,8 +1,10 @@ /* eslint-disable no-underscore-dangle */ +import type { Connection } from 'mongoose'; + import { Filter, Projection } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { Connection, Schema, Types } from 'mongoose'; +import { Schema, Types } from 'mongoose'; import setupReview from './_build-models'; import MongooseDatasource from '../../../src/datasource'; diff --git a/packages/datasource-mongoose/test/schema.test.ts b/packages/datasource-mongoose/test/schema.test.ts index 583e4c8b49..79d19163f7 100644 --- a/packages/datasource-mongoose/test/schema.test.ts +++ b/packages/datasource-mongoose/test/schema.test.ts @@ -1,4 +1,6 @@ -import mongoose, { Model, Schema } from 'mongoose'; +import type { Model } from 'mongoose'; + +import mongoose, { Schema } from 'mongoose'; import MongooseSchema from '../src/mongoose/schema'; diff --git a/packages/datasource-mongoose/test/utils/options.integration.test.ts b/packages/datasource-mongoose/test/utils/options.integration.test.ts index 46dea4adfc..4d83713365 100644 --- a/packages/datasource-mongoose/test/utils/options.integration.test.ts +++ b/packages/datasource-mongoose/test/utils/options.integration.test.ts @@ -1,4 +1,6 @@ -import { Model, Mongoose, Schema, mongo } from 'mongoose'; +import type { Model } from 'mongoose'; + +import { Mongoose, Schema, mongo } from 'mongoose'; import OptionsParser from '../../src/utils/options'; diff --git a/packages/datasource-mongoose/test/utils/pipeline/filter.test.ts b/packages/datasource-mongoose/test/utils/pipeline/filter.test.ts index 77ab508983..9fcb2f4903 100644 --- a/packages/datasource-mongoose/test/utils/pipeline/filter.test.ts +++ b/packages/datasource-mongoose/test/utils/pipeline/filter.test.ts @@ -1,3 +1,6 @@ +import type { Stack } from '../../../src/types'; +import type { Model } from 'mongoose'; + import { ConditionTreeBranch, ConditionTreeLeaf, @@ -5,9 +8,8 @@ import { PaginatedFilter, Sort, } from '@forestadmin/datasource-toolkit'; -import mongoose, { Model, Schema } from 'mongoose'; +import mongoose, { Schema } from 'mongoose'; -import { Stack } from '../../../src/types'; import FilterGenerator, { FilterAtStage } from '../../../src/utils/pipeline/filter'; describe('FilterGenerator', () => { diff --git a/packages/datasource-mongoose/test/utils/pipeline/lookup.test.ts b/packages/datasource-mongoose/test/utils/pipeline/lookup.test.ts index 721e23ae89..99c5933ca1 100644 --- a/packages/datasource-mongoose/test/utils/pipeline/lookup.test.ts +++ b/packages/datasource-mongoose/test/utils/pipeline/lookup.test.ts @@ -1,7 +1,9 @@ +import type { Stack } from '../../../src/types'; +import type { Model } from 'mongoose'; + import { Projection } from '@forestadmin/datasource-toolkit'; -import mongoose, { Model, Schema } from 'mongoose'; +import mongoose, { Schema } from 'mongoose'; -import { Stack } from '../../../src/types'; import LookupGenerator from '../../../src/utils/pipeline/lookup'; describe('LookupGenerator', () => { diff --git a/packages/datasource-mongoose/test/utils/pipeline/reparent.test.ts b/packages/datasource-mongoose/test/utils/pipeline/reparent.test.ts index 8217a8ac6e..3f1f3902ae 100644 --- a/packages/datasource-mongoose/test/utils/pipeline/reparent.test.ts +++ b/packages/datasource-mongoose/test/utils/pipeline/reparent.test.ts @@ -1,4 +1,6 @@ -import mongoose, { Model, Schema } from 'mongoose'; +import type { Model } from 'mongoose'; + +import mongoose, { Schema } from 'mongoose'; import ConditionGenerator from '../../../src/utils/pipeline/condition-generator'; import ReparentGenerator from '../../../src/utils/pipeline/reparent'; diff --git a/packages/datasource-mongoose/test/utils/pipeline/virtual-fields.test.ts b/packages/datasource-mongoose/test/utils/pipeline/virtual-fields.test.ts index 3fc2c1b91b..f3d2cd05c8 100644 --- a/packages/datasource-mongoose/test/utils/pipeline/virtual-fields.test.ts +++ b/packages/datasource-mongoose/test/utils/pipeline/virtual-fields.test.ts @@ -1,5 +1,7 @@ +import type { Model } from 'mongoose'; + import { Projection } from '@forestadmin/datasource-toolkit'; -import mongoose, { Model, Schema } from 'mongoose'; +import mongoose, { Schema } from 'mongoose'; import ConditionGenerator from '../../../src/utils/pipeline/condition-generator'; import VirtualFieldsGenerator from '../../../src/utils/pipeline/virtual-fields'; diff --git a/packages/datasource-mongoose/test/utils/schema/fields_flattener.test.ts b/packages/datasource-mongoose/test/utils/schema/fields_flattener.test.ts index 9edb1bd618..28b609083f 100644 --- a/packages/datasource-mongoose/test/utils/schema/fields_flattener.test.ts +++ b/packages/datasource-mongoose/test/utils/schema/fields_flattener.test.ts @@ -1,5 +1,7 @@ -import { ColumnSchema } from '@forestadmin/datasource-toolkit/src/interfaces/schema'; -import { Model, Schema } from 'mongoose'; +import type { ColumnSchema } from '@forestadmin/datasource-toolkit/src/interfaces/schema'; +import type { Model } from 'mongoose'; + +import { Schema } from 'mongoose'; import FieldsGenerator from '../../../src/utils/schema/fields'; import { buildModel } from '../../_helpers'; diff --git a/packages/datasource-mongoose/test/utils/schema/fields_simple.test.ts b/packages/datasource-mongoose/test/utils/schema/fields_simple.test.ts index b72b049e3f..faddfbf011 100644 --- a/packages/datasource-mongoose/test/utils/schema/fields_simple.test.ts +++ b/packages/datasource-mongoose/test/utils/schema/fields_simple.test.ts @@ -1,4 +1,5 @@ -import { ColumnSchema, Operator, PrimitiveTypes } from '@forestadmin/datasource-toolkit'; +import type { ColumnSchema, Operator, PrimitiveTypes } from '@forestadmin/datasource-toolkit'; + import { Schema } from 'mongoose'; import FieldsGenerator from '../../../src/utils/schema/fields'; diff --git a/packages/datasource-mongoose/test/utils/schema/filter-operator.test.ts b/packages/datasource-mongoose/test/utils/schema/filter-operator.test.ts index e8ed12cd01..40a3075357 100644 --- a/packages/datasource-mongoose/test/utils/schema/filter-operator.test.ts +++ b/packages/datasource-mongoose/test/utils/schema/filter-operator.test.ts @@ -1,4 +1,4 @@ -import { Operator, PrimitiveTypes } from '@forestadmin/datasource-toolkit'; +import type { Operator, PrimitiveTypes } from '@forestadmin/datasource-toolkit'; import FilterOperatorsGenerator from '../../../src/utils/schema/filter-operators'; diff --git a/packages/datasource-replica/src/cache-interface/collection.ts b/packages/datasource-replica/src/cache-interface/collection.ts index 291b561dae..5ac1d471d3 100644 --- a/packages/datasource-replica/src/cache-interface/collection.ts +++ b/packages/datasource-replica/src/cache-interface/collection.ts @@ -1,14 +1,14 @@ -import { +import type { TAggregateResult, TAggregation, TFilter, TPaginatedFilter, TRow, } from '@forestadmin/datasource-customizer'; +import type { Caller, Collection } from '@forestadmin/datasource-toolkit'; + import { Aggregation, - Caller, - Collection, ConditionTreeFactory, Filter, Page, diff --git a/packages/datasource-replica/src/decorators/schema/collection.ts b/packages/datasource-replica/src/decorators/schema/collection.ts index e202bbe241..88a0a117a2 100644 --- a/packages/datasource-replica/src/decorators/schema/collection.ts +++ b/packages/datasource-replica/src/decorators/schema/collection.ts @@ -1,7 +1,10 @@ -import { CollectionDecorator, CollectionSchema, ColumnType } from '@forestadmin/datasource-toolkit'; +import type SchemaDataSourceDecorator from './data-source'; +import type { Field, LeafField } from '../../types'; +import type { CollectionSchema, ColumnType } from '@forestadmin/datasource-toolkit'; -import SchemaDataSourceDecorator from './data-source'; -import { Field, LeafField, isLeafField } from '../../types'; +import { CollectionDecorator } from '@forestadmin/datasource-toolkit'; + +import { isLeafField } from '../../types'; export default class SchemaCollectionDecorator extends CollectionDecorator { override dataSource: SchemaDataSourceDecorator; diff --git a/packages/datasource-replica/src/decorators/schema/data-source.ts b/packages/datasource-replica/src/decorators/schema/data-source.ts index fb8fb8db39..6d8da9065e 100644 --- a/packages/datasource-replica/src/decorators/schema/data-source.ts +++ b/packages/datasource-replica/src/decorators/schema/data-source.ts @@ -1,7 +1,9 @@ -import { DataSource, DataSourceDecorator } from '@forestadmin/datasource-toolkit'; +import type { CollectionReplicaSchema, ResolvedOptions } from '../../types'; +import type { DataSource } from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; import SchemaCollectionDecorator from './collection'; -import { CollectionReplicaSchema, ResolvedOptions } from '../../types'; export default class SchemaDataSourceDecorator extends DataSourceDecorator { private readonly flatSchema: CollectionReplicaSchema[]; diff --git a/packages/datasource-replica/src/decorators/sync/collection.ts b/packages/datasource-replica/src/decorators/sync/collection.ts index c02e77e25f..afc6b9a8dd 100644 --- a/packages/datasource-replica/src/decorators/sync/collection.ts +++ b/packages/datasource-replica/src/decorators/sync/collection.ts @@ -1,18 +1,17 @@ import type TriggerSyncDataSourceDecorator from './data-source'; import type { TFilter, TPaginatedFilter } from '@forestadmin/datasource-customizer'; - -import { +import type { AggregateResult, Aggregation, Caller, - CollectionDecorator, Filter, PaginatedFilter, Projection, RecordData, - SchemaUtils, } from '@forestadmin/datasource-toolkit'; +import { CollectionDecorator, SchemaUtils } from '@forestadmin/datasource-toolkit'; + export default class SyncCollectionDecorator extends CollectionDecorator { override dataSource: TriggerSyncDataSourceDecorator; diff --git a/packages/datasource-replica/src/synchronization/cache-target.ts b/packages/datasource-replica/src/synchronization/cache-target.ts index 49d15af122..f784c49921 100644 --- a/packages/datasource-replica/src/synchronization/cache-target.ts +++ b/packages/datasource-replica/src/synchronization/cache-target.ts @@ -7,9 +7,9 @@ import type { SynchronizationTarget, } from '../types'; import type { Logger, RecordData } from '@forestadmin/datasource-toolkit'; -import type { Sequelize } from 'sequelize'; +import type { Sequelize, Transaction } from 'sequelize'; -import { Op, Transaction } from 'sequelize'; +import { Op } from 'sequelize'; import flattenRecord from '../flattener'; import { escape, getRecordId } from '../utils'; diff --git a/packages/datasource-replica/test/flattener.test.ts b/packages/datasource-replica/test/flattener.test.ts index c67c12125a..0254c94877 100644 --- a/packages/datasource-replica/test/flattener.test.ts +++ b/packages/datasource-replica/test/flattener.test.ts @@ -1,6 +1,7 @@ +import type { CollectionReplicaSchema, RecordDataWithCollection } from '../src/types'; + import flattenRecord from '../src/flattener'; import { flattenCollectionSchema } from '../src/options/flattener/schema'; -import { CollectionReplicaSchema, RecordDataWithCollection } from '../src/types'; describe('flattener', () => { const schema: CollectionReplicaSchema = { diff --git a/packages/datasource-replica/test/integrations/cache.test.ts b/packages/datasource-replica/test/integrations/cache.test.ts index 6b9569c4f6..a1b04ffc85 100644 --- a/packages/datasource-replica/test/integrations/cache.test.ts +++ b/packages/datasource-replica/test/integrations/cache.test.ts @@ -1,8 +1,9 @@ +import type { PullDeltaRequest, PullDeltaResponse, ReplicaDataSourceOptions } from '../../src'; + import { Aggregation, Filter } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import { getAllRecords, makeReplicaDataSource, makeSchemaWithId } from './factories'; -import { PullDeltaRequest, PullDeltaResponse, ReplicaDataSourceOptions } from '../../src'; describe('cache', () => { describe('when reading cache inside a pull delta', () => { diff --git a/packages/datasource-replica/test/integrations/factories.ts b/packages/datasource-replica/test/integrations/factories.ts index c9fe990ec7..aaf859c488 100644 --- a/packages/datasource-replica/test/integrations/factories.ts +++ b/packages/datasource-replica/test/integrations/factories.ts @@ -1,7 +1,10 @@ -import { DataSource, Filter, Logger, Projection } from '@forestadmin/datasource-toolkit'; +import type { ReplicaDataSourceOptions } from '../../src'; +import type { DataSource, Logger } from '@forestadmin/datasource-toolkit'; + +import { Filter, Projection } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { ReplicaDataSourceOptions, createReplicaDataSource } from '../../src'; +import { createReplicaDataSource } from '../../src'; const makeLogger = () => jest.fn(); diff --git a/packages/datasource-replica/test/integrations/pull-delta.test.ts b/packages/datasource-replica/test/integrations/pull-delta.test.ts index 189c8b9842..9eee0b8313 100644 --- a/packages/datasource-replica/test/integrations/pull-delta.test.ts +++ b/packages/datasource-replica/test/integrations/pull-delta.test.ts @@ -1,7 +1,8 @@ +import type { PullDeltaRequest, PullDeltaResponse, ReplicaDataSourceOptions } from '../../src'; + import Croner from 'croner'; import { getAllRecords, makeReplicaDataSource, makeSchemaWithId } from './factories'; -import { PullDeltaRequest, PullDeltaResponse, ReplicaDataSourceOptions } from '../../src'; describe('pull delta', () => { describe('when the schema is not provided', () => { diff --git a/packages/datasource-replica/test/integrations/pull-dump-delta.test.ts b/packages/datasource-replica/test/integrations/pull-dump-delta.test.ts index 1b1a57663c..4c3ea973fc 100644 --- a/packages/datasource-replica/test/integrations/pull-dump-delta.test.ts +++ b/packages/datasource-replica/test/integrations/pull-dump-delta.test.ts @@ -1,11 +1,12 @@ -import { getAllRecords, makeReplicaDataSource, makeSchemaWithId } from './factories'; -import { +import type { PullDeltaRequest, PullDeltaResponse, PullDumpResponse, ReplicaDataSourceOptions, } from '../../src'; +import { getAllRecords, makeReplicaDataSource, makeSchemaWithId } from './factories'; + describe('pull dump and delta', () => { describe('when the dump has been executed and a delta is triggered', () => { it('should forward the dump state to the delta state', async () => { diff --git a/packages/datasource-replica/test/integrations/pull-dump.test.ts b/packages/datasource-replica/test/integrations/pull-dump.test.ts index decd311c78..797bd9f79a 100644 --- a/packages/datasource-replica/test/integrations/pull-dump.test.ts +++ b/packages/datasource-replica/test/integrations/pull-dump.test.ts @@ -1,7 +1,8 @@ +import type { PullDumpRequest, ReplicaDataSourceOptions } from '../../src'; + import Croner from 'croner'; import { getAllRecords, makeReplicaDataSource, makeSchemaWithId } from './factories'; -import { PullDumpRequest, ReplicaDataSourceOptions } from '../../src'; describe('pull dump', () => { describe('when the dump fails', () => { diff --git a/packages/datasource-replica/test/integrations/push-delta.test.ts b/packages/datasource-replica/test/integrations/push-delta.test.ts index 59312b0871..48d2ae13b0 100644 --- a/packages/datasource-replica/test/integrations/push-delta.test.ts +++ b/packages/datasource-replica/test/integrations/push-delta.test.ts @@ -1,5 +1,6 @@ +import type { ReplicaDataSourceOptions } from '../../src'; + import { getAllRecords, makeReplicaDataSource, makeSchemaWithId } from './factories'; -import { ReplicaDataSourceOptions } from '../../src'; describe('push delta', () => { describe('when the delta is finished', () => { diff --git a/packages/datasource-replica/test/integrations/schema/flattener.test.ts b/packages/datasource-replica/test/integrations/schema/flattener.test.ts index b1204b9486..4288da7a44 100644 --- a/packages/datasource-replica/test/integrations/schema/flattener.test.ts +++ b/packages/datasource-replica/test/integrations/schema/flattener.test.ts @@ -1,4 +1,5 @@ -import { CollectionReplicaSchema, ReplicaDataSourceOptions } from '../../../src'; +import type { CollectionReplicaSchema, ReplicaDataSourceOptions } from '../../../src'; + import { makeReplicaDataSource } from '../factories'; describe('flattener', () => { diff --git a/packages/datasource-replica/test/integrations/schema/schema.test.ts b/packages/datasource-replica/test/integrations/schema/schema.test.ts index 12485c6ff8..bf66244f3b 100644 --- a/packages/datasource-replica/test/integrations/schema/schema.test.ts +++ b/packages/datasource-replica/test/integrations/schema/schema.test.ts @@ -1,4 +1,5 @@ -import { ReplicaDataSourceOptions } from '../../../src'; +import type { ReplicaDataSourceOptions } from '../../../src'; + import { getAllRecords, makeReplicaDataSource } from '../factories'; describe('schema', () => { diff --git a/packages/datasource-replica/test/integrations/write-actions/create.test.ts b/packages/datasource-replica/test/integrations/write-actions/create.test.ts index 130eec619d..17f3e3a173 100644 --- a/packages/datasource-replica/test/integrations/write-actions/create.test.ts +++ b/packages/datasource-replica/test/integrations/write-actions/create.test.ts @@ -1,6 +1,7 @@ +import type { ReplicaDataSourceOptions } from '../../../src'; + import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { ReplicaDataSourceOptions } from '../../../src'; import { makeReplicaDataSource, makeSchemaWithId } from '../factories'; describe('create', () => { diff --git a/packages/datasource-replica/test/integrations/write-actions/delete.test.ts b/packages/datasource-replica/test/integrations/write-actions/delete.test.ts index 27d5b8ff36..d245087235 100644 --- a/packages/datasource-replica/test/integrations/write-actions/delete.test.ts +++ b/packages/datasource-replica/test/integrations/write-actions/delete.test.ts @@ -1,6 +1,7 @@ +import type { ReplicaDataSourceOptions } from '../../../src'; + import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { ReplicaDataSourceOptions } from '../../../src'; import { makeReplicaDataSource, makeSchemaWithId } from '../factories'; describe('delete', () => { diff --git a/packages/datasource-replica/test/integrations/write-actions/update.test.ts b/packages/datasource-replica/test/integrations/write-actions/update.test.ts index b0081964fc..a15b93db4d 100644 --- a/packages/datasource-replica/test/integrations/write-actions/update.test.ts +++ b/packages/datasource-replica/test/integrations/write-actions/update.test.ts @@ -1,6 +1,7 @@ +import type { ReplicaDataSourceOptions } from '../../../src'; + import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { ReplicaDataSourceOptions } from '../../../src'; import { makeReplicaDataSource, makeSchemaWithId } from '../factories'; describe('update', () => { diff --git a/packages/datasource-sequelize/src/collection.ts b/packages/datasource-sequelize/src/collection.ts index ef7c511f9a..3dc8238230 100644 --- a/packages/datasource-sequelize/src/collection.ts +++ b/packages/datasource-sequelize/src/collection.ts @@ -1,27 +1,25 @@ -import { +import type { AggregateResult, Aggregation, - BaseCollection, Caller, - CollectionUtils, ColumnSchema, DataSource, Filter, Logger, PaginatedFilter, - Projection, RecordData, } from '@forestadmin/datasource-toolkit'; -import { +import type { BindOrReplacements, - DataTypes, FindOptions, ModelDefined, ProjectionAlias, - QueryTypes, Sequelize, } from 'sequelize'; +import { BaseCollection, CollectionUtils, Projection } from '@forestadmin/datasource-toolkit'; +import { DataTypes, QueryTypes } from 'sequelize'; + import AggregationUtils from './utils/aggregation'; import handleErrors from './utils/error-handler'; import ModelConverter from './utils/model-to-collection-schema-converter'; diff --git a/packages/datasource-sequelize/src/datasource.ts b/packages/datasource-sequelize/src/datasource.ts index 5da312b2e7..9e9a642875 100644 --- a/packages/datasource-sequelize/src/datasource.ts +++ b/packages/datasource-sequelize/src/datasource.ts @@ -1,8 +1,11 @@ -import { BaseDataSource, Logger } from '@forestadmin/datasource-toolkit'; -import { QueryTypes, Sequelize } from 'sequelize'; +import type { SequelizeDatasourceOptions } from './types'; +import type { Logger } from '@forestadmin/datasource-toolkit'; +import type { Sequelize } from 'sequelize'; + +import { BaseDataSource } from '@forestadmin/datasource-toolkit'; +import { QueryTypes } from 'sequelize'; import SequelizeCollection from './collection'; -import { SequelizeDatasourceOptions } from './types'; interface NativeQueryConnection { instance: Sequelize; diff --git a/packages/datasource-sequelize/src/index.ts b/packages/datasource-sequelize/src/index.ts index f29e979db9..176af41b41 100644 --- a/packages/datasource-sequelize/src/index.ts +++ b/packages/datasource-sequelize/src/index.ts @@ -1,8 +1,8 @@ -import { DataSourceFactory, Logger } from '@forestadmin/datasource-toolkit'; -import { Sequelize } from 'sequelize'; +import type { SequelizeDatasourceOptions } from './types'; +import type { DataSourceFactory, Logger } from '@forestadmin/datasource-toolkit'; +import type { Sequelize } from 'sequelize'; import SequelizeDataSource from './datasource'; -import { SequelizeDatasourceOptions } from './types'; export { default as SequelizeCollection } from './collection'; export { default as SequelizeDataSource } from './datasource'; diff --git a/packages/datasource-sequelize/src/type-overrides.ts b/packages/datasource-sequelize/src/type-overrides.ts index 3d383f90e1..0adf58884c 100644 --- a/packages/datasource-sequelize/src/type-overrides.ts +++ b/packages/datasource-sequelize/src/type-overrides.ts @@ -1,7 +1,7 @@ // Override the types from sequelize to add properties from private fields and methods // that we use in the datasource-sequelize package, but that are not exported by sequelize. -import { +import type { AbstractDataType, AbstractDataTypeConstructor, ArrayDataType, diff --git a/packages/datasource-sequelize/src/utils/aggregation.ts b/packages/datasource-sequelize/src/utils/aggregation.ts index faf14776c2..f0ca595686 100644 --- a/packages/datasource-sequelize/src/utils/aggregation.ts +++ b/packages/datasource-sequelize/src/utils/aggregation.ts @@ -1,5 +1,5 @@ -import { AggregateResult, Aggregation, ValidationError } from '@forestadmin/datasource-toolkit'; -import { +import type { AggregateResult, Aggregation } from '@forestadmin/datasource-toolkit'; +import type { Dialect, GroupOption, Model, @@ -8,7 +8,9 @@ import { ProjectionAlias, Sequelize, } from 'sequelize'; -import { Fn } from 'sequelize/types/utils'; +import type { Fn } from 'sequelize/types/utils'; + +import { ValidationError } from '@forestadmin/datasource-toolkit'; import DateAggregationConverter from './date-aggregation-converter'; import Serializer from './serializer'; diff --git a/packages/datasource-sequelize/src/utils/date-aggregation-converter.ts b/packages/datasource-sequelize/src/utils/date-aggregation-converter.ts index 74b3de0bbb..4586b6688b 100644 --- a/packages/datasource-sequelize/src/utils/date-aggregation-converter.ts +++ b/packages/datasource-sequelize/src/utils/date-aggregation-converter.ts @@ -1,6 +1,6 @@ -import { DateOperation } from '@forestadmin/datasource-toolkit'; -import { Dialect, Sequelize } from 'sequelize'; -import { Col, Fn, Literal } from 'sequelize/types/utils'; +import type { DateOperation } from '@forestadmin/datasource-toolkit'; +import type { Dialect, Sequelize } from 'sequelize'; +import type { Col, Fn, Literal } from 'sequelize/types/utils'; export default class DateAggregationConverter { private dialect: Dialect; diff --git a/packages/datasource-sequelize/src/utils/model-to-collection-schema-converter.ts b/packages/datasource-sequelize/src/utils/model-to-collection-schema-converter.ts index 8005d13417..d239948cee 100644 --- a/packages/datasource-sequelize/src/utils/model-to-collection-schema-converter.ts +++ b/packages/datasource-sequelize/src/utils/model-to-collection-schema-converter.ts @@ -1,4 +1,5 @@ -import { +import type { BelongsToManyExt, ModelAttributeColumnOptionsExt } from '../type-overrides'; +import type { CollectionSchema, ColumnSchema, ColumnSchemaValidation, @@ -6,21 +7,18 @@ import { Logger, RelationSchema, } from '@forestadmin/datasource-toolkit'; -import { +import type { AbstractDataType, Association, - BelongsTo, - BelongsToMany, DataTypes, - HasMany, - HasOne, Model, ModelAttributes, ModelDefined, } from 'sequelize'; +import { BelongsTo, BelongsToMany, HasMany, HasOne } from 'sequelize'; + import TypeConverter from './type-converter'; -import { BelongsToManyExt, ModelAttributeColumnOptionsExt } from '../type-overrides'; export default class ModelToCollectionSchemaConverter { private static convertAssociation( diff --git a/packages/datasource-sequelize/src/utils/query-converter.ts b/packages/datasource-sequelize/src/utils/query-converter.ts index 1c7e4a2bf7..cc837e5c51 100644 --- a/packages/datasource-sequelize/src/utils/query-converter.ts +++ b/packages/datasource-sequelize/src/utils/query-converter.ts @@ -1,22 +1,25 @@ -import { +import type { ConditionTree, ConditionTreeBranch, - ConditionTreeFactory, - ConditionTreeLeaf, Operator, - Projection, Sort, } from '@forestadmin/datasource-toolkit'; -import { +import type { Dialect, IncludeOptions, ModelDefined, - Op, OrderItem, Sequelize, WhereOptions, } from 'sequelize'; +import { + ConditionTreeFactory, + ConditionTreeLeaf, + Projection, +} from '@forestadmin/datasource-toolkit'; +import { Op } from 'sequelize'; + import unAmbigousField from './un-ambigous'; export default class QueryConverter { diff --git a/packages/datasource-sequelize/src/utils/serializer.ts b/packages/datasource-sequelize/src/utils/serializer.ts index c022a1f4e3..4879a082fc 100644 --- a/packages/datasource-sequelize/src/utils/serializer.ts +++ b/packages/datasource-sequelize/src/utils/serializer.ts @@ -1,4 +1,4 @@ -import { RecordData } from '@forestadmin/datasource-toolkit'; +import type { RecordData } from '@forestadmin/datasource-toolkit'; export default class Serializer { static serialize(record: RecordData): RecordData { diff --git a/packages/datasource-sequelize/src/utils/type-converter.ts b/packages/datasource-sequelize/src/utils/type-converter.ts index c3506b2324..50333e7368 100644 --- a/packages/datasource-sequelize/src/utils/type-converter.ts +++ b/packages/datasource-sequelize/src/utils/type-converter.ts @@ -1,7 +1,8 @@ -import { ColumnType, Operator, PrimitiveTypes } from '@forestadmin/datasource-toolkit'; -import { AbstractDataType, AbstractDataTypeConstructor, DataTypes } from 'sequelize'; +import type { ArrayDataTypeExt } from '../type-overrides'; +import type { ColumnType, Operator, PrimitiveTypes } from '@forestadmin/datasource-toolkit'; +import type { AbstractDataType, AbstractDataTypeConstructor } from 'sequelize'; -import { ArrayDataTypeExt } from '../type-overrides'; +import { DataTypes } from 'sequelize'; export default class TypeConverter { private static getColumnTypeFromDataType(dataType: AbstractDataType): PrimitiveTypes { diff --git a/packages/datasource-sequelize/src/utils/un-ambigous.ts b/packages/datasource-sequelize/src/utils/un-ambigous.ts index ce7c500870..25e23bbf31 100644 --- a/packages/datasource-sequelize/src/utils/un-ambigous.ts +++ b/packages/datasource-sequelize/src/utils/un-ambigous.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { ModelDefined } from 'sequelize/types'; +import type { ModelDefined } from 'sequelize/types'; function getRealFieldName(model: ModelDefined, fieldName: string) { const fields = model.getAttributes(); diff --git a/packages/datasource-sequelize/test/collection.test.ts b/packages/datasource-sequelize/test/collection.test.ts index e9a3aba5a6..0c504b8add 100644 --- a/packages/datasource-sequelize/test/collection.test.ts +++ b/packages/datasource-sequelize/test/collection.test.ts @@ -1,13 +1,14 @@ +import type { DataSource, RecordData } from '@forestadmin/datasource-toolkit'; +import type { Dialect, ModelDefined } from 'sequelize'; + import { Aggregation, ConditionTreeLeaf, - DataSource, Filter, Projection, - RecordData, } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; -import { DataTypes, Dialect, ModelDefined, Op, Sequelize } from 'sequelize'; +import { DataTypes, Op, Sequelize } from 'sequelize'; import { SequelizeCollection } from '../src'; diff --git a/packages/datasource-sequelize/test/integration/aggregation/count.integration.test.ts b/packages/datasource-sequelize/test/integration/aggregation/count.integration.test.ts index c9ad2e4575..5e73722b43 100644 --- a/packages/datasource-sequelize/test/integration/aggregation/count.integration.test.ts +++ b/packages/datasource-sequelize/test/integration/aggregation/count.integration.test.ts @@ -1,7 +1,9 @@ -import { Aggregation, Caller, Filter } from '@forestadmin/datasource-toolkit'; +import type SequelizeCollection from '../../../src/collection'; +import type { Caller } from '@forestadmin/datasource-toolkit'; + +import { Aggregation, Filter } from '@forestadmin/datasource-toolkit'; import { DataTypes, Sequelize } from 'sequelize'; -import SequelizeCollection from '../../../src/collection'; import { createSequelizeDataSource } from '../../../src/index'; import CONNECTIONS from '../../__tests/connections'; diff --git a/packages/datasource-sequelize/test/integration/list/filter.integration.test.ts b/packages/datasource-sequelize/test/integration/list/filter.integration.test.ts index a2f406f109..1f00d3bfce 100644 --- a/packages/datasource-sequelize/test/integration/list/filter.integration.test.ts +++ b/packages/datasource-sequelize/test/integration/list/filter.integration.test.ts @@ -1,12 +1,9 @@ -import { - Caller, - ConditionTreeLeaf, - PaginatedFilter, - Projection, -} from '@forestadmin/datasource-toolkit'; +import type SequelizeCollection from '../../../src/collection'; +import type { Caller } from '@forestadmin/datasource-toolkit'; + +import { ConditionTreeLeaf, PaginatedFilter, Projection } from '@forestadmin/datasource-toolkit'; import { DataTypes, Sequelize } from 'sequelize'; -import SequelizeCollection from '../../../src/collection'; import { createSequelizeDataSource } from '../../../src/index'; import CONNECTIONS from '../../__tests/connections'; diff --git a/packages/datasource-sequelize/test/utils/date-aggregation-converter.test.ts b/packages/datasource-sequelize/test/utils/date-aggregation-converter.test.ts index 9f5df30f44..028458a2ac 100644 --- a/packages/datasource-sequelize/test/utils/date-aggregation-converter.test.ts +++ b/packages/datasource-sequelize/test/utils/date-aggregation-converter.test.ts @@ -1,5 +1,7 @@ -import { DateOperation } from '@forestadmin/datasource-toolkit'; -import { Dialect, Sequelize } from 'sequelize'; +import type { DateOperation } from '@forestadmin/datasource-toolkit'; +import type { Dialect } from 'sequelize'; + +import { Sequelize } from 'sequelize'; import DateAggregationConverter from '../../src/utils/date-aggregation-converter'; diff --git a/packages/datasource-sequelize/test/utils/model-to-collection-schema-converter.test.ts b/packages/datasource-sequelize/test/utils/model-to-collection-schema-converter.test.ts index 9a981224d4..5c4629f385 100644 --- a/packages/datasource-sequelize/test/utils/model-to-collection-schema-converter.test.ts +++ b/packages/datasource-sequelize/test/utils/model-to-collection-schema-converter.test.ts @@ -1,6 +1,8 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { CollectionSchema } from '@forestadmin/datasource-toolkit'; -import { Association, DataTypes, ModelDefined, Sequelize } from 'sequelize'; +import type { CollectionSchema } from '@forestadmin/datasource-toolkit'; +import type { Association, ModelDefined } from 'sequelize'; + +import { DataTypes, Sequelize } from 'sequelize'; import ModelToCollectionSchemaConverter from '../../src/utils/model-to-collection-schema-converter'; import TypeConverter from '../../src/utils/type-converter'; diff --git a/packages/datasource-sequelize/test/utils/query-converter.unit.test.ts b/packages/datasource-sequelize/test/utils/query-converter.unit.test.ts index 413532bc64..0d7ec69569 100644 --- a/packages/datasource-sequelize/test/utils/query-converter.unit.test.ts +++ b/packages/datasource-sequelize/test/utils/query-converter.unit.test.ts @@ -1,15 +1,15 @@ /* eslint-disable @typescript-eslint/no-non-null-assertion,@typescript-eslint/no-explicit-any */ +import type { Aggregator, ConditionTree, Operator } from '@forestadmin/datasource-toolkit'; +import type { Dialect } from 'sequelize'; + import { - Aggregator, - ConditionTree, ConditionTreeBranch, ConditionTreeLeaf, - Operator, Projection, Sort, } from '@forestadmin/datasource-toolkit'; -import { DataTypes, Dialect, Op, Sequelize } from 'sequelize'; +import { DataTypes, Op, Sequelize } from 'sequelize'; import QueryConverter from '../../src/utils/query-converter'; diff --git a/packages/datasource-sequelize/test/utils/type-converter.unit.test.ts b/packages/datasource-sequelize/test/utils/type-converter.unit.test.ts index 914beeecc3..e537c4a3e0 100644 --- a/packages/datasource-sequelize/test/utils/type-converter.unit.test.ts +++ b/packages/datasource-sequelize/test/utils/type-converter.unit.test.ts @@ -1,4 +1,5 @@ -import { ColumnType, Operator } from '@forestadmin/datasource-toolkit'; +import type { ColumnType, Operator } from '@forestadmin/datasource-toolkit'; + import { DataTypes } from 'sequelize'; import TypeConverter from '../../src/utils/type-converter'; diff --git a/packages/datasource-sql/src/connection/connection-options.ts b/packages/datasource-sql/src/connection/connection-options.ts index 4c002f7ad7..bf024904d1 100644 --- a/packages/datasource-sql/src/connection/connection-options.ts +++ b/packages/datasource-sql/src/connection/connection-options.ts @@ -1,15 +1,15 @@ -import { Logger } from '@forestadmin/datasource-toolkit'; -import { Dialect, Sequelize, Options as SequelizeOptions } from 'sequelize'; - -import { DatabaseConnectError } from './errors'; -import connect from './index'; -import { +import type { PlainConnectionOptions, PlainConnectionOptionsOrUri, ProxyOptions, SshOptions, SslMode, } from '../types'; +import type { Logger } from '@forestadmin/datasource-toolkit'; +import type { Dialect, Sequelize, Options as SequelizeOptions } from 'sequelize'; + +import { DatabaseConnectError } from './errors'; +import connect from './index'; /** * Connection options. diff --git a/packages/datasource-sql/src/connection/connection-tester.ts b/packages/datasource-sql/src/connection/connection-tester.ts index c3706a25a2..25efb3eca3 100644 --- a/packages/datasource-sql/src/connection/connection-tester.ts +++ b/packages/datasource-sql/src/connection/connection-tester.ts @@ -1,4 +1,4 @@ -import { Sequelize } from 'sequelize'; +import type { Sequelize } from 'sequelize'; import { DatabaseConnectError } from './errors'; diff --git a/packages/datasource-sql/src/connection/handle-errors.ts b/packages/datasource-sql/src/connection/handle-errors.ts index ed2ab62454..b089ce862a 100644 --- a/packages/datasource-sql/src/connection/handle-errors.ts +++ b/packages/datasource-sql/src/connection/handle-errors.ts @@ -1,6 +1,7 @@ +import type ConnectionOptions from './connection-options'; + import { BaseError as SequelizeError } from 'sequelize'; -import ConnectionOptions from './connection-options'; import { DatabaseConnectError, ProxyForwardError, diff --git a/packages/datasource-sql/src/connection/index.ts b/packages/datasource-sql/src/connection/index.ts index 7dd548e3b1..509dc18cd2 100644 --- a/packages/datasource-sql/src/connection/index.ts +++ b/packages/datasource-sql/src/connection/index.ts @@ -1,6 +1,6 @@ -import { Sequelize } from 'sequelize'; +import type ConnectionOptions from './connection-options'; +import type { Sequelize } from 'sequelize'; -import ConnectionOptions from './connection-options'; import testConnectionWithTimeOut from './connection-tester'; import handleErrors from './handle-errors'; import SequelizeFactory from './sequelize-factory'; diff --git a/packages/datasource-sql/src/connection/sequelize-factory.ts b/packages/datasource-sql/src/connection/sequelize-factory.ts index 369f7a7fd1..75c1da389c 100644 --- a/packages/datasource-sql/src/connection/sequelize-factory.ts +++ b/packages/datasource-sql/src/connection/sequelize-factory.ts @@ -1,7 +1,7 @@ -import { Sequelize } from 'sequelize'; -import { Options as SequelizeOptions } from 'sequelize/types/sequelize'; +import type Service from './services/service'; +import type { Options as SequelizeOptions } from 'sequelize/types/sequelize'; -import Service from './services/service'; +import { Sequelize } from 'sequelize'; export default class SequelizeFactory { static build( diff --git a/packages/datasource-sql/src/connection/services/service.ts b/packages/datasource-sql/src/connection/services/service.ts index 09e3518c72..dda8eb4e6b 100644 --- a/packages/datasource-sql/src/connection/services/service.ts +++ b/packages/datasource-sql/src/connection/services/service.ts @@ -1,4 +1,4 @@ -import net from 'net'; +import type net from 'net'; export type ConnectionCallback = (socket: net.Socket) => Promise; export type StopCallback = () => Promise; diff --git a/packages/datasource-sql/src/connection/services/socks-proxy.ts b/packages/datasource-sql/src/connection/services/socks-proxy.ts index 4de079cfec..9d221def00 100644 --- a/packages/datasource-sql/src/connection/services/socks-proxy.ts +++ b/packages/datasource-sql/src/connection/services/socks-proxy.ts @@ -1,9 +1,10 @@ -import net from 'net'; +import type { ProxyOptions } from '../../types'; +import type net from 'net'; +import type { SocksClientEstablishedEvent } from 'socks/typings/common/constants'; + import { SocksClient } from 'socks'; -import { SocksClientEstablishedEvent } from 'socks/typings/common/constants'; import Service from './service'; -import { ProxyOptions } from '../../types'; import { ProxyConnectError, ProxyForwardError } from '../errors'; export default class SocksProxy extends Service { diff --git a/packages/datasource-sql/src/connection/services/ssh-tunnel.ts b/packages/datasource-sql/src/connection/services/ssh-tunnel.ts index 1df057e3ca..05a576085f 100644 --- a/packages/datasource-sql/src/connection/services/ssh-tunnel.ts +++ b/packages/datasource-sql/src/connection/services/ssh-tunnel.ts @@ -1,8 +1,9 @@ -import net from 'net'; +import type { SshOptions } from '../../types'; +import type net from 'net'; + import { Client } from 'ssh2'; import Service from './service'; -import { SshOptions } from '../../types'; import { SshConnectError, SshForwardError } from '../errors'; export default class SshTunnel extends Service { diff --git a/packages/datasource-sql/src/decorators/sql-datasource.ts b/packages/datasource-sql/src/decorators/sql-datasource.ts index 27a09dd35c..b9917ae98b 100644 --- a/packages/datasource-sql/src/decorators/sql-datasource.ts +++ b/packages/datasource-sql/src/decorators/sql-datasource.ts @@ -1,8 +1,10 @@ -import { SequelizeDataSource } from '@forestadmin/datasource-sequelize'; -import { Collection, DataSourceDecorator } from '@forestadmin/datasource-toolkit'; +import type { Table } from '../introspection/types'; +import type { SequelizeDataSource } from '@forestadmin/datasource-sequelize'; +import type { Collection } from '@forestadmin/datasource-toolkit'; + +import { DataSourceDecorator } from '@forestadmin/datasource-toolkit'; import ViewDecorator from './view-decorator'; -import { Table } from '../introspection/types'; export default class SqlDatasource extends DataSourceDecorator { private readonly viewNames: Set = new Set(); diff --git a/packages/datasource-sql/src/decorators/view-decorator.ts b/packages/datasource-sql/src/decorators/view-decorator.ts index 2568eb9260..17a876c8e5 100644 --- a/packages/datasource-sql/src/decorators/view-decorator.ts +++ b/packages/datasource-sql/src/decorators/view-decorator.ts @@ -1,8 +1,6 @@ -import { - CollectionDecorator, - CollectionSchema, - UnprocessableError, -} from '@forestadmin/datasource-toolkit'; +import type { CollectionSchema } from '@forestadmin/datasource-toolkit'; + +import { CollectionDecorator, UnprocessableError } from '@forestadmin/datasource-toolkit'; export default class ViewDecorator extends CollectionDecorator { protected override refineSchema(subSchema: CollectionSchema): CollectionSchema { diff --git a/packages/datasource-sql/src/index.ts b/packages/datasource-sql/src/index.ts index f64856b397..582f43e290 100644 --- a/packages/datasource-sql/src/index.ts +++ b/packages/datasource-sql/src/index.ts @@ -1,3 +1,9 @@ +import type { + Introspection, + LatestIntrospection, + SupportedIntrospection, + Table, +} from './introspection/types'; import type { PlainConnectionOptions, PlainConnectionOptionsOrUri, @@ -5,9 +11,9 @@ import type { SslMode, } from './types'; import type { DataSourceFactory, Logger } from '@forestadmin/datasource-toolkit'; +import type { Sequelize } from 'sequelize'; import { SequelizeDataSource } from '@forestadmin/datasource-sequelize'; -import { Sequelize } from 'sequelize'; import connect from './connection'; import ConnectionOptions from './connection/connection-options'; @@ -15,12 +21,6 @@ import SequelizeFactory from './connection/sequelize-factory'; import SqlDatasource from './decorators/sql-datasource'; import Introspector from './introspection/introspector'; import listCollectionsFromIntrospection from './introspection/list-collections-from-introspection'; -import { - Introspection, - LatestIntrospection, - SupportedIntrospection, - Table, -} from './introspection/types'; import ModelBuilder from './orm-builder/model'; import RelationBuilder from './orm-builder/relations'; diff --git a/packages/datasource-sql/src/introspection/dialects/dialect-factory.ts b/packages/datasource-sql/src/introspection/dialects/dialect-factory.ts index e2c0a28636..8c1536711d 100644 --- a/packages/datasource-sql/src/introspection/dialects/dialect-factory.ts +++ b/packages/datasource-sql/src/introspection/dialects/dialect-factory.ts @@ -1,6 +1,6 @@ -import { Dialect } from 'sequelize'; +import type IntrospectionDialect from './dialect.interface'; +import type { Dialect } from 'sequelize'; -import IntrospectionDialect from './dialect.interface'; import MariadbDialect from './mariadb-dialect'; import MsSQLDialect from './mssql-dialect'; import MySQLDialect from './mysql-dialect'; diff --git a/packages/datasource-sql/src/introspection/dialects/dialect.interface.ts b/packages/datasource-sql/src/introspection/dialects/dialect.interface.ts index 891f57a6d3..454340de77 100644 --- a/packages/datasource-sql/src/introspection/dialects/dialect.interface.ts +++ b/packages/datasource-sql/src/introspection/dialects/dialect.interface.ts @@ -1,6 +1,5 @@ -import { Sequelize } from 'sequelize'; - -import { SequelizeColumn, SequelizeTableIdentifier } from '../type-overrides'; +import type { SequelizeColumn, SequelizeTableIdentifier } from '../type-overrides'; +import type { Sequelize } from 'sequelize'; export type ColumnDescription = Omit & { name: string; diff --git a/packages/datasource-sql/src/introspection/dialects/mariadb-dialect.ts b/packages/datasource-sql/src/introspection/dialects/mariadb-dialect.ts index b0084258b4..e0f95429aa 100644 --- a/packages/datasource-sql/src/introspection/dialects/mariadb-dialect.ts +++ b/packages/datasource-sql/src/introspection/dialects/mariadb-dialect.ts @@ -1,4 +1,6 @@ -import MySQLDialect, { MySQLDBColumn } from './mysql-dialect'; +import type { MySQLDBColumn } from './mysql-dialect'; + +import MySQLDialect from './mysql-dialect'; export default class MariadbDialect extends MySQLDialect { protected override mapDefaultValue(dbColumn: MySQLDBColumn): { diff --git a/packages/datasource-sql/src/introspection/dialects/mssql-dialect.ts b/packages/datasource-sql/src/introspection/dialects/mssql-dialect.ts index 83b339c998..3619603a65 100644 --- a/packages/datasource-sql/src/introspection/dialects/mssql-dialect.ts +++ b/packages/datasource-sql/src/introspection/dialects/mssql-dialect.ts @@ -1,7 +1,13 @@ -import { QueryTypes, Sequelize } from 'sequelize'; - -import IntrospectionDialect, { ColumnDescription } from './dialect.interface'; -import { SequelizeColumn, SequelizeTableIdentifier, SequelizeWithOptions } from '../type-overrides'; +import type { ColumnDescription } from './dialect.interface'; +import type IntrospectionDialect from './dialect.interface'; +import type { + SequelizeColumn, + SequelizeTableIdentifier, + SequelizeWithOptions, +} from '../type-overrides'; +import type { Sequelize } from 'sequelize'; + +import { QueryTypes } from 'sequelize'; type DBColumn = { Schema: string; diff --git a/packages/datasource-sql/src/introspection/dialects/mysql-dialect/index.ts b/packages/datasource-sql/src/introspection/dialects/mysql-dialect/index.ts index 6d81959371..ea26910502 100644 --- a/packages/datasource-sql/src/introspection/dialects/mysql-dialect/index.ts +++ b/packages/datasource-sql/src/introspection/dialects/mysql-dialect/index.ts @@ -1,12 +1,15 @@ -import { QueryTypes, Sequelize } from 'sequelize'; - -import parseEnum from './parse-enum'; -import { +import type { SequelizeColumn, SequelizeTableIdentifier, SequelizeWithOptions, } from '../../type-overrides'; -import IntrospectionDialect, { ColumnDescription } from '../dialect.interface'; +import type { ColumnDescription } from '../dialect.interface'; +import type IntrospectionDialect from '../dialect.interface'; +import type { Sequelize } from 'sequelize'; + +import { QueryTypes } from 'sequelize'; + +import parseEnum from './parse-enum'; export type MySQLDBColumn = { Table: string; diff --git a/packages/datasource-sql/src/introspection/dialects/postgresql-dialect/index.ts b/packages/datasource-sql/src/introspection/dialects/postgresql-dialect/index.ts index 9fa19833ee..6292d95fc8 100644 --- a/packages/datasource-sql/src/introspection/dialects/postgresql-dialect/index.ts +++ b/packages/datasource-sql/src/introspection/dialects/postgresql-dialect/index.ts @@ -1,12 +1,15 @@ -import { QueryTypes, Sequelize } from 'sequelize'; - -import parseArray from './parse-array'; -import { +import type { SequelizeColumn, SequelizeTableIdentifier, SequelizeWithOptions, } from '../../type-overrides'; -import IntrospectionDialect, { ColumnDescription } from '../dialect.interface'; +import type { ColumnDescription } from '../dialect.interface'; +import type IntrospectionDialect from '../dialect.interface'; +import type { Sequelize } from 'sequelize'; + +import { QueryTypes } from 'sequelize'; + +import parseArray from './parse-array'; type DBColumn = { Schema: string; diff --git a/packages/datasource-sql/src/introspection/dialects/sqlite-dialect.ts b/packages/datasource-sql/src/introspection/dialects/sqlite-dialect.ts index b899cb7cc5..41116d1179 100644 --- a/packages/datasource-sql/src/introspection/dialects/sqlite-dialect.ts +++ b/packages/datasource-sql/src/introspection/dialects/sqlite-dialect.ts @@ -1,7 +1,9 @@ -import { QueryTypes, Sequelize } from 'sequelize'; +import type { ColumnDescription } from './dialect.interface'; +import type IntrospectionDialect from './dialect.interface'; +import type { SequelizeTableIdentifier, SequelizeWithOptions } from '../type-overrides'; +import type { Sequelize } from 'sequelize'; -import IntrospectionDialect, { ColumnDescription } from './dialect.interface'; -import { SequelizeTableIdentifier, SequelizeWithOptions } from '../type-overrides'; +import { QueryTypes } from 'sequelize'; type DBColumn = { cid: number; diff --git a/packages/datasource-sql/src/introspection/helpers/default-value-parser.ts b/packages/datasource-sql/src/introspection/helpers/default-value-parser.ts index aa09bbec19..3ab7dbd455 100644 --- a/packages/datasource-sql/src/introspection/helpers/default-value-parser.ts +++ b/packages/datasource-sql/src/introspection/helpers/default-value-parser.ts @@ -1,7 +1,7 @@ -import { literal } from 'sequelize'; +import type { ColumnDescription } from '../dialects/dialect.interface'; +import type { ColumnType } from '../types'; -import { ColumnDescription } from '../dialects/dialect.interface'; -import { ColumnType } from '../types'; +import { literal } from 'sequelize'; export default class DefaultValueParser { static parse( diff --git a/packages/datasource-sql/src/introspection/helpers/sql-type-converter.ts b/packages/datasource-sql/src/introspection/helpers/sql-type-converter.ts index b71c621dac..14cab174a8 100644 --- a/packages/datasource-sql/src/introspection/helpers/sql-type-converter.ts +++ b/packages/datasource-sql/src/introspection/helpers/sql-type-converter.ts @@ -1,6 +1,6 @@ -import { ColumnDescription } from '../dialects/dialect.interface'; -import { SequelizeTableIdentifier } from '../type-overrides'; -import { ColumnType, ScalarSubType } from '../types'; +import type { ColumnDescription } from '../dialects/dialect.interface'; +import type { SequelizeTableIdentifier } from '../type-overrides'; +import type { ColumnType, ScalarSubType } from '../types'; export default class SqlTypeConverter { private static readonly enumRegex = /ENUM\((.*)\)/i; diff --git a/packages/datasource-sql/src/introspection/introspector.ts b/packages/datasource-sql/src/introspection/introspector.ts index 8255a7d27e..c204301e2e 100644 --- a/packages/datasource-sql/src/introspection/introspector.ts +++ b/packages/datasource-sql/src/introspection/introspector.ts @@ -1,17 +1,20 @@ -import { IntrospectionFormatError, Logger } from '@forestadmin/datasource-toolkit'; -import { Dialect, Sequelize } from 'sequelize'; - -import introspectionDialectFactory from './dialects/dialect-factory'; -import IntrospectionDialect, { ColumnDescription } from './dialects/dialect.interface'; -import DefaultValueParser from './helpers/default-value-parser'; -import SqlTypeConverter from './helpers/sql-type-converter'; -import { +import type { ColumnDescription } from './dialects/dialect.interface'; +import type IntrospectionDialect from './dialects/dialect.interface'; +import type { QueryInterfaceExt, SequelizeReference, SequelizeTableIdentifier, SequelizeWithOptions, } from './type-overrides'; -import { Introspection, LatestIntrospection, SupportedIntrospection, Table } from './types'; +import type { Introspection, LatestIntrospection, SupportedIntrospection, Table } from './types'; +import type { Logger } from '@forestadmin/datasource-toolkit'; +import type { Dialect, Sequelize } from 'sequelize'; + +import { IntrospectionFormatError } from '@forestadmin/datasource-toolkit'; + +import introspectionDialectFactory from './dialects/dialect-factory'; +import DefaultValueParser from './helpers/default-value-parser'; +import SqlTypeConverter from './helpers/sql-type-converter'; export default class Introspector { static readonly FORMAT_VERSION = 3; diff --git a/packages/datasource-sql/src/introspection/list-collections-from-introspection.ts b/packages/datasource-sql/src/introspection/list-collections-from-introspection.ts index 99e4f8a614..3fbba35676 100644 --- a/packages/datasource-sql/src/introspection/list-collections-from-introspection.ts +++ b/packages/datasource-sql/src/introspection/list-collections-from-introspection.ts @@ -1,5 +1,6 @@ +import type { SupportedIntrospection } from './types'; + import Introspector from './introspector'; -import { SupportedIntrospection } from './types'; export default function listCollectionsFromIntrospection( introspection: SupportedIntrospection, diff --git a/packages/datasource-sql/src/introspection/type-overrides.ts b/packages/datasource-sql/src/introspection/type-overrides.ts index 74bacca221..53f1a6a003 100644 --- a/packages/datasource-sql/src/introspection/type-overrides.ts +++ b/packages/datasource-sql/src/introspection/type-overrides.ts @@ -1,7 +1,7 @@ // Override the types from sequelize to add properties from private fields and methods // that we use in the datasource-sequelize package, but that are not exported by sequelize. -import { +import type { AbstractDataType, AbstractDataTypeConstructor, ColumnDescription, diff --git a/packages/datasource-sql/src/orm-builder/helpers/relation-extractor.ts b/packages/datasource-sql/src/orm-builder/helpers/relation-extractor.ts index 4da8602243..7e70c488a1 100644 --- a/packages/datasource-sql/src/orm-builder/helpers/relation-extractor.ts +++ b/packages/datasource-sql/src/orm-builder/helpers/relation-extractor.ts @@ -1,5 +1,5 @@ -import { Table } from '../../introspection/types'; -import { Relation } from '../types'; +import type { Table } from '../../introspection/types'; +import type { Relation } from '../types'; export default class RelationExtractor { static listRelations(tableName: string, tables: Table[]): Relation[] { diff --git a/packages/datasource-sql/src/orm-builder/helpers/relation-name-generator.ts b/packages/datasource-sql/src/orm-builder/helpers/relation-name-generator.ts index 0bf57991ed..67f54b5231 100644 --- a/packages/datasource-sql/src/orm-builder/helpers/relation-name-generator.ts +++ b/packages/datasource-sql/src/orm-builder/helpers/relation-name-generator.ts @@ -1,7 +1,7 @@ -import { plural, singular } from 'pluralize'; +import type { Table } from '../../introspection/types'; +import type { Relation } from '../types'; -import { Table } from '../../introspection/types'; -import { Relation } from '../types'; +import { plural, singular } from 'pluralize'; export default class RelationNameGenerator { static getUniqueRelationNames(table: Table, relations: Relation[]): string[] { diff --git a/packages/datasource-sql/src/orm-builder/helpers/sequelize-type.ts b/packages/datasource-sql/src/orm-builder/helpers/sequelize-type.ts index 9cbb3a73ed..d763489c81 100644 --- a/packages/datasource-sql/src/orm-builder/helpers/sequelize-type.ts +++ b/packages/datasource-sql/src/orm-builder/helpers/sequelize-type.ts @@ -1,8 +1,9 @@ /* eslint-disable max-classes-per-file */ -import { DataTypes } from 'sequelize'; -import { SequelizeColumnType } from '../../introspection/type-overrides'; -import { ColumnType } from '../../introspection/types'; +import type { SequelizeColumnType } from '../../introspection/type-overrides'; +import type { ColumnType } from '../../introspection/types'; + +import { DataTypes } from 'sequelize'; export default class SequelizeTypeFactory { static makeType( diff --git a/packages/datasource-sql/src/orm-builder/model.ts b/packages/datasource-sql/src/orm-builder/model.ts index 8ba4caf983..b370fe2786 100644 --- a/packages/datasource-sql/src/orm-builder/model.ts +++ b/packages/datasource-sql/src/orm-builder/model.ts @@ -1,11 +1,13 @@ -import { Logger } from '@forestadmin/datasource-toolkit'; -import { ModelAttributes, Sequelize, UUIDV4 } from 'sequelize'; -import { ModelAttributeColumnOptions } from 'sequelize/types/model'; -import { Literal } from 'sequelize/types/utils'; +import type { LatestIntrospection, Table } from '../introspection/types'; +import type { SqlDatasourceOptions } from '../types'; +import type { Logger } from '@forestadmin/datasource-toolkit'; +import type { ModelAttributes } from 'sequelize'; +import type { ModelAttributeColumnOptions } from 'sequelize/types/model'; +import type { Literal } from 'sequelize/types/utils'; + +import { Sequelize, UUIDV4 } from 'sequelize'; import SequelizeTypeFactory from './helpers/sequelize-type'; -import { LatestIntrospection, Table } from '../introspection/types'; -import { SqlDatasourceOptions } from '../types'; type TableOrView = Table & { view?: boolean }; diff --git a/packages/datasource-sql/src/orm-builder/relations.ts b/packages/datasource-sql/src/orm-builder/relations.ts index b4e68c7aff..9d65725beb 100644 --- a/packages/datasource-sql/src/orm-builder/relations.ts +++ b/packages/datasource-sql/src/orm-builder/relations.ts @@ -1,11 +1,11 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { Logger } from '@forestadmin/datasource-toolkit'; -import { Sequelize } from 'sequelize'; +import type { Relation } from './types'; +import type { LatestIntrospection, Table } from '../introspection/types'; +import type { Logger } from '@forestadmin/datasource-toolkit'; +import type { Sequelize } from 'sequelize'; import RelationExtractor from './helpers/relation-extractor'; import RelationNameGenerator from './helpers/relation-name-generator'; -import { Relation } from './types'; -import { LatestIntrospection, Table } from '../introspection/types'; export default class RelationBuilder { static defineRelations( diff --git a/packages/datasource-sql/src/types.ts b/packages/datasource-sql/src/types.ts index bfe07d9106..b2b710d74a 100644 --- a/packages/datasource-sql/src/types.ts +++ b/packages/datasource-sql/src/types.ts @@ -1,7 +1,6 @@ -import { Options } from 'sequelize/types'; -import { ConnectConfig } from 'ssh2'; - -import { SupportedIntrospection } from './introspection/types'; +import type { SupportedIntrospection } from './introspection/types'; +import type { Options } from 'sequelize/types'; +import type { ConnectConfig } from 'ssh2'; type SupportedSequelizeOptions = Pick< Options, diff --git a/packages/datasource-sql/test/_helpers/connection-details.ts b/packages/datasource-sql/test/_helpers/connection-details.ts index 9212363a80..55b6d41c53 100644 --- a/packages/datasource-sql/test/_helpers/connection-details.ts +++ b/packages/datasource-sql/test/_helpers/connection-details.ts @@ -1,6 +1,7 @@ +import type { Dialect, Options, Sequelize } from 'sequelize'; + import { tmpdir } from 'os'; import path from 'path'; -import { Dialect, Options, Sequelize } from 'sequelize'; export type ConnectionDetails = { name: string; diff --git a/packages/datasource-sql/test/_helpers/setup-empty-database.ts b/packages/datasource-sql/test/_helpers/setup-empty-database.ts index 32ae1759bf..ae05730653 100644 --- a/packages/datasource-sql/test/_helpers/setup-empty-database.ts +++ b/packages/datasource-sql/test/_helpers/setup-empty-database.ts @@ -1,6 +1,7 @@ -import { Options, Sequelize } from 'sequelize'; +import type { ConnectionDetails } from './connection-details'; +import type { Options } from 'sequelize'; -import { ConnectionDetails } from './connection-details'; +import { Sequelize } from 'sequelize'; export default async function setupEmptyDatabase( connectionDetails: ConnectionDetails, diff --git a/packages/datasource-sql/test/_helpers/setup-id-is-not-a-pk.ts b/packages/datasource-sql/test/_helpers/setup-id-is-not-a-pk.ts index 7705ae80a9..1448e75095 100644 --- a/packages/datasource-sql/test/_helpers/setup-id-is-not-a-pk.ts +++ b/packages/datasource-sql/test/_helpers/setup-id-is-not-a-pk.ts @@ -1,6 +1,8 @@ -import { DataTypes, Sequelize } from 'sequelize'; +import type { ConnectionDetails } from './connection-details'; +import type { Sequelize } from 'sequelize'; + +import { DataTypes } from 'sequelize'; -import { ConnectionDetails } from './connection-details'; import setupEmptyDatabase from './setup-empty-database'; export default async ( diff --git a/packages/datasource-sql/test/_helpers/setup-simple-table.ts b/packages/datasource-sql/test/_helpers/setup-simple-table.ts index 57241819d0..9af31ec030 100644 --- a/packages/datasource-sql/test/_helpers/setup-simple-table.ts +++ b/packages/datasource-sql/test/_helpers/setup-simple-table.ts @@ -1,6 +1,8 @@ -import { DataTypes, Sequelize } from 'sequelize'; +import type { ConnectionDetails } from './connection-details'; +import type { Sequelize } from 'sequelize'; + +import { DataTypes } from 'sequelize'; -import { ConnectionDetails } from './connection-details'; import setupEmptyDatabase from './setup-empty-database'; export default async function setupSimpleTable( diff --git a/packages/datasource-sql/test/_helpers/setup-soft-deleted.ts b/packages/datasource-sql/test/_helpers/setup-soft-deleted.ts index 8c08b1cb61..b145fdb6f5 100644 --- a/packages/datasource-sql/test/_helpers/setup-soft-deleted.ts +++ b/packages/datasource-sql/test/_helpers/setup-soft-deleted.ts @@ -1,6 +1,8 @@ -import { DataTypes, Sequelize } from 'sequelize'; +import type { ConnectionDetails } from './connection-details'; +import type { Sequelize } from 'sequelize'; + +import { DataTypes } from 'sequelize'; -import { ConnectionDetails } from './connection-details'; import setupEmptyDatabase from './setup-empty-database'; export default async function setupSoftDeleted( diff --git a/packages/datasource-sql/test/_helpers/setup-using-all-types.ts b/packages/datasource-sql/test/_helpers/setup-using-all-types.ts index 819048c86e..946852e3fc 100644 --- a/packages/datasource-sql/test/_helpers/setup-using-all-types.ts +++ b/packages/datasource-sql/test/_helpers/setup-using-all-types.ts @@ -1,7 +1,9 @@ -import { DataTypes, Dialect, Sequelize, literal } from 'sequelize'; -import { Literal } from 'sequelize/types/utils'; +import type { ConnectionDetails } from './connection-details'; +import type { Dialect, Sequelize } from 'sequelize'; +import type { Literal } from 'sequelize/types/utils'; + +import { DataTypes, literal } from 'sequelize'; -import { ConnectionDetails } from './connection-details'; import setupEmptyDatabase from './setup-empty-database'; function getDefaultFunctionDateFromDialect(dialect: Dialect): Literal { diff --git a/packages/datasource-sql/test/_helpers/setup-using-relations.ts b/packages/datasource-sql/test/_helpers/setup-using-relations.ts index 30e7622a8d..e4c9f04da9 100644 --- a/packages/datasource-sql/test/_helpers/setup-using-relations.ts +++ b/packages/datasource-sql/test/_helpers/setup-using-relations.ts @@ -1,6 +1,8 @@ -import { DataTypes, Sequelize } from 'sequelize'; +import type { ConnectionDetails } from './connection-details'; +import type { Sequelize } from 'sequelize'; + +import { DataTypes } from 'sequelize'; -import { ConnectionDetails } from './connection-details'; import setupEmptyDatabase from './setup-empty-database'; export default async ( diff --git a/packages/datasource-sql/test/connection/connect.ssl.test.ts b/packages/datasource-sql/test/connection/connect.ssl.test.ts index ca667bf713..93fb6be9e7 100644 --- a/packages/datasource-sql/test/connection/connect.ssl.test.ts +++ b/packages/datasource-sql/test/connection/connect.ssl.test.ts @@ -1,8 +1,9 @@ +import type { SslMode } from '../../src/types'; + import { Sequelize } from 'sequelize'; import connect from '../../src/connection'; import ConnectionOptions from '../../src/connection/connection-options'; -import { SslMode } from '../../src/types'; import { MARIADB_DETAILS, MSSQL_DETAILS, diff --git a/packages/datasource-sql/test/connection/connection-options.test.ts b/packages/datasource-sql/test/connection/connection-options.test.ts index d1e796b3db..d820025a5c 100644 --- a/packages/datasource-sql/test/connection/connection-options.test.ts +++ b/packages/datasource-sql/test/connection/connection-options.test.ts @@ -1,8 +1,8 @@ -import { Dialect } from 'sequelize'; +import type { PlainConnectionOptionsOrUri } from '../../src/types'; +import type { Dialect } from 'sequelize'; import ConnectionOptions from '../../src/connection/connection-options'; import { DatabaseConnectError } from '../../src/connection/errors'; -import { PlainConnectionOptionsOrUri } from '../../src/types'; describe('ConnectionOptionsWrapper', () => { describe('when using sqlite', () => { diff --git a/packages/datasource-sql/test/connection/connection-tester.test.ts b/packages/datasource-sql/test/connection/connection-tester.test.ts index cff707b429..6f64c44753 100644 --- a/packages/datasource-sql/test/connection/connection-tester.test.ts +++ b/packages/datasource-sql/test/connection/connection-tester.test.ts @@ -1,4 +1,4 @@ -import { Sequelize } from 'sequelize'; +import type { Sequelize } from 'sequelize'; import testConnectionWithTimeOut from '../../src/connection/connection-tester'; import { DatabaseConnectError } from '../../src/connection/errors'; diff --git a/packages/datasource-sql/test/datasource/datasource-factory.integration.test.ts b/packages/datasource-sql/test/datasource/datasource-factory.integration.test.ts index 40aaab7e9c..f66c959f57 100644 --- a/packages/datasource-sql/test/datasource/datasource-factory.integration.test.ts +++ b/packages/datasource-sql/test/datasource/datasource-factory.integration.test.ts @@ -1,8 +1,10 @@ -import { SequelizeDataSource } from '@forestadmin/datasource-sequelize'; +import type { SequelizeDataSource } from '@forestadmin/datasource-sequelize'; +import type { Dialect, Model, ModelStatic } from 'sequelize'; + import { Projection } from '@forestadmin/datasource-toolkit'; import { caller, filter } from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import { stringify } from 'querystring'; -import { DataTypes, Dialect, Model, ModelStatic, Op, Sequelize } from 'sequelize'; +import { DataTypes, Op, Sequelize } from 'sequelize'; import { buildSequelizeInstance, createSqlDataSource, introspect } from '../../src'; import Introspector from '../../src/introspection/introspector'; diff --git a/packages/datasource-sql/test/datasource/disconnected-sequlieze-factory.unit.test.ts b/packages/datasource-sql/test/datasource/disconnected-sequlieze-factory.unit.test.ts index 2ed81dd1f0..099966603a 100644 --- a/packages/datasource-sql/test/datasource/disconnected-sequlieze-factory.unit.test.ts +++ b/packages/datasource-sql/test/datasource/disconnected-sequlieze-factory.unit.test.ts @@ -1,6 +1,8 @@ +import type { SupportedIntrospection } from '../../src'; + import { Sequelize } from 'sequelize'; -import { SupportedIntrospection, buildDisconnectedSequelizeInstance } from '../../src'; +import { buildDisconnectedSequelizeInstance } from '../../src'; describe('buildDisconnectedSequelizeInstance', () => { const introspection: SupportedIntrospection = { diff --git a/packages/datasource-sql/test/datasource/views.integration.test.ts b/packages/datasource-sql/test/datasource/views.integration.test.ts index 9b44cf52cb..9e21530381 100644 --- a/packages/datasource-sql/test/datasource/views.integration.test.ts +++ b/packages/datasource-sql/test/datasource/views.integration.test.ts @@ -1,3 +1,5 @@ +import type SqlDatasource from '../../src/decorators/sql-datasource'; + import { ConditionTreeFactory, Filter, @@ -9,7 +11,6 @@ import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factorie import { Sequelize } from 'sequelize'; import { buildSequelizeInstance, createSqlDataSource, introspect } from '../../src'; -import SqlDatasource from '../../src/decorators/sql-datasource'; import { CONNECTION_DETAILS } from '../_helpers/connection-details'; import setupSimpleTable from '../_helpers/setup-simple-table'; diff --git a/packages/datasource-sql/test/index.test.ts b/packages/datasource-sql/test/index.test.ts index 9f4c637aaf..b19a3b1ca9 100644 --- a/packages/datasource-sql/test/index.test.ts +++ b/packages/datasource-sql/test/index.test.ts @@ -1,7 +1,8 @@ +import type { PlainConnectionOptionsOrUri } from '../src/types'; + import { Sequelize } from 'sequelize'; import { buildSequelizeInstance, createSqlDataSource, preprocessOptions } from '../src'; -import { PlainConnectionOptionsOrUri } from '../src/types'; jest.mock('sequelize'); diff --git a/packages/datasource-sql/test/introspection/dialects/dialects.integration.test.ts b/packages/datasource-sql/test/introspection/dialects/dialects.integration.test.ts index 684d061f19..b128989503 100644 --- a/packages/datasource-sql/test/introspection/dialects/dialects.integration.test.ts +++ b/packages/datasource-sql/test/introspection/dialects/dialects.integration.test.ts @@ -1,3 +1,5 @@ +import type { ConnectionDetails } from '../../_helpers/connection-details'; + import { DataTypes, Sequelize } from 'sequelize'; import MariadbDialect from '../../../src/introspection/dialects/mariadb-dialect'; @@ -6,7 +8,6 @@ import MySQLDialect from '../../../src/introspection/dialects/mysql-dialect'; import PostgreSQLDialect from '../../../src/introspection/dialects/postgresql-dialect'; import SQLiteDialect from '../../../src/introspection/dialects/sqlite-dialect'; import { - ConnectionDetails, MARIADB_DETAILS, MSSQL_DETAILS, MYSQL_DETAILS, diff --git a/packages/datasource-sql/test/introspection/helpers/default-value-parser.test.ts b/packages/datasource-sql/test/introspection/helpers/default-value-parser.test.ts index 139129fa88..cf958f1ab5 100644 --- a/packages/datasource-sql/test/introspection/helpers/default-value-parser.test.ts +++ b/packages/datasource-sql/test/introspection/helpers/default-value-parser.test.ts @@ -1,7 +1,8 @@ +import type { ScalarSubType } from '../../../src/introspection/types'; + import { literal } from 'sequelize'; import DefaultValueParser from '../../../src/introspection/helpers/default-value-parser'; -import { ScalarSubType } from '../../../src/introspection/types'; describe('DefaultValueParser', () => { describe('parse', () => { diff --git a/packages/datasource-sql/test/introspection/helpers/sql-type-converter.integration.test.ts b/packages/datasource-sql/test/introspection/helpers/sql-type-converter.integration.test.ts index 5cca0655be..d29144f6bd 100644 --- a/packages/datasource-sql/test/introspection/helpers/sql-type-converter.integration.test.ts +++ b/packages/datasource-sql/test/introspection/helpers/sql-type-converter.integration.test.ts @@ -1,11 +1,13 @@ -import { DataTypes, Sequelize } from 'sequelize'; +import type { ColumnDescription } from '../../../src/introspection/dialects/dialect.interface'; +import type IntrospectionDialect from '../../../src/introspection/dialects/dialect.interface'; +import type { ConnectionDetails } from '../../_helpers/connection-details'; +import type { Sequelize } from 'sequelize'; + +import { DataTypes } from 'sequelize'; import introspectorDialectFactory from '../../../src/introspection/dialects/dialect-factory'; -import IntrospectionDialect, { - ColumnDescription, -} from '../../../src/introspection/dialects/dialect.interface'; import SqlTypeConverter from '../../../src/introspection/helpers/sql-type-converter'; -import { CONNECTION_DETAILS, ConnectionDetails } from '../../_helpers/connection-details'; +import { CONNECTION_DETAILS } from '../../_helpers/connection-details'; import setupEmptyDatabase from '../../_helpers/setup-empty-database'; const SCALAR_TYPES: [string, string, string[]?][] = [ diff --git a/packages/datasource-sql/test/introspection/helpers/sql-type-converter.test.ts b/packages/datasource-sql/test/introspection/helpers/sql-type-converter.test.ts index fd56678ffd..2b63e5e221 100644 --- a/packages/datasource-sql/test/introspection/helpers/sql-type-converter.test.ts +++ b/packages/datasource-sql/test/introspection/helpers/sql-type-converter.test.ts @@ -1,6 +1,7 @@ +import type { ColumnDescription } from '../../../src/introspection/dialects/dialect.interface'; + import { DataTypes } from 'sequelize'; -import { ColumnDescription } from '../../../src/introspection/dialects/dialect.interface'; import SqlTypeConverter from '../../../src/introspection/helpers/sql-type-converter'; const makeColumnDescription = (description: Partial) => { diff --git a/packages/datasource-sql/test/introspection/introspector.unit.test.ts b/packages/datasource-sql/test/introspection/introspector.unit.test.ts index c276b5f834..6b3d503e84 100644 --- a/packages/datasource-sql/test/introspection/introspector.unit.test.ts +++ b/packages/datasource-sql/test/introspection/introspector.unit.test.ts @@ -1,5 +1,6 @@ +import type { Introspection, Introspection1, Table } from '../../src/introspection/types'; + import Introspector from '../../src/introspection/introspector'; -import { Introspection, Introspection1, Table } from '../../src/introspection/types'; const defaultIntrospection: Introspection = { source: '@forestadmin/datasource-sql', diff --git a/packages/datasource-sql/test/orm-builder/model.test.ts b/packages/datasource-sql/test/orm-builder/model.test.ts index 113aff5605..38caf00dc4 100644 --- a/packages/datasource-sql/test/orm-builder/model.test.ts +++ b/packages/datasource-sql/test/orm-builder/model.test.ts @@ -1,6 +1,7 @@ +import type { ColumnType, Introspection, Table } from '../../src/introspection/types'; + import { Sequelize, UUIDV4 } from 'sequelize'; -import { ColumnType, Introspection, Table } from '../../src/introspection/types'; import ModelBuilder from '../../src/orm-builder/model'; const baseColumn = { diff --git a/packages/datasource-toolkit/src/base-collection.ts b/packages/datasource-toolkit/src/base-collection.ts index cb66e73bf6..481da2f68e 100644 --- a/packages/datasource-toolkit/src/base-collection.ts +++ b/packages/datasource-toolkit/src/base-collection.ts @@ -1,15 +1,17 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ +import type { ActionField, ActionResult } from './interfaces/action'; +import type { Caller } from './interfaces/caller'; +import type { Chart } from './interfaces/chart'; +import type { Collection, DataSource, GetFormMetas } from './interfaces/collection'; +import type { AggregateResult } from './interfaces/query/aggregation'; +import type Aggregation from './interfaces/query/aggregation'; +import type PaginatedFilter from './interfaces/query/filter/paginated'; +import type Filter from './interfaces/query/filter/unpaginated'; +import type Projection from './interfaces/query/projection'; +import type { CompositeId, RecordData } from './interfaces/record'; +import type { ActionSchema, CollectionSchema, FieldSchema } from './interfaces/schema'; + import { SchemaUtils } from './index'; -import { ActionField, ActionResult } from './interfaces/action'; -import { Caller } from './interfaces/caller'; -import { Chart } from './interfaces/chart'; -import { Collection, DataSource, GetFormMetas } from './interfaces/collection'; -import Aggregation, { AggregateResult } from './interfaces/query/aggregation'; -import PaginatedFilter from './interfaces/query/filter/paginated'; -import Filter from './interfaces/query/filter/unpaginated'; -import Projection from './interfaces/query/projection'; -import { CompositeId, RecordData } from './interfaces/record'; -import { ActionSchema, CollectionSchema, FieldSchema } from './interfaces/schema'; export default abstract class BaseCollection implements Collection { readonly dataSource: DataSource; diff --git a/packages/datasource-toolkit/src/base-datasource.ts b/packages/datasource-toolkit/src/base-datasource.ts index 138cc3decb..70f8cbce95 100644 --- a/packages/datasource-toolkit/src/base-datasource.ts +++ b/packages/datasource-toolkit/src/base-datasource.ts @@ -1,9 +1,10 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ +import type { Caller } from './interfaces/caller'; +import type { Chart } from './interfaces/chart'; +import type { Collection, DataSource } from './interfaces/collection'; +import type { DataSourceSchema } from './interfaces/schema'; + import { MissingCollectionError } from './errors'; -import { Caller } from './interfaces/caller'; -import { Chart } from './interfaces/chart'; -import { Collection, DataSource } from './interfaces/collection'; -import { DataSourceSchema } from './interfaces/schema'; export default class BaseDataSource implements DataSource { protected _collections: { [collectionName: string]: T } = {}; diff --git a/packages/datasource-toolkit/src/decorators/collection-decorator.ts b/packages/datasource-toolkit/src/decorators/collection-decorator.ts index 319e87c0f8..638f88e2f2 100644 --- a/packages/datasource-toolkit/src/decorators/collection-decorator.ts +++ b/packages/datasource-toolkit/src/decorators/collection-decorator.ts @@ -1,13 +1,14 @@ -import { ActionFormElement, ActionResult } from '../interfaces/action'; -import { Caller } from '../interfaces/caller'; -import { Chart } from '../interfaces/chart'; -import { Collection, DataSource, GetFormMetas } from '../interfaces/collection'; -import Aggregation, { AggregateResult } from '../interfaces/query/aggregation'; -import PaginatedFilter from '../interfaces/query/filter/paginated'; -import Filter from '../interfaces/query/filter/unpaginated'; -import Projection from '../interfaces/query/projection'; -import { CompositeId, RecordData } from '../interfaces/record'; -import { CollectionSchema } from '../interfaces/schema'; +import type { ActionFormElement, ActionResult } from '../interfaces/action'; +import type { Caller } from '../interfaces/caller'; +import type { Chart } from '../interfaces/chart'; +import type { Collection, DataSource, GetFormMetas } from '../interfaces/collection'; +import type { AggregateResult } from '../interfaces/query/aggregation'; +import type Aggregation from '../interfaces/query/aggregation'; +import type PaginatedFilter from '../interfaces/query/filter/paginated'; +import type Filter from '../interfaces/query/filter/unpaginated'; +import type Projection from '../interfaces/query/projection'; +import type { CompositeId, RecordData } from '../interfaces/record'; +import type { CollectionSchema } from '../interfaces/schema'; export default class CollectionDecorator implements Collection { readonly dataSource: DataSource; diff --git a/packages/datasource-toolkit/src/decorators/datasource-decorator.ts b/packages/datasource-toolkit/src/decorators/datasource-decorator.ts index c9254345da..24f35e5134 100644 --- a/packages/datasource-toolkit/src/decorators/datasource-decorator.ts +++ b/packages/datasource-toolkit/src/decorators/datasource-decorator.ts @@ -1,7 +1,7 @@ -import { Caller } from '../interfaces/caller'; -import { Chart } from '../interfaces/chart'; -import { Collection, DataSource } from '../interfaces/collection'; -import { DataSourceSchema } from '../interfaces/schema'; +import type { Caller } from '../interfaces/caller'; +import type { Chart } from '../interfaces/chart'; +import type { Collection, DataSource } from '../interfaces/collection'; +import type { DataSourceSchema } from '../interfaces/schema'; type CollectionDecoratorConstructor = { new (c: Collection, d: DataSource): CollectionDecorator; diff --git a/packages/datasource-toolkit/src/factory.ts b/packages/datasource-toolkit/src/factory.ts index 6081815536..f3e24254ed 100644 --- a/packages/datasource-toolkit/src/factory.ts +++ b/packages/datasource-toolkit/src/factory.ts @@ -1,4 +1,4 @@ -import { DataSource } from './interfaces/collection'; +import type { DataSource } from './interfaces/collection'; /** Logger */ export type LoggerLevel = 'Debug' | 'Info' | 'Warn' | 'Error'; diff --git a/packages/datasource-toolkit/src/interfaces/action.ts b/packages/datasource-toolkit/src/interfaces/action.ts index fc59ce20a2..dc506c8f30 100644 --- a/packages/datasource-toolkit/src/interfaces/action.ts +++ b/packages/datasource-toolkit/src/interfaces/action.ts @@ -1,4 +1,4 @@ -import { Readable } from 'stream'; +import type { Readable } from 'stream'; type UnionKeys = T extends T ? keyof T : never; type StrictUnionHelper = T extends any diff --git a/packages/datasource-toolkit/src/interfaces/collection.ts b/packages/datasource-toolkit/src/interfaces/collection.ts index 3afa2a457f..7ce40efb3c 100644 --- a/packages/datasource-toolkit/src/interfaces/collection.ts +++ b/packages/datasource-toolkit/src/interfaces/collection.ts @@ -1,12 +1,13 @@ -import { ActionFormElement, ActionResult } from './action'; -import { Caller } from './caller'; -import { Chart } from './chart'; -import Aggregation, { AggregateResult } from './query/aggregation'; -import PaginatedFilter from './query/filter/paginated'; -import Filter from './query/filter/unpaginated'; -import Projection from './query/projection'; -import { CompositeId, RecordData } from './record'; -import { CollectionSchema, DataSourceSchema } from './schema'; +import type { ActionFormElement, ActionResult } from './action'; +import type { Caller } from './caller'; +import type { Chart } from './chart'; +import type { AggregateResult } from './query/aggregation'; +import type Aggregation from './query/aggregation'; +import type PaginatedFilter from './query/filter/paginated'; +import type Filter from './query/filter/unpaginated'; +import type Projection from './query/projection'; +import type { CompositeId, RecordData } from './record'; +import type { CollectionSchema, DataSourceSchema } from './schema'; export interface DataSource { get collections(): C[]; diff --git a/packages/datasource-toolkit/src/interfaces/query/aggregation.ts b/packages/datasource-toolkit/src/interfaces/query/aggregation.ts index e56fbe49c4..f0b112c342 100644 --- a/packages/datasource-toolkit/src/interfaces/query/aggregation.ts +++ b/packages/datasource-toolkit/src/interfaces/query/aggregation.ts @@ -1,9 +1,10 @@ +import type { RecordData } from '../record'; + import { DateTime } from 'luxon'; import hashRecord from 'object-hash'; import Projection from './projection'; import RecordUtils from '../../utils/record'; -import { RecordData } from '../record'; export type AggregationOperation = 'Count' | 'Sum' | 'Avg' | 'Max' | 'Min'; export type DateOperation = 'Year' | 'Quarter' | 'Month' | 'Week' | 'Day'; diff --git a/packages/datasource-toolkit/src/interfaces/query/condition-tree/equivalence.ts b/packages/datasource-toolkit/src/interfaces/query/condition-tree/equivalence.ts index ede0ab8460..fc2edc6c19 100644 --- a/packages/datasource-toolkit/src/interfaces/query/condition-tree/equivalence.ts +++ b/packages/datasource-toolkit/src/interfaces/query/condition-tree/equivalence.ts @@ -1,10 +1,11 @@ -import ConditionTree from './nodes/base'; -import ConditionTreeLeaf from './nodes/leaf'; -import { Operator } from './nodes/operators'; +import type ConditionTree from './nodes/base'; +import type ConditionTreeLeaf from './nodes/leaf'; +import type { Operator } from './nodes/operators'; +import type { ColumnType, PrimitiveTypes } from '../../schema'; + import equalityTransforms from './transforms/comparison'; import patternTransforms from './transforms/pattern'; import timeTransforms from './transforms/time'; -import { ColumnType, PrimitiveTypes } from '../../schema'; export type Replacer = ( leaf: ConditionTreeLeaf, diff --git a/packages/datasource-toolkit/src/interfaces/query/condition-tree/factory.ts b/packages/datasource-toolkit/src/interfaces/query/condition-tree/factory.ts index f9158011c3..5d25f1859f 100644 --- a/packages/datasource-toolkit/src/interfaces/query/condition-tree/factory.ts +++ b/packages/datasource-toolkit/src/interfaces/query/condition-tree/factory.ts @@ -1,11 +1,13 @@ -import ConditionTree from './nodes/base'; -import ConditionTreeBranch, { Aggregator } from './nodes/branch'; +import type ConditionTree from './nodes/base'; +import type { Aggregator } from './nodes/branch'; +import type { Operator } from './nodes/operators'; +import type { CompositeId, RecordData } from '../../record'; +import type { CollectionSchema } from '../../schema'; + +import ConditionTreeBranch from './nodes/branch'; import ConditionTreeLeaf from './nodes/leaf'; -import { Operator } from './nodes/operators'; import RecordUtils from '../../../utils/record'; import SchemaUtils from '../../../utils/schema'; -import { CompositeId, RecordData } from '../../record'; -import { CollectionSchema } from '../../schema'; export type GenericTreeBranch = { aggregator: Aggregator; conditions: Array }; export type GenericTreeLeaf = { field: string; operator: Operator; value?: unknown }; diff --git a/packages/datasource-toolkit/src/interfaces/query/condition-tree/nodes/base.ts b/packages/datasource-toolkit/src/interfaces/query/condition-tree/nodes/base.ts index 20eadcac1e..1e85256f47 100644 --- a/packages/datasource-toolkit/src/interfaces/query/condition-tree/nodes/base.ts +++ b/packages/datasource-toolkit/src/interfaces/query/condition-tree/nodes/base.ts @@ -1,14 +1,14 @@ -import { PlainConditionTreeBranch } from './branch'; -import { +import type { PlainConditionTreeBranch } from './branch'; +import type { AsyncLeafReplacer, LeafCallback, LeafReplacer, LeafTester, PlainConditionTreeLeaf, } from './leaf'; -import { Collection } from '../../../collection'; -import { RecordData } from '../../../record'; -import Projection from '../../projection'; +import type { Collection } from '../../../collection'; +import type { RecordData } from '../../../record'; +import type Projection from '../../projection'; export type PlainConditionTree = PlainConditionTreeBranch | PlainConditionTreeLeaf; diff --git a/packages/datasource-toolkit/src/interfaces/query/condition-tree/nodes/branch.ts b/packages/datasource-toolkit/src/interfaces/query/condition-tree/nodes/branch.ts index e6ae287277..386a0b6c16 100644 --- a/packages/datasource-toolkit/src/interfaces/query/condition-tree/nodes/branch.ts +++ b/packages/datasource-toolkit/src/interfaces/query/condition-tree/nodes/branch.ts @@ -1,13 +1,14 @@ -import ConditionTree from './base'; -import { +import type { AsyncLeafReplacer, LeafCallback, LeafReplacer, LeafTester, PlainConditionTreeLeaf, } from './leaf'; -import { Collection } from '../../../collection'; -import { RecordData } from '../../../record'; +import type { Collection } from '../../../collection'; +import type { RecordData } from '../../../record'; + +import ConditionTree from './base'; import Projection from '../../projection'; export type Aggregator = 'And' | 'Or'; diff --git a/packages/datasource-toolkit/src/interfaces/query/condition-tree/nodes/leaf.ts b/packages/datasource-toolkit/src/interfaces/query/condition-tree/nodes/leaf.ts index f1793af038..e7de80c1e5 100644 --- a/packages/datasource-toolkit/src/interfaces/query/condition-tree/nodes/leaf.ts +++ b/packages/datasource-toolkit/src/interfaces/query/condition-tree/nodes/leaf.ts @@ -1,10 +1,13 @@ -import ConditionTree, { PlainConditionTree } from './base'; -import { Operator, allOperators, intervalOperators } from './operators'; +import type { PlainConditionTree } from './base'; +import type { Operator } from './operators'; +import type { Collection } from '../../../collection'; +import type { RecordData } from '../../../record'; +import type { ColumnSchema } from '../../../schema'; + +import ConditionTree from './base'; +import { allOperators, intervalOperators } from './operators'; import CollectionUtils from '../../../../utils/collection'; import RecordUtils from '../../../../utils/record'; -import { Collection } from '../../../collection'; -import { RecordData } from '../../../record'; -import { ColumnSchema } from '../../../schema'; import Projection from '../../projection'; import ConditionTreeEquivalent from '../equivalence'; import ConditionTreeFactory from '../factory'; diff --git a/packages/datasource-toolkit/src/interfaces/query/condition-tree/transforms/comparison.ts b/packages/datasource-toolkit/src/interfaces/query/condition-tree/transforms/comparison.ts index 885763df77..c185de976c 100644 --- a/packages/datasource-toolkit/src/interfaces/query/condition-tree/transforms/comparison.ts +++ b/packages/datasource-toolkit/src/interfaces/query/condition-tree/transforms/comparison.ts @@ -1,9 +1,10 @@ -import { Alternative } from '../equivalence'; +import type { Alternative } from '../equivalence'; +import type ConditionTree from '../nodes/base'; +import type { Operator } from '../nodes/operators'; + import ConditionTreeFactory from '../factory'; -import ConditionTree from '../nodes/base'; import ConditionTreeBranch from '../nodes/branch'; import ConditionTreeLeaf from '../nodes/leaf'; -import { Operator } from '../nodes/operators'; export default (): Partial> => ({ Blank: [ diff --git a/packages/datasource-toolkit/src/interfaces/query/condition-tree/transforms/pattern.ts b/packages/datasource-toolkit/src/interfaces/query/condition-tree/transforms/pattern.ts index ce5d522b14..0d50874351 100644 --- a/packages/datasource-toolkit/src/interfaces/query/condition-tree/transforms/pattern.ts +++ b/packages/datasource-toolkit/src/interfaces/query/condition-tree/transforms/pattern.ts @@ -1,5 +1,5 @@ -import { Alternative } from '../equivalence'; -import { Operator } from '../nodes/operators'; +import type { Alternative } from '../equivalence'; +import type { Operator } from '../nodes/operators'; function likes(getPattern: (pattern: string) => string, caseSensitive: boolean): Alternative { const operator = caseSensitive ? 'Like' : 'ILike'; diff --git a/packages/datasource-toolkit/src/interfaces/query/condition-tree/transforms/time.ts b/packages/datasource-toolkit/src/interfaces/query/condition-tree/transforms/time.ts index d573b29b07..8dde038b28 100644 --- a/packages/datasource-toolkit/src/interfaces/query/condition-tree/transforms/time.ts +++ b/packages/datasource-toolkit/src/interfaces/query/condition-tree/transforms/time.ts @@ -1,8 +1,10 @@ -import { DateTime, DateTimeUnit } from 'luxon'; +import type { Alternative } from '../equivalence'; +import type { Operator } from '../nodes/operators'; +import type { DateTimeUnit } from 'luxon'; + +import { DateTime } from 'luxon'; -import { Alternative } from '../equivalence'; import ConditionTreeFactory from '../factory'; -import { Operator } from '../nodes/operators'; type DateCallback = (now: DateTime, value: unknown) => DateTime; diff --git a/packages/datasource-toolkit/src/interfaces/query/filter/factory.ts b/packages/datasource-toolkit/src/interfaces/query/filter/factory.ts index 3dc098d9dd..bba20c16a9 100644 --- a/packages/datasource-toolkit/src/interfaces/query/filter/factory.ts +++ b/packages/datasource-toolkit/src/interfaces/query/filter/factory.ts @@ -1,15 +1,17 @@ -import { DateTime, DateTimeUnit } from 'luxon'; +import type PaginatedFilter from './paginated'; +import type { Caller } from '../../caller'; +import type { Collection } from '../../collection'; +import type { CompositeId } from '../../record'; +import type { ManyToManySchema } from '../../schema'; +import type ConditionTree from '../condition-tree/nodes/base'; +import type { DateTimeUnit } from 'luxon'; + +import { DateTime } from 'luxon'; -import PaginatedFilter from './paginated'; import Filter from './unpaginated'; import CollectionUtils from '../../../utils/collection'; import SchemaUtils from '../../../utils/schema'; -import { Caller } from '../../caller'; -import { Collection } from '../../collection'; -import { CompositeId } from '../../record'; -import { ManyToManySchema } from '../../schema'; import ConditionTreeFactory from '../condition-tree/factory'; -import ConditionTree from '../condition-tree/nodes/base'; import ConditionTreeLeaf from '../condition-tree/nodes/leaf'; import Projection from '../projection'; diff --git a/packages/datasource-toolkit/src/interfaces/query/filter/paginated.ts b/packages/datasource-toolkit/src/interfaces/query/filter/paginated.ts index 7f8caced19..b9e2f26622 100644 --- a/packages/datasource-toolkit/src/interfaces/query/filter/paginated.ts +++ b/packages/datasource-toolkit/src/interfaces/query/filter/paginated.ts @@ -1,6 +1,10 @@ -import Filter, { FilterComponents, PlainFilter } from './unpaginated'; -import Page, { PlainPage } from '../page'; -import Sort, { PlainSortClause } from '../sort'; +import type { FilterComponents, PlainFilter } from './unpaginated'; +import type { PlainPage } from '../page'; +import type Page from '../page'; +import type { PlainSortClause } from '../sort'; +import type Sort from '../sort'; + +import Filter from './unpaginated'; export type PaginatedFilterComponents = FilterComponents & { sort?: Sort; diff --git a/packages/datasource-toolkit/src/interfaces/query/filter/unpaginated.ts b/packages/datasource-toolkit/src/interfaces/query/filter/unpaginated.ts index 8143659265..91676269c3 100644 --- a/packages/datasource-toolkit/src/interfaces/query/filter/unpaginated.ts +++ b/packages/datasource-toolkit/src/interfaces/query/filter/unpaginated.ts @@ -1,4 +1,5 @@ -import ConditionTree, { PlainConditionTree } from '../condition-tree/nodes/base'; +import type { PlainConditionTree } from '../condition-tree/nodes/base'; +import type ConditionTree from '../condition-tree/nodes/base'; export type LiveQuerySegment = { query: string; diff --git a/packages/datasource-toolkit/src/interfaces/query/page.ts b/packages/datasource-toolkit/src/interfaces/query/page.ts index b44b73eb4c..70ad39f508 100644 --- a/packages/datasource-toolkit/src/interfaces/query/page.ts +++ b/packages/datasource-toolkit/src/interfaces/query/page.ts @@ -1,4 +1,4 @@ -import { RecordData } from '../record'; +import type { RecordData } from '../record'; export type PlainPage = { skip: number; limit: number }; diff --git a/packages/datasource-toolkit/src/interfaces/query/projection/factory.ts b/packages/datasource-toolkit/src/interfaces/query/projection/factory.ts index 52d9b103d2..2be76cc6bc 100644 --- a/packages/datasource-toolkit/src/interfaces/query/projection/factory.ts +++ b/packages/datasource-toolkit/src/interfaces/query/projection/factory.ts @@ -1,6 +1,7 @@ +import type { Collection } from '../../collection'; + import Projection from '.'; import { SchemaUtils } from '../../../index'; -import { Collection } from '../../collection'; export default class ProjectionFactory { static all(collection: Collection): Projection { diff --git a/packages/datasource-toolkit/src/interfaces/query/projection/index.ts b/packages/datasource-toolkit/src/interfaces/query/projection/index.ts index 9ce8c7f3b5..f4c32839bd 100644 --- a/packages/datasource-toolkit/src/interfaces/query/projection/index.ts +++ b/packages/datasource-toolkit/src/interfaces/query/projection/index.ts @@ -1,6 +1,7 @@ +import type { Collection } from '../../collection'; +import type { RecordData } from '../../record'; + import SchemaUtils from '../../../utils/schema'; -import { Collection } from '../../collection'; -import { RecordData } from '../../record'; export default class Projection extends Array { get columns(): string[] { diff --git a/packages/datasource-toolkit/src/interfaces/query/sort/factory.ts b/packages/datasource-toolkit/src/interfaces/query/sort/factory.ts index 5c47c227d4..9f5b6c1412 100644 --- a/packages/datasource-toolkit/src/interfaces/query/sort/factory.ts +++ b/packages/datasource-toolkit/src/interfaces/query/sort/factory.ts @@ -1,6 +1,7 @@ +import type { Collection } from '../../collection'; + import Sort from '.'; import SchemaUtils from '../../../utils/schema'; -import { Collection } from '../../collection'; export default class SortFactory { static byPrimaryKeys(collection: Collection): Sort { diff --git a/packages/datasource-toolkit/src/interfaces/query/sort/index.ts b/packages/datasource-toolkit/src/interfaces/query/sort/index.ts index da2ffa2ebb..59b92e4b7f 100644 --- a/packages/datasource-toolkit/src/interfaces/query/sort/index.ts +++ b/packages/datasource-toolkit/src/interfaces/query/sort/index.ts @@ -1,5 +1,6 @@ +import type { RecordData } from '../../record'; + import RecordUtils from '../../../utils/record'; -import { RecordData } from '../../record'; import Projection from '../projection'; export type PlainSortClause = { field: string; ascending: boolean }; diff --git a/packages/datasource-toolkit/src/interfaces/schema.ts b/packages/datasource-toolkit/src/interfaces/schema.ts index 911fc1d6d9..6e3e18227b 100644 --- a/packages/datasource-toolkit/src/interfaces/schema.ts +++ b/packages/datasource-toolkit/src/interfaces/schema.ts @@ -1,4 +1,4 @@ -import { Operator } from './query/condition-tree/nodes/operators'; +import type { Operator } from './query/condition-tree/nodes/operators'; export type ActionScope = 'Single' | 'Bulk' | 'Global'; diff --git a/packages/datasource-toolkit/src/utils/collection.ts b/packages/datasource-toolkit/src/utils/collection.ts index 7d7cbbec5c..12c9bee6e2 100644 --- a/packages/datasource-toolkit/src/utils/collection.ts +++ b/packages/datasource-toolkit/src/utils/collection.ts @@ -1,14 +1,16 @@ +import type { Caller } from '../interfaces/caller'; +import type { Collection } from '../interfaces/collection'; +import type { AggregateResult } from '../interfaces/query/aggregation'; +import type Aggregation from '../interfaces/query/aggregation'; +import type PaginatedFilter from '../interfaces/query/filter/paginated'; +import type { CompositeId, RecordData } from '../interfaces/record'; +import type { FieldSchema, RelationSchema } from '../interfaces/schema'; + import SchemaUtils from './schema'; -import { Caller } from '../interfaces/caller'; -import { Collection } from '../interfaces/collection'; -import Aggregation, { AggregateResult } from '../interfaces/query/aggregation'; import ConditionTreeFactory from '../interfaces/query/condition-tree/factory'; import FilterFactory from '../interfaces/query/filter/factory'; -import PaginatedFilter from '../interfaces/query/filter/paginated'; import Filter from '../interfaces/query/filter/unpaginated'; import Projection from '../interfaces/query/projection'; -import { CompositeId, RecordData } from '../interfaces/record'; -import { FieldSchema, RelationSchema } from '../interfaces/schema'; export default class CollectionUtils { static getFieldSchema(collection: Collection, path: string): FieldSchema { diff --git a/packages/datasource-toolkit/src/utils/record.ts b/packages/datasource-toolkit/src/utils/record.ts index 1bd6db03d7..61b1db2164 100644 --- a/packages/datasource-toolkit/src/utils/record.ts +++ b/packages/datasource-toolkit/src/utils/record.ts @@ -1,6 +1,7 @@ +import type { CompositeId, RecordData } from '../interfaces/record'; +import type { CollectionSchema } from '../interfaces/schema'; + import SchemaUtils from './schema'; -import { CompositeId, RecordData } from '../interfaces/record'; -import { CollectionSchema } from '../interfaces/schema'; export default class RecordUtils { static getPrimaryKey(schema: CollectionSchema, record: RecordData): CompositeId { diff --git a/packages/datasource-toolkit/src/utils/schema.ts b/packages/datasource-toolkit/src/utils/schema.ts index 394ead518d..f6c2b1e01d 100644 --- a/packages/datasource-toolkit/src/utils/schema.ts +++ b/packages/datasource-toolkit/src/utils/schema.ts @@ -1,11 +1,4 @@ -import { - AlreadyDefinedFieldError, - MissingColumnError, - MissingFieldError, - MissingRelationError, - RelationFieldAccessDeniedError, -} from '../errors'; -import { +import type { CollectionSchema, ColumnSchema, FieldSchema, @@ -14,6 +7,14 @@ import { RelationSchema, } from '../interfaces/schema'; +import { + AlreadyDefinedFieldError, + MissingColumnError, + MissingFieldError, + MissingRelationError, + RelationFieldAccessDeniedError, +} from '../errors'; + export default class SchemaUtils { static throwIfAlreadyDefinedField( schema: CollectionSchema, diff --git a/packages/datasource-toolkit/src/validation/condition-tree.ts b/packages/datasource-toolkit/src/validation/condition-tree.ts index 877e80a361..ad6fc00897 100644 --- a/packages/datasource-toolkit/src/validation/condition-tree.ts +++ b/packages/datasource-toolkit/src/validation/condition-tree.ts @@ -1,3 +1,7 @@ +import type { Collection } from '../interfaces/collection'; +import type ConditionTree from '../interfaces/query/condition-tree/nodes/base'; +import type { ColumnSchema, PrimitiveTypes } from '../interfaces/schema'; + import FieldValidator from './field'; import { MAP_ALLOWED_OPERATORS_FOR_COLUMN_TYPE, @@ -5,11 +9,8 @@ import { MAP_ALLOWED_TYPES_FOR_OPERATOR_CONDITION_TREE, } from './rules'; import { ValidationError } from '../errors'; -import { Collection } from '../interfaces/collection'; -import ConditionTree from '../interfaces/query/condition-tree/nodes/base'; import ConditionTreeBranch from '../interfaces/query/condition-tree/nodes/branch'; import ConditionTreeLeaf from '../interfaces/query/condition-tree/nodes/leaf'; -import { ColumnSchema, PrimitiveTypes } from '../interfaces/schema'; import CollectionUtils from '../utils/collection'; export default class ConditionTreeValidator { diff --git a/packages/datasource-toolkit/src/validation/field.ts b/packages/datasource-toolkit/src/validation/field.ts index ccf31d34fa..c4eaa3a22c 100644 --- a/packages/datasource-toolkit/src/validation/field.ts +++ b/packages/datasource-toolkit/src/validation/field.ts @@ -1,9 +1,10 @@ +import type { Collection } from '../interfaces/collection'; +import type { ColumnSchema, PrimitiveTypes } from '../interfaces/schema'; + import { MAP_ALLOWED_TYPES_FOR_COLUMN_TYPE } from './rules'; import TypeGetter from './type-getter'; import { MissingRelationError, ValidationError } from '../errors'; import { SchemaUtils } from '../index'; -import { Collection } from '../interfaces/collection'; -import { ColumnSchema, PrimitiveTypes } from '../interfaces/schema'; export default class FieldValidator { static validate(collection: Collection, field: string, values?: unknown[]) { diff --git a/packages/datasource-toolkit/src/validation/projection.ts b/packages/datasource-toolkit/src/validation/projection.ts index 4ca4501657..03014408a9 100644 --- a/packages/datasource-toolkit/src/validation/projection.ts +++ b/packages/datasource-toolkit/src/validation/projection.ts @@ -1,5 +1,6 @@ +import type { Collection } from '../interfaces/collection'; + import FieldValidator from './field'; -import { Collection } from '../interfaces/collection'; export default class ProjectionValidator { static validate(collection: Collection, projection: string[]): void { diff --git a/packages/datasource-toolkit/src/validation/record.ts b/packages/datasource-toolkit/src/validation/record.ts index a331c1b55b..e29b8dc92b 100644 --- a/packages/datasource-toolkit/src/validation/record.ts +++ b/packages/datasource-toolkit/src/validation/record.ts @@ -1,8 +1,9 @@ +import type { Collection } from '../interfaces/collection'; +import type { RecordData } from '../interfaces/record'; + import FieldValidator from './field'; import { ValidationError } from '../errors'; import { SchemaUtils } from '../index'; -import { Collection } from '../interfaces/collection'; -import { RecordData } from '../interfaces/record'; export default class RecordValidator { static validate(collection: Collection, recordData: RecordData): void { diff --git a/packages/datasource-toolkit/src/validation/rules.ts b/packages/datasource-toolkit/src/validation/rules.ts index 8a4b44ccaa..b7081ea7d9 100644 --- a/packages/datasource-toolkit/src/validation/rules.ts +++ b/packages/datasource-toolkit/src/validation/rules.ts @@ -1,5 +1,5 @@ -import { Operator } from '../interfaces/query/condition-tree/nodes/operators'; -import { PrimitiveTypes } from '../interfaces/schema'; +import type { Operator } from '../interfaces/query/condition-tree/nodes/operators'; +import type { PrimitiveTypes } from '../interfaces/schema'; const BASE_OPERATORS: Operator[] = ['Blank', 'Equal', 'Missing', 'NotEqual', 'Present']; diff --git a/packages/datasource-toolkit/src/validation/sort.ts b/packages/datasource-toolkit/src/validation/sort.ts index 2bf33d7e46..7b2187daf5 100644 --- a/packages/datasource-toolkit/src/validation/sort.ts +++ b/packages/datasource-toolkit/src/validation/sort.ts @@ -1,7 +1,8 @@ +import type { Collection } from '../interfaces/collection'; +import type { PlainSortClause } from '../interfaces/query/sort'; + import FieldValidator from './field'; import { ValidationError } from '../errors'; -import { Collection } from '../interfaces/collection'; -import { PlainSortClause } from '../interfaces/query/sort'; export default class SortValidator { static validate(collection: Collection, sort: PlainSortClause[]): void { diff --git a/packages/datasource-toolkit/src/validation/type-getter.ts b/packages/datasource-toolkit/src/validation/type-getter.ts index 69b8a9e550..c8a52e612c 100644 --- a/packages/datasource-toolkit/src/validation/type-getter.ts +++ b/packages/datasource-toolkit/src/validation/type-getter.ts @@ -1,8 +1,8 @@ +import type { ColumnType, PrimitiveTypes } from '../interfaces/schema'; + import { DateTime } from 'luxon'; import { validate as uuidValidate } from 'uuid'; -import { ColumnType, PrimitiveTypes } from '../interfaces/schema'; - export default class TypeGetter { static get(value: unknown, typeContext: PrimitiveTypes): PrimitiveTypes { if (typeContext === 'Json') return 'Json'; diff --git a/packages/datasource-toolkit/test/__factories__/aggregate-result.ts b/packages/datasource-toolkit/test/__factories__/aggregate-result.ts index bd31765176..7b3a01a4c4 100644 --- a/packages/datasource-toolkit/test/__factories__/aggregate-result.ts +++ b/packages/datasource-toolkit/test/__factories__/aggregate-result.ts @@ -1,6 +1,6 @@ -import { Factory } from 'fishery'; +import type { AggregateResult } from '../../src/interfaces/query/aggregation'; -import { AggregateResult } from '../../src/interfaces/query/aggregation'; +import { Factory } from 'fishery'; export default Factory.define(() => ({ value: 10, diff --git a/packages/datasource-toolkit/test/__factories__/caller.ts b/packages/datasource-toolkit/test/__factories__/caller.ts index d9e04b8e94..14b8cf5635 100644 --- a/packages/datasource-toolkit/test/__factories__/caller.ts +++ b/packages/datasource-toolkit/test/__factories__/caller.ts @@ -1,6 +1,6 @@ -import { Factory } from 'fishery'; +import type { Caller } from '../../src/interfaces/caller'; -import { Caller } from '../../src/interfaces/caller'; +import { Factory } from 'fishery'; export default Factory.define(() => ({ email: 'user@domain.com', diff --git a/packages/datasource-toolkit/test/__factories__/collection.ts b/packages/datasource-toolkit/test/__factories__/collection.ts index f48da5727f..5bf56a64ab 100644 --- a/packages/datasource-toolkit/test/__factories__/collection.ts +++ b/packages/datasource-toolkit/test/__factories__/collection.ts @@ -1,10 +1,12 @@ // eslint-disable-next-line max-classes-per-file + +import type { ActionFormElement } from '../../src/interfaces/action'; +import type { Collection } from '../../src/interfaces/collection'; +import type { ActionSchema } from '../../src/interfaces/schema'; + import { Factory } from 'fishery'; import collectionSchemaFactory from './schema/collection-schema'; -import { ActionFormElement } from '../../src/interfaces/action'; -import { Collection } from '../../src/interfaces/collection'; -import { ActionSchema } from '../../src/interfaces/schema'; export class CollectionFactory extends Factory { buildWithAction( diff --git a/packages/datasource-toolkit/test/__factories__/composite-id.ts b/packages/datasource-toolkit/test/__factories__/composite-id.ts index 943502acd9..2fbd901d94 100644 --- a/packages/datasource-toolkit/test/__factories__/composite-id.ts +++ b/packages/datasource-toolkit/test/__factories__/composite-id.ts @@ -1,5 +1,5 @@ -import { Factory } from 'fishery'; +import type { CompositeId } from '../../src/interfaces/record'; -import { CompositeId } from '../../src/interfaces/record'; +import { Factory } from 'fishery'; export default Factory.define(() => [10]); diff --git a/packages/datasource-toolkit/test/__factories__/datasource.ts b/packages/datasource-toolkit/test/__factories__/datasource.ts index e3abbbca74..19aedac1e3 100644 --- a/packages/datasource-toolkit/test/__factories__/datasource.ts +++ b/packages/datasource-toolkit/test/__factories__/datasource.ts @@ -1,7 +1,8 @@ +import type { Collection, DataSource } from '../../src/interfaces/collection'; + import { Factory } from 'fishery'; import factoryCollection from './collection'; -import { Collection, DataSource } from '../../src/interfaces/collection'; export class DataSourceFactory extends Factory { buildWithCharts(charts: Array): DataSource { diff --git a/packages/datasource-toolkit/test/__factories__/record-data.ts b/packages/datasource-toolkit/test/__factories__/record-data.ts index 6fd8cb1462..e774f85e9c 100644 --- a/packages/datasource-toolkit/test/__factories__/record-data.ts +++ b/packages/datasource-toolkit/test/__factories__/record-data.ts @@ -1,5 +1,5 @@ -import { Factory } from 'fishery'; +import type { RecordData } from '../../src/interfaces/record'; -import { RecordData } from '../../src/interfaces/record'; +import { Factory } from 'fishery'; export default Factory.define(() => ({})); diff --git a/packages/datasource-toolkit/test/__factories__/schema/collection-schema.ts b/packages/datasource-toolkit/test/__factories__/schema/collection-schema.ts index 67164b496f..9571a3fc9f 100644 --- a/packages/datasource-toolkit/test/__factories__/schema/collection-schema.ts +++ b/packages/datasource-toolkit/test/__factories__/schema/collection-schema.ts @@ -1,6 +1,6 @@ -import { Factory } from 'fishery'; +import type { CollectionSchema } from '../../../src/interfaces/schema'; -import { CollectionSchema } from '../../../src/interfaces/schema'; +import { Factory } from 'fishery'; export class CollectionSchemaFactory extends Factory { unsearchable(): CollectionSchemaFactory { diff --git a/packages/datasource-toolkit/test/__factories__/schema/column-schema.ts b/packages/datasource-toolkit/test/__factories__/schema/column-schema.ts index e3a82c3027..21f2099246 100644 --- a/packages/datasource-toolkit/test/__factories__/schema/column-schema.ts +++ b/packages/datasource-toolkit/test/__factories__/schema/column-schema.ts @@ -1,6 +1,7 @@ +import type { ColumnSchema } from '../../../src/interfaces/schema'; + import { Factory } from 'fishery'; -import { ColumnSchema } from '../../../src/interfaces/schema'; import { MAP_ALLOWED_OPERATORS_FOR_COLUMN_TYPE } from '../../../src/validation/rules'; export class ColumnSchemaFactory extends Factory { diff --git a/packages/datasource-toolkit/test/__factories__/schema/many-to-many-schema.ts b/packages/datasource-toolkit/test/__factories__/schema/many-to-many-schema.ts index fc15d6513b..65df1d4da0 100644 --- a/packages/datasource-toolkit/test/__factories__/schema/many-to-many-schema.ts +++ b/packages/datasource-toolkit/test/__factories__/schema/many-to-many-schema.ts @@ -1,6 +1,6 @@ -import { Factory } from 'fishery'; +import type { ManyToManySchema } from '../../../src/interfaces/schema'; -import { ManyToManySchema } from '../../../src/interfaces/schema'; +import { Factory } from 'fishery'; export default Factory.define(() => ({ type: 'ManyToMany', diff --git a/packages/datasource-toolkit/test/__factories__/schema/many-to-one-schema.ts b/packages/datasource-toolkit/test/__factories__/schema/many-to-one-schema.ts index 382dad7f31..f0ee91c419 100644 --- a/packages/datasource-toolkit/test/__factories__/schema/many-to-one-schema.ts +++ b/packages/datasource-toolkit/test/__factories__/schema/many-to-one-schema.ts @@ -1,6 +1,6 @@ -import { Factory } from 'fishery'; +import type { ManyToOneSchema } from '../../../src/interfaces/schema'; -import { ManyToOneSchema } from '../../../src/interfaces/schema'; +import { Factory } from 'fishery'; export default Factory.define(() => ({ type: 'ManyToOne', diff --git a/packages/datasource-toolkit/test/__factories__/schema/one-to-many-schema.ts b/packages/datasource-toolkit/test/__factories__/schema/one-to-many-schema.ts index 02c41eec07..ee08378204 100644 --- a/packages/datasource-toolkit/test/__factories__/schema/one-to-many-schema.ts +++ b/packages/datasource-toolkit/test/__factories__/schema/one-to-many-schema.ts @@ -1,6 +1,6 @@ -import { Factory } from 'fishery'; +import type { OneToManySchema } from '../../../src/interfaces/schema'; -import { OneToManySchema } from '../../../src/interfaces/schema'; +import { Factory } from 'fishery'; export default Factory.define(() => ({ type: 'OneToMany', diff --git a/packages/datasource-toolkit/test/__factories__/schema/one-to-one-schema.ts b/packages/datasource-toolkit/test/__factories__/schema/one-to-one-schema.ts index 668f4b788b..36b9975196 100644 --- a/packages/datasource-toolkit/test/__factories__/schema/one-to-one-schema.ts +++ b/packages/datasource-toolkit/test/__factories__/schema/one-to-one-schema.ts @@ -1,6 +1,6 @@ -import { Factory } from 'fishery'; +import type { OneToOneSchema } from '../../../src/interfaces/schema'; -import { OneToOneSchema } from '../../../src/interfaces/schema'; +import { Factory } from 'fishery'; export default Factory.define(() => ({ type: 'OneToOne', diff --git a/packages/datasource-toolkit/test/base-collection.test.ts b/packages/datasource-toolkit/test/base-collection.test.ts index ccc5e2d2ed..5265429224 100644 --- a/packages/datasource-toolkit/test/base-collection.test.ts +++ b/packages/datasource-toolkit/test/base-collection.test.ts @@ -1,9 +1,10 @@ // eslint-disable-next-line max-classes-per-file +import type { AggregateResult } from '../src/interfaces/query/aggregation'; +import type { RecordData } from '../src/interfaces/record'; +import type { CollectionSchema, ColumnSchema, FieldSchema } from '../src/interfaces/schema'; + import * as factories from './__factories__'; import BaseCollection from '../src/base-collection'; -import { AggregateResult } from '../src/interfaces/query/aggregation'; -import { RecordData } from '../src/interfaces/record'; -import { CollectionSchema, ColumnSchema, FieldSchema } from '../src/interfaces/schema'; class ConcreteCollection extends BaseCollection { override schema: CollectionSchema; diff --git a/packages/datasource-toolkit/test/base-datasource.test.ts b/packages/datasource-toolkit/test/base-datasource.test.ts index 16246cc891..fc6de7fede 100644 --- a/packages/datasource-toolkit/test/base-datasource.test.ts +++ b/packages/datasource-toolkit/test/base-datasource.test.ts @@ -1,8 +1,10 @@ // eslint-disable-next-line max-classes-per-file +import type { Caller } from '../src'; +import type { Collection } from '../src/interfaces/collection'; + import * as factories from './__factories__'; -import { Caller, MissingCollectionError } from '../src'; +import { MissingCollectionError } from '../src'; import BaseDataSource from '../src/base-datasource'; -import { Collection } from '../src/interfaces/collection'; class ConcreteDataSource extends BaseDataSource {} diff --git a/packages/datasource-toolkit/test/decorators/collection-decorator.test.ts b/packages/datasource-toolkit/test/decorators/collection-decorator.test.ts index ca2aff0d76..46060cd484 100644 --- a/packages/datasource-toolkit/test/decorators/collection-decorator.test.ts +++ b/packages/datasource-toolkit/test/decorators/collection-decorator.test.ts @@ -1,10 +1,11 @@ /* eslint-disable max-classes-per-file */ +import type { Caller } from '../../src/interfaces/caller'; +import type { Collection } from '../../src/interfaces/collection'; +import type PaginatedFilter from '../../src/interfaces/query/filter/paginated'; +import type { CollectionSchema } from '../../src/interfaces/schema'; + import CollectionDecorator from '../../src/decorators/collection-decorator'; -import { Caller } from '../../src/interfaces/caller'; -import { Collection } from '../../src/interfaces/collection'; -import PaginatedFilter from '../../src/interfaces/query/filter/paginated'; -import { CollectionSchema } from '../../src/interfaces/schema'; import * as factories from '../__factories__'; class DecoratedCollection extends CollectionDecorator { diff --git a/packages/datasource-toolkit/test/decorators/datasource-decorator.test.ts b/packages/datasource-toolkit/test/decorators/datasource-decorator.test.ts index def1d487a1..cca7927806 100644 --- a/packages/datasource-toolkit/test/decorators/datasource-decorator.test.ts +++ b/packages/datasource-toolkit/test/decorators/datasource-decorator.test.ts @@ -1,6 +1,7 @@ +import type { Collection } from '../../src/interfaces/collection'; + import CollectionDecorator from '../../src/decorators/collection-decorator'; import DataSourceDecorator from '../../src/decorators/datasource-decorator'; -import { Collection } from '../../src/interfaces/collection'; import * as factories from '../__factories__'; class DecoratedCollection extends CollectionDecorator { diff --git a/packages/datasource-toolkit/test/interfaces/condition-tree.test.ts b/packages/datasource-toolkit/test/interfaces/condition-tree.test.ts index 7c4178bd01..0d569216f2 100644 --- a/packages/datasource-toolkit/test/interfaces/condition-tree.test.ts +++ b/packages/datasource-toolkit/test/interfaces/condition-tree.test.ts @@ -1,5 +1,6 @@ +import type { PlainConditionTree } from '../../src/interfaces/query/condition-tree/nodes/base'; + import ConditionTreeFactory from '../../src/interfaces/query/condition-tree/factory'; -import { PlainConditionTree } from '../../src/interfaces/query/condition-tree/nodes/base'; import ConditionTreeBranch from '../../src/interfaces/query/condition-tree/nodes/branch'; import ConditionTreeLeaf from '../../src/interfaces/query/condition-tree/nodes/leaf'; import * as factories from '../__factories__'; diff --git a/packages/datasource-toolkit/test/interfaces/filter-factory.test.ts b/packages/datasource-toolkit/test/interfaces/filter-factory.test.ts index 68ef67ca77..e8591cb045 100644 --- a/packages/datasource-toolkit/test/interfaces/filter-factory.test.ts +++ b/packages/datasource-toolkit/test/interfaces/filter-factory.test.ts @@ -1,10 +1,12 @@ -import { DateTime, DateTimeUnit } from 'luxon'; +import type { Operator } from '../../src/interfaces/query/condition-tree/nodes/operators'; +import type { ColumnSchema } from '../../src/interfaces/schema'; +import type { DateTimeUnit } from 'luxon'; + +import { DateTime } from 'luxon'; import ConditionTreeLeaf from '../../src/interfaces/query/condition-tree/nodes/leaf'; -import { Operator } from '../../src/interfaces/query/condition-tree/nodes/operators'; import FilterFactory from '../../src/interfaces/query/filter/factory'; import Filter from '../../src/interfaces/query/filter/unpaginated'; -import { ColumnSchema } from '../../src/interfaces/schema'; import * as factories from '../__factories__'; const TEST_TIMEZONE = 'Europe/Dublin'; diff --git a/packages/datasource-toolkit/test/validation/condition-tree/date.test.ts b/packages/datasource-toolkit/test/validation/condition-tree/date.test.ts index 320bdafdbd..9c88775114 100644 --- a/packages/datasource-toolkit/test/validation/condition-tree/date.test.ts +++ b/packages/datasource-toolkit/test/validation/condition-tree/date.test.ts @@ -1,4 +1,6 @@ -import { Operator, allOperators } from '../../../src'; +import type { Operator } from '../../../src'; + +import { allOperators } from '../../../src'; import ConditionTreeValidator from '../../../src/validation/condition-tree'; import * as factories from '../../__factories__'; diff --git a/packages/datasource-toolkit/test/validation/condition-tree/index.test.ts b/packages/datasource-toolkit/test/validation/condition-tree/index.test.ts index cbc2a5bc28..676a451c5f 100644 --- a/packages/datasource-toolkit/test/validation/condition-tree/index.test.ts +++ b/packages/datasource-toolkit/test/validation/condition-tree/index.test.ts @@ -1,6 +1,7 @@ +import type ConditionTree from '../../../src/interfaces/query/condition-tree/nodes/base'; +import type { Aggregator } from '../../../src/interfaces/query/condition-tree/nodes/branch'; + import { MissingFieldError } from '../../../src'; -import ConditionTree from '../../../src/interfaces/query/condition-tree/nodes/base'; -import { Aggregator } from '../../../src/interfaces/query/condition-tree/nodes/branch'; import ConditionTreeValidator from '../../../src/validation/condition-tree'; import * as factories from '../../__factories__'; diff --git a/packages/datasource-toolkit/test/validation/type-getter.test.ts b/packages/datasource-toolkit/test/validation/type-getter.test.ts index 1510e4508c..7fd61788b7 100644 --- a/packages/datasource-toolkit/test/validation/type-getter.test.ts +++ b/packages/datasource-toolkit/test/validation/type-getter.test.ts @@ -1,4 +1,5 @@ -import { ColumnType } from '../../src/interfaces/schema'; +import type { ColumnType } from '../../src/interfaces/schema'; + import TypeGetter from '../../src/validation/type-getter'; describe('TypeGetter', () => { diff --git a/packages/forest-cloud/src/build-commands.ts b/packages/forest-cloud/src/build-commands.ts index 2d30ad6dc4..0eda883051 100644 --- a/packages/forest-cloud/src/build-commands.ts +++ b/packages/forest-cloud/src/build-commands.ts @@ -1,3 +1,5 @@ +import type { EnvironmentVariables } from './types'; + import fsSync from 'fs'; import os from 'os'; import path from 'path'; @@ -11,7 +13,6 @@ import { getEnvironmentVariables } from './services/environment-variables'; import EventSubscriber from './services/event-subscriber'; import generateDatasourceConfigFile from './services/generate-datasource-config-file'; import HttpServer from './services/http-server'; -import { EnvironmentVariables } from './types'; const buildHttpServer = (envs: EnvironmentVariables): HttpServer => { return new HttpServer(envs.FOREST_SERVER_URL, envs.FOREST_ENV_SECRET, envs.FOREST_AUTH_TOKEN); diff --git a/packages/forest-cloud/src/commands/bootstrap.ts b/packages/forest-cloud/src/commands/bootstrap.ts index ea34f1220a..8b04477145 100644 --- a/packages/forest-cloud/src/commands/bootstrap.ts +++ b/packages/forest-cloud/src/commands/bootstrap.ts @@ -1,4 +1,5 @@ -import { Command } from 'commander'; +import type { MakeCommands } from '../types'; +import type { Command } from 'commander'; import actionRunner from '../dialogs/action-runner'; import askQuestion from '../dialogs/ask-question'; @@ -10,7 +11,6 @@ import { validateMissingForestEnvSecret, } from '../services/environment-variables'; import { loginIfMissingAuthAndReturnEnvironmentVariables } from '../shared'; -import { MakeCommands } from '../types'; export default (program: Command, context: MakeCommands) => { const { logger, buildHttpServer, bootstrapPathManager, login, getEnvironmentVariables } = context; diff --git a/packages/forest-cloud/src/commands/login.ts b/packages/forest-cloud/src/commands/login.ts index 4ad999284f..3f6cd3577d 100644 --- a/packages/forest-cloud/src/commands/login.ts +++ b/packages/forest-cloud/src/commands/login.ts @@ -1,10 +1,10 @@ -import { Command } from 'commander'; +import type { MakeCommands } from '../types'; +import type { Command } from 'commander'; import actionRunner from '../dialogs/action-runner'; import checkLatestVersion from '../dialogs/check-latest-version'; import { validateServerUrl } from '../services/environment-variables'; import HttpServer from '../services/http-server'; -import { MakeCommands } from '../types'; export default (program: Command, context: MakeCommands) => { const { logger, getCurrentVersion, getEnvironmentVariables, login } = context; diff --git a/packages/forest-cloud/src/commands/logs.ts b/packages/forest-cloud/src/commands/logs.ts index 36d4e9078c..49430699cf 100644 --- a/packages/forest-cloud/src/commands/logs.ts +++ b/packages/forest-cloud/src/commands/logs.ts @@ -1,4 +1,6 @@ -import { Command } from 'commander'; +import type { Log, Logger, MakeCommands } from '../types'; +import type { Command } from 'commander'; + import Joi from 'joi'; import actionRunner from '../dialogs/action-runner'; @@ -10,7 +12,6 @@ import { } from '../services/environment-variables'; import HttpServer from '../services/http-server'; import { loginIfMissingAuthAndReturnEnvironmentVariables } from '../shared'; -import { Log, Logger, MakeCommands } from '../types'; const levelToLog = { Info: 'info', diff --git a/packages/forest-cloud/src/commands/package.ts b/packages/forest-cloud/src/commands/package.ts index 7232f29e68..6562b39497 100644 --- a/packages/forest-cloud/src/commands/package.ts +++ b/packages/forest-cloud/src/commands/package.ts @@ -1,10 +1,10 @@ -import { Command } from 'commander'; +import type { MakeCommands } from '../types'; +import type { Command } from 'commander'; import actionRunner from '../dialogs/action-runner'; import checkLatestVersion from '../dialogs/check-latest-version'; import HttpServer from '../services/http-server'; import packageCustomizations from '../services/packager'; -import { MakeCommands } from '../types'; export default (program: Command, context: MakeCommands) => { const { logger, getCurrentVersion, distPathManager } = context; diff --git a/packages/forest-cloud/src/commands/publish.ts b/packages/forest-cloud/src/commands/publish.ts index 9b2e6447bc..f5a71fa2de 100644 --- a/packages/forest-cloud/src/commands/publish.ts +++ b/packages/forest-cloud/src/commands/publish.ts @@ -1,4 +1,5 @@ -import { Command } from 'commander'; +import type { Logger, MakeCommands } from '../types'; +import type { Command } from 'commander'; import actionRunner from '../dialogs/action-runner'; import askToOverwriteCustomizations from '../dialogs/ask-to-overwrite-customizations'; @@ -8,7 +9,6 @@ import { validateEnvironmentVariables } from '../services/environment-variables' import HttpServer from '../services/http-server'; import publish from '../services/publish'; import { loginIfMissingAuthAndReturnEnvironmentVariables } from '../shared'; -import { Logger, MakeCommands } from '../types'; const askToOverwriteCustomizationsOrAbortCommand = async ( logger: Logger, diff --git a/packages/forest-cloud/src/commands/start.ts b/packages/forest-cloud/src/commands/start.ts index a923f92ffe..7738d68b6f 100644 --- a/packages/forest-cloud/src/commands/start.ts +++ b/packages/forest-cloud/src/commands/start.ts @@ -1,4 +1,6 @@ -import { Command } from 'commander'; +import type { MakeCommands } from '../types'; +import type { Command } from 'commander'; + import fs from 'fs'; import actionRunner from '../dialogs/action-runner'; @@ -8,7 +10,6 @@ import { validateEnvironmentVariables } from '../services/environment-variables' import HttpServer from '../services/http-server'; import { startingAgent } from '../services/starting-agent-locally'; import { loginIfMissingAuthAndReturnEnvironmentVariables } from '../shared'; -import { MakeCommands } from '../types'; export default (program: Command, context: MakeCommands) => { const { diff --git a/packages/forest-cloud/src/commands/update-typings.ts b/packages/forest-cloud/src/commands/update-typings.ts index 5e445c7ca2..eb87628ed0 100644 --- a/packages/forest-cloud/src/commands/update-typings.ts +++ b/packages/forest-cloud/src/commands/update-typings.ts @@ -1,4 +1,5 @@ -import { Command } from 'commander'; +import type { MakeCommands } from '../types'; +import type { Command } from 'commander'; import actionRunner from '../dialogs/action-runner'; import checkLatestVersion from '../dialogs/check-latest-version'; @@ -6,7 +7,6 @@ import { validateEnvironmentVariables } from '../services/environment-variables' import HttpServer from '../services/http-server'; import { updateTypingsWithCustomizations } from '../services/update-typings'; import { loginIfMissingAuthAndReturnEnvironmentVariables } from '../shared'; -import { MakeCommands } from '../types'; export default (program: Command, context: MakeCommands) => { const { diff --git a/packages/forest-cloud/src/commands/version.ts b/packages/forest-cloud/src/commands/version.ts index e26fc302e0..bce5da06b5 100644 --- a/packages/forest-cloud/src/commands/version.ts +++ b/packages/forest-cloud/src/commands/version.ts @@ -1,10 +1,10 @@ -import { Command } from 'commander'; +import type { MakeCommands } from '../types'; +import type { Command } from 'commander'; import actionRunner from '../dialogs/action-runner'; import checkLatestVersion from '../dialogs/check-latest-version'; import { BusinessError } from '../errors'; import HttpServer from '../services/http-server'; -import { MakeCommands } from '../types'; export default (program: Command, context: MakeCommands) => { const { logger, getCurrentVersion } = context; diff --git a/packages/forest-cloud/src/dialogs/action-runner.ts b/packages/forest-cloud/src/dialogs/action-runner.ts index e78144c7fc..ddb9fbcaa8 100644 --- a/packages/forest-cloud/src/dialogs/action-runner.ts +++ b/packages/forest-cloud/src/dialogs/action-runner.ts @@ -1,5 +1,6 @@ +import type { Spinner } from '../types'; + import { BusinessError } from '../errors'; -import { Spinner } from '../types'; export default function actionRunner(spinner: Spinner, fn: (...args) => Promise) { return async (...args) => { diff --git a/packages/forest-cloud/src/dialogs/ask-to-overwrite-customizations.ts b/packages/forest-cloud/src/dialogs/ask-to-overwrite-customizations.ts index dce1871ffc..84610744c0 100644 --- a/packages/forest-cloud/src/dialogs/ask-to-overwrite-customizations.ts +++ b/packages/forest-cloud/src/dialogs/ask-to-overwrite-customizations.ts @@ -1,7 +1,8 @@ +import type HttpServer from '../services/http-server'; +import type { Spinner } from '../types'; + import askQuestion from './ask-question'; import displayCustomizationInfo from './display-customization-info'; -import HttpServer from '../services/http-server'; -import { Spinner } from '../types'; export default async function askToOverwriteCustomizations( spinner: Spinner, diff --git a/packages/forest-cloud/src/dialogs/check-latest-version.ts b/packages/forest-cloud/src/dialogs/check-latest-version.ts index 80b485cf9a..c59222e244 100644 --- a/packages/forest-cloud/src/dialogs/check-latest-version.ts +++ b/packages/forest-cloud/src/dialogs/check-latest-version.ts @@ -1,6 +1,7 @@ +import type HttpServer from '../services/http-server'; +import type { Spinner } from '../types'; + import { CloudToolkitVersionError } from '../errors'; -import HttpServer from '../services/http-server'; -import { Spinner } from '../types'; export default async function checkLatestVersion( spinner: Spinner, diff --git a/packages/forest-cloud/src/dialogs/display-customization-info.ts b/packages/forest-cloud/src/dialogs/display-customization-info.ts index 9bec99d615..74aa5e65ab 100644 --- a/packages/forest-cloud/src/dialogs/display-customization-info.ts +++ b/packages/forest-cloud/src/dialogs/display-customization-info.ts @@ -1,4 +1,4 @@ -import { CodeCustomizationDetails, Spinner } from '../types'; +import type { CodeCustomizationDetails, Spinner } from '../types'; export default function displayCustomizationInfo( spinner: Spinner, diff --git a/packages/forest-cloud/src/externals/logger.ts b/packages/forest-cloud/src/externals/logger.ts index 5b7201cd26..daba9e2d5b 100644 --- a/packages/forest-cloud/src/externals/logger.ts +++ b/packages/forest-cloud/src/externals/logger.ts @@ -1,6 +1,6 @@ -import ora from 'ora'; +import type { Logger } from '../types'; -import { Logger } from '../types'; +import ora from 'ora'; export const loggerPrefix = { Debug: '\x1b[34mdebug:\x1b[0m', diff --git a/packages/forest-cloud/src/externals/login.ts b/packages/forest-cloud/src/externals/login.ts index a081ab3995..68d1f54039 100644 --- a/packages/forest-cloud/src/externals/login.ts +++ b/packages/forest-cloud/src/externals/login.ts @@ -1,6 +1,6 @@ -import { exec } from 'child_process'; +import type { Logger } from '../types'; -import { Logger } from '../types'; +import { exec } from 'child_process'; export default async function login(logger: Logger) { return new Promise((resolve, reject) => { diff --git a/packages/forest-cloud/src/make-commands.ts b/packages/forest-cloud/src/make-commands.ts index c6d7ea8189..82cb4055c7 100644 --- a/packages/forest-cloud/src/make-commands.ts +++ b/packages/forest-cloud/src/make-commands.ts @@ -1,3 +1,5 @@ +import type { MakeCommands } from './types'; + import { Command } from 'commander'; import makeBootstrapCommand from './commands/bootstrap'; @@ -8,7 +10,6 @@ import makePublishCommand from './commands/publish'; import makeStartCommand from './commands/start'; import makeUpdateTypingsCommand from './commands/update-typings'; import makeVersionCommand from './commands/version'; -import { MakeCommands } from './types'; export default function makeCommands(context: MakeCommands): Command { // it's very important to use a new instance of Command each time for testing purposes diff --git a/packages/forest-cloud/src/services/bootstrap.ts b/packages/forest-cloud/src/services/bootstrap.ts index 646cdf119d..6b58f61661 100644 --- a/packages/forest-cloud/src/services/bootstrap.ts +++ b/packages/forest-cloud/src/services/bootstrap.ts @@ -1,14 +1,15 @@ +import type BootstrapPathManager from './bootstrap-path-manager'; +import type { EnvironmentVariables } from '../types'; + import AdmZip from 'adm-zip'; import * as fs from 'fs'; import * as fsP from 'fs/promises'; -import BootstrapPathManager from './bootstrap-path-manager'; import { defaultEnvs } from './environment-variables'; import generateDatasourceConfigFile from './generate-datasource-config-file'; import HttpServer from './http-server'; import { updateTypings } from './update-typings'; import { BusinessError } from '../errors'; -import { EnvironmentVariables } from '../types'; async function tryToClearBootstrap(paths: BootstrapPathManager): Promise { try { diff --git a/packages/forest-cloud/src/services/environment-variables.ts b/packages/forest-cloud/src/services/environment-variables.ts index 0b5f40443b..385b80d878 100644 --- a/packages/forest-cloud/src/services/environment-variables.ts +++ b/packages/forest-cloud/src/services/environment-variables.ts @@ -1,10 +1,11 @@ +import type { EnvironmentVariables } from '../types'; + import * as fs from 'fs'; import { readFile } from 'node:fs/promises'; import { homedir } from 'node:os'; import path from 'path'; import { BusinessError } from '../errors'; -import { EnvironmentVariables } from '../types'; const getTokenFromToolbelt = async (baseTokenPath: string): Promise => { const tokenPath = path.join(baseTokenPath, '.forest.d', '.forestrc'); diff --git a/packages/forest-cloud/src/services/event-subscriber.ts b/packages/forest-cloud/src/services/event-subscriber.ts index 4bf15281d5..b0d97dc46b 100644 --- a/packages/forest-cloud/src/services/event-subscriber.ts +++ b/packages/forest-cloud/src/services/event-subscriber.ts @@ -1,4 +1,6 @@ -import { InMemoryCache, NormalizedCacheObject } from 'apollo-cache-inmemory'; +import type { NormalizedCacheObject } from 'apollo-cache-inmemory'; + +import { InMemoryCache } from 'apollo-cache-inmemory'; import { ApolloClient } from 'apollo-client'; import { WebSocketLink } from 'apollo-link-ws'; import gql from 'graphql-tag'; diff --git a/packages/forest-cloud/src/services/http-server.ts b/packages/forest-cloud/src/services/http-server.ts index 16f4dfd473..0c8a712792 100644 --- a/packages/forest-cloud/src/services/http-server.ts +++ b/packages/forest-cloud/src/services/http-server.ts @@ -1,10 +1,11 @@ +import type { Datasources } from './update-typings'; +import type { CodeCustomizationDetails, Log } from '../types'; + import * as axios from 'axios'; import * as fs from 'fs'; import latestVersion from './latest-version'; -import { Datasources } from './update-typings'; import { BusinessError, ValidationError } from '../errors'; -import { CodeCustomizationDetails, Log } from '../types'; async function handledAxios( axiosRequestConfig: axios.AxiosRequestConfig, diff --git a/packages/forest-cloud/src/services/packager.ts b/packages/forest-cloud/src/services/packager.ts index 459b0ae484..e6e19f13c3 100644 --- a/packages/forest-cloud/src/services/packager.ts +++ b/packages/forest-cloud/src/services/packager.ts @@ -1,8 +1,9 @@ +import type DistPathManager from './dist-path-manager'; + import AdmZip from 'adm-zip'; import path from 'path'; import { throwIfNoBuiltCode } from './access-file'; -import DistPathManager from './dist-path-manager'; export default async function packageCustomizations(distPathManager: DistPathManager) { const { zip: zipPath, distCodeCustomizations: distPath } = distPathManager; diff --git a/packages/forest-cloud/src/services/publish.ts b/packages/forest-cloud/src/services/publish.ts index 7e40097e53..301bfb84bd 100644 --- a/packages/forest-cloud/src/services/publish.ts +++ b/packages/forest-cloud/src/services/publish.ts @@ -1,8 +1,9 @@ +import type DistPathManager from './dist-path-manager'; +import type HttpServer from './http-server'; + import AdmZip from 'adm-zip'; import FormData from 'form-data'; -import DistPathManager from './dist-path-manager'; -import HttpServer from './http-server'; import { BusinessError } from '../errors'; function getKeyFromPolicy(policy: string) { diff --git a/packages/forest-cloud/src/services/starting-agent-locally.ts b/packages/forest-cloud/src/services/starting-agent-locally.ts index edc40aeb09..fed41ba9ad 100644 --- a/packages/forest-cloud/src/services/starting-agent-locally.ts +++ b/packages/forest-cloud/src/services/starting-agent-locally.ts @@ -1,14 +1,14 @@ -import { AgentOptions, createAgent } from '@forestadmin/agent'; -import { - ConnectionParams, - MongoDatasourceParams, - createMongoDataSource, -} from '@forestadmin/datasource-mongo'; -import { ConnectionOptions, createSqlDataSource } from '@forestadmin/datasource-sql'; +import type DistPathManager from './dist-path-manager'; +import type { AgentOptions } from '@forestadmin/agent'; +import type { ConnectionParams, MongoDatasourceParams } from '@forestadmin/datasource-mongo'; +import type { ConnectionOptions } from '@forestadmin/datasource-sql'; + +import { createAgent } from '@forestadmin/agent'; +import { createMongoDataSource } from '@forestadmin/datasource-mongo'; +import { createSqlDataSource } from '@forestadmin/datasource-sql'; import fs from 'fs/promises'; import { throwIfNoBuiltCode } from './access-file'; -import DistPathManager from './dist-path-manager'; import loadCustomization from './load-customization'; import { BusinessError } from '../errors'; diff --git a/packages/forest-cloud/src/services/update-typings.ts b/packages/forest-cloud/src/services/update-typings.ts index 6362ee39b3..9cfca52eb2 100644 --- a/packages/forest-cloud/src/services/update-typings.ts +++ b/packages/forest-cloud/src/services/update-typings.ts @@ -1,7 +1,10 @@ +import type BootstrapPathManager from './bootstrap-path-manager'; +import type DistPathManager from './dist-path-manager'; +import type { AgentOptions } from '@forestadmin/agent'; import type { Introspection as DataSourceMongoIntrospection } from '@forestadmin/datasource-mongo'; import type { SupportedIntrospection as DataSourceSQLIntrospection } from '@forestadmin/datasource-sql'; -import { AgentOptions, createAgent } from '@forestadmin/agent'; +import { createAgent } from '@forestadmin/agent'; import { buildDisconnectedMongooseInstance } from '@forestadmin/datasource-mongo'; import { createMongooseDataSource } from '@forestadmin/datasource-mongoose'; import { createSequelizeDataSource } from '@forestadmin/datasource-sequelize'; @@ -10,8 +13,6 @@ import { IntrospectionFormatError } from '@forestadmin/datasource-toolkit'; import path from 'path'; import { throwIfNoBuiltCode } from './access-file'; -import BootstrapPathManager from './bootstrap-path-manager'; -import DistPathManager from './dist-path-manager'; import loadCustomization from './load-customization'; import { BusinessError } from '../errors'; diff --git a/packages/forest-cloud/src/shared.ts b/packages/forest-cloud/src/shared.ts index 279b38438a..17405936d6 100644 --- a/packages/forest-cloud/src/shared.ts +++ b/packages/forest-cloud/src/shared.ts @@ -1,4 +1,4 @@ -import { EnvironmentVariables, Logger, Login } from './types'; +import type { EnvironmentVariables, Logger, Login } from './types'; // eslint-disable-next-line import/prefer-default-export export const loginIfMissingAuthAndReturnEnvironmentVariables = async ( diff --git a/packages/forest-cloud/src/types.ts b/packages/forest-cloud/src/types.ts index 881b126673..37483b3a98 100644 --- a/packages/forest-cloud/src/types.ts +++ b/packages/forest-cloud/src/types.ts @@ -1,3 +1,7 @@ +import type BootstrapPathManager from './services/bootstrap-path-manager'; +import type DistPathManager from './services/dist-path-manager'; +import type EventSubscriber from './services/event-subscriber'; +import type HttpServer from './services/http-server'; import type { CollectionCustomizer, DataSourceChartDefinition, @@ -6,11 +10,6 @@ import type { TSchema, } from '@forestadmin/datasource-customizer'; -import BootstrapPathManager from './services/bootstrap-path-manager'; -import DistPathManager from './services/dist-path-manager'; -import EventSubscriber from './services/event-subscriber'; -import HttpServer from './services/http-server'; - /** * This agent the central object used to customize your cloud project * some methods available in self-hosted, such as: diff --git a/packages/forest-cloud/test/commands/bootstrap.test.ts b/packages/forest-cloud/test/commands/bootstrap.test.ts index 1752ade1ac..7d776a544e 100644 --- a/packages/forest-cloud/test/commands/bootstrap.test.ts +++ b/packages/forest-cloud/test/commands/bootstrap.test.ts @@ -1,8 +1,9 @@ +import type BootstrapPathManager from '../../src/services/bootstrap-path-manager'; + import fs from 'fs/promises'; import CommandTester from './command-tester'; import { setupCommandArguments } from './utils'; -import BootstrapPathManager from '../../src/services/bootstrap-path-manager'; import { defaultEnvs } from '../../src/services/environment-variables'; describe('bootstrap command', () => { diff --git a/packages/forest-cloud/test/commands/command-tester.ts b/packages/forest-cloud/test/commands/command-tester.ts index b8a417dc6c..e84c144f09 100644 --- a/packages/forest-cloud/test/commands/command-tester.ts +++ b/packages/forest-cloud/test/commands/command-tester.ts @@ -1,11 +1,12 @@ -import { Command } from 'commander'; +import type { MakeCommandsForTests } from './utils'; +import type { Logger } from '../../src/types'; +import type { Command } from 'commander'; + import * as process from 'process'; import readline from 'readline'; import { LoggerTester, QuestionTester, SpinnerTester } from './testers'; -import { MakeCommandsForTests } from './utils'; import makeCommands from '../../src/make-commands'; -import { Logger } from '../../src/types'; export default class CommandTester { private readonly command: Command; diff --git a/packages/forest-cloud/test/commands/publish.test.ts b/packages/forest-cloud/test/commands/publish.test.ts index aa43057356..459ab5b030 100644 --- a/packages/forest-cloud/test/commands/publish.test.ts +++ b/packages/forest-cloud/test/commands/publish.test.ts @@ -1,12 +1,14 @@ +import type { MakeCommandsForTests } from './utils'; +import type DistPathManager from '../../src/services/dist-path-manager'; +import type { ClientRequest, IncomingMessage } from 'http'; + import AdmZip from 'adm-zip'; import FormData from 'form-data'; import fs from 'fs/promises'; -import { ClientRequest, IncomingMessage } from 'http'; import path from 'path'; import CommandTester from './command-tester'; -import { MakeCommandsForTests, setupCommandArguments } from './utils'; -import DistPathManager from '../../src/services/dist-path-manager'; +import { setupCommandArguments } from './utils'; const createFakeZip = async (distPathManager: DistPathManager) => { const { zip: zipPath } = distPathManager; diff --git a/packages/forest-cloud/test/commands/utils.ts b/packages/forest-cloud/test/commands/utils.ts index 78393c0ab5..990f5449ed 100644 --- a/packages/forest-cloud/test/commands/utils.ts +++ b/packages/forest-cloud/test/commands/utils.ts @@ -1,3 +1,5 @@ +import type { EnvironmentVariables, MakeCommands } from '../../src/types'; + import fs from 'fs'; import os from 'os'; import path from 'path'; @@ -5,7 +7,6 @@ import path from 'path'; import BootstrapPathManager from '../../src/services/bootstrap-path-manager'; import DistPathManager from '../../src/services/dist-path-manager'; import HttpServer from '../../src/services/http-server'; -import { EnvironmentVariables, MakeCommands } from '../../src/types'; export type MakeCommandsForTests = Omit; const presignedPost = { diff --git a/packages/forest-cloud/test/externals/login.unit.test.ts b/packages/forest-cloud/test/externals/login.unit.test.ts index 2a1bab4ae6..74c704eca1 100644 --- a/packages/forest-cloud/test/externals/login.unit.test.ts +++ b/packages/forest-cloud/test/externals/login.unit.test.ts @@ -1,8 +1,9 @@ +import type { Logger } from '../../src/types'; + import { exec } from 'child_process'; import { beforeEach } from 'node:test'; import login from '../../src/externals/login'; -import { Logger } from '../../src/types'; jest.mock('child_process', () => ({ exec: jest.fn(), diff --git a/packages/forest-cloud/test/services/action-runner.unit.test.ts b/packages/forest-cloud/test/services/action-runner.unit.test.ts index 418b7ddb73..dd945bf304 100644 --- a/packages/forest-cloud/test/services/action-runner.unit.test.ts +++ b/packages/forest-cloud/test/services/action-runner.unit.test.ts @@ -1,6 +1,7 @@ +import type { Spinner } from '../../src/types'; + import actionRunner from '../../src/dialogs/action-runner'; import { BusinessError } from '../../src/errors'; -import { Spinner } from '../../src/types'; describe('actionRunner', () => { const setup = () => { diff --git a/packages/forest-cloud/test/services/bootstrap.unit.test.ts b/packages/forest-cloud/test/services/bootstrap.unit.test.ts index 43772801f3..36bd70b2f1 100644 --- a/packages/forest-cloud/test/services/bootstrap.unit.test.ts +++ b/packages/forest-cloud/test/services/bootstrap.unit.test.ts @@ -1,4 +1,6 @@ -import { Table } from '@forestadmin/datasource-sql'; +import type { EnvironmentVariables } from '../../src/types'; +import type { Table } from '@forestadmin/datasource-sql'; + import AdmZip from 'adm-zip'; import * as fs from 'fs'; import * as fsP from 'fs/promises'; @@ -8,7 +10,6 @@ import bootstrap from '../../src/services/bootstrap'; import BootstrapPathManager from '../../src/services/bootstrap-path-manager'; import HttpServer from '../../src/services/http-server'; import { updateTypings } from '../../src/services/update-typings'; -import { EnvironmentVariables } from '../../src/types'; jest.mock('adm-zip'); jest.mock('fs'); diff --git a/packages/forest-cloud/test/services/load-customization.unit.test.ts b/packages/forest-cloud/test/services/load-customization.unit.test.ts index f5ccb59fac..734e12e14e 100644 --- a/packages/forest-cloud/test/services/load-customization.unit.test.ts +++ b/packages/forest-cloud/test/services/load-customization.unit.test.ts @@ -1,8 +1,9 @@ +import type { Agent } from '../../src/types'; + import path from 'path'; import { CustomizationError } from '../../src/errors'; import loadCustomization from '../../src/services/load-customization'; -import { Agent } from '../../src/types'; describe('loadCustomization', () => { function setupAgent() { diff --git a/packages/forest-cloud/test/services/publish.unit.test.ts b/packages/forest-cloud/test/services/publish.unit.test.ts index 37519e0818..337d267114 100644 --- a/packages/forest-cloud/test/services/publish.unit.test.ts +++ b/packages/forest-cloud/test/services/publish.unit.test.ts @@ -1,10 +1,11 @@ /* eslint-disable @typescript-eslint/ban-ts-comment */ +import type HttpServer from '../../src/services/http-server'; +import type { ClientRequest, IncomingMessage } from 'node:http'; + import FormData from 'form-data'; -import { ClientRequest, IncomingMessage } from 'node:http'; import { afterEach } from 'node:test'; import DistPathManager from '../../src/services/dist-path-manager'; -import HttpServer from '../../src/services/http-server'; import publish from '../../src/services/publish'; const mockToBuffer = jest.fn(); diff --git a/packages/forest-cloud/test/services/update-typings.unit.test.ts b/packages/forest-cloud/test/services/update-typings.unit.test.ts index 5220a33c87..3f92d4b2b6 100644 --- a/packages/forest-cloud/test/services/update-typings.unit.test.ts +++ b/packages/forest-cloud/test/services/update-typings.unit.test.ts @@ -1,10 +1,13 @@ +import type BootstrapPathManager from '../../src/services/bootstrap-path-manager'; +import type DistPathManager from '../../src/services/dist-path-manager'; +import type { Agent } from '@forestadmin/agent'; import type { Introspection as DataSourceMongoIntrospection } from '@forestadmin/datasource-mongo'; import type { SupportedIntrospection as DataSourceSQLIntrospection } from '@forestadmin/datasource-sql'; import type { DataSourceFactory } from '@forestadmin/datasource-toolkit'; import type { Mongoose } from 'mongoose'; import type { Sequelize } from 'sequelize'; -import { Agent, createAgent } from '@forestadmin/agent'; +import { createAgent } from '@forestadmin/agent'; import { buildDisconnectedMongooseInstance } from '@forestadmin/datasource-mongo'; import { createMongooseDataSource } from '@forestadmin/datasource-mongoose'; import { createSequelizeDataSource } from '@forestadmin/datasource-sequelize'; @@ -13,8 +16,6 @@ import { BusinessError, IntrospectionFormatError } from '@forestadmin/datasource import path from 'path'; import { throwIfNoBuiltCode } from '../../src/services/access-file'; -import BootstrapPathManager from '../../src/services/bootstrap-path-manager'; -import DistPathManager from '../../src/services/dist-path-manager'; import loadCustomization from '../../src/services/load-customization'; import { updateTypings, updateTypingsWithCustomizations } from '../../src/services/update-typings'; diff --git a/packages/forestadmin-client/src/auth/index.ts b/packages/forestadmin-client/src/auth/index.ts index f6c9617d0a..6561f1d018 100644 --- a/packages/forestadmin-client/src/auth/index.ts +++ b/packages/forestadmin-client/src/auth/index.ts @@ -1,10 +1,15 @@ -import { BaseClient, ClientAuthMethod, Issuer, IssuerMetadata, errors } from 'openid-client'; -import { ParsedUrlQuery } from 'querystring'; +import type { ClientExt } from './type-overrides'; +import type { Tokens, UserInfo } from './types'; +import type { + ForestAdminAuthServiceInterface, + ForestAdminClientOptionsWithDefaults, +} from '../types'; +import type { BaseClient, ClientAuthMethod, IssuerMetadata } from 'openid-client'; +import type { ParsedUrlQuery } from 'querystring'; + +import { Issuer, errors } from 'openid-client'; import { AuthenticationError } from './errors'; -import { ClientExt } from './type-overrides'; -import { Tokens, UserInfo } from './types'; -import { ForestAdminAuthServiceInterface, ForestAdminClientOptionsWithDefaults } from '../types'; import ServerUtils from '../utils/server'; export default class AuthService implements ForestAdminAuthServiceInterface { diff --git a/packages/forestadmin-client/src/auth/type-overrides.ts b/packages/forestadmin-client/src/auth/type-overrides.ts index 97c6c5e5a0..76aabafa10 100644 --- a/packages/forestadmin-client/src/auth/type-overrides.ts +++ b/packages/forestadmin-client/src/auth/type-overrides.ts @@ -1,4 +1,4 @@ -import { BaseClient, ClientOptions, RegisterOther, TypeOfGenericClient } from 'openid-client'; +import type { BaseClient, ClientOptions, RegisterOther, TypeOfGenericClient } from 'openid-client'; export interface ClientExt extends TypeOfGenericClient { register: (metadata: object, other?: RegisterOther & ClientOptions) => Promise; diff --git a/packages/forestadmin-client/src/build-application-services.ts b/packages/forestadmin-client/src/build-application-services.ts index 123768160e..ded7b7dbd6 100644 --- a/packages/forestadmin-client/src/build-application-services.ts +++ b/packages/forestadmin-client/src/build-application-services.ts @@ -1,22 +1,24 @@ +import type { RefreshEventsHandlerService } from './events-subscription/types'; +import type { McpServerConfigService } from './mcp-server-config'; +import type { ModelCustomizationService } from './model-customizations/types'; +import type { + ForestAdminAuthServiceInterface, + ForestAdminClientOptions, + ForestAdminClientOptionsWithDefaults, + ForestAdminServerInterface, +} from './types'; + import ChartHandler from './charts/chart-handler'; import EventsSubscriptionService from './events-subscription'; import NativeRefreshEventsHandlerService from './events-subscription/native-refresh-events-handler-service'; -import { RefreshEventsHandlerService } from './events-subscription/types'; import IpWhiteListService from './ip-whitelist'; -import McpServerConfigFromApiService, { McpServerConfigService } from './mcp-server-config'; +import McpServerConfigFromApiService from './mcp-server-config'; import ModelCustomizationFromApiService from './model-customizations/model-customization-from-api'; -import { ModelCustomizationService } from './model-customizations/types'; import ActionPermissionService from './permissions/action-permission'; import PermissionService from './permissions/permission-with-cache'; import RenderingPermissionService from './permissions/rendering-permission'; import UserPermissionService from './permissions/user-permission'; import SchemaService from './schema'; -import { - ForestAdminAuthServiceInterface, - ForestAdminClientOptions, - ForestAdminClientOptionsWithDefaults, - ForestAdminServerInterface, -} from './types'; import ContextVariablesInstantiator from './utils/context-variables-instantiator'; import defaultLogger from './utils/default-logger'; diff --git a/packages/forestadmin-client/src/charts/types.ts b/packages/forestadmin-client/src/charts/types.ts index 99feeb25d3..af86ba2719 100644 --- a/packages/forestadmin-client/src/charts/types.ts +++ b/packages/forestadmin-client/src/charts/types.ts @@ -1,4 +1,4 @@ -import { RawTree } from '../permissions/types'; +import type { RawTree } from '../permissions/types'; export type KeysOfUnion = T extends T ? keyof T : never; diff --git a/packages/forestadmin-client/src/events-subscription/index.ts b/packages/forestadmin-client/src/events-subscription/index.ts index 3fe6b83209..65697d7930 100644 --- a/packages/forestadmin-client/src/events-subscription/index.ts +++ b/packages/forestadmin-client/src/events-subscription/index.ts @@ -1,12 +1,13 @@ -import EventSource from 'eventsource'; - -import { +import type { BaseEventsSubscriptionService, RefreshEventsHandlerService, ServerEvent, - ServerEventType, } from './types'; -import { ForestAdminClientOptionsWithDefaults } from '../types'; +import type { ForestAdminClientOptionsWithDefaults } from '../types'; + +import EventSource from 'eventsource'; + +import { ServerEventType } from './types'; export default class EventsSubscriptionService implements BaseEventsSubscriptionService { private eventSource: EventSource; diff --git a/packages/forestadmin-client/src/events-subscription/native-refresh-events-handler-service.ts b/packages/forestadmin-client/src/events-subscription/native-refresh-events-handler-service.ts index 1aaa49abb8..dff4a03e75 100644 --- a/packages/forestadmin-client/src/events-subscription/native-refresh-events-handler-service.ts +++ b/packages/forestadmin-client/src/events-subscription/native-refresh-events-handler-service.ts @@ -1,9 +1,9 @@ -import EventEmitter from 'events'; +import type { RefreshEventsHandlerService } from './types'; +import type ActionPermissionService from '../permissions/action-permission'; +import type RenderingPermissionService from '../permissions/rendering-permission'; +import type UserPermissionService from '../permissions/user-permission'; -import { RefreshEventsHandlerService } from './types'; -import ActionPermissionService from '../permissions/action-permission'; -import RenderingPermissionService from '../permissions/rendering-permission'; -import UserPermissionService from '../permissions/user-permission'; +import EventEmitter from 'events'; export default class NativeRefreshEventsHandlerService implements RefreshEventsHandlerService { private readonly eventEmitter: EventEmitter; diff --git a/packages/forestadmin-client/src/forest-admin-client-with-cache.ts b/packages/forestadmin-client/src/forest-admin-client-with-cache.ts index 96ad840b4d..397d8a8d09 100644 --- a/packages/forestadmin-client/src/forest-admin-client-with-cache.ts +++ b/packages/forestadmin-client/src/forest-admin-client-with-cache.ts @@ -1,24 +1,25 @@ -import ChartHandler from './charts/chart-handler'; -import { +import type ChartHandler from './charts/chart-handler'; +import type { BaseEventsSubscriptionService, RefreshEventsHandlerService, } from './events-subscription/types'; -import IpWhiteListService from './ip-whitelist'; -import { IpWhitelistConfiguration } from './ip-whitelist/types'; -import { McpServerConfigService } from './mcp-server-config'; -import { ModelCustomizationService } from './model-customizations/types'; -import RenderingPermissionService from './permissions/rendering-permission'; -import { RawTree } from './permissions/types'; -import verifyAndExtractApproval from './permissions/verify-approval'; -import SchemaService from './schema'; -import { ForestSchema } from './schema/types'; -import { +import type IpWhiteListService from './ip-whitelist'; +import type { IpWhitelistConfiguration } from './ip-whitelist/types'; +import type { McpServerConfigService } from './mcp-server-config'; +import type { ModelCustomizationService } from './model-customizations/types'; +import type RenderingPermissionService from './permissions/rendering-permission'; +import type { RawTree } from './permissions/types'; +import type SchemaService from './schema'; +import type { ForestSchema } from './schema/types'; +import type { ForestAdminAuthServiceInterface, ForestAdminClient, ForestAdminClientOptionsWithDefaults, PermissionService, } from './types'; -import ContextVariablesInstantiator from './utils/context-variables-instantiator'; +import type ContextVariablesInstantiator from './utils/context-variables-instantiator'; + +import verifyAndExtractApproval from './permissions/verify-approval'; export default class ForestAdminClientWithCache implements ForestAdminClient { constructor( diff --git a/packages/forestadmin-client/src/index.ts b/packages/forestadmin-client/src/index.ts index 77850d05b0..501c5bb636 100644 --- a/packages/forestadmin-client/src/index.ts +++ b/packages/forestadmin-client/src/index.ts @@ -1,7 +1,8 @@ +import type { ForestAdminClient, ForestAdminClientOptions } from './types'; + import buildApplicationServices from './build-application-services'; import ForestAdminClientWithCache from './forest-admin-client-with-cache'; import ForestHttpApi from './permissions/forest-http-api'; -import { ForestAdminClient, ForestAdminClientOptions } from './types'; export { default as JTWTokenExpiredError } from './permissions/errors/jwt-token-expired-error'; export { default as JTWUnableToVerifyError } from './permissions/errors/jwt-unable-to-verify-error'; diff --git a/packages/forestadmin-client/src/ip-whitelist/index.ts b/packages/forestadmin-client/src/ip-whitelist/index.ts index 9702b2487d..c62dac6d44 100644 --- a/packages/forestadmin-client/src/ip-whitelist/index.ts +++ b/packages/forestadmin-client/src/ip-whitelist/index.ts @@ -1,5 +1,6 @@ -import { IpWhitelistConfiguration } from './types'; -import { ForestAdminClientOptionsWithDefaults } from '../types'; +import type { IpWhitelistConfiguration } from './types'; +import type { ForestAdminClientOptionsWithDefaults } from '../types'; + import ServerUtils from '../utils/server'; type RawIpWhiteList = { diff --git a/packages/forestadmin-client/src/mcp-server-config/index.ts b/packages/forestadmin-client/src/mcp-server-config/index.ts index f79b910da8..d96059e9f8 100644 --- a/packages/forestadmin-client/src/mcp-server-config/index.ts +++ b/packages/forestadmin-client/src/mcp-server-config/index.ts @@ -1,8 +1,7 @@ +import type { McpServerConfigService } from './types'; +import type { ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types'; import type { McpConfiguration } from '@forestadmin/ai-proxy'; -import { McpServerConfigService } from './types'; -import { ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types'; - export default class McpServerConfigFromApiService implements McpServerConfigService { constructor( private readonly forestadminServerInterface: ForestAdminServerInterface, diff --git a/packages/forestadmin-client/src/model-customizations/model-customization-from-api.ts b/packages/forestadmin-client/src/model-customizations/model-customization-from-api.ts index 04448e5000..27f0d52f6a 100644 --- a/packages/forestadmin-client/src/model-customizations/model-customization-from-api.ts +++ b/packages/forestadmin-client/src/model-customizations/model-customization-from-api.ts @@ -1,12 +1,13 @@ -import { +import type { ActionConfigurationApi, ActionScope, ConfigurationApi, ModelCustomization, ModelCustomizationService, - ModelCustomizationType, } from './types'; -import { ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types'; +import type { ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types'; + +import { ModelCustomizationType } from './types'; function mapApiValues( modelCustomization: ModelCustomization, diff --git a/packages/forestadmin-client/src/permissions/action-permission.ts b/packages/forestadmin-client/src/permissions/action-permission.ts index 1c61a0d8e5..33f48b285f 100644 --- a/packages/forestadmin-client/src/permissions/action-permission.ts +++ b/packages/forestadmin-client/src/permissions/action-permission.ts @@ -1,10 +1,8 @@ +import type { ActionPermissions } from './generate-actions-from-permissions'; import type { RawTreeWithSources } from './types'; -import type { ForestAdminClientOptionsWithDefaults } from '../types'; +import type { ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types'; -import generateActionsFromPermissions, { - ActionPermissions, -} from './generate-actions-from-permissions'; -import { ForestAdminServerInterface } from '../types'; +import generateActionsFromPermissions from './generate-actions-from-permissions'; import TTLCache from '../utils/ttl-cache'; export default class ActionPermissionService { diff --git a/packages/forestadmin-client/src/permissions/forest-http-api.ts b/packages/forestadmin-client/src/permissions/forest-http-api.ts index c7220638c3..f92c233349 100644 --- a/packages/forestadmin-client/src/permissions/forest-http-api.ts +++ b/packages/forestadmin-client/src/permissions/forest-http-api.ts @@ -1,14 +1,14 @@ -import type { McpConfiguration } from '@forestadmin/ai-proxy'; - -import { EnvironmentPermissionsV4, RenderingPermissionV4, UserPermissionV4 } from './types'; -import AuthService from '../auth'; -import { ModelCustomization } from '../model-customizations/types'; -import { +import type { EnvironmentPermissionsV4, RenderingPermissionV4, UserPermissionV4 } from './types'; +import type { ModelCustomization } from '../model-customizations/types'; +import type { ForestAdminAuthServiceInterface, ForestAdminClientOptions, ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface, } from '../types'; +import type { McpConfiguration } from '@forestadmin/ai-proxy'; + +import AuthService from '../auth'; import ServerUtils from '../utils/server'; export type HttpOptions = Pick< diff --git a/packages/forestadmin-client/src/permissions/generate-action-identifier.ts b/packages/forestadmin-client/src/permissions/generate-action-identifier.ts index 7ae6ace615..2b642cbf2d 100644 --- a/packages/forestadmin-client/src/permissions/generate-action-identifier.ts +++ b/packages/forestadmin-client/src/permissions/generate-action-identifier.ts @@ -1,4 +1,4 @@ -import { CollectionActionEvent, CustomActionEvent } from './types'; +import type { CollectionActionEvent, CustomActionEvent } from './types'; export function generateCustomActionIdentifier( actionEventName: CustomActionEvent, diff --git a/packages/forestadmin-client/src/permissions/generate-actions-from-permissions.ts b/packages/forestadmin-client/src/permissions/generate-actions-from-permissions.ts index 8b5fbb2f60..c9ad5aef81 100644 --- a/packages/forestadmin-client/src/permissions/generate-actions-from-permissions.ts +++ b/packages/forestadmin-client/src/permissions/generate-actions-from-permissions.ts @@ -1,10 +1,4 @@ -import { - generateCollectionActionIdentifier, - generateCustomActionIdentifier, -} from './generate-action-identifier'; -import { - CollectionActionEvent, - CustomActionEvent, +import type { EnvironmentCollectionActionPermissionsV4, EnvironmentCollectionsPermissionsV4, EnvironmentPermissionsV4, @@ -15,6 +9,12 @@ import { RightDescriptionWithRolesV4, } from './types'; +import { + generateCollectionActionIdentifier, + generateCustomActionIdentifier, +} from './generate-action-identifier'; +import { CollectionActionEvent, CustomActionEvent } from './types'; + export type ActionPermissions = { isDevelopment: boolean; actionsGloballyAllowed: Set; diff --git a/packages/forestadmin-client/src/permissions/hash-chart.ts b/packages/forestadmin-client/src/permissions/hash-chart.ts index bf214a5f3b..77cf437bba 100644 --- a/packages/forestadmin-client/src/permissions/hash-chart.ts +++ b/packages/forestadmin-client/src/permissions/hash-chart.ts @@ -1,6 +1,6 @@ -import hashObject from 'object-hash'; +import type { Chart, ChartKeys } from '../charts/types'; -import { Chart, ChartKeys } from '../charts/types'; +import hashObject from 'object-hash'; function hashChart(chart: Chart): string { const knownChartKeys: ChartKeys[] = [ diff --git a/packages/forestadmin-client/src/permissions/is-segment-query-allowed-on-connection.ts b/packages/forestadmin-client/src/permissions/is-segment-query-allowed-on-connection.ts index 6cae565e58..4d8d7dbf76 100644 --- a/packages/forestadmin-client/src/permissions/is-segment-query-allowed-on-connection.ts +++ b/packages/forestadmin-client/src/permissions/is-segment-query-allowed-on-connection.ts @@ -1,4 +1,4 @@ -import { CollectionRenderingPermissionV4 } from './types'; +import type { CollectionRenderingPermissionV4 } from './types'; export default function isSegmentQueryAllowedOnConnection( collectionPermissions: CollectionRenderingPermissionV4, diff --git a/packages/forestadmin-client/src/permissions/permission-with-cache.ts b/packages/forestadmin-client/src/permissions/permission-with-cache.ts index cf5f8a990e..7ee13ebbac 100644 --- a/packages/forestadmin-client/src/permissions/permission-with-cache.ts +++ b/packages/forestadmin-client/src/permissions/permission-with-cache.ts @@ -1,12 +1,14 @@ -import ActionPermission from './action-permission'; +import type ActionPermission from './action-permission'; +import type RenderingPermissionService from './rendering-permission'; +import type { CollectionActionEvent } from './types'; +import type { Chart } from '../charts/types'; +import type { PermissionService } from '../types'; + import { generateCollectionActionIdentifier, generateCustomActionIdentifier, } from './generate-action-identifier'; -import RenderingPermissionService from './rendering-permission'; -import { CollectionActionEvent, CustomActionEvent } from './types'; -import { Chart } from '../charts/types'; -import { PermissionService } from '../types'; +import { CustomActionEvent } from './types'; export default class PermissionServiceWithCache implements PermissionService { constructor( diff --git a/packages/forestadmin-client/src/permissions/rendering-permission.ts b/packages/forestadmin-client/src/permissions/rendering-permission.ts index 2a9baa8b58..7fcc41e6d1 100644 --- a/packages/forestadmin-client/src/permissions/rendering-permission.ts +++ b/packages/forestadmin-client/src/permissions/rendering-permission.ts @@ -1,17 +1,13 @@ +import type { CollectionRenderingPermissionV4, RawTree, Team, UserPermissionV4 } from './types'; +import type UserPermissionService from './user-permission'; +import type { Chart, QueryChart } from '../charts/types'; +import type { ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types'; + import { hashChartRequest, hashServerCharts } from './hash-chart'; import isSegmentQueryAllowedOnConnection from './is-segment-query-allowed-on-connection'; import isSegmentQueryAllowed from './is-segment-query-authorized'; -import { - CollectionRenderingPermissionV4, - PermissionLevel, - RawTree, - Team, - UserPermissionV4, -} from './types'; -import UserPermissionService from './user-permission'; +import { PermissionLevel } from './types'; import verifySQLQuery from './verify-sql-query'; -import { Chart, QueryChart } from '../charts/types'; -import { ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types'; import ContextVariables from '../utils/context-variables'; import ContextVariablesInjector from '../utils/context-variables-injector'; import TTLCache from '../utils/ttl-cache'; diff --git a/packages/forestadmin-client/src/permissions/user-permission.ts b/packages/forestadmin-client/src/permissions/user-permission.ts index 501ab8dc6d..f05513d310 100644 --- a/packages/forestadmin-client/src/permissions/user-permission.ts +++ b/packages/forestadmin-client/src/permissions/user-permission.ts @@ -1,5 +1,5 @@ -import { UserPermissionV4 } from './types'; -import { ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types'; +import type { UserPermissionV4 } from './types'; +import type { ForestAdminClientOptionsWithDefaults, ForestAdminServerInterface } from '../types'; export default class UserPermissionService { private cacheExpirationTimestamp = 0; diff --git a/packages/forestadmin-client/src/schema/index.ts b/packages/forestadmin-client/src/schema/index.ts index add4464e0f..5a1c4c4e5b 100644 --- a/packages/forestadmin-client/src/schema/index.ts +++ b/packages/forestadmin-client/src/schema/index.ts @@ -1,8 +1,9 @@ +import type { ForestSchema } from './types'; +import type { ForestAdminClientOptionsWithDefaults } from '../types'; + import crypto from 'crypto'; import JSONAPISerializer from 'json-api-serializer'; -import { ForestSchema } from './types'; -import { ForestAdminClientOptionsWithDefaults } from '../types'; import ServerUtils from '../utils/server'; type SerializedSchema = { meta: { schemaFileHash: string } }; diff --git a/packages/forestadmin-client/src/types.ts b/packages/forestadmin-client/src/types.ts index 57c0ec3513..4c5c302302 100644 --- a/packages/forestadmin-client/src/types.ts +++ b/packages/forestadmin-client/src/types.ts @@ -1,15 +1,11 @@ +import type { Tokens, UserInfo } from './auth/types'; import type { ChartRequest } from './charts/chart-handler'; import type { Chart, QueryChart } from './charts/types'; -import type { McpConfiguration } from '@forestadmin/ai-proxy'; - -import { ParsedUrlQuery } from 'querystring'; - -import { Tokens, UserInfo } from './auth/types'; -import { IpWhitelistConfiguration } from './ip-whitelist/types'; -import { McpServerConfigService } from './mcp-server-config/types'; -import { ModelCustomization, ModelCustomizationService } from './model-customizations/types'; -import { HttpOptions } from './permissions/forest-http-api'; -import { +import type { IpWhitelistConfiguration } from './ip-whitelist/types'; +import type { McpServerConfigService } from './mcp-server-config/types'; +import type { ModelCustomization, ModelCustomizationService } from './model-customizations/types'; +import type { HttpOptions } from './permissions/forest-http-api'; +import type { CollectionActionEvent, EnvironmentPermissionsV4, RawTree, @@ -17,8 +13,11 @@ import { RenderingPermissionV4, UserPermissionV4, } from './permissions/types'; -import { ForestSchema } from './schema/types'; -import ContextVariables, { RequestContextVariables } from './utils/context-variables'; +import type { ForestSchema } from './schema/types'; +import type { RequestContextVariables } from './utils/context-variables'; +import type ContextVariables from './utils/context-variables'; +import type { McpConfiguration } from '@forestadmin/ai-proxy'; +import type { ParsedUrlQuery } from 'querystring'; export type { CollectionActionEvent, RawTree, RawTreeWithSources } from './permissions/types'; diff --git a/packages/forestadmin-client/src/utils/context-variables-injector.ts b/packages/forestadmin-client/src/utils/context-variables-injector.ts index 62fece9bef..39363d28f6 100644 --- a/packages/forestadmin-client/src/utils/context-variables-injector.ts +++ b/packages/forestadmin-client/src/utils/context-variables-injector.ts @@ -1,5 +1,5 @@ -import ContextVariables from './context-variables'; -import { RawTree, RawTreeBranch } from '../permissions/types'; +import type ContextVariables from './context-variables'; +import type { RawTree, RawTreeBranch } from '../permissions/types'; export default class ContextVariablesInjector { private static isTreeBranch(filter: RawTree): filter is RawTreeBranch { diff --git a/packages/forestadmin-client/src/utils/context-variables-instantiator.ts b/packages/forestadmin-client/src/utils/context-variables-instantiator.ts index 5e3fed1ac5..75ae0723a3 100644 --- a/packages/forestadmin-client/src/utils/context-variables-instantiator.ts +++ b/packages/forestadmin-client/src/utils/context-variables-instantiator.ts @@ -1,6 +1,8 @@ -import ContextVariables, { RequestContextVariables } from './context-variables'; -import RenderingPermissionService from '../permissions/rendering-permission'; -import { ContextVariablesInstantiatorInterface } from '../types'; +import type { RequestContextVariables } from './context-variables'; +import type RenderingPermissionService from '../permissions/rendering-permission'; +import type { ContextVariablesInstantiatorInterface } from '../types'; + +import ContextVariables from './context-variables'; export default class ContextVariablesInstantiator implements ContextVariablesInstantiatorInterface { constructor(private readonly renderingPermissionService: RenderingPermissionService) {} diff --git a/packages/forestadmin-client/src/utils/context-variables.ts b/packages/forestadmin-client/src/utils/context-variables.ts index 56a4aae090..6e81f8df9c 100644 --- a/packages/forestadmin-client/src/utils/context-variables.ts +++ b/packages/forestadmin-client/src/utils/context-variables.ts @@ -1,4 +1,4 @@ -import { Team, UserPermissionV4 } from '../permissions/types'; +import type { Team, UserPermissionV4 } from '../permissions/types'; export type RequestContextVariables = { [key: string]: string | number | boolean; diff --git a/packages/forestadmin-client/src/utils/server.ts b/packages/forestadmin-client/src/utils/server.ts index 7aa623a959..e6660622cd 100644 --- a/packages/forestadmin-client/src/utils/server.ts +++ b/packages/forestadmin-client/src/utils/server.ts @@ -1,7 +1,9 @@ -import superagent, { ResponseError } from 'superagent'; +import type { ForestAdminClientOptionsWithDefaults } from '../types'; +import type { ResponseError } from 'superagent'; + +import superagent from 'superagent'; import { ForbiddenError } from '..'; -import { ForestAdminClientOptionsWithDefaults } from '../types'; type HttpOptions = Pick; diff --git a/packages/forestadmin-client/test/__factories__/forest-admin-client-options.ts b/packages/forestadmin-client/test/__factories__/forest-admin-client-options.ts index aeefb13dfe..4c1f08d54a 100644 --- a/packages/forestadmin-client/test/__factories__/forest-admin-client-options.ts +++ b/packages/forestadmin-client/test/__factories__/forest-admin-client-options.ts @@ -1,6 +1,6 @@ -import { Factory } from 'fishery'; +import type { ForestAdminClientOptionsWithDefaults } from '../../src/types'; -import { ForestAdminClientOptionsWithDefaults } from '../../src/types'; +import { Factory } from 'fishery'; export default Factory.define(() => ({ envSecret: '61a31971206f285c3e8eb8f3ee420175eb004bfa9fa24846dde6d5dd438e3991', diff --git a/packages/forestadmin-client/test/__factories__/forest-admin-server-interface.ts b/packages/forestadmin-client/test/__factories__/forest-admin-server-interface.ts index 2a278d2f10..42439519c6 100644 --- a/packages/forestadmin-client/test/__factories__/forest-admin-server-interface.ts +++ b/packages/forestadmin-client/test/__factories__/forest-admin-server-interface.ts @@ -1,4 +1,4 @@ -import { ForestAdminServerInterface } from '../../src/types'; +import type { ForestAdminServerInterface } from '../../src/types'; const forestAdminServerInterface = { build: (): ForestAdminServerInterface => ({ diff --git a/packages/forestadmin-client/test/__factories__/mcp-server-config.ts b/packages/forestadmin-client/test/__factories__/mcp-server-config.ts index d312216208..c51fdb8e85 100644 --- a/packages/forestadmin-client/test/__factories__/mcp-server-config.ts +++ b/packages/forestadmin-client/test/__factories__/mcp-server-config.ts @@ -1,4 +1,4 @@ -import { McpServerConfigService } from '../../src/mcp-server-config/types'; +import type { McpServerConfigService } from '../../src/mcp-server-config/types'; const mcpServerConfig = { build: (overrides?: Partial): McpServerConfigService => ({ diff --git a/packages/forestadmin-client/test/chart/chart-handler.test.ts b/packages/forestadmin-client/test/chart/chart-handler.test.ts index dab01024de..d48e79e2ad 100644 --- a/packages/forestadmin-client/test/chart/chart-handler.test.ts +++ b/packages/forestadmin-client/test/chart/chart-handler.test.ts @@ -1,6 +1,5 @@ -import ChartHandlerService, { ChartRequest } from '../../src/charts/chart-handler'; -import { - ChartType, +import type { ChartRequest } from '../../src/charts/chart-handler'; +import type { LeaderboardChart, LineChart, ObjectiveChart, @@ -8,7 +7,10 @@ import { QueryChart, ValueChart, } from '../../src/charts/types'; -import { RawTree } from '../../src/permissions/types'; +import type { RawTree } from '../../src/permissions/types'; + +import ChartHandlerService from '../../src/charts/chart-handler'; +import { ChartType } from '../../src/charts/types'; import ContextVariablesInjector from '../../src/utils/context-variables-injector'; import contextVariablesInstantiatorFactory from '../__factories__/utils/context-variables-instantiator'; diff --git a/packages/forestadmin-client/test/model-customizations/model-customization-from-api.test.ts b/packages/forestadmin-client/test/model-customizations/model-customization-from-api.test.ts index 257afc1719..2ffef2c65b 100644 --- a/packages/forestadmin-client/test/model-customizations/model-customization-from-api.test.ts +++ b/packages/forestadmin-client/test/model-customizations/model-customization-from-api.test.ts @@ -1,5 +1,6 @@ +import type { ActionScope, ModelCustomization } from '../../src/model-customizations/types'; + import ModelCustomizationService from '../../src/model-customizations/model-customization-from-api'; -import { ActionScope, ModelCustomization } from '../../src/model-customizations/types'; import { forestAdminServerInterface } from '../__factories__'; import forestadminClientOptionsFactory from '../__factories__/forest-admin-client-options'; diff --git a/packages/forestadmin-client/test/permissions/action-permission.test.ts b/packages/forestadmin-client/test/permissions/action-permission.test.ts index 6ea3fb04c8..c69e2ca6f3 100644 --- a/packages/forestadmin-client/test/permissions/action-permission.test.ts +++ b/packages/forestadmin-client/test/permissions/action-permission.test.ts @@ -1,8 +1,8 @@ +import type { ActionPermissions } from '../../src/permissions/generate-actions-from-permissions'; +import type { RawTreeWithSources } from '../../src/permissions/types'; + import ActionPermissionService from '../../src/permissions/action-permission'; -import generateActionsFromPermissions, { - ActionPermissions, -} from '../../src/permissions/generate-actions-from-permissions'; -import { RawTreeWithSources } from '../../src/permissions/types'; +import generateActionsFromPermissions from '../../src/permissions/generate-actions-from-permissions'; import * as factories from '../__factories__'; jest.mock('../../src/permissions/generate-actions-from-permissions', () => ({ diff --git a/packages/forestadmin-client/test/permissions/hash-chart.test.ts b/packages/forestadmin-client/test/permissions/hash-chart.test.ts index b5b6ba6e6d..b9f36b1213 100644 --- a/packages/forestadmin-client/test/permissions/hash-chart.test.ts +++ b/packages/forestadmin-client/test/permissions/hash-chart.test.ts @@ -1,4 +1,6 @@ -import { Chart, ChartType, LineChart, PieChart, ValueChart } from '../../src/charts/types'; +import type { Chart, LineChart, PieChart, ValueChart } from '../../src/charts/types'; + +import { ChartType } from '../../src/charts/types'; import { hashChartRequest, hashServerCharts } from '../../src/permissions/hash-chart'; describe('HashChart', () => { diff --git a/packages/forestadmin-client/test/permissions/is-segment-query-allowed-on-connection.test.ts b/packages/forestadmin-client/test/permissions/is-segment-query-allowed-on-connection.test.ts index d05787c4fe..5bb5176e3b 100644 --- a/packages/forestadmin-client/test/permissions/is-segment-query-allowed-on-connection.test.ts +++ b/packages/forestadmin-client/test/permissions/is-segment-query-allowed-on-connection.test.ts @@ -1,5 +1,6 @@ +import type { CollectionRenderingPermissionV4 } from '../../src/permissions/types'; + import isSegmentQueryAllowedOnConnection from '../../src/permissions/is-segment-query-allowed-on-connection'; -import { CollectionRenderingPermissionV4 } from '../../src/permissions/types'; describe('isSegmentQueryAllowedOnConnection', () => { it('should return false if there is no permissions', () => { diff --git a/packages/forestadmin-client/test/permissions/rendering-permission.test.ts b/packages/forestadmin-client/test/permissions/rendering-permission.test.ts index 7ae01e58d8..9d56a5907b 100644 --- a/packages/forestadmin-client/test/permissions/rendering-permission.test.ts +++ b/packages/forestadmin-client/test/permissions/rendering-permission.test.ts @@ -1,3 +1,5 @@ +import type { RawTree } from '../../src/permissions/types'; + import { ChartType } from '../../src/charts/types'; import ChainedSQLQueryError from '../../src/permissions/errors/chained-sql-query-error'; import EmptySQLQueryError from '../../src/permissions/errors/empty-sql-query-error'; @@ -6,7 +8,7 @@ import { hashChartRequest, hashServerCharts } from '../../src/permissions/hash-c import isSegmentQueryAllowedOnConnection from '../../src/permissions/is-segment-query-allowed-on-connection'; import isSegmentQueryAllowed from '../../src/permissions/is-segment-query-authorized'; import RenderingPermissionService from '../../src/permissions/rendering-permission'; -import { PermissionLevel, RawTree } from '../../src/permissions/types'; +import { PermissionLevel } from '../../src/permissions/types'; import verifySQLQuery from '../../src/permissions/verify-sql-query'; import ContextVariablesInjector from '../../src/utils/context-variables-injector'; import * as factories from '../__factories__'; diff --git a/packages/forestadmin-client/test/utils/chart-detector.test.ts b/packages/forestadmin-client/test/utils/chart-detector.test.ts index 313f10663b..0af18bc0b7 100644 --- a/packages/forestadmin-client/test/utils/chart-detector.test.ts +++ b/packages/forestadmin-client/test/utils/chart-detector.test.ts @@ -1,12 +1,13 @@ -import { +import type { ApiRouteChart, - ChartType, LeaderboardChart, LineChart, ObjectiveChart, PieChart, ValueChart, } from '../../src/charts/types'; + +import { ChartType } from '../../src/charts/types'; import ChartDetector from '../../src/utils/chart-detector'; describe('ChartDetector', () => { diff --git a/packages/forestadmin-client/test/utils/context-variables-injector.test.ts b/packages/forestadmin-client/test/utils/context-variables-injector.test.ts index fa1bf0ed20..f96ed6c762 100644 --- a/packages/forestadmin-client/test/utils/context-variables-injector.test.ts +++ b/packages/forestadmin-client/test/utils/context-variables-injector.test.ts @@ -1,4 +1,6 @@ -import { PermissionLevel, RawTree } from '../../src/permissions/types'; +import type { RawTree } from '../../src/permissions/types'; + +import { PermissionLevel } from '../../src/permissions/types'; import ContextVariables from '../../src/utils/context-variables'; import ContextVariablesInjector from '../../src/utils/context-variables-injector'; diff --git a/packages/mcp-server/src/tools/describe-collection.ts b/packages/mcp-server/src/tools/describe-collection.ts index 5bb4c6b6c1..c99a949397 100644 --- a/packages/mcp-server/src/tools/describe-collection.ts +++ b/packages/mcp-server/src/tools/describe-collection.ts @@ -1,8 +1,8 @@ +import type { Logger } from '../server'; import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { z } from 'zod'; -import { Logger } from '../server'; import buildClient from '../utils/agent-caller'; import { fetchForestSchema, diff --git a/packages/mcp-server/src/utils/with-activity-log.ts b/packages/mcp-server/src/utils/with-activity-log.ts index ff4174384b..ffa7d26317 100644 --- a/packages/mcp-server/src/utils/with-activity-log.ts +++ b/packages/mcp-server/src/utils/with-activity-log.ts @@ -1,9 +1,9 @@ import type { Logger } from '../server'; +import type { ActivityLogAction } from './activity-logs-creator'; import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js'; import type { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js'; import createPendingActivityLog, { - ActivityLogAction, markActivityLogAsFailed, markActivityLogAsSucceeded, } from './activity-logs-creator'; diff --git a/packages/mcp-server/test/tools/list-related.test.ts b/packages/mcp-server/test/tools/list-related.test.ts index d11e70c7b6..a66988baa2 100644 --- a/packages/mcp-server/test/tools/list-related.test.ts +++ b/packages/mcp-server/test/tools/list-related.test.ts @@ -1,9 +1,8 @@ +import type { Logger } from '../../src/server'; +import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp'; import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol'; import type { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types'; -import { McpServer } from '@modelcontextprotocol/sdk/server/mcp'; - -import { Logger } from '../../src/server'; import declareListRelatedTool from '../../src/tools/list-related'; import buildClient from '../../src/utils/agent-caller'; import * as schemaFetcher from '../../src/utils/schema-fetcher'; diff --git a/packages/mcp-server/test/utils/activity-logs-creator.test.ts b/packages/mcp-server/test/utils/activity-logs-creator.test.ts index 48e4f8bda9..534a90d1c8 100644 --- a/packages/mcp-server/test/utils/activity-logs-creator.test.ts +++ b/packages/mcp-server/test/utils/activity-logs-creator.test.ts @@ -1,8 +1,8 @@ +import type { ActivityLogAction } from '../../src/utils/activity-logs-creator'; import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol'; import type { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types'; import createPendingActivityLog, { - ActivityLogAction, markActivityLogAsFailed, markActivityLogAsSucceeded, } from '../../src/utils/activity-logs-creator'; diff --git a/packages/plugin-aws-s3/src/field/make-field-writable.ts b/packages/plugin-aws-s3/src/field/make-field-writable.ts index c583c1188f..df2a2033c6 100644 --- a/packages/plugin-aws-s3/src/field/make-field-writable.ts +++ b/packages/plugin-aws-s3/src/field/make-field-writable.ts @@ -1,8 +1,9 @@ +import type { Configuration } from '../types'; import type { CollectionCustomizer } from '@forestadmin/datasource-customizer'; +import type { RecordData } from '@forestadmin/datasource-toolkit'; -import { RecordData, SchemaUtils } from '@forestadmin/datasource-toolkit'; +import { SchemaUtils } from '@forestadmin/datasource-toolkit'; -import { Configuration } from '../types'; import { parseDataUri } from '../utils/data-uri'; function getPks(collection: CollectionCustomizer): string[] { diff --git a/packages/plugin-aws-s3/src/types.ts b/packages/plugin-aws-s3/src/types.ts index 4ff4bf6ed5..e229ab0257 100644 --- a/packages/plugin-aws-s3/src/types.ts +++ b/packages/plugin-aws-s3/src/types.ts @@ -1,3 +1,5 @@ +import type Client from './utils/s3'; +import type { ObjectCannedACL } from '@aws-sdk/client-s3'; import type { TCollectionName, TColumnName, @@ -8,10 +10,6 @@ import type { import type CollectionCustomizationContext from '@forestadmin/datasource-customizer/dist/context/collection-context'; import type WriteCustomizationContext from '@forestadmin/datasource-customizer/dist/decorators/write/write-replace/context'; -import { ObjectCannedACL } from '@aws-sdk/client-s3'; - -import Client from './utils/s3'; - export type File = { name: string; buffer: Buffer; diff --git a/packages/plugin-aws-s3/src/utils/data-uri.ts b/packages/plugin-aws-s3/src/utils/data-uri.ts index cf781f7036..42893cb009 100644 --- a/packages/plugin-aws-s3/src/utils/data-uri.ts +++ b/packages/plugin-aws-s3/src/utils/data-uri.ts @@ -1,4 +1,4 @@ -import { File } from '../types'; +import type { File } from '../types'; export function parseDataUri(dataUri: string): File { if (!dataUri) return null; diff --git a/packages/plugin-aws-s3/src/utils/s3.ts b/packages/plugin-aws-s3/src/utils/s3.ts index 58a6691dd8..b85c731efa 100644 --- a/packages/plugin-aws-s3/src/utils/s3.ts +++ b/packages/plugin-aws-s3/src/utils/s3.ts @@ -1,14 +1,14 @@ +import type { File, Options } from '../types'; +import type { ObjectCannedACL } from '@aws-sdk/client-s3'; +import type { Readable } from 'stream'; + import { DeleteObjectCommand, GetObjectCommand, - ObjectCannedACL, PutObjectCommand, S3Client, } from '@aws-sdk/client-s3'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; -import { Readable } from 'stream'; - -import { File, Options } from '../types'; export default class Client { private client: S3Client; diff --git a/packages/plugin-aws-s3/test/index.test.ts b/packages/plugin-aws-s3/test/index.test.ts index 91d746944a..538b3140ac 100644 --- a/packages/plugin-aws-s3/test/index.test.ts +++ b/packages/plugin-aws-s3/test/index.test.ts @@ -1,10 +1,13 @@ -import { ObjectCannedACL } from '@aws-sdk/client-s3'; +import type { Options } from '../src'; +import type { ObjectCannedACL } from '@aws-sdk/client-s3'; +import type { ColumnSchema, DataSource } from '@forestadmin/datasource-toolkit'; + import { DataSourceCustomizer } from '@forestadmin/datasource-customizer'; -import { ColumnSchema, DataSource, Projection, Sort } from '@forestadmin/datasource-toolkit'; +import { Projection, Sort } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import { Readable } from 'stream'; -import { Options, createFileField } from '../src'; +import { createFileField } from '../src'; const logger = () => {}; diff --git a/packages/plugin-export-advanced/src/index.ts b/packages/plugin-export-advanced/src/index.ts index 423f17fc06..e1ba021753 100644 --- a/packages/plugin-export-advanced/src/index.ts +++ b/packages/plugin-export-advanced/src/index.ts @@ -1,4 +1,5 @@ /* eslint-disable import/prefer-default-export */ +import type { Options } from './types'; import type { ActionGlobal, CollectionCustomizer, @@ -6,7 +7,6 @@ import type { } from '@forestadmin/datasource-customizer'; import renderers from './renderers'; -import { Options } from './types'; function getFields( dataSource: DataSourceCustomizer, diff --git a/packages/plugin-export-advanced/src/renderers/xlsx.ts b/packages/plugin-export-advanced/src/renderers/xlsx.ts index 40654d65f9..a9762c939b 100644 --- a/packages/plugin-export-advanced/src/renderers/xlsx.ts +++ b/packages/plugin-export-advanced/src/renderers/xlsx.ts @@ -1,5 +1,6 @@ +import type { Readable } from 'stream'; + import xl from 'excel4node'; -import { Readable } from 'stream'; import getFieldValue from '../utils/get-field-value'; diff --git a/packages/plugin-export-advanced/src/types.ts b/packages/plugin-export-advanced/src/types.ts index 2d829c8da9..e26ec61854 100644 --- a/packages/plugin-export-advanced/src/types.ts +++ b/packages/plugin-export-advanced/src/types.ts @@ -1,4 +1,4 @@ -import renderers from './renderers'; +import type renderers from './renderers'; export type Options = { actionName?: string; diff --git a/packages/plugin-export-advanced/test/index.test.ts b/packages/plugin-export-advanced/test/index.test.ts index ebe87cde00..f758c80b47 100644 --- a/packages/plugin-export-advanced/test/index.test.ts +++ b/packages/plugin-export-advanced/test/index.test.ts @@ -1,5 +1,6 @@ +import type { DataSource, FileResult } from '@forestadmin/datasource-toolkit'; + import { DataSourceCustomizer } from '@forestadmin/datasource-customizer'; -import { DataSource, FileResult } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import { addExportAdvanced } from '../src/index'; diff --git a/packages/plugin-flattener/src/flatten-column/customization.ts b/packages/plugin-flattener/src/flatten-column/customization.ts index c88e4720cc..caef7bf6a0 100644 --- a/packages/plugin-flattener/src/flatten-column/customization.ts +++ b/packages/plugin-flattener/src/flatten-column/customization.ts @@ -4,8 +4,9 @@ import type { HookBeforeUpdateContext, TConditionTree, } from '@forestadmin/datasource-customizer'; +import type { ColumnType } from '@forestadmin/datasource-toolkit'; -import { ColumnType, ConditionTreeFactory, SchemaUtils } from '@forestadmin/datasource-toolkit'; +import { ConditionTreeFactory, SchemaUtils } from '@forestadmin/datasource-toolkit'; import hashRecord from 'object-hash'; import { deepUpdateInPlace, getValue, unflattenPathsInPlace } from './helpers'; diff --git a/packages/plugin-flattener/src/flatten-column/helpers.ts b/packages/plugin-flattener/src/flatten-column/helpers.ts index 3adceec2cf..18932acef8 100644 --- a/packages/plugin-flattener/src/flatten-column/helpers.ts +++ b/packages/plugin-flattener/src/flatten-column/helpers.ts @@ -1,4 +1,4 @@ -import { ColumnType, RecordData } from '@forestadmin/datasource-toolkit'; +import type { ColumnType, RecordData } from '@forestadmin/datasource-toolkit'; /** * Given the name of a column, its type and the maximum allowed depth, compute the list of paths diff --git a/packages/plugin-flattener/src/flatten-column/index.ts b/packages/plugin-flattener/src/flatten-column/index.ts index 597c1ac1ce..a8436ded9f 100644 --- a/packages/plugin-flattener/src/flatten-column/index.ts +++ b/packages/plugin-flattener/src/flatten-column/index.ts @@ -2,8 +2,9 @@ import type { CollectionCustomizer, DataSourceCustomizer, } from '@forestadmin/datasource-customizer'; +import type { ColumnType } from '@forestadmin/datasource-toolkit'; -import { ColumnType, SchemaUtils } from '@forestadmin/datasource-toolkit'; +import { SchemaUtils } from '@forestadmin/datasource-toolkit'; import { makeCreateHook, makeField, makeUpdateHook, makeWriteHandler } from './customization'; import { includeStrToPath, listPaths } from './helpers'; diff --git a/packages/plugin-flattener/src/flatten-json-column/index.ts b/packages/plugin-flattener/src/flatten-json-column/index.ts index 37ec25ed03..ea7fa85708 100644 --- a/packages/plugin-flattener/src/flatten-json-column/index.ts +++ b/packages/plugin-flattener/src/flatten-json-column/index.ts @@ -2,8 +2,9 @@ import type { CollectionCustomizer, DataSourceCustomizer, } from '@forestadmin/datasource-customizer'; +import type { ColumnType } from '@forestadmin/datasource-toolkit'; -import { ColumnType, SchemaUtils } from '@forestadmin/datasource-toolkit'; +import { SchemaUtils } from '@forestadmin/datasource-toolkit'; import flattenColumn from '../flatten-column'; diff --git a/packages/plugin-flattener/src/flatten-relation/helpers.ts b/packages/plugin-flattener/src/flatten-relation/helpers.ts index 7d265109b8..b0670c4558 100644 --- a/packages/plugin-flattener/src/flatten-relation/helpers.ts +++ b/packages/plugin-flattener/src/flatten-relation/helpers.ts @@ -2,8 +2,7 @@ import type { CollectionCustomizer, DataSourceCustomizer, } from '@forestadmin/datasource-customizer'; - -import { RelationSchema } from '@forestadmin/datasource-toolkit'; +import type { RelationSchema } from '@forestadmin/datasource-toolkit'; // eslint-disable-next-line import/prefer-default-export export function getRelation( diff --git a/packages/plugin-flattener/test/flatten-column.test.ts b/packages/plugin-flattener/test/flatten-column.test.ts index 77f1c6b4dd..e65b47d04c 100644 --- a/packages/plugin-flattener/test/flatten-column.test.ts +++ b/packages/plugin-flattener/test/flatten-column.test.ts @@ -1,5 +1,7 @@ +import type { DataSource } from '@forestadmin/datasource-toolkit'; + import { DataSourceCustomizer } from '@forestadmin/datasource-customizer'; -import { DataSource, MissingColumnError, Projection } from '@forestadmin/datasource-toolkit'; +import { MissingColumnError, Projection } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import flattenColumn from '../src/flatten-column'; diff --git a/packages/plugin-flattener/test/flatten-json-column.test.ts b/packages/plugin-flattener/test/flatten-json-column.test.ts index fc0bf2e853..783908dace 100644 --- a/packages/plugin-flattener/test/flatten-json-column.test.ts +++ b/packages/plugin-flattener/test/flatten-json-column.test.ts @@ -1,5 +1,7 @@ +import type { ColumnType, DataSource } from '@forestadmin/datasource-toolkit'; + import { DataSourceCustomizer } from '@forestadmin/datasource-customizer'; -import { ColumnType, DataSource, Projection } from '@forestadmin/datasource-toolkit'; +import { Projection } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import flattenJsonColumn from '../src/flatten-json-column'; diff --git a/packages/plugin-flattener/test/flatten-json-column.unit.test.ts b/packages/plugin-flattener/test/flatten-json-column.unit.test.ts index 5ed6c9f1f7..4dee63455c 100644 --- a/packages/plugin-flattener/test/flatten-json-column.unit.test.ts +++ b/packages/plugin-flattener/test/flatten-json-column.unit.test.ts @@ -1,5 +1,6 @@ +import type { DataSource } from '@forestadmin/datasource-toolkit'; + import { DataSourceCustomizer } from '@forestadmin/datasource-customizer'; -import { DataSource } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import flattenColumn from '../src/flatten-column'; diff --git a/packages/plugin-flattener/test/flatten-relation.test.ts b/packages/plugin-flattener/test/flatten-relation.test.ts index 2de851425e..749cabcb54 100644 --- a/packages/plugin-flattener/test/flatten-relation.test.ts +++ b/packages/plugin-flattener/test/flatten-relation.test.ts @@ -1,5 +1,7 @@ +import type { ColumnSchema } from '@forestadmin/datasource-toolkit'; + import { DataSourceCustomizer } from '@forestadmin/datasource-customizer'; -import { ColumnSchema, MissingFieldError } from '@forestadmin/datasource-toolkit'; +import { MissingFieldError } from '@forestadmin/datasource-toolkit'; import * as factories from '@forestadmin/datasource-toolkit/dist/test/__factories__'; import flattenRelation from '../src/flatten-relation';