Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .changeset/red-pandas-prefer-sdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"@epilot/pricing": minor
---

Migrate from `@epilot/pricing-client` to `@epilot/sdk`.

The peer dependency on `@epilot/pricing-client` is replaced by `@epilot/sdk` (`^2.18.31`), and all types are now imported from `@epilot/sdk/pricing`. Consumers must install `@epilot/sdk` instead of `@epilot/pricing-client`.

The legacy `PriceTierEnhanced` type (removed from the OpenAPI spec and absent from the SDK) is now defined and exported by this package directly.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,13 @@
"dinero.js": "^1.9.1"
},
"peerDependencies": {
"@epilot/pricing-client": "^3.55.1",
"@epilot/sdk": "^2.18.31",
"i18next": "^25.1.2"
},
"devDependencies": {
"@changesets/cli": "^2.30.0",
"@epilot/eslint-config": "^3.0.5",
"@epilot/pricing-client": "^3.55.1",
"@epilot/sdk": "^2.18.31",
"@types/dinero.js": "^1.9.4",
"@vitest/coverage-v8": "^1.6.1",
"concurrently": "^9.1.2",
Expand Down
580 changes: 562 additions & 18 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/computations/apply-discounts.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { TaxItem } from '@epilot/pricing-client';
import type { TaxItem } from '@epilot/sdk/pricing';
import { isCashbackCoupon, isFixedValueCoupon, isPercentageCoupon } from '../coupons/guards';
import { toDineroFromInteger, toDinero } from '../money/to-dinero';
import { PricingModel } from '../prices/constants';
Expand Down
2 changes: 1 addition & 1 deletion src/computations/compute-composite-price.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { CompositePriceItemDto } from '@epilot/pricing-client';
import type { CompositePriceItemDto } from '@epilot/sdk/pricing';
import { describe, expect, it } from 'vitest';
import * as samples from '../__tests__/fixtures/price.samples';
import * as results from '../__tests__/fixtures/pricing.results';
Expand Down
2 changes: 1 addition & 1 deletion src/computations/compute-composite-price.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import type {
Price,
CompositePriceItem,
TaxAmountDto,
} from '@epilot/pricing-client';
} from '@epilot/sdk/pricing';
import { DEFAULT_CURRENCY } from '../money/constants';
import { toDinero } from '../money/to-dinero';
import { PricingModel } from '../prices/constants';
Expand Down
2 changes: 1 addition & 1 deletion src/computations/compute-external-dynamic-tariff-values.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PriceDynamicTariff, Tax, TaxItem } from '@epilot/pricing-client';
import type { PriceDynamicTariff, Tax, TaxItem } from '@epilot/sdk/pricing';
import type { Currency } from 'dinero.js';
import { toDinero } from '../money/to-dinero';
import { ModeDynamicTariff } from '../prices/constants';
Expand Down
2 changes: 1 addition & 1 deletion src/computations/compute-external-get-agitem-values.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PriceGetAg, Tax, TaxItem } from '@epilot/pricing-client';
import type { PriceGetAg, Tax, TaxItem } from '@epilot/sdk/pricing';
import type { Currency } from 'dinero.js';
import { toDinero, toDineroFromInteger } from '../money/to-dinero';
import { MarkupPricingModel, TypeGetAg } from '../prices/constants';
Expand Down
2 changes: 1 addition & 1 deletion src/computations/compute-per-unit-price-item-values.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Tax, TaxItem } from '@epilot/pricing-client';
import type { Tax, TaxItem } from '@epilot/sdk/pricing';
import type { Currency, Dinero } from 'dinero.js';
import { toDinero } from '../money/to-dinero';
import type { PriceItemsTotals } from '../prices/types';
Expand Down
2 changes: 1 addition & 1 deletion src/computations/compute-price-item.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import type {
PriceItem,
Price,
TaxItem,
} from '@epilot/pricing-client';
} from '@epilot/sdk/pricing';
import type { Currency } from 'dinero.js';
import { isValidCoupon } from '../coupons/guards';
import { getCouponOrder, getRedeemedPromoCouponIds } from '../coupons/utils';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PriceTier, Tax, Price, TaxItem } from '@epilot/pricing-client';
import type { PriceTier, Tax, Price, TaxItem } from '@epilot/sdk/pricing';
import type { Currency } from 'dinero.js';
import { toDineroFromInteger } from '../money/to-dinero';
import type { PriceItemsTotals } from '../prices/types';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PriceTier, Tax, Price, TaxItem } from '@epilot/pricing-client';
import type { PriceTier, Tax, Price, TaxItem } from '@epilot/sdk/pricing';
import type { Currency } from 'dinero.js';
import { toDineroFromInteger } from '../money/to-dinero';
import type { PriceItemsTotals } from '../prices/types';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PriceTier, Tax, Price, TaxItem } from '@epilot/pricing-client';
import type { PriceTier, Tax, Price, TaxItem } from '@epilot/sdk/pricing';
import type { Currency } from 'dinero.js';
import { toDineroFromInteger } from '../money/to-dinero';
import type { PriceItemsTotals } from '../prices/types';
Expand Down
2 changes: 1 addition & 1 deletion src/computations/compute-totals.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PriceItemDto, CompositePriceItemDto, PriceItemsDto, Price } from '@epilot/pricing-client';
import type { PriceItemDto, CompositePriceItemDto, PriceItemsDto, Price } from '@epilot/sdk/pricing';
import { describe, expect, it } from 'vitest';
import * as samples from '../__tests__/fixtures/price.samples';
import * as results from '../__tests__/fixtures/pricing.results';
Expand Down
2 changes: 1 addition & 1 deletion src/computations/pricing-dynamic-tariff.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PriceItemDto } from '@epilot/pricing-client';
import type { PriceItemDto } from '@epilot/sdk/pricing';
import { describe, expect, it } from 'vitest';
import {
compositePriceDynamicManual,
Expand Down
2 changes: 1 addition & 1 deletion src/computations/pricing-getag.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PriceItem, PriceItemDto } from '@epilot/pricing-client';
import type { PriceItem, PriceItemDto } from '@epilot/sdk/pricing';
import { describe, expect, it } from 'vitest';
import {
compositePriceGetAG,
Expand Down
2 changes: 1 addition & 1 deletion src/coupons/types.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Coupon } from '@epilot/pricing-client';
import type { Coupon } from '@epilot/sdk/pricing';
import type { Currency } from 'dinero.js';
import type { RemoveIndexSignature } from '../shared/type-utils';

Expand Down
2 changes: 1 addition & 1 deletion src/coupons/utils.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { CompositePriceItem, Coupon, RedeemedPromo } from '@epilot/pricing-client';
import type { CompositePriceItem, Coupon, RedeemedPromo } from '@epilot/sdk/pricing';
import { isCashbackCoupon, isPercentageCoupon, isFixedValueCoupon } from './guards';

const getTimestamp = (dateString?: string): number => {
Expand Down
2 changes: 1 addition & 1 deletion src/getag/extract-config.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { CompositePriceItem, PriceGetAg, PriceItem, TariffTypeGetAg } from '@epilot/pricing-client';
import type { CompositePriceItem, PriceGetAg, PriceItem, TariffTypeGetAg } from '@epilot/sdk/pricing';
import { describe, expect, it } from 'vitest';
import { extractGetAgConfig } from './extract-config';

Expand Down
2 changes: 1 addition & 1 deletion src/getag/extract-config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { CompositePriceItem, PriceGetAg, PriceItem, TariffTypeGetAg } from '@epilot/pricing-client';
import type { CompositePriceItem, PriceGetAg, PriceItem, TariffTypeGetAg } from '@epilot/sdk/pricing';
import { isCompositePrice } from '../prices/utils';

/**
Expand Down
2 changes: 1 addition & 1 deletion src/prices/approval.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PriceItem, CompositePriceItem, Price } from '@epilot/pricing-client';
import type { PriceItem, CompositePriceItem, Price } from '@epilot/sdk/pricing';
import { isCompositePriceItem } from './utils';

/**
Expand Down
2 changes: 1 addition & 1 deletion src/prices/convert-precision.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { CashbackAmount, PriceGetAg, TaxAmount, TaxAmountBreakdown } from '@epilot/pricing-client';
import type { CashbackAmount, PriceGetAg, TaxAmount, TaxAmountBreakdown } from '@epilot/sdk/pricing';
import { toDineroFromInteger } from '../money/to-dinero';
import { PricingModel } from '../prices/constants';
import type {
Expand Down
2 changes: 1 addition & 1 deletion src/prices/get-immutable-price-item.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PriceItem, CompositePriceItem, PricingDetails } from '@epilot/pricing-client';
import type { PriceItem, CompositePriceItem, PricingDetails } from '@epilot/sdk/pricing';
import { isValidCoupon } from '../coupons/guards';
import { toDinero } from '../money/to-dinero';

Expand Down
2 changes: 1 addition & 1 deletion src/prices/get-price-recurrence.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Price, RecurrenceAmount, RecurrenceAmountWithTax, Tax } from '@epilot/pricing-client';
import type { Price, RecurrenceAmount, RecurrenceAmountWithTax, Tax } from '@epilot/sdk/pricing';

export const getPriceRecurrence = (price: Price | undefined, recurrences: RecurrenceAmount[]) => {
if (price?.type === 'recurring') {
Expand Down
2 changes: 1 addition & 1 deletion src/prices/get-price-tax.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { TaxItem } from '@epilot/pricing-client';
import type { TaxItem } from '@epilot/sdk/pricing';
import type { Tax, Price, TaxAmountDto } from '../shared/types';

/**
Expand Down
15 changes: 13 additions & 2 deletions src/shared/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,25 @@ export type {
PriceInputMappings,
PriceInputMapping,
PriceTier,
PriceTierEnhanced,
PriceTierDisplayMode,
CashbackAmount,
RedeemedPromo,
Order,
TierDetails,
CompositePriceItem,
} from '@epilot/pricing-client';
} from '@epilot/sdk/pricing';
export type { Currency, Dinero } from 'dinero.js';
import type { PriceTier } from '@epilot/sdk/pricing';
import type { i18n } from 'i18next';
export type I18n = Pick<i18n, 't' | 'language'>;

/**
* Legacy type formerly exported by @epilot/pricing-client. The gross fields
* were removed from the OpenAPI specification, so it lives here now.
*/
export interface PriceTierEnhanced extends PriceTier {
unit_amount_gross?: number;
unit_amount_gross_decimal?: string;
flat_fee_amount_gross?: number;
flat_fee_amount_gross_decimal?: string;
}
2 changes: 1 addition & 1 deletion src/taxes/extract-tax-from-price.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { CompositePriceItem, PriceItem, Tax, TaxItem } from '@epilot/pricing-client';
import type { CompositePriceItem, PriceItem, Tax, TaxItem } from '@epilot/sdk/pricing';
import { isCompositePriceItem } from '../prices/utils';

export const extractTaxFromPriceItem = (item: PriceItem | CompositePriceItem) => {
Expand Down
2 changes: 1 addition & 1 deletion src/taxes/get-tax-value.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Tax } from '@epilot/pricing-client';
import type { Tax } from '@epilot/sdk/pricing';
import { describe, expect, it } from 'vitest';
import * as taxes from '../__tests__/fixtures/tax.samples';
import { getTaxValue } from './get-tax-value';
Expand Down
2 changes: 1 addition & 1 deletion src/taxes/get-tax-value.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Tax, TaxItem } from '@epilot/pricing-client';
import type { Tax, TaxItem } from '@epilot/sdk/pricing';
import { TaxRates } from './constants';

export const getTaxValue = (tax?: Tax | TaxItem): number => {
Expand Down
2 changes: 1 addition & 1 deletion src/tiers/compute-cumulative-value.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PriceTier, Tax } from '@epilot/pricing-client';
import type { PriceTier, Tax } from '@epilot/sdk/pricing';
import type { Currency, Dinero } from 'dinero.js';
import { DEFAULT_LOCALE } from '../money/constants';
import { DEFAULT_CURRENCY } from '../money/constants';
Expand Down
2 changes: 1 addition & 1 deletion src/time-frequency/constants.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { BillingPeriod } from '@epilot/pricing-client';
import type { BillingPeriod } from '@epilot/sdk/pricing';
import type { NormalizationFactor } from './types';

/**
Expand Down
2 changes: 1 addition & 1 deletion src/variables/getag/details.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { Currency, TimeFrequency } from '@epilot/pricing';
import type { CompositePriceItem, PriceItem } from '@epilot/pricing-client';
import type { CompositePriceItem, PriceItem } from '@epilot/sdk/pricing';
import { formatPriceUnit } from '../../money/formatters';
import type { I18n } from '../../shared/types';
import { extractTaxFromPriceItem } from '../../taxes/extract-tax-from-price';
Expand Down
2 changes: 1 addition & 1 deletion src/variables/getag/utils.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PriceGetAg, TariffTypeGetAg } from '@epilot/pricing-client';
import type { PriceGetAg, TariffTypeGetAg } from '@epilot/sdk/pricing';
import { describe, expect, it, vi } from 'vitest';
import { tax19percent } from '../../__tests__/fixtures/tax.samples';
import type { Currency, I18n } from '../../shared/types';
Expand Down
2 changes: 1 addition & 1 deletion src/variables/getag/utils.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PriceGetAg, TariffTypeGetAg } from '@epilot/pricing-client';
import type { PriceGetAg, TariffTypeGetAg } from '@epilot/sdk/pricing';
import { formatFeeAmountFromString } from '../../getag/formatters';
import { DEFAULT_CURRENCY } from '../../money/constants';
import { toDinero } from '../../money/to-dinero';
Expand Down
2 changes: 1 addition & 1 deletion src/variables/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import type {
Product,
RecurrenceAmount,
RecurrenceAmountWithTax,
} from '@epilot/pricing-client';
} from '@epilot/sdk/pricing';

export type PriceItemWithParent =
| (PriceItem & { parent_item: CompositePriceItem })
Expand Down
Loading