# @kbn/core-saved-objects-api-server-internal

This package contains the internal implementation of core's server-side savedObjects client and repository.

## Structure of the package

```
@kbn/core-saved-objects-api-server-internal
- /src/lib
  - repository.ts
  - /apis
    - create.ts
    - delete.ts
    - ....
    - /helpers
    - /utils
    - /internals
```

### lib/apis/utils
Base utility functions, receiving (mostly) parameters from a given API call's option 
(e.g the type or id of a document, but not the type registry).

### lib/apis/helpers
'Stateful' helpers. These helpers were mostly here to receive the utility functions that were extracted from the SOR.
They are instantiated with the SOR's context (e.g type registry, mappings and so on), to avoid the caller to such
helpers to have to pass all the parameters again.

### lib/apis/internals
I would call them 'utilities with business logic'. These are the 'big' chunks of logic called by the APIs. 
E.g preflightCheckForCreate, internalBulkResolve and so on.