from typing import Sequence
from typing import List


def cumulative_products(nums: Sequence[int]) -> Sequence[int]:
    """Finds the cumulative products of a sequence of integers.

    Args:
        nums: An arbitrary integer sequence.

    Returns:
        An integer sequence with length ``len(nums)``, where each term is the
        product of the current and all previous terms in ``nums``.
    """
    products: List[int] = []
    product = 1
    for num in nums:
        product *= num
        products.append(product)
    return products