fetchAllDdbAccounts = async ({
  customersTableExtraParams,
  preLoginAccountsTableExtraParams
}) => {
  const [
    unnormalizedCustomersTableAccounts,
    preLoginAccounts
  ] = await Promise.all([
    pager.fetchItemsInDynamoDbTable({
      dynamoDbClient: exports.dynamoDb,
      tableName: getCustomersTableName(),
      extraParams: customersTableExtraParams
    }),
    pager.fetchItemsInDynamoDbTable({
      dynamoDbClient: exports.dynamoDb,
      tableName: getEnv('PreLoginAccountsTableName'),
      extraParams: preLoginAccountsTableExtraParams
    })
  ])
  const customerAccounts = unnormalizedCustomersTableAccounts.map(
    normalizeCustomersTableAccount
  )

  // Check uniqueness by UserId since it exists on all items in both tables,
  // unlike IdentityId. Take CustomersTable items over PreLoginAccountsTable
  // items when both exist.
  const uniqueAccounts = new Map()
  const addAccount = account => uniqueAccounts.set(account.UserId, account)
  preLoginAccounts.forEach(addAccount)
  customerAccounts.forEach(addAccount)
  return [...uniqueAccounts.values()]
}
Fetches and returns (normalized) account items from both the CustomersTable
and the PreLoginAccountsTable.