services:
  node.route_subscriber:
    class: Drupal\node\Routing\RouteSubscriber
    tags:
      - { name: event_subscriber }
  node.grant_storage:
    class: Drupal\node\NodeGrantDatabaseStorage
    arguments: ['@database', '@module_handler', '@language_manager']
    tags:
      - { name: backend_overridable }
  Drupal\node\NodeGrantDatabaseStorageInterface: '@node.grant_storage'
  access_check.node.preview:
    class: Drupal\node\Access\NodePreviewAccessCheck
    arguments: ['@entity_type.manager']
    tags:
      - { name: access_check, applies_to: _node_preview_access }
  node.admin_path.route_subscriber:
    class: Drupal\node\EventSubscriber\NodeAdminRouteSubscriber
    arguments: ['@config.factory', '@router.builder']
    tags:
      - { name: event_subscriber }
  node_preview:
    class: Drupal\node\ParamConverter\NodePreviewConverter
    arguments: ['@tempstore.private']
    tags:
      - { name: paramconverter }
    lazy: true
  node.page_cache_response_policy.deny_node_preview:
    class: Drupal\node\PageCache\DenyNodePreview
    arguments: ['@current_route_match']
    public: false
    tags:
      - { name: page_cache_response_policy }
      - { name: dynamic_page_cache_response_policy }
  cache_context.user.node_grants:
    class: Drupal\node\Cache\NodeAccessGrantsCacheContext
    arguments: ['@current_user']
    tags:
      - { name: cache.context }
  node.node_route_context:
    class: Drupal\node\ContextProvider\NodeRouteContext
    arguments: ['@current_route_match']
    tags:
      - { name: 'context_provider' }
