@rockster/core 0.0.1 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/access/access.module.d.ts +11 -0
- package/access/access.module.js +60 -0
- package/access/access.module.js.map +1 -0
- package/access/controllers/controllers.d.ts +6 -0
- package/access/controllers/controllers.js +16 -0
- package/access/controllers/controllers.js.map +1 -0
- package/access/controllers/scope-group-user.controller.d.ts +13 -0
- package/access/controllers/scope-group-user.controller.js +84 -0
- package/access/controllers/scope-group-user.controller.js.map +1 -0
- package/access/controllers/scope-group.controller.d.ts +19 -0
- package/access/controllers/scope-group.controller.js +123 -0
- package/access/controllers/scope-group.controller.js.map +1 -0
- package/access/controllers/scope-key.controller.d.ts +7 -0
- package/access/controllers/scope-key.controller.js +45 -0
- package/access/controllers/scope-key.controller.js.map +1 -0
- package/access/controllers/scope-owner.controller.d.ts +8 -0
- package/access/controllers/scope-owner.controller.js +66 -0
- package/access/controllers/scope-owner.controller.js.map +1 -0
- package/access/controllers/scope-user.controller.d.ts +14 -0
- package/access/controllers/scope-user.controller.js +95 -0
- package/access/controllers/scope-user.controller.js.map +1 -0
- package/access/entities/entities.d.ts +6 -0
- package/access/entities/entities.js +18 -0
- package/access/entities/entities.js.map +1 -0
- package/access/entities/index.d.ts +5 -0
- package/access/entities/index.js +22 -0
- package/access/entities/index.js.map +1 -0
- package/access/entities/scope-access.d.ts +9 -0
- package/access/entities/scope-access.js +58 -0
- package/access/entities/scope-access.js.map +1 -0
- package/access/entities/scope-group-user.d.ts +7 -0
- package/access/entities/scope-group-user.js +47 -0
- package/access/entities/scope-group-user.js.map +1 -0
- package/access/entities/scope-group.d.ts +9 -0
- package/access/entities/scope-group.js +56 -0
- package/access/entities/scope-group.js.map +1 -0
- package/access/entities/scope-key.d.ts +5 -0
- package/access/entities/scope-key.js +35 -0
- package/access/entities/scope-key.js.map +1 -0
- package/access/entities/scope-owner.d.ts +7 -0
- package/access/entities/scope-owner.js +45 -0
- package/access/entities/scope-owner.js.map +1 -0
- package/access/env.d.ts +10 -0
- package/access/env.js +10 -0
- package/access/env.js.map +1 -0
- package/access/functions/get-context-id-service.d.ts +1 -0
- package/access/functions/get-context-id-service.js +8 -0
- package/access/functions/get-context-id-service.js.map +1 -0
- package/access/functions/get-is-owner.d.ts +1 -0
- package/access/functions/get-is-owner.js +8 -0
- package/access/functions/get-is-owner.js.map +1 -0
- package/access/functions/get-user-keys.d.ts +2 -0
- package/access/functions/get-user-keys.js +10 -0
- package/access/functions/get-user-keys.js.map +1 -0
- package/access/functions/index.d.ts +3 -0
- package/access/functions/index.js +20 -0
- package/access/functions/index.js.map +1 -0
- package/access/functions/register-scope.d.ts +8 -0
- package/access/functions/register-scope.js +82 -0
- package/access/functions/register-scope.js.map +1 -0
- package/access/index.d.ts +5 -0
- package/access/index.js +22 -0
- package/access/index.js.map +1 -0
- package/access/interfaces/index.d.ts +2 -0
- package/access/interfaces/index.js +19 -0
- package/access/interfaces/index.js.map +1 -0
- package/access/interfaces/scope-service-registry.d.ts +6 -0
- package/access/interfaces/scope-service-registry.js +3 -0
- package/access/interfaces/scope-service-registry.js.map +1 -0
- package/access/interfaces/scope-service.d.ts +12 -0
- package/access/interfaces/scope-service.js +3 -0
- package/access/interfaces/scope-service.js.map +1 -0
- package/access/models/scope-context.d.ts +4 -0
- package/access/models/scope-context.js +27 -0
- package/access/models/scope-context.js.map +1 -0
- package/access/models/scope-keys-update.d.ts +7 -0
- package/access/models/scope-keys-update.js +38 -0
- package/access/models/scope-keys-update.js.map +1 -0
- package/access/models/scope-owner.d.ts +5 -0
- package/access/models/scope-owner.js +32 -0
- package/access/models/scope-owner.js.map +1 -0
- package/access/models/scope-user-mapped.d.ts +8 -0
- package/access/models/scope-user-mapped.js +42 -0
- package/access/models/scope-user-mapped.js.map +1 -0
- package/access/models/scope-user.d.ts +9 -0
- package/access/models/scope-user.js +49 -0
- package/access/models/scope-user.js.map +1 -0
- package/access/queries/scope-group-user.query.d.ts +1 -0
- package/access/queries/scope-group-user.query.js +26 -0
- package/access/queries/scope-group-user.query.js.map +1 -0
- package/access/queries/scope-group.query.d.ts +1 -0
- package/access/queries/scope-group.query.js +12 -0
- package/access/queries/scope-group.query.js.map +1 -0
- package/access/services/index.d.ts +6 -0
- package/access/services/index.js +23 -0
- package/access/services/index.js.map +1 -0
- package/access/services/scope-access.service.d.ts +11 -0
- package/access/services/scope-access.service.js +87 -0
- package/access/services/scope-access.service.js.map +1 -0
- package/access/services/scope-group-user.service.d.ts +8 -0
- package/access/services/scope-group-user.service.js +49 -0
- package/access/services/scope-group-user.service.js.map +1 -0
- package/access/services/scope-group.service.d.ts +7 -0
- package/access/services/scope-group.service.js +38 -0
- package/access/services/scope-group.service.js.map +1 -0
- package/access/services/scope-key.service.d.ts +9 -0
- package/access/services/scope-key.service.js +52 -0
- package/access/services/scope-key.service.js.map +1 -0
- package/access/services/scope-owner.service.d.ts +7 -0
- package/access/services/scope-owner.service.js +35 -0
- package/access/services/scope-owner.service.js.map +1 -0
- package/access/services/scope-service.d.ts +10 -0
- package/access/services/scope-service.js +52 -0
- package/access/services/scope-service.js.map +1 -0
- package/cache/cache-cleaner.js +1 -0
- package/cache/cache-cleaner.js.map +1 -0
- package/cache/cache.controller.js +1 -0
- package/cache/cache.controller.js.map +1 -0
- package/cache/constants.js +1 -0
- package/cache/constants.js.map +1 -0
- package/cache/decorators/index.js +1 -0
- package/cache/decorators/index.js.map +1 -0
- package/cache/decorators/inject-cache.decorator.js +1 -0
- package/cache/decorators/inject-cache.decorator.js.map +1 -0
- package/cache/decorators/key-value.js +1 -0
- package/cache/decorators/key-value.js.map +1 -0
- package/cache/functions/get-cache.js +1 -0
- package/cache/functions/get-cache.js.map +1 -0
- package/cache/functions/get-key.-handle.js +1 -0
- package/cache/functions/get-key.-handle.js.map +1 -0
- package/cache/index.js +1 -0
- package/cache/index.js.map +1 -0
- package/cache/interfaces/cache-instance.js +1 -0
- package/cache/interfaces/cache-instance.js.map +1 -0
- package/cache/interfaces/cache-key-options.js +1 -0
- package/cache/interfaces/cache-key-options.js.map +1 -0
- package/cache/interfaces/cache-options.js +1 -0
- package/cache/interfaces/cache-options.js.map +1 -0
- package/cache/interfaces/get-key-value-handle.js +1 -0
- package/cache/interfaces/get-key-value-handle.js.map +1 -0
- package/cache/interfaces/index.js +1 -0
- package/cache/interfaces/index.js.map +1 -0
- package/command/constants.js +1 -0
- package/command/constants.js.map +1 -0
- package/command/decorators/index.js +1 -0
- package/command/decorators/index.js.map +1 -0
- package/command/decorators/only-modify.decorator.js +1 -0
- package/command/decorators/only-modify.decorator.js.map +1 -0
- package/command/decorators/post-action.decorator.js +1 -0
- package/command/decorators/post-action.decorator.js.map +1 -0
- package/command/decorators/post-content.decorator.js +1 -0
- package/command/decorators/post-content.decorator.js.map +1 -0
- package/command/decorators/read-only.decorator.js +1 -0
- package/command/decorators/read-only.decorator.js.map +1 -0
- package/command/decorators/remove-action.decorator.js +1 -0
- package/command/decorators/remove-action.decorator.js.map +1 -0
- package/command/decorators/remove-content.decorator.js +1 -0
- package/command/decorators/remove-content.decorator.js.map +1 -0
- package/command/functions/execute-post.js +7 -7
- package/command/functions/execute-post.js.map +1 -0
- package/command/functions/execute-remove.js +1 -0
- package/command/functions/execute-remove.js.map +1 -0
- package/command/interfaces/command-property.js +1 -0
- package/command/interfaces/command-property.js.map +1 -0
- package/command/interfaces/index.js +1 -0
- package/command/interfaces/index.js.map +1 -0
- package/command/interfaces/post-action-options.js +1 -0
- package/command/interfaces/post-action-options.js.map +1 -0
- package/command/interfaces/post-content.js +1 -0
- package/command/interfaces/post-content.js.map +1 -0
- package/command/interfaces/remove-aciton-options.js +1 -0
- package/command/interfaces/remove-aciton-options.js.map +1 -0
- package/command/interfaces/remove-content.js +1 -0
- package/command/interfaces/remove-content.js.map +1 -0
- package/command/services/post-action-builder.js +13 -2
- package/command/services/post-action-builder.js.map +1 -0
- package/command/services/remove-action-builder.js +13 -3
- package/command/services/remove-action-builder.js.map +1 -0
- package/command/utils/deep-merge-keep-undefined.js +1 -0
- package/command/utils/deep-merge-keep-undefined.js.map +1 -0
- package/common/entities/base-entity.d.ts +1 -1
- package/common/entities/base-entity.js +3 -0
- package/common/entities/base-entity.js.map +1 -0
- package/common/index.js +1 -0
- package/common/index.js.map +1 -0
- package/common/interfaces/enum/index.js +1 -0
- package/common/interfaces/enum/index.js.map +1 -0
- package/common/interfaces/enum/object-type.d.ts +2 -1
- package/common/interfaces/enum/object-type.js +2 -0
- package/common/interfaces/enum/object-type.js.map +1 -0
- package/common/interfaces/enum/property-type.js +1 -0
- package/common/interfaces/enum/property-type.js.map +1 -0
- package/common/interfaces/enum/request-status.js +1 -0
- package/common/interfaces/enum/request-status.js.map +1 -0
- package/common/interfaces/get-type-callback.js +1 -0
- package/common/interfaces/get-type-callback.js.map +1 -0
- package/common/interfaces/index.js +1 -0
- package/common/interfaces/index.js.map +1 -0
- package/common/models/executed-response.js +1 -0
- package/common/models/executed-response.js.map +1 -0
- package/controllers/constants/controller-transaction.d.ts +2 -0
- package/controllers/constants/controller-transaction.js +6 -0
- package/controllers/constants/controller-transaction.js.map +1 -0
- package/controllers/constants.js +1 -0
- package/controllers/constants.js.map +1 -0
- package/controllers/controller.controller.d.ts +1 -1
- package/controllers/controller.controller.js +5 -4
- package/controllers/controller.controller.js.map +1 -0
- package/controllers/decorators/actions/action-content.decorator.js +1 -0
- package/controllers/decorators/actions/action-content.decorator.js.map +1 -0
- package/controllers/decorators/actions/action.decorator.js +1 -0
- package/controllers/decorators/actions/action.decorator.js.map +1 -0
- package/controllers/decorators/actions/index.js +1 -0
- package/controllers/decorators/actions/index.js.map +1 -0
- package/controllers/decorators/controller.decorator.js +9 -0
- package/controllers/decorators/controller.decorator.js.map +1 -0
- package/controllers/decorators/http-methods/custom-response.decorator.js +1 -0
- package/controllers/decorators/http-methods/custom-response.decorator.js.map +1 -0
- package/controllers/decorators/http-methods/delete.decorator.js +1 -0
- package/controllers/decorators/http-methods/delete.decorator.js.map +1 -0
- package/controllers/decorators/http-methods/from-body.decorator.js +1 -0
- package/controllers/decorators/http-methods/from-body.decorator.js.map +1 -0
- package/controllers/decorators/http-methods/from-headers.decorator.js +1 -0
- package/controllers/decorators/http-methods/from-headers.decorator.js.map +1 -0
- package/controllers/decorators/http-methods/from-params.decorator.js +1 -0
- package/controllers/decorators/http-methods/from-params.decorator.js.map +1 -0
- package/controllers/decorators/http-methods/from-query.decorator.js +1 -0
- package/controllers/decorators/http-methods/from-query.decorator.js.map +1 -0
- package/controllers/decorators/http-methods/get.decorator.js +1 -0
- package/controllers/decorators/http-methods/get.decorator.js.map +1 -0
- package/controllers/decorators/http-methods/http-req.decorator.js +1 -0
- package/controllers/decorators/http-methods/http-req.decorator.js.map +1 -0
- package/controllers/decorators/http-methods/index.js +1 -0
- package/controllers/decorators/http-methods/index.js.map +1 -0
- package/controllers/decorators/http-methods/patch.decorator.js +1 -0
- package/controllers/decorators/http-methods/patch.decorator.js.map +1 -0
- package/controllers/decorators/http-methods/post.decorator.js +1 -0
- package/controllers/decorators/http-methods/post.decorator.js.map +1 -0
- package/controllers/decorators/http-methods/put.decorator.js +1 -0
- package/controllers/decorators/http-methods/put.decorator.js.map +1 -0
- package/controllers/decorators/http-methods/response-type.decorator.js +1 -0
- package/controllers/decorators/http-methods/response-type.decorator.js.map +1 -0
- package/controllers/decorators/index.d.ts +1 -0
- package/controllers/decorators/index.js +2 -0
- package/controllers/decorators/index.js.map +1 -0
- package/controllers/decorators/no-auth.decorator.js +1 -0
- package/controllers/decorators/no-auth.decorator.js.map +1 -0
- package/controllers/decorators/request-context.decorator.js +1 -0
- package/controllers/decorators/request-context.decorator.js.map +1 -0
- package/controllers/decorators/session.decorator.js +1 -0
- package/controllers/decorators/session.decorator.js.map +1 -0
- package/controllers/decorators/transaction.decorator.d.ts +7 -0
- package/controllers/decorators/transaction.decorator.js +23 -0
- package/controllers/decorators/transaction.decorator.js.map +1 -0
- package/controllers/index.js +1 -0
- package/controllers/index.js.map +1 -0
- package/controllers/interfaces/action-options.js +1 -0
- package/controllers/interfaces/action-options.js.map +1 -0
- package/controllers/interfaces/content-options.js +1 -0
- package/controllers/interfaces/content-options.js.map +1 -0
- package/controllers/interfaces/controller-object.d.ts +1 -0
- package/controllers/interfaces/controller-object.js +1 -0
- package/controllers/interfaces/controller-object.js.map +1 -0
- package/controllers/interfaces/controller-options.d.ts +1 -0
- package/controllers/interfaces/controller-options.js +1 -0
- package/controllers/interfaces/controller-options.js.map +1 -0
- package/controllers/interfaces/controller-property.d.ts +3 -0
- package/controllers/interfaces/controller-property.js +1 -0
- package/controllers/interfaces/controller-property.js.map +1 -0
- package/controllers/interfaces/enum/index.js +1 -0
- package/controllers/interfaces/enum/index.js.map +1 -0
- package/controllers/interfaces/enum/request-interceptor.js +1 -0
- package/controllers/interfaces/enum/request-interceptor.js.map +1 -0
- package/controllers/interfaces/get-only-data.js +1 -0
- package/controllers/interfaces/get-only-data.js.map +1 -0
- package/controllers/interfaces/index.js +1 -0
- package/controllers/interfaces/index.js.map +1 -0
- package/controllers/interfaces/on-before-validation-data.js +1 -0
- package/controllers/interfaces/on-before-validation-data.js.map +1 -0
- package/controllers/interfaces/response-options.js +1 -0
- package/controllers/interfaces/response-options.js.map +1 -0
- package/controllers/services/default-action-builder.js +43 -5
- package/controllers/services/default-action-builder.js.map +1 -0
- package/controllers/services/restful-action-builder.d.ts +1 -0
- package/controllers/services/restful-action-builder.js +31 -0
- package/controllers/services/restful-action-builder.js.map +1 -0
- package/core/core.controller.d.ts +2 -3
- package/core/core.controller.js +20 -11
- package/core/core.controller.js.map +1 -0
- package/core/functions/bootstrap.js +1 -0
- package/core/functions/bootstrap.js.map +1 -0
- package/core/functions/create-action.js +2 -3
- package/core/functions/create-action.js.map +1 -0
- package/core/functions/create-interceptor.js +3 -2
- package/core/functions/create-interceptor.js.map +1 -0
- package/core/functions/format-message.js +1 -0
- package/core/functions/format-message.js.map +1 -0
- package/core/functions/get-action-path.js +1 -0
- package/core/functions/get-action-path.js.map +1 -0
- package/core/functions/get-env.js +1 -0
- package/core/functions/get-env.js.map +1 -0
- package/core/functions/get-node-key.js +1 -0
- package/core/functions/get-node-key.js.map +1 -0
- package/core/functions/get-other-types.js +1 -0
- package/core/functions/get-other-types.js.map +1 -0
- package/core/functions/resolve-action-transactional.d.ts +3 -0
- package/core/functions/resolve-action-transactional.js +10 -0
- package/core/functions/resolve-action-transactional.js.map +1 -0
- package/core/index.js +1 -0
- package/core/index.js.map +1 -0
- package/core/interfaces/action-def.d.ts +2 -5
- package/core/interfaces/action-def.js +1 -0
- package/core/interfaces/action-def.js.map +1 -0
- package/core/interfaces/action-docs.d.ts +18 -3
- package/core/interfaces/action-docs.js +1 -0
- package/core/interfaces/action-docs.js.map +1 -0
- package/core/interfaces/action-handle.d.ts +5 -0
- package/core/interfaces/action-handle.js +3 -0
- package/core/interfaces/action-handle.js.map +1 -0
- package/core/interfaces/core-options.d.ts +1 -0
- package/core/interfaces/core-options.js +1 -0
- package/core/interfaces/core-options.js.map +1 -0
- package/core/interfaces/docs-options.js +1 -0
- package/core/interfaces/docs-options.js.map +1 -0
- package/core/interfaces/enum/connect-type.js +1 -0
- package/core/interfaces/enum/connect-type.js.map +1 -0
- package/core/interfaces/enum/index.js +1 -0
- package/core/interfaces/enum/index.js.map +1 -0
- package/core/interfaces/format-message-options.js +1 -0
- package/core/interfaces/format-message-options.js.map +1 -0
- package/core/interfaces/forms-options.js +1 -0
- package/core/interfaces/forms-options.js.map +1 -0
- package/core/interfaces/index.js +1 -0
- package/core/interfaces/index.js.map +1 -0
- package/core/interfaces/interceptor.d.ts +1 -1
- package/core/interfaces/interceptor.js +1 -0
- package/core/interfaces/interceptor.js.map +1 -0
- package/core/interfaces/locale-options.js +1 -0
- package/core/interfaces/locale-options.js.map +1 -0
- package/core/interfaces/mapper.js +1 -0
- package/core/interfaces/mapper.js.map +1 -0
- package/core/interfaces/object-docs.js +1 -0
- package/core/interfaces/object-docs.js.map +1 -0
- package/core/interfaces/object.d.ts +4 -2
- package/core/interfaces/object.js +1 -0
- package/core/interfaces/object.js.map +1 -0
- package/core/interfaces/pending-action.js +1 -0
- package/core/interfaces/pending-action.js.map +1 -0
- package/core/interfaces/property-docs.js +1 -0
- package/core/interfaces/property-docs.js.map +1 -0
- package/core/interfaces/property.js +1 -0
- package/core/interfaces/property.js.map +1 -0
- package/core/interfaces/request-callback-handle.js +1 -0
- package/core/interfaces/request-callback-handle.js.map +1 -0
- package/core/interfaces/request-callback.js +1 -0
- package/core/interfaces/request-callback.js.map +1 -0
- package/core/interfaces/request-callbacks.js +1 -0
- package/core/interfaces/request-callbacks.js.map +1 -0
- package/core/interfaces/request-context.d.ts +2 -2
- package/core/interfaces/request-context.js +1 -0
- package/core/interfaces/request-context.js.map +1 -0
- package/core/interfaces/request-data.js +1 -0
- package/core/interfaces/request-data.js.map +1 -0
- package/core/interfaces/router-options.js +1 -0
- package/core/interfaces/router-options.js.map +1 -0
- package/core/interfaces/sanitizer.js +1 -0
- package/core/interfaces/sanitizer.js.map +1 -0
- package/core/interfaces/storage-options.js +1 -0
- package/core/interfaces/storage-options.js.map +1 -0
- package/core/interfaces/translations-options.js +1 -0
- package/core/interfaces/translations-options.js.map +1 -0
- package/core/interfaces/transport-options.js +1 -0
- package/core/interfaces/transport-options.js.map +1 -0
- package/core/services/context-builder.js +1 -0
- package/core/services/context-builder.js.map +1 -0
- package/core/services/locale-service.js +1 -0
- package/core/services/locale-service.js.map +1 -0
- package/core/services/node-control.service.js +1 -0
- package/core/services/node-control.service.js.map +1 -0
- package/core/services/object-loader.js +1 -0
- package/core/services/object-loader.js.map +1 -0
- package/core/services/request-executor.d.ts +8 -0
- package/core/services/request-executor.js +89 -0
- package/core/services/request-executor.js.map +1 -0
- package/core/services/request-router.js +4 -3
- package/core/services/request-router.js.map +1 -0
- package/database/contexts/index.js +1 -0
- package/database/contexts/index.js.map +1 -0
- package/database/contexts/transaction-context.js +1 -0
- package/database/contexts/transaction-context.js.map +1 -0
- package/database/database.controller.d.ts +3 -1
- package/database/database.controller.js +15 -15
- package/database/database.controller.js.map +1 -0
- package/database/decorators/column.decorator.js +1 -0
- package/database/decorators/column.decorator.js.map +1 -0
- package/database/decorators/entity.decorator.d.ts +3 -1
- package/database/decorators/entity.decorator.js +15 -5
- package/database/decorators/entity.decorator.js.map +1 -0
- package/database/decorators/external-column.decorator.d.ts +17 -0
- package/database/decorators/external-column.decorator.js +30 -0
- package/database/decorators/external-column.decorator.js.map +1 -0
- package/database/decorators/id-generated.decorator.js +1 -0
- package/database/decorators/id-generated.decorator.js.map +1 -0
- package/database/decorators/id.decorator.js +1 -0
- package/database/decorators/id.decorator.js.map +1 -0
- package/database/decorators/index.d.ts +2 -0
- package/database/decorators/index.js +3 -0
- package/database/decorators/index.js.map +1 -0
- package/database/decorators/inject-data-source.decorator.js +1 -0
- package/database/decorators/inject-data-source.decorator.js.map +1 -0
- package/database/decorators/inject-repository.decorator.js +1 -0
- package/database/decorators/inject-repository.decorator.js.map +1 -0
- package/database/decorators/jsonb-index.decorator.d.ts +21 -0
- package/database/decorators/jsonb-index.decorator.js +23 -0
- package/database/decorators/jsonb-index.decorator.js.map +1 -0
- package/database/decorators/protect-context-column.decorator.js +1 -0
- package/database/decorators/protect-context-column.decorator.js.map +1 -0
- package/database/decorators/protect-entity.decorator.js +1 -0
- package/database/decorators/protect-entity.decorator.js.map +1 -0
- package/database/decorators/protect-key-column.decorator.js +1 -0
- package/database/decorators/protect-key-column.decorator.js.map +1 -0
- package/database/decorators/protect-target-column.decorator.js +1 -0
- package/database/decorators/protect-target-column.decorator.js.map +1 -0
- package/database/decorators/protected-entity.decorator.js +1 -0
- package/database/decorators/protected-entity.decorator.js.map +1 -0
- package/database/decorators/relation.decorator.d.ts +2 -2
- package/database/decorators/relation.decorator.js +1 -0
- package/database/decorators/relation.decorator.js.map +1 -0
- package/database/decorators/virtual-column.decorator.js +1 -0
- package/database/decorators/virtual-column.decorator.js.map +1 -0
- package/database/{environment.d.ts → env.d.ts} +3 -1
- package/database/{environment.js → env.js} +4 -2
- package/database/env.js.map +1 -0
- package/database/exports/index.js +1 -0
- package/database/exports/index.js.map +1 -0
- package/database/exports/typeorm.js +1 -0
- package/database/exports/typeorm.js.map +1 -0
- package/database/extensions/select-query-builder.d.ts +1 -5
- package/database/extensions/select-query-builder.js +1 -0
- package/database/extensions/select-query-builder.js.map +1 -0
- package/database/functions/column-decorator.js +3 -0
- package/database/functions/column-decorator.js.map +1 -0
- package/database/functions/create-entity.js +1 -0
- package/database/functions/create-entity.js.map +1 -0
- package/database/functions/create-new-class.js +1 -0
- package/database/functions/create-new-class.js.map +1 -0
- package/database/functions/entity-decorator.js +1 -0
- package/database/functions/entity-decorator.js.map +1 -0
- package/database/functions/execute-if-not-exists-column.js +1 -0
- package/database/functions/execute-if-not-exists-column.js.map +1 -0
- package/database/functions/execute-if-not-exists-table.js +1 -0
- package/database/functions/execute-if-not-exists-table.js.map +1 -0
- package/database/functions/find-relation.d.ts +2 -1
- package/database/functions/find-relation.js +4 -3
- package/database/functions/find-relation.js.map +1 -0
- package/database/functions/generate-entity-id.d.ts +2 -0
- package/database/functions/{generate-id.js → generate-entity-id.js} +3 -2
- package/database/functions/generate-entity-id.js.map +1 -0
- package/database/functions/get-column-type.js +1 -0
- package/database/functions/get-column-type.js.map +1 -0
- package/database/functions/get-id-property.js +1 -0
- package/database/functions/get-id-property.js.map +1 -0
- package/database/functions/get-name-by-strategy.js +1 -0
- package/database/functions/get-name-by-strategy.js.map +1 -0
- package/database/functions/get-primitive-type.js +1 -0
- package/database/functions/get-primitive-type.js.map +1 -0
- package/database/functions/get-relations.d.ts +1 -1
- package/database/functions/get-relations.js +1 -0
- package/database/functions/get-relations.js.map +1 -0
- package/database/functions/has-update.js +1 -0
- package/database/functions/has-update.js.map +1 -0
- package/database/functions/inject-repository-handle.js +1 -0
- package/database/functions/inject-repository-handle.js.map +1 -0
- package/database/functions/object-to-jsonb.js +1 -0
- package/database/functions/object-to-jsonb.js.map +1 -0
- package/database/functions/register-column.js +1 -0
- package/database/functions/register-column.js.map +1 -0
- package/database/functions/register-entity.js +1 -0
- package/database/functions/register-entity.js.map +1 -0
- package/database/functions/register-generated-id.js +1 -0
- package/database/functions/register-generated-id.js.map +1 -0
- package/database/functions/register-id.js +1 -0
- package/database/functions/register-id.js.map +1 -0
- package/database/functions/register-relation.js +1 -0
- package/database/functions/register-relation.js.map +1 -0
- package/database/functions/relation-decorator.js +3 -2
- package/database/functions/relation-decorator.js.map +1 -0
- package/database/functions/use-protector.js +2 -1
- package/database/functions/use-protector.js.map +1 -0
- package/database/functions/use-repository.js +1 -0
- package/database/functions/use-repository.js.map +1 -0
- package/database/functions/use-transaction.d.ts +1 -0
- package/database/functions/use-transaction.js +3 -6
- package/database/functions/use-transaction.js.map +1 -0
- package/database/index.js +1 -0
- package/database/index.js.map +1 -0
- package/database/interfaces/base-columns-name-override.js +1 -0
- package/database/interfaces/base-columns-name-override.js.map +1 -0
- package/database/interfaces/column-def.js +1 -0
- package/database/interfaces/column-def.js.map +1 -0
- package/database/interfaces/connection.options.js +1 -0
- package/database/interfaces/connection.options.js.map +1 -0
- package/database/interfaces/direact-alias.js +1 -0
- package/database/interfaces/direact-alias.js.map +1 -0
- package/database/interfaces/entity-dto-object.d.ts +7 -0
- package/database/interfaces/entity-dto-object.js +3 -0
- package/database/interfaces/entity-dto-object.js.map +1 -0
- package/database/interfaces/entity-object.d.ts +1 -0
- package/database/interfaces/entity-object.js +1 -0
- package/database/interfaces/entity-object.js.map +1 -0
- package/database/interfaces/entity-options.js +1 -0
- package/database/interfaces/entity-options.js.map +1 -0
- package/database/interfaces/entity-property.d.ts +14 -0
- package/database/interfaces/entity-property.js +1 -0
- package/database/interfaces/entity-property.js.map +1 -0
- package/database/interfaces/enum/column-def-type.js +1 -0
- package/database/interfaces/enum/column-def-type.js.map +1 -0
- package/database/interfaces/enum/index.js +1 -0
- package/database/interfaces/enum/index.js.map +1 -0
- package/database/interfaces/enum/naming-strategy-type.js +1 -0
- package/database/interfaces/enum/naming-strategy-type.js.map +1 -0
- package/database/interfaces/enum/nano-id-alphabet-type.js +1 -0
- package/database/interfaces/enum/nano-id-alphabet-type.js.map +1 -0
- package/database/interfaces/enum/order-by-direction.js +1 -0
- package/database/interfaces/enum/order-by-direction.js.map +1 -0
- package/database/interfaces/enum/primary-strategy-type.js +1 -0
- package/database/interfaces/enum/primary-strategy-type.js.map +1 -0
- package/database/interfaces/enum/relation-path-type.js +1 -0
- package/database/interfaces/enum/relation-path-type.js.map +1 -0
- package/database/interfaces/execute-callback.js +1 -0
- package/database/interfaces/execute-callback.js.map +1 -0
- package/database/interfaces/id-column-def.js +1 -0
- package/database/interfaces/id-column-def.js.map +1 -0
- package/database/interfaces/index.js +1 -0
- package/database/interfaces/index.js.map +1 -0
- package/database/interfaces/inverse-alias.js +1 -0
- package/database/interfaces/inverse-alias.js.map +1 -0
- package/database/interfaces/nano-id-column-options.js +1 -0
- package/database/interfaces/nano-id-column-options.js.map +1 -0
- package/database/interfaces/path.d.ts +6 -2
- package/database/interfaces/path.js +1 -0
- package/database/interfaces/path.js.map +1 -0
- package/database/interfaces/protector.js +1 -0
- package/database/interfaces/protector.js.map +1 -0
- package/database/interfaces/register-one-to-many-handle.js +1 -0
- package/database/interfaces/register-one-to-many-handle.js.map +1 -0
- package/database/interfaces/register-one-to-many.js +1 -0
- package/database/interfaces/register-one-to-many.js.map +1 -0
- package/database/interfaces/relation-def.js +1 -0
- package/database/interfaces/relation-def.js.map +1 -0
- package/database/interfaces/relation-path.js +1 -0
- package/database/interfaces/relation-path.js.map +1 -0
- package/database/interfaces/relation.options.js +1 -0
- package/database/interfaces/relation.options.js.map +1 -0
- package/database/interfaces/repository.js +1 -0
- package/database/interfaces/repository.js.map +1 -0
- package/database/interfaces/virtual-select.d.ts +4 -0
- package/database/interfaces/virtual-select.js +3 -0
- package/database/interfaces/virtual-select.js.map +1 -0
- package/database/migrations/1737637321043-UUIDVarcharMigration.js +3 -2
- package/database/migrations/1737637321043-UUIDVarcharMigration.js.map +1 -0
- package/database/migrations/use-uuid-varchar-migration.js +3 -2
- package/database/migrations/use-uuid-varchar-migration.js.map +1 -0
- package/database/services/jsonb-index-creator.d.ts +23 -0
- package/database/services/jsonb-index-creator.js +156 -0
- package/database/services/jsonb-index-creator.js.map +1 -0
- package/database/services/paths-builder.js +1 -0
- package/database/services/paths-builder.js.map +1 -0
- package/database/services/protect-builder.d.ts +3 -2
- package/database/services/protect-builder.js +3 -2
- package/database/services/protect-builder.js.map +1 -0
- package/database/services/repository.service.d.ts +1 -1
- package/database/services/repository.service.js +4 -6
- package/database/services/repository.service.js.map +1 -0
- package/docs/controllers/controllers.d.ts +2 -0
- package/docs/controllers/controllers.js +6 -0
- package/docs/controllers/controllers.js.map +1 -0
- package/docs/controllers/docs.controller.d.ts +7 -0
- package/docs/controllers/docs.controller.js +58 -0
- package/docs/controllers/docs.controller.js.map +1 -0
- package/docs/docs.d.ts +10 -0
- package/docs/docs.js +10 -0
- package/docs/docs.js.map +1 -0
- package/docs/docs.module.d.ts +6 -0
- package/docs/docs.module.js +70 -0
- package/docs/docs.module.js.map +1 -0
- package/docs/entities/docs-controller-action.entity.d.ts +23 -0
- package/docs/entities/docs-controller-action.entity.js +148 -0
- package/docs/entities/docs-controller-action.entity.js.map +1 -0
- package/docs/entities/docs-controller.entity.d.ts +9 -0
- package/docs/entities/docs-controller.entity.js +54 -0
- package/docs/entities/docs-controller.entity.js.map +1 -0
- package/docs/entities/docs-version.entity.d.ts +10 -0
- package/docs/entities/docs-version.entity.js +59 -0
- package/docs/entities/docs-version.entity.js.map +1 -0
- package/docs/entities/entities.d.ts +4 -0
- package/docs/entities/entities.js +12 -0
- package/docs/entities/entities.js.map +1 -0
- package/docs/models/docs-model-property-validator.d.ts +11 -0
- package/docs/models/docs-model-property-validator.js +53 -0
- package/docs/models/docs-model-property-validator.js.map +1 -0
- package/docs/models/docs-model-property.d.ts +11 -0
- package/docs/models/docs-model-property.js +55 -0
- package/docs/models/docs-model-property.js.map +1 -0
- package/docs/models/docs-model.d.ts +7 -0
- package/docs/models/docs-model.js +43 -0
- package/docs/models/docs-model.js.map +1 -0
- package/docs/queries/docs-controller-action.query.d.ts +1 -0
- package/docs/queries/docs-controller-action.query.js +10 -0
- package/docs/queries/docs-controller-action.query.js.map +1 -0
- package/docs/queries/docs-controller.query.d.ts +1 -0
- package/docs/queries/docs-controller.query.js +10 -0
- package/docs/queries/docs-controller.query.js.map +1 -0
- package/docs/queries/docs-model.query.d.ts +1 -0
- package/docs/queries/docs-model.query.js +17 -0
- package/docs/queries/docs-model.query.js.map +1 -0
- package/docs/queries/docs-version.query.d.ts +1 -0
- package/docs/queries/docs-version.query.js +10 -0
- package/docs/queries/docs-version.query.js.map +1 -0
- package/docs/services/docs-controller-action.service.d.ts +19 -0
- package/docs/services/docs-controller-action.service.js +106 -0
- package/docs/services/docs-controller-action.service.js.map +1 -0
- package/docs/services/docs-controller.service.d.ts +7 -0
- package/docs/services/docs-controller.service.js +47 -0
- package/docs/services/docs-controller.service.js.map +1 -0
- package/docs/services/docs-version.service.d.ts +7 -0
- package/docs/services/docs-version.service.js +51 -0
- package/docs/services/docs-version.service.js.map +1 -0
- package/docs/services/docs.service.d.ts +10 -0
- package/docs/services/docs.service.js +48 -0
- package/docs/services/docs.service.js.map +1 -0
- package/forms/entities/form.js +1 -0
- package/forms/entities/form.js.map +1 -0
- package/forms/entities/property.js +1 -0
- package/forms/entities/property.js.map +1 -0
- package/forms/forms.controller.js +1 -0
- package/forms/forms.controller.js.map +1 -0
- package/forms/interfaces/form-item.js +1 -0
- package/forms/interfaces/form-item.js.map +1 -0
- package/forms/interfaces/form.js +1 -0
- package/forms/interfaces/form.js.map +1 -0
- package/forms/interfaces/property.js +1 -0
- package/forms/interfaces/property.js.map +1 -0
- package/forms/migrations/1725969116484-CreateFormsTables.js +1 -0
- package/forms/migrations/1725969116484-CreateFormsTables.js.map +1 -0
- package/forms/models/form-load.request.js +1 -0
- package/forms/models/form-load.request.js.map +1 -0
- package/forms/queries/form.query.d.ts +1 -1
- package/forms/queries/form.query.js +1 -0
- package/forms/queries/form.query.js.map +1 -0
- package/forms/queries/property.query.d.ts +1 -1
- package/forms/queries/property.query.js +1 -0
- package/forms/queries/property.query.js.map +1 -0
- package/forms/requests/form.request.js +1 -0
- package/forms/requests/form.request.js.map +1 -0
- package/forms/requests/property.request.js +1 -0
- package/forms/requests/property.request.js.map +1 -0
- package/forms/services/form.service.js +1 -0
- package/forms/services/form.service.js.map +1 -0
- package/forms/services/property.service.js +1 -0
- package/forms/services/property.service.js.map +1 -0
- package/forms/utils/build-form-validator.js +1 -0
- package/forms/utils/build-form-validator.js.map +1 -0
- package/forms/utils/get-form-items.js +1 -0
- package/forms/utils/get-form-items.js.map +1 -0
- package/global.d.ts +3 -1
- package/global.js +6 -2
- package/global.js.map +1 -0
- package/http/http.controller.d.ts +3 -6
- package/http/http.controller.js +4 -2
- package/http/http.controller.js.map +1 -0
- package/http/index.js +1 -0
- package/http/index.js.map +1 -0
- package/http/interfaces/csrf.options.js +1 -0
- package/http/interfaces/csrf.options.js.map +1 -0
- package/http/interfaces/http-request.js +1 -0
- package/http/interfaces/http-request.js.map +1 -0
- package/http/interfaces/http-response.js +1 -0
- package/http/interfaces/http-response.js.map +1 -0
- package/http/interfaces/http-settings.js +1 -0
- package/http/interfaces/http-settings.js.map +1 -0
- package/http/interfaces/http-use.js +1 -0
- package/http/interfaces/http-use.js.map +1 -0
- package/http/interfaces/index.js +1 -0
- package/http/interfaces/index.js.map +1 -0
- package/http/interfaces/route.js +1 -0
- package/http/interfaces/route.js.map +1 -0
- package/index.d.ts +3 -1
- package/index.js +3 -6
- package/index.js.map +1 -0
- package/jobs/constants.js +1 -0
- package/jobs/constants.js.map +1 -0
- package/jobs/decorators/index.js +1 -0
- package/jobs/decorators/index.js.map +1 -0
- package/jobs/decorators/job.decorator.js +1 -0
- package/jobs/decorators/job.decorator.js.map +1 -0
- package/jobs/interfaces/index.js +1 -0
- package/jobs/interfaces/index.js.map +1 -0
- package/jobs/interfaces/job-data.js +1 -0
- package/jobs/interfaces/job-data.js.map +1 -0
- package/jobs/interfaces/job-executor.js +1 -0
- package/jobs/interfaces/job-executor.js.map +1 -0
- package/jobs/interfaces/job-object.js +1 -0
- package/jobs/interfaces/job-object.js.map +1 -0
- package/jobs/interfaces/job.options.js +1 -0
- package/jobs/interfaces/job.options.js.map +1 -0
- package/jobs/jobs.controller.js +3 -0
- package/jobs/jobs.controller.js.map +1 -0
- package/module/decorators/index.js +1 -0
- package/module/decorators/index.js.map +1 -0
- package/module/decorators/module.decorator.js +1 -0
- package/module/decorators/module.decorator.js.map +1 -0
- package/module/decorators/on-after-app-start.js +1 -0
- package/module/decorators/on-after-app-start.js.map +1 -0
- package/module/decorators/on-after-database-init.js +1 -0
- package/module/decorators/on-after-database-init.js.map +1 -0
- package/module/decorators/on-module-init.js +1 -0
- package/module/decorators/on-module-init.js.map +1 -0
- package/module/index.js +1 -0
- package/module/index.js.map +1 -0
- package/module/interfaces/index.js +1 -0
- package/module/interfaces/index.js.map +1 -0
- package/module/interfaces/module-events.js +1 -0
- package/module/interfaces/module-events.js.map +1 -0
- package/module/interfaces/module-object.js +1 -0
- package/module/interfaces/module-object.js.map +1 -0
- package/module/interfaces/module-options.d.ts +1 -0
- package/module/interfaces/module-options.js +1 -0
- package/module/interfaces/module-options.js.map +1 -0
- package/module/module.controller.d.ts +3 -2
- package/module/module.controller.js +6 -0
- package/module/module.controller.js.map +1 -0
- package/package.json +13 -11
- package/query/constants.js +1 -0
- package/query/constants.js.map +1 -0
- package/query/decorators/index.js +1 -0
- package/query/decorators/index.js.map +1 -0
- package/query/decorators/query-content.decorator.js +1 -0
- package/query/decorators/query-content.decorator.js.map +1 -0
- package/query/functions/add-join.js +9 -5
- package/query/functions/add-join.js.map +1 -0
- package/query/functions/collect-external-column-owners.d.ts +10 -0
- package/query/functions/collect-external-column-owners.js +100 -0
- package/query/functions/collect-external-column-owners.js.map +1 -0
- package/query/functions/create-query-builder.js +48 -16
- package/query/functions/create-query-builder.js.map +1 -0
- package/query/functions/create-query-cache-hash.d.ts +16 -0
- package/query/functions/create-query-cache-hash.js +70 -0
- package/query/functions/create-query-cache-hash.js.map +1 -0
- package/query/functions/create-query.d.ts +8 -3
- package/query/functions/create-query.js +16 -9
- package/query/functions/create-query.js.map +1 -0
- package/query/functions/describe-query-filter.js +8 -4
- package/query/functions/describe-query-filter.js.map +1 -0
- package/query/functions/execute-query.js +56 -14
- package/query/functions/execute-query.js.map +1 -0
- package/query/functions/expand-select-with-external-dependencies.d.ts +9 -0
- package/query/functions/expand-select-with-external-dependencies.js +34 -0
- package/query/functions/expand-select-with-external-dependencies.js.map +1 -0
- package/query/functions/external-column-owner-path.d.ts +5 -0
- package/query/functions/external-column-owner-path.js +18 -0
- package/query/functions/external-column-owner-path.js.map +1 -0
- package/query/functions/get-column-path.js +1 -0
- package/query/functions/get-column-path.js.map +1 -0
- package/query/functions/get-entity-object-class.d.ts +2 -0
- package/query/functions/get-entity-object-class.js +12 -0
- package/query/functions/get-entity-object-class.js.map +1 -0
- package/query/functions/get-native-select.d.ts +4 -1
- package/query/functions/get-native-select.js +12 -1
- package/query/functions/get-native-select.js.map +1 -0
- package/query/functions/load-properties.d.ts +20 -2
- package/query/functions/load-properties.js +123 -39
- package/query/functions/load-properties.js.map +1 -0
- package/query/functions/map-query-property-to-column-name.js +2 -1
- package/query/functions/map-query-property-to-column-name.js.map +1 -0
- package/query/functions/query-structure-cache.d.ts +24 -0
- package/query/functions/query-structure-cache.js +66 -0
- package/query/functions/query-structure-cache.js.map +1 -0
- package/query/functions/replace-property-key-to-column-name.js +1 -0
- package/query/functions/replace-property-key-to-column-name.js.map +1 -0
- package/query/interfaces/index.js +1 -0
- package/query/interfaces/index.js.map +1 -0
- package/query/interfaces/query-action-options.js +1 -0
- package/query/interfaces/query-action-options.js.map +1 -0
- package/query/interfaces/query-object.js +1 -0
- package/query/interfaces/query-object.js.map +1 -0
- package/query/interfaces/query.d.ts +46 -2
- package/query/interfaces/query.js +1 -0
- package/query/interfaces/query.js.map +1 -0
- package/query/models/base-query-response.js +1 -0
- package/query/models/base-query-response.js.map +1 -0
- package/query/services/query-action-builder.d.ts +4 -1
- package/query/services/query-action-builder.js +43 -14
- package/query/services/query-action-builder.js.map +1 -0
- package/security/auth.controller.js +1 -0
- package/security/auth.controller.js.map +1 -0
- package/security/constants.js +1 -0
- package/security/constants.js.map +1 -0
- package/security/env.js +1 -0
- package/security/env.js.map +1 -0
- package/security/functions/add-protect.js +1 -0
- package/security/functions/add-protect.js.map +1 -0
- package/security/functions/add-protected.js +1 -0
- package/security/functions/add-protected.js.map +1 -0
- package/security/functions/create-authorization.js +1 -0
- package/security/functions/create-authorization.js.map +1 -0
- package/security/functions/find-auth-context.js +1 -0
- package/security/functions/find-auth-context.js.map +1 -0
- package/security/functions/is-auth-enabled.js +1 -0
- package/security/functions/is-auth-enabled.js.map +1 -0
- package/security/functions/use-auth.js +1 -0
- package/security/functions/use-auth.js.map +1 -0
- package/security/index.js +1 -0
- package/security/index.js.map +1 -0
- package/security/interceptors/index.js +1 -0
- package/security/interceptors/index.js.map +1 -0
- package/security/interceptors/is-authorized.interceptor.js +1 -0
- package/security/interceptors/is-authorized.interceptor.js.map +1 -0
- package/security/interfaces/auth-controller.js +1 -0
- package/security/interfaces/auth-controller.js.map +1 -0
- package/security/interfaces/auth-object.js +1 -0
- package/security/interfaces/auth-object.js.map +1 -0
- package/security/interfaces/auth-property.js +1 -0
- package/security/interfaces/auth-property.js.map +1 -0
- package/security/interfaces/authorization-schema.js +1 -0
- package/security/interfaces/authorization-schema.js.map +1 -0
- package/security/interfaces/index.js +1 -0
- package/security/interfaces/index.js.map +1 -0
- package/security/interfaces/security-options.js +1 -0
- package/security/interfaces/security-options.js.map +1 -0
- package/security/interfaces/ssl-certificate.js +1 -0
- package/security/interfaces/ssl-certificate.js.map +1 -0
- package/security/models/auth-context-data.js +1 -0
- package/security/models/auth-context-data.js.map +1 -0
- package/security/models/auth-context.js +1 -0
- package/security/models/auth-context.js.map +1 -0
- package/security/models/auth-key.js +1 -0
- package/security/models/auth-key.js.map +1 -0
- package/security/models/get-user-permissions-payload.js +1 -0
- package/security/models/get-user-permissions-payload.js.map +1 -0
- package/security/models/get-user-permissions-response.js +1 -0
- package/security/models/get-user-permissions-response.js.map +1 -0
- package/security/models/set-user-permissions-payload.js +1 -0
- package/security/models/set-user-permissions-payload.js.map +1 -0
- package/security/requests/security.request.js +2 -1
- package/security/requests/security.request.js.map +1 -0
- package/security/services/authorization.service.js +1 -0
- package/security/services/authorization.service.js.map +1 -0
- package/storage/entities/metadata.entity.js +2 -1
- package/storage/entities/metadata.entity.js.map +1 -0
- package/storage/entities/storage.entity.js +2 -1
- package/storage/entities/storage.entity.js.map +1 -0
- package/storage/env.js +1 -0
- package/storage/env.js.map +1 -0
- package/storage/functions/index.js +1 -0
- package/storage/functions/index.js.map +1 -0
- package/storage/functions/set-storage-settings.js +1 -0
- package/storage/functions/set-storage-settings.js.map +1 -0
- package/storage/index.js +1 -0
- package/storage/index.js.map +1 -0
- package/storage/interfaces/directory-metadata.js +1 -0
- package/storage/interfaces/directory-metadata.js.map +1 -0
- package/storage/interfaces/enum/gcp-credentials-type.js +1 -0
- package/storage/interfaces/enum/gcp-credentials-type.js.map +1 -0
- package/storage/interfaces/enum/index.js +1 -0
- package/storage/interfaces/enum/index.js.map +1 -0
- package/storage/interfaces/enum/metadata-type.js +1 -0
- package/storage/interfaces/enum/metadata-type.js.map +1 -0
- package/storage/interfaces/enum/storage-type.js +1 -0
- package/storage/interfaces/enum/storage-type.js.map +1 -0
- package/storage/interfaces/file-metadata.js +1 -0
- package/storage/interfaces/file-metadata.js.map +1 -0
- package/storage/interfaces/index.js +1 -0
- package/storage/interfaces/index.js.map +1 -0
- package/storage/interfaces/metadata.js +1 -0
- package/storage/interfaces/metadata.js.map +1 -0
- package/storage/interfaces/storage-controller.js +1 -0
- package/storage/interfaces/storage-controller.js.map +1 -0
- package/storage/interfaces/storage-settings.js +1 -0
- package/storage/interfaces/storage-settings.js.map +1 -0
- package/storage/interfaces/storage.js +1 -0
- package/storage/interfaces/storage.js.map +1 -0
- package/storage/services/routes.service.js +1 -0
- package/storage/services/routes.service.js.map +1 -0
- package/storage/services/storage.service.d.ts +1 -1
- package/storage/services/storage.service.js +3 -3
- package/storage/services/storage.service.js.map +1 -0
- package/storage/storage.controller.js +1 -0
- package/storage/storage.controller.js.map +1 -0
- package/tasks/constants.d.ts +2 -2
- package/tasks/constants.js +4 -2
- package/tasks/constants.js.map +1 -0
- package/tasks/controllers/task.controller.d.ts +9 -0
- package/tasks/controllers/task.controller.js +53 -0
- package/tasks/controllers/task.controller.js.map +1 -0
- package/tasks/decorators/index.js +1 -0
- package/tasks/decorators/index.js.map +1 -0
- package/tasks/decorators/task.decorator.js +9 -3
- package/tasks/decorators/task.decorator.js.map +1 -0
- package/tasks/functions/create-task-message-controller.d.ts +3 -0
- package/tasks/functions/create-task-message-controller.js +15 -0
- package/tasks/functions/create-task-message-controller.js.map +1 -0
- package/tasks/functions/create-task-message-find.js +7 -6
- package/tasks/functions/create-task-message-find.js.map +1 -0
- package/tasks/functions/create-task-message-model.js +11 -0
- package/tasks/functions/create-task-message-model.js.map +1 -0
- package/tasks/functions/{create-task-message-receptor.d.ts → create-task-message-post.d.ts} +1 -1
- package/tasks/functions/create-task-message-post.js +29 -0
- package/tasks/functions/create-task-message-post.js.map +1 -0
- package/tasks/functions/create-task-message-query.d.ts +3 -0
- package/tasks/functions/create-task-message-query.js +23 -0
- package/tasks/functions/create-task-message-query.js.map +1 -0
- package/tasks/functions/create-task-message-retry.js +7 -6
- package/tasks/functions/create-task-message-retry.js.map +1 -0
- package/tasks/functions/create-task-message-schema.js +1 -0
- package/tasks/functions/create-task-message-schema.js.map +1 -0
- package/tasks/functions/create-task-naming.js +9 -11
- package/tasks/functions/create-task-naming.js.map +1 -0
- package/tasks/functions/generate-entity-id.js +1 -0
- package/tasks/functions/generate-entity-id.js.map +1 -0
- package/tasks/functions/get-check-table-exists-script.js +1 -0
- package/tasks/functions/get-check-table-exists-script.js.map +1 -0
- package/tasks/functions/get-create-table-partition-script.js +1 -0
- package/tasks/functions/get-create-table-partition-script.js.map +1 -0
- package/tasks/functions/get-create-table-script.js +15 -11
- package/tasks/functions/get-create-table-script.js.map +1 -0
- package/tasks/functions/get-database-connection-name.js +1 -0
- package/tasks/functions/get-database-connection-name.js.map +1 -0
- package/tasks/functions/get-database-uri.js +1 -0
- package/tasks/functions/get-database-uri.js.map +1 -0
- package/tasks/functions/get-partitions-of-table-script.js +1 -0
- package/tasks/functions/get-partitions-of-table-script.js.map +1 -0
- package/tasks/functions/get-pending-task-script.d.ts +1 -1
- package/tasks/functions/get-pending-task-script.js +17 -13
- package/tasks/functions/get-pending-task-script.js.map +1 -0
- package/tasks/functions/throw-task-error.js +1 -0
- package/tasks/functions/throw-task-error.js.map +1 -0
- package/tasks/index.d.ts +2 -0
- package/tasks/index.js +3 -0
- package/tasks/index.js.map +1 -0
- package/tasks/interfaces/index.js +1 -0
- package/tasks/interfaces/index.js.map +1 -0
- package/tasks/interfaces/task-naming.d.ts +3 -3
- package/tasks/interfaces/task-naming.js +1 -0
- package/tasks/interfaces/task-naming.js.map +1 -0
- package/tasks/interfaces/task-object.d.ts +4 -2
- package/tasks/interfaces/task-object.js +1 -0
- package/tasks/interfaces/task-object.js.map +1 -0
- package/tasks/interfaces/task-post-intercept.d.ts +1 -8
- package/tasks/interfaces/task-post-intercept.js +1 -0
- package/tasks/interfaces/task-post-intercept.js.map +1 -0
- package/tasks/interfaces/task-runner.d.ts +2 -1
- package/tasks/interfaces/task-runner.js +1 -0
- package/tasks/interfaces/task-runner.js.map +1 -0
- package/tasks/interfaces/task-search-intercept.js +1 -0
- package/tasks/interfaces/task-search-intercept.js.map +1 -0
- package/tasks/interfaces/task-settings.d.ts +3 -1
- package/tasks/interfaces/task-settings.js +1 -0
- package/tasks/interfaces/task-settings.js.map +1 -0
- package/tasks/models/index.d.ts +3 -0
- package/tasks/models/index.js +20 -0
- package/tasks/models/index.js.map +1 -0
- package/tasks/models/task-error.js +2 -1
- package/tasks/models/task-error.js.map +1 -0
- package/tasks/models/task-message-find.js +1 -0
- package/tasks/models/task-message-find.js.map +1 -0
- package/tasks/models/task-message.d.ts +3 -3
- package/tasks/models/task-message.js +32 -5
- package/tasks/models/task-message.js.map +1 -0
- package/tasks/services/task-manager.service.js +7 -9
- package/tasks/services/task-manager.service.js.map +1 -0
- package/tasks/services/task-runner.service.d.ts +7 -0
- package/tasks/services/task-runner.service.js +61 -39
- package/tasks/services/task-runner.service.js.map +1 -0
- package/tasks/tasks.controller.d.ts +2 -10
- package/tasks/tasks.controller.js +4 -49
- package/tasks/tasks.controller.js.map +1 -0
- package/tasks/tasks.module.d.ts +12 -0
- package/tasks/tasks.module.js +65 -0
- package/tasks/tasks.module.js.map +1 -0
- package/translations/{requests/translation.request.d.ts → controllers/translation.controller.d.ts} +1 -1
- package/translations/{requests/translation.request.js → controllers/translation.controller.js} +23 -19
- package/translations/controllers/translation.controller.js.map +1 -0
- package/translations/entities/translation-config.entity.js +1 -0
- package/translations/entities/translation-config.entity.js.map +1 -0
- package/translations/entities/translation-values.entity.d.ts +1 -1
- package/translations/entities/translation-values.entity.js +12 -6
- package/translations/entities/translation-values.entity.js.map +1 -0
- package/translations/env.js +1 -0
- package/translations/env.js.map +1 -0
- package/translations/functions/check-can-use.js +1 -0
- package/translations/functions/check-can-use.js.map +1 -0
- package/translations/functions/create-translation-config.js +1 -0
- package/translations/functions/create-translation-config.js.map +1 -0
- package/translations/functions/create-translation-values.js +3 -5
- package/translations/functions/create-translation-values.js.map +1 -0
- package/translations/functions/get-translation-config.js +1 -0
- package/translations/functions/get-translation-config.js.map +1 -0
- package/translations/interfaces/translation-config.js +1 -0
- package/translations/interfaces/translation-config.js.map +1 -0
- package/translations/interfaces/translation-values.js +1 -0
- package/translations/interfaces/translation-values.js.map +1 -0
- package/translations/interfaces/translator-handle.js +1 -0
- package/translations/interfaces/translator-handle.js.map +1 -0
- package/translations/migrations/1723760669185-CreateTranslationTables.js +4 -3
- package/translations/migrations/1723760669185-CreateTranslationTables.js.map +1 -0
- package/translations/models/get-values.request.js +1 -0
- package/translations/models/get-values.request.js.map +1 -0
- package/translations/models/get-values.response.js +1 -0
- package/translations/models/get-values.response.js.map +1 -0
- package/translations/queries/translation-config.query.d.ts +1 -1
- package/translations/queries/translation-config.query.js +1 -0
- package/translations/queries/translation-config.query.js.map +1 -0
- package/translations/queries/translation-values.query.d.ts +1 -1
- package/translations/queries/translation-values.query.js +2 -1
- package/translations/queries/translation-values.query.js.map +1 -0
- package/translations/services/translations.service.js +1 -0
- package/translations/services/translations.service.js.map +1 -0
- package/translations/services/translator.service.js +1 -0
- package/translations/services/translator.service.js.map +1 -0
- package/translations/translations.controller.d.ts +1 -1
- package/translations/translations.controller.js +8 -9
- package/translations/translations.controller.js.map +1 -0
- package/transport/entities/transport-client.js +1 -0
- package/transport/entities/transport-client.js.map +1 -0
- package/transport/entities/transport-gateway-status.js +1 -0
- package/transport/entities/transport-gateway-status.js.map +1 -0
- package/transport/entities/transport-gateway.js +1 -0
- package/transport/entities/transport-gateway.js.map +1 -0
- package/transport/environment.js +1 -0
- package/transport/environment.js.map +1 -0
- package/transport/index.js +1 -0
- package/transport/index.js.map +1 -0
- package/transport/interfaces/index.js +1 -0
- package/transport/interfaces/index.js.map +1 -0
- package/transport/interfaces/transport-module-options.js +1 -0
- package/transport/interfaces/transport-module-options.js.map +1 -0
- package/transport/transport.module.js +1 -0
- package/transport/transport.module.js.map +1 -0
- package/web-socket/constants.js +1 -0
- package/web-socket/constants.js.map +1 -0
- package/web-socket/functions/encode-message.js +1 -0
- package/web-socket/functions/encode-message.js.map +1 -0
- package/web-socket/functions/get-fake-http-context.js +1 -0
- package/web-socket/functions/get-fake-http-context.js.map +1 -0
- package/web-socket/functions/get-ip-address.js +1 -0
- package/web-socket/functions/get-ip-address.js.map +1 -0
- package/web-socket/functions/parse-message.js +1 -0
- package/web-socket/functions/parse-message.js.map +1 -0
- package/web-socket/index.js +1 -0
- package/web-socket/index.js.map +1 -0
- package/web-socket/interfaces/client.js +1 -0
- package/web-socket/interfaces/client.js.map +1 -0
- package/web-socket/interfaces/enum/client-type.js +1 -0
- package/web-socket/interfaces/enum/client-type.js.map +1 -0
- package/web-socket/interfaces/enum/index.js +1 -0
- package/web-socket/interfaces/enum/index.js.map +1 -0
- package/web-socket/interfaces/enum/message-type.js +1 -0
- package/web-socket/interfaces/enum/message-type.js.map +1 -0
- package/web-socket/interfaces/enum/ws-connection-type.js +1 -0
- package/web-socket/interfaces/enum/ws-connection-type.js.map +1 -0
- package/web-socket/interfaces/index.js +1 -0
- package/web-socket/interfaces/index.js.map +1 -0
- package/web-socket/interfaces/message.js +1 -0
- package/web-socket/interfaces/message.js.map +1 -0
- package/web-socket/interfaces/ws-connection.js +1 -0
- package/web-socket/interfaces/ws-connection.js.map +1 -0
- package/web-socket/web-socket.controller.js +1 -0
- package/web-socket/web-socket.controller.js.map +1 -0
- package/workers/functions/decode-message.js +1 -0
- package/workers/functions/decode-message.js.map +1 -0
- package/workers/functions/dispatch-task.js +1 -0
- package/workers/functions/dispatch-task.js.map +1 -0
- package/workers/functions/encode-message.js +1 -0
- package/workers/functions/encode-message.js.map +1 -0
- package/workers/interfaces/enum/index.js +1 -0
- package/workers/interfaces/enum/index.js.map +1 -0
- package/workers/interfaces/enum/worker-message-type.js +1 -0
- package/workers/interfaces/enum/worker-message-type.js.map +1 -0
- package/workers/interfaces/index.js +1 -0
- package/workers/interfaces/index.js.map +1 -0
- package/workers/interfaces/worker-data.js +1 -0
- package/workers/interfaces/worker-data.js.map +1 -0
- package/workers/interfaces/worker-message.js +1 -0
- package/workers/interfaces/worker-message.js.map +1 -0
- package/workers/workers.controller.d.ts +1 -1
- package/workers/workers.controller.js +11 -6
- package/workers/workers.controller.js.map +1 -0
- package/database/functions/generate-id.d.ts +0 -2
- package/tasks/functions/create-task-message-receptor.js +0 -23
- package/tasks/functions/create-task-message-trigger.d.ts +0 -2
- package/tasks/functions/create-task-message-trigger.js +0 -18
- package/tasks/functions/parse-task-message-search.d.ts +0 -20
- package/tasks/functions/parse-task-message-search.js +0 -62
- package/tasks/requests/task.request.d.ts +0 -17
- package/tasks/requests/task.request.js +0 -71
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.collectExternalColumnOwners = collectExternalColumnOwners;
|
|
4
|
+
/**
|
|
5
|
+
* Strips the query root alias prefix from a select path so it matches TypeORM entity property names.
|
|
6
|
+
* e.g. `infraServer.client.name` + rootAlias `infraServer` → `client.name`
|
|
7
|
+
*/
|
|
8
|
+
function selectPathToEntitySegments(fullSelectPath, rootAlias) {
|
|
9
|
+
const prefix = `${rootAlias}.`;
|
|
10
|
+
const stripped = rootAlias && fullSelectPath.startsWith(prefix)
|
|
11
|
+
? fullSelectPath.slice(prefix.length)
|
|
12
|
+
: fullSelectPath;
|
|
13
|
+
return stripped.split(".").filter(Boolean);
|
|
14
|
+
}
|
|
15
|
+
function* walkToParents(root, pathSegments) {
|
|
16
|
+
if (pathSegments.length === 0) {
|
|
17
|
+
if (root !== null && root !== undefined && typeof root === "object") {
|
|
18
|
+
yield root;
|
|
19
|
+
}
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const [head, ...rest] = pathSegments;
|
|
23
|
+
const next = root?.[head];
|
|
24
|
+
if (next === null || next === undefined) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (Array.isArray(next)) {
|
|
28
|
+
for (const el of next) {
|
|
29
|
+
yield* walkToParents(el, rest);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
yield* walkToParents(next, rest);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function splitParentAndProperty(entitySegments) {
|
|
37
|
+
if (entitySegments.length === 0) {
|
|
38
|
+
return { parentSegments: [], property: "" };
|
|
39
|
+
}
|
|
40
|
+
if (entitySegments.length === 1) {
|
|
41
|
+
return { parentSegments: [], property: entitySegments[0] };
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
parentSegments: entitySegments.slice(0, -1),
|
|
45
|
+
property: entitySegments[entitySegments.length - 1],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* For each root row from `getMany()`, finds every object that must receive an external column value.
|
|
50
|
+
* Same logical entity instance appears once in the result (Map by reference).
|
|
51
|
+
*
|
|
52
|
+
* Uses `QueryProperty.externalOwnerWalkSegments` / `externalColumnKey` from the query metadata
|
|
53
|
+
* so the anchor can be a middle segment (e.g. `person` for `user.person.id`), not only the leaf.
|
|
54
|
+
*/
|
|
55
|
+
function collectExternalColumnOwners(roots, externalSelectPaths, rootAlias, properties) {
|
|
56
|
+
const byObject = new Map();
|
|
57
|
+
const add = (obj, prop) => {
|
|
58
|
+
if (!prop || obj === null || typeof obj !== "object") {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
let set = byObject.get(obj);
|
|
62
|
+
if (!set) {
|
|
63
|
+
set = new Set();
|
|
64
|
+
byObject.set(obj, set);
|
|
65
|
+
}
|
|
66
|
+
set.add(prop);
|
|
67
|
+
};
|
|
68
|
+
for (const root of roots) {
|
|
69
|
+
for (const fullPath of externalSelectPaths) {
|
|
70
|
+
const qp = properties[fullPath];
|
|
71
|
+
if (!qp?.isExternal) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
let ownerWalk;
|
|
75
|
+
let columnKey;
|
|
76
|
+
if (qp.externalOwnerWalkSegments !== undefined &&
|
|
77
|
+
qp.externalColumnKey !== undefined) {
|
|
78
|
+
ownerWalk = qp.externalOwnerWalkSegments;
|
|
79
|
+
columnKey = qp.externalColumnKey;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
const segments = selectPathToEntitySegments(fullPath, rootAlias);
|
|
83
|
+
const split = splitParentAndProperty(segments);
|
|
84
|
+
ownerWalk = split.parentSegments;
|
|
85
|
+
columnKey = split.property;
|
|
86
|
+
}
|
|
87
|
+
if (!columnKey) {
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
for (const parent of walkToParents(root, ownerWalk)) {
|
|
91
|
+
add(parent, columnKey);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return [...byObject.entries()].map(([object, props]) => ({
|
|
96
|
+
object: object,
|
|
97
|
+
properties: [...props],
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=collect-external-column-owners.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-external-column-owners.js","sourceRoot":"./","sources":["query/functions/collect-external-column-owners.ts"],"names":[],"mappings":";;AAiEA,kEAuDC;AArHD;;;GAGG;AACH,SAAS,0BAA0B,CAChC,cAAsB,EACtB,SAAiB;IAEjB,MAAM,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;IAC/B,MAAM,QAAQ,GAAG,SAAS,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QACrC,CAAC,CAAC,cAAc,CAAC;IACpB,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,QAAQ,CAAC,CAAC,aAAa,CACpB,IAAa,EACb,YAAsB;IAEtB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnE,MAAM,IAA+B,CAAC;QACzC,CAAC;QACD,OAAO;IACV,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC;IACrC,MAAM,IAAI,GAAI,IAAgC,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO;IACV,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACJ,CAAC;SAAM,CAAC;QACL,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,cAAwB;IAIrD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC;IACD,OAAO;QACJ,cAAc,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;KACrD,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,2BAA2B,CACxC,KAAe,EACf,mBAA6B,EAC7B,SAAiB,EACjB,UAAqC;IAErC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEhD,MAAM,GAAG,GAAG,CAAC,GAA4B,EAAE,IAAY,EAAE,EAAE;QACxD,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACpD,OAAO;QACV,CAAC;QACD,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;YACR,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACxB,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE,CAAC;YAC1C,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;gBACnB,SAAS;YACZ,CAAC;YAED,IAAI,SAAmB,CAAC;YACxB,IAAI,SAAiB,CAAC;YACtB,IACG,EAAE,CAAC,yBAAyB,KAAK,SAAS;gBAC1C,EAAE,CAAC,iBAAiB,KAAK,SAAS,EACnC,CAAC;gBACA,SAAS,GAAG,EAAE,CAAC,yBAAyB,CAAC;gBACzC,SAAS,GAAG,EAAE,CAAC,iBAAiB,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACL,MAAM,QAAQ,GAAG,0BAA0B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACjE,MAAM,KAAK,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBAC/C,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC;gBACjC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC9B,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACd,SAAS;YACZ,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;gBACnD,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC1B,CAAC;QACJ,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,EAAE,MAAiC;QACzC,UAAU,EAAE,CAAC,GAAG,KAAK,CAAC;KACxB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -4,15 +4,17 @@ exports.createQueryBuilder = void 0;
|
|
|
4
4
|
const use_repository_1 = require("../../database/functions/use-repository");
|
|
5
5
|
const use_protector_1 = require("../../database/functions/use-protector");
|
|
6
6
|
const add_join_1 = require("./add-join");
|
|
7
|
-
const get_column_path_1 = require("./get-column-path");
|
|
8
7
|
const get_native_select_1 = require("./get-native-select");
|
|
8
|
+
const create_query_cache_hash_1 = require("./create-query-cache-hash");
|
|
9
|
+
const query_structure_cache_1 = require("./query-structure-cache");
|
|
9
10
|
const select_query_builder_1 = require("../../database/extensions/select-query-builder");
|
|
10
11
|
const transaction_context_1 = require("../../database/contexts/transaction-context");
|
|
12
|
+
const get_entity_object_class_1 = require("./get-entity-object-class");
|
|
11
13
|
const createQueryBuilder = async (queryContent, intercept) => {
|
|
12
14
|
const object = core
|
|
13
15
|
.storage
|
|
14
16
|
.findObject(queryContent.target);
|
|
15
|
-
const RootEntity = object.rootPath.target();
|
|
17
|
+
const RootEntity = (0, get_entity_object_class_1.getEntityObjectClass)(object.rootPath.target());
|
|
16
18
|
const requestContext = transaction_context_1.transactionContextStore.getStore();
|
|
17
19
|
const entityManager = requestContext?.entityManager;
|
|
18
20
|
const repository = entityManager
|
|
@@ -32,23 +34,53 @@ const createQueryBuilder = async (queryContent, intercept) => {
|
|
|
32
34
|
});
|
|
33
35
|
}
|
|
34
36
|
const joins = {};
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
break;
|
|
44
|
-
case "embedded":
|
|
45
|
-
const columnPath = (0, get_column_path_1.getColumnPath)(property.path);
|
|
46
|
-
select.pushIfNotExists(columnPath);
|
|
47
|
-
break;
|
|
37
|
+
const joinHash = (0, create_query_cache_hash_1.getJoinStructureHash)(queryContent.target.name, queryContent.query.select);
|
|
38
|
+
const cachedPaths = (0, query_structure_cache_1.getCachedJoinPlan)(joinHash);
|
|
39
|
+
if (cachedPaths) {
|
|
40
|
+
for (const path of cachedPaths) {
|
|
41
|
+
(0, add_join_1.addJoin)(RootEntity, queryContent, joins, queryBuilder, path, entityManager);
|
|
42
|
+
if (path.type === "relation" || path.type === "root") {
|
|
43
|
+
(0, add_join_1.addJoin)(RootEntity, queryContent, joins, queryBuilder, path, entityManager);
|
|
44
|
+
}
|
|
48
45
|
}
|
|
49
46
|
}
|
|
47
|
+
else {
|
|
48
|
+
const paths = [];
|
|
49
|
+
for (const name of queryContent.query.select) {
|
|
50
|
+
const property = object.properties[name];
|
|
51
|
+
paths.push(property.path);
|
|
52
|
+
(0, add_join_1.addJoin)(RootEntity, queryContent, joins, queryBuilder, property.path, entityManager);
|
|
53
|
+
switch (property.path.type) {
|
|
54
|
+
case "relation":
|
|
55
|
+
case "root":
|
|
56
|
+
(0, add_join_1.addJoin)(RootEntity, queryContent, joins, queryBuilder, property.path, entityManager);
|
|
57
|
+
break;
|
|
58
|
+
case "embedded":
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
(0, query_structure_cache_1.setCachedJoinPlan)(joinHash, paths);
|
|
63
|
+
}
|
|
64
|
+
const fields = [
|
|
65
|
+
...queryContent.query.select,
|
|
66
|
+
...queryContent.query.orderBy
|
|
67
|
+
? queryContent.query.orderBy.map(order => order.property)
|
|
68
|
+
: []
|
|
69
|
+
];
|
|
70
|
+
const structureHash = (0, create_query_cache_hash_1.getQueryStructureHash)(queryContent.target.name, queryContent.query.select, queryContent.query.orderBy);
|
|
71
|
+
const cached = (0, query_structure_cache_1.getCachedNativeSelect)(structureHash);
|
|
72
|
+
if (cached) {
|
|
73
|
+
queryContent.nativeSelectAsArry = cached.asArry;
|
|
74
|
+
queryContent.nativeSelectAsMap = cached.asMap;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
const { asArry, asMap } = (0, get_native_select_1.getNativeSelect)(queryContent.target, fields);
|
|
78
|
+
(0, query_structure_cache_1.setCachedNativeSelect)(structureHash, asArry, asMap);
|
|
79
|
+
queryContent.nativeSelectAsArry = asArry;
|
|
80
|
+
queryContent.nativeSelectAsMap = asMap;
|
|
81
|
+
}
|
|
50
82
|
queryContent.rootAlias = object.rootPath.alias;
|
|
51
|
-
queryContent.naviteSelect = (0, get_native_select_1.getNativeSelect)(queryContent.target, queryContent.query.select).distinct();
|
|
52
83
|
return queryBuilder;
|
|
53
84
|
};
|
|
54
85
|
exports.createQueryBuilder = createQueryBuilder;
|
|
86
|
+
//# sourceMappingURL=create-query-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-query-builder.js","sourceRoot":"./","sources":["query/functions/create-query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Query, OrderBy } from '../interfaces/query';
|
|
2
|
+
/**
|
|
3
|
+
* Hash only the query structure (select + orderBy), not parameters (filter, take, skip).
|
|
4
|
+
* Used to cache native select resolution so the same shape reuses asArry/asMap without reprocessing.
|
|
5
|
+
* Sync, uses Node crypto – no async hasher in the hot path.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getQueryStructureHash(targetName: string, select: string[], orderBy?: OrderBy[]): string;
|
|
8
|
+
/**
|
|
9
|
+
* Hash only the select list (order matters for joins). Used to cache the join plan
|
|
10
|
+
* so we reuse the list of QueryPath to apply on a fresh QB each request (no QB instance cached).
|
|
11
|
+
*/
|
|
12
|
+
export declare function getJoinStructureHash(targetName: string, select: string[]): string;
|
|
13
|
+
export declare function createQueryCacheHash<Entity>(input: {
|
|
14
|
+
target: string;
|
|
15
|
+
query: Query<Entity>;
|
|
16
|
+
}): Promise<string>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getQueryStructureHash = getQueryStructureHash;
|
|
7
|
+
exports.getJoinStructureHash = getJoinStructureHash;
|
|
8
|
+
exports.createQueryCacheHash = createQueryCacheHash;
|
|
9
|
+
const crypto_1 = require("crypto");
|
|
10
|
+
const xxhash_wasm_1 = __importDefault(require("xxhash-wasm"));
|
|
11
|
+
let xxh = null;
|
|
12
|
+
async function getHasher() {
|
|
13
|
+
if (!xxh) {
|
|
14
|
+
xxh = await (0, xxhash_wasm_1.default)();
|
|
15
|
+
}
|
|
16
|
+
return xxh;
|
|
17
|
+
}
|
|
18
|
+
function stableSortObject(value) {
|
|
19
|
+
if (Array.isArray(value)) {
|
|
20
|
+
return value.map(stableSortObject);
|
|
21
|
+
}
|
|
22
|
+
if (value && typeof value === 'object') {
|
|
23
|
+
return Object.keys(value)
|
|
24
|
+
.sort()
|
|
25
|
+
.reduce((acc, key) => {
|
|
26
|
+
acc[key] = stableSortObject(value[key]);
|
|
27
|
+
return acc;
|
|
28
|
+
}, {});
|
|
29
|
+
}
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Hash only the query structure (select + orderBy), not parameters (filter, take, skip).
|
|
34
|
+
* Used to cache native select resolution so the same shape reuses asArry/asMap without reprocessing.
|
|
35
|
+
* Sync, uses Node crypto – no async hasher in the hot path.
|
|
36
|
+
*/
|
|
37
|
+
function getQueryStructureHash(targetName, select, orderBy) {
|
|
38
|
+
const structure = {
|
|
39
|
+
t: targetName,
|
|
40
|
+
s: [...select].sort(),
|
|
41
|
+
o: (orderBy ?? []).map((o) => ({ p: o.property, d: o.direction })),
|
|
42
|
+
};
|
|
43
|
+
const serialized = JSON.stringify(structure);
|
|
44
|
+
return (0, crypto_1.createHash)('sha256').update(serialized).digest('hex');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Hash only the select list (order matters for joins). Used to cache the join plan
|
|
48
|
+
* so we reuse the list of QueryPath to apply on a fresh QB each request (no QB instance cached).
|
|
49
|
+
*/
|
|
50
|
+
function getJoinStructureHash(targetName, select) {
|
|
51
|
+
const structure = { t: targetName, s: select };
|
|
52
|
+
return (0, crypto_1.createHash)('sha256').update(JSON.stringify(structure)).digest('hex');
|
|
53
|
+
}
|
|
54
|
+
async function createQueryCacheHash(input) {
|
|
55
|
+
const { query } = input;
|
|
56
|
+
const fingerprint = {
|
|
57
|
+
target: input.target,
|
|
58
|
+
select: [...query.select].sort(),
|
|
59
|
+
filter: query.filter ?? null,
|
|
60
|
+
orderBy: query.orderBy?.map(o => ({
|
|
61
|
+
property: o.property,
|
|
62
|
+
direction: o.direction.toLowerCase(),
|
|
63
|
+
})) ?? []
|
|
64
|
+
};
|
|
65
|
+
const normalized = stableSortObject(fingerprint);
|
|
66
|
+
const serialized = JSON.stringify(normalized);
|
|
67
|
+
const hasher = await getHasher();
|
|
68
|
+
return hasher.h64(serialized).toString(16);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=create-query-cache-hash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-query-cache-hash.js","sourceRoot":"./","sources":["query/functions/create-query-cache-hash.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { DirectPath, IndirectPath, RootPath } from "../../database";
|
|
2
|
+
import { Instantiable } from "@rockster/common";
|
|
2
3
|
import { QueryActionOptions } from "../interfaces/query-action-options";
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
4
|
+
/** Controller decorator factory from createQuery; `.queryRequest` is the generated request class. */
|
|
5
|
+
export type QueryDecoratorFactory = ((options?: QueryActionOptions) => (target: object, propertyKey: string) => void) & {
|
|
6
|
+
queryRequest: Instantiable;
|
|
7
|
+
};
|
|
8
|
+
export declare const createQuery: <Entity>(rootPath: RootPath<Entity>) => QueryDecoratorFactory;
|
|
9
|
+
export declare const joinOne: <Entity>(path: Omit<DirectPath<Entity>, "type">) => DirectPath<Entity>;
|
|
10
|
+
export declare const joinMany: <Entity>(path: Omit<IndirectPath<Entity>, "type">) => IndirectPath<Entity>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.joinMany = exports.joinOne = exports.createQuery = void 0;
|
|
4
4
|
const class_pipe_1 = require("@rockster/class-pipe");
|
|
5
5
|
const database_1 = require("../../database");
|
|
6
6
|
const interfaces_1 = require("../../common/interfaces");
|
|
@@ -31,7 +31,8 @@ const createQuery = (rootPath) => {
|
|
|
31
31
|
entityAlias: rootPath.alias,
|
|
32
32
|
paths: rootPath.paths,
|
|
33
33
|
secure: rootPath.secure,
|
|
34
|
-
rootEntity: Target
|
|
34
|
+
rootEntity: Target,
|
|
35
|
+
rootAlias: rootPath.alias,
|
|
35
36
|
});
|
|
36
37
|
// Data of response
|
|
37
38
|
(0, class_pipe_1.IsType)(() => Target)(QueryResponse.prototype, 'data');
|
|
@@ -48,8 +49,9 @@ const createQuery = (rootPath) => {
|
|
|
48
49
|
// OrderBy.direction
|
|
49
50
|
(0, class_pipe_1.IsIn)(Object.getOwnPropertyNames(database_1.OrderByDirection))(QueryOrderBy.prototype, 'direction');
|
|
50
51
|
(0, class_pipe_1.IsRequired)()(QueryOrderBy.prototype, 'direction');
|
|
51
|
-
// OrderBy.property
|
|
52
|
-
|
|
52
|
+
// OrderBy.property (exclude external columns – not in DB, cannot order by them in SQL)
|
|
53
|
+
const orderByPropertyNames = Object.keys(properties).filter((path) => !properties[path].isExternal);
|
|
54
|
+
(0, class_pipe_1.IsIn)(orderByPropertyNames)(QueryOrderBy.prototype, 'property');
|
|
53
55
|
(0, class_pipe_1.IsRequired)()(QueryOrderBy.prototype, 'property');
|
|
54
56
|
// OrderBy
|
|
55
57
|
(0, class_pipe_1.IsType)(() => QueryOrderBy)(QueryRequest.prototype, 'orderBy');
|
|
@@ -58,12 +60,15 @@ const createQuery = (rootPath) => {
|
|
|
58
60
|
// Page
|
|
59
61
|
(0, class_pipe_1.IsBoolean)()(QueryRequest.prototype, 'page');
|
|
60
62
|
(0, class_pipe_1.IsOptional)()(QueryRequest.prototype, 'page');
|
|
63
|
+
// Filter
|
|
64
|
+
(0, class_pipe_1.IsString)()(QueryRequest.prototype, 'filter');
|
|
65
|
+
(0, class_pipe_1.IsOptional)()(QueryRequest.prototype, 'filter');
|
|
61
66
|
const object = core
|
|
62
67
|
.storage
|
|
63
68
|
.createObject(QueryRequest);
|
|
64
69
|
object.properties = properties;
|
|
65
70
|
object.rootPath = rootPath;
|
|
66
|
-
|
|
71
|
+
const decorator = (options) => {
|
|
67
72
|
return (target, propertyKey) => {
|
|
68
73
|
const property = core
|
|
69
74
|
.storage
|
|
@@ -78,19 +83,21 @@ const createQuery = (rootPath) => {
|
|
|
78
83
|
(0, class_injector_1.markExecutable)(target, propertyKey, property.name);
|
|
79
84
|
};
|
|
80
85
|
};
|
|
86
|
+
return Object.assign(decorator, { queryRequest: QueryRequest });
|
|
81
87
|
};
|
|
82
88
|
exports.createQuery = createQuery;
|
|
83
|
-
const
|
|
89
|
+
const joinOne = (path) => {
|
|
84
90
|
return {
|
|
85
91
|
type: 'direct',
|
|
86
92
|
...path
|
|
87
93
|
};
|
|
88
94
|
};
|
|
89
|
-
exports.
|
|
90
|
-
const
|
|
95
|
+
exports.joinOne = joinOne;
|
|
96
|
+
const joinMany = (path) => {
|
|
91
97
|
return {
|
|
92
98
|
type: 'indirect',
|
|
93
99
|
...path
|
|
94
100
|
};
|
|
95
101
|
};
|
|
96
|
-
exports.
|
|
102
|
+
exports.joinMany = joinMany;
|
|
103
|
+
//# sourceMappingURL=create-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-query.js","sourceRoot":"./","sources":["query/functions/create-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,8 @@ const negatableOperators = {
|
|
|
26
26
|
ilike: true,
|
|
27
27
|
contains: true,
|
|
28
28
|
in: true,
|
|
29
|
-
between: true
|
|
29
|
+
between: true,
|
|
30
|
+
is: true
|
|
30
31
|
};
|
|
31
32
|
const validIsValues = {
|
|
32
33
|
'null': true,
|
|
@@ -70,13 +71,15 @@ const describeQueryFilter = (pendingAction, target, query, select) => {
|
|
|
70
71
|
}
|
|
71
72
|
case 'field': {
|
|
72
73
|
expect = 'operator';
|
|
73
|
-
const [_,
|
|
74
|
+
const [_, __, jsonb] = current.split('.');
|
|
74
75
|
const [embeddedProperty, embeddedCast] = (jsonb || '').split('::');
|
|
75
76
|
const isValidProperty = properties[current];
|
|
76
77
|
if (!isValidProperty) {
|
|
77
78
|
throw new common_1.BadRequestError({ message: `${requestRef} [filter] invalidField [${current}]` });
|
|
78
79
|
}
|
|
79
|
-
const fieldName =
|
|
80
|
+
const fieldName = isValidProperty.path.type === 'embedded'
|
|
81
|
+
? isValidProperty.path.rootOrRelationPath
|
|
82
|
+
: `${isValidProperty.path.entityAlias}.${isValidProperty.columnName}`;
|
|
80
83
|
select.pushIfNotExists(current);
|
|
81
84
|
lastField = {
|
|
82
85
|
property: isValidProperty,
|
|
@@ -84,7 +87,7 @@ const describeQueryFilter = (pendingAction, target, query, select) => {
|
|
|
84
87
|
type: isValidProperty.type
|
|
85
88
|
};
|
|
86
89
|
current = fieldName;
|
|
87
|
-
if (isValidProperty.
|
|
90
|
+
if (isValidProperty.isJson) {
|
|
88
91
|
current += ` ->> '${embeddedProperty}'`;
|
|
89
92
|
if (embeddedCast === 'boolean')
|
|
90
93
|
lastField.type = class_pipe_1.PropertyType.boolean;
|
|
@@ -296,3 +299,4 @@ function validateParentheses(filter, requestRef) {
|
|
|
296
299
|
if (count !== 0)
|
|
297
300
|
throw new common_1.BadRequestError({ message: `${requestRef} [filter] missing closing parenthesis` });
|
|
298
301
|
}
|
|
302
|
+
//# sourceMappingURL=describe-query-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"describe-query-filter.js","sourceRoot":"./","sources":["query/functions/describe-query-filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.executeQuery = void 0;
|
|
4
|
+
const class_injector_1 = require("@rockster/class-injector");
|
|
4
5
|
const create_query_builder_1 = require("./create-query-builder");
|
|
5
6
|
const class_pipe_1 = require("@rockster/class-pipe");
|
|
6
7
|
const logger_1 = require("@rockster/logger");
|
|
7
8
|
const global_1 = require("../../global");
|
|
9
|
+
const collect_external_column_owners_1 = require("./collect-external-column-owners");
|
|
10
|
+
const expand_select_with_external_dependencies_1 = require("./expand-select-with-external-dependencies");
|
|
8
11
|
const executeQuery = async ({ content: queryContent, intercept, preFilter }) => {
|
|
9
12
|
const logger = new logger_1.Logger('ExecuteQuery');
|
|
10
13
|
const query = queryContent.query;
|
|
11
|
-
const
|
|
14
|
+
const object = core
|
|
15
|
+
.storage
|
|
16
|
+
.findObject(queryContent.target);
|
|
17
|
+
const effectiveSelect = (0, expand_select_with_external_dependencies_1.expandSelectWithExternalDependencies)(object.properties, query.select, logger);
|
|
18
|
+
const queryForBuilder = {
|
|
19
|
+
...queryContent,
|
|
20
|
+
query: { ...queryContent.query, select: effectiveSelect },
|
|
21
|
+
};
|
|
22
|
+
const queryBuilder = await (0, create_query_builder_1.createQueryBuilder)(queryForBuilder, intercept);
|
|
12
23
|
let page = queryContent.query.page;
|
|
13
24
|
let getWhere = 'where';
|
|
14
25
|
let filtered = 0;
|
|
15
26
|
let total;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
27
|
+
if (queryBuilder.expressionMap.wheres.length > 0) {
|
|
28
|
+
getWhere = 'andWhere';
|
|
29
|
+
}
|
|
19
30
|
if (preFilter) {
|
|
20
|
-
queryBuilder
|
|
31
|
+
queryBuilder[getWhere](preFilter);
|
|
21
32
|
getWhere = 'andWhere';
|
|
22
33
|
}
|
|
23
34
|
if (page) {
|
|
@@ -32,26 +43,56 @@ const executeQuery = async ({ content: queryContent, intercept, preFilter }) =>
|
|
|
32
43
|
if (query.orderBy) {
|
|
33
44
|
query.orderBy.forEach((orderBy, i) => {
|
|
34
45
|
const direction = orderBy.direction.toUpperCase();
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
queryBuilder.addOrderBy(orderBy.property, direction);
|
|
40
|
-
}
|
|
46
|
+
const nativeField = queryForBuilder.nativeSelectAsMap.get(orderBy.property);
|
|
47
|
+
queryBuilder.addOrderBy(nativeField, direction);
|
|
41
48
|
});
|
|
42
49
|
}
|
|
43
|
-
queryBuilder.select(
|
|
50
|
+
queryBuilder.select(queryForBuilder.nativeSelectAsArry);
|
|
44
51
|
queryBuilder.getVirtualSelect().forEach((virtualSelect) => {
|
|
45
52
|
queryBuilder.addSelect(virtualSelect.selection, virtualSelect.alias);
|
|
46
53
|
});
|
|
47
54
|
logger.debug(queryBuilder.getSql());
|
|
48
|
-
|
|
55
|
+
let items = await queryBuilder.getMany();
|
|
56
|
+
const externalSelectPaths = query.select.filter((path) => object.properties[path]?.isExternal);
|
|
57
|
+
if (externalSelectPaths.length > 0) {
|
|
58
|
+
const pathsByResolver = new Map();
|
|
59
|
+
for (const path of externalSelectPaths) {
|
|
60
|
+
const ResolverClass = object.properties[path]
|
|
61
|
+
?.externalResolver;
|
|
62
|
+
if (!ResolverClass) {
|
|
63
|
+
logger.warn(`External column "${path}" has no resolver; set @ExternalColumn(() => YourResolverClass) on the entity property.`);
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const list = pathsByResolver.get(ResolverClass) ?? [];
|
|
67
|
+
list.push(path);
|
|
68
|
+
pathsByResolver.set(ResolverClass, list);
|
|
69
|
+
}
|
|
70
|
+
for (const [ResolverClass, pathsForResolver] of pathsByResolver) {
|
|
71
|
+
const owners = (0, collect_external_column_owners_1.collectExternalColumnOwners)(items, pathsForResolver, queryForBuilder.rootAlias ?? "", object.properties);
|
|
72
|
+
if (owners.length === 0) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const instance = await (0, class_injector_1.createInstance)(ResolverClass);
|
|
76
|
+
if (typeof instance?.resolve !== "function") {
|
|
77
|
+
logger.warn(`${ResolverClass.name} must implement resolve(payload, context) for external columns.`);
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
const resolvedRoots = await instance.resolve({
|
|
81
|
+
roots: items,
|
|
82
|
+
externalSelectPaths: pathsForResolver,
|
|
83
|
+
owners,
|
|
84
|
+
}, queryContent);
|
|
85
|
+
if (Array.isArray(resolvedRoots)) {
|
|
86
|
+
items = resolvedRoots;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
49
90
|
const data = await Promise.all(items.map((item) => {
|
|
50
91
|
return (0, class_pipe_1.transform)({
|
|
51
92
|
target: object.rootPath.target(),
|
|
52
93
|
values: item,
|
|
53
94
|
select: query.select,
|
|
54
|
-
fullPath: `${
|
|
95
|
+
fullPath: `${queryForBuilder.rootAlias}.`,
|
|
55
96
|
groups: [global_1.actionGroups.query]
|
|
56
97
|
});
|
|
57
98
|
}));
|
|
@@ -72,3 +113,4 @@ const executeQuery = async ({ content: queryContent, intercept, preFilter }) =>
|
|
|
72
113
|
};
|
|
73
114
|
};
|
|
74
115
|
exports.executeQuery = executeQuery;
|
|
116
|
+
//# sourceMappingURL=execute-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute-query.js","sourceRoot":"./","sources":["query/functions/execute-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Dictionary } from "@rockster/common";
|
|
2
|
+
import type { Logger } from "@rockster/logger";
|
|
3
|
+
import type { QueryProperty } from "../interfaces/query";
|
|
4
|
+
/**
|
|
5
|
+
* Adds DB query paths listed on external columns' `externalDependencyQueryPaths` when those paths are selected.
|
|
6
|
+
* Runs to a fixpoint so chained requirements are included. Used only for SQL/joins; keep the original
|
|
7
|
+
* `query.select` for `transform` so dependency fields are not exposed unless the client asked for them.
|
|
8
|
+
*/
|
|
9
|
+
export declare function expandSelectWithExternalDependencies(properties: Dictionary<QueryProperty>, select: string[], logger?: Logger): string[];
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expandSelectWithExternalDependencies = expandSelectWithExternalDependencies;
|
|
4
|
+
/**
|
|
5
|
+
* Adds DB query paths listed on external columns' `externalDependencyQueryPaths` when those paths are selected.
|
|
6
|
+
* Runs to a fixpoint so chained requirements are included. Used only for SQL/joins; keep the original
|
|
7
|
+
* `query.select` for `transform` so dependency fields are not exposed unless the client asked for them.
|
|
8
|
+
*/
|
|
9
|
+
function expandSelectWithExternalDependencies(properties, select, logger) {
|
|
10
|
+
const set = new Set(select);
|
|
11
|
+
let changed = true;
|
|
12
|
+
while (changed) {
|
|
13
|
+
changed = false;
|
|
14
|
+
for (const path of [...set]) {
|
|
15
|
+
const deps = properties[path]?.externalDependencyQueryPaths;
|
|
16
|
+
if (!deps?.length) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
for (const dep of deps) {
|
|
20
|
+
if (set.has(dep)) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
if (!properties[dep]) {
|
|
24
|
+
logger?.warn(`External column dependency "${dep}" (for selected "${path}") is not a registered query path`);
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
set.add(dep);
|
|
28
|
+
changed = true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return [...set];
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=expand-select-with-external-dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expand-select-with-external-dependencies.js","sourceRoot":"./","sources":["query/functions/expand-select-with-external-dependencies.ts"],"names":[],"mappings":";;AASA,oFA8BC;AAnCD;;;;GAIG;AACH,SAAgB,oCAAoC,CACjD,UAAqC,EACrC,MAAgB,EAChB,MAAe;IAEf,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,EAAE,CAAC;QACd,OAAO,GAAG,KAAK,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,4BAA4B,CAAC;YAC5D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBACjB,SAAS;YACZ,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACtB,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChB,SAAS;gBACZ,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpB,MAAM,EAAE,IAAI,CACT,+BAA+B,GAAG,oBAAoB,IAAI,mCAAmC,CAC/F,CAAC;oBACF,SAAS;gBACZ,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;YAClB,CAAC;QACJ,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AACnB,CAAC"}
|