@talosjs/payment 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -30,9 +30,9 @@ class PaymentException extends Exception {
30
30
  }
31
31
  }
32
32
  // src/PolarAnalytics.ts
33
+ import { Polar } from "@polar-sh/sdk";
33
34
  import { AppEnv } from "@talosjs/app-env";
34
35
  import { inject, injectable } from "@talosjs/container";
35
- import { Polar } from "@polar-sh/sdk";
36
36
  class PolarAnalytics {
37
37
  env;
38
38
  client;
@@ -133,9 +133,9 @@ PolarAnalytics = __legacyDecorateClassTS([
133
133
  ])
134
134
  ], PolarAnalytics);
135
135
  // src/PolarCheckout.ts
136
+ import { Polar as Polar2 } from "@polar-sh/sdk";
136
137
  import { AppEnv as AppEnv2 } from "@talosjs/app-env";
137
138
  import { inject as inject2, injectable as injectable2 } from "@talosjs/container";
138
- import { Polar as Polar2 } from "@polar-sh/sdk";
139
139
  class PolarCheckout {
140
140
  env;
141
141
  client;
@@ -264,9 +264,9 @@ PolarCheckout = __legacyDecorateClassTS([
264
264
  ])
265
265
  ], PolarCheckout);
266
266
  // src/PolarCustomer.ts
267
+ import { Polar as Polar3 } from "@polar-sh/sdk";
267
268
  import { AppEnv as AppEnv3 } from "@talosjs/app-env";
268
269
  import { inject as inject3, injectable as injectable3 } from "@talosjs/container";
269
- import { Polar as Polar3 } from "@polar-sh/sdk";
270
270
  class PolarCustomer {
271
271
  env;
272
272
  client;
@@ -427,9 +427,9 @@ PolarCustomer = __legacyDecorateClassTS([
427
427
  ])
428
428
  ], PolarCustomer);
429
429
  // src/PolarCustomerPortal.ts
430
+ import { Polar as Polar4 } from "@polar-sh/sdk";
430
431
  import { AppEnv as AppEnv4 } from "@talosjs/app-env";
431
432
  import { inject as inject4, injectable as injectable4 } from "@talosjs/container";
432
- import { Polar as Polar4 } from "@polar-sh/sdk";
433
433
  class PolarCustomerPortal {
434
434
  env;
435
435
  client;
@@ -480,9 +480,9 @@ PolarCustomerPortal = __legacyDecorateClassTS([
480
480
  ])
481
481
  ], PolarCustomerPortal);
482
482
  // src/PolarDiscount.ts
483
+ import { Polar as Polar5 } from "@polar-sh/sdk";
483
484
  import { AppEnv as AppEnv5 } from "@talosjs/app-env";
484
485
  import { inject as inject5, injectable as injectable5 } from "@talosjs/container";
485
- import { Polar as Polar5 } from "@polar-sh/sdk";
486
486
  class PolarDiscount {
487
487
  env;
488
488
  client;
@@ -641,9 +641,9 @@ PolarDiscount = __legacyDecorateClassTS([
641
641
  ])
642
642
  ], PolarDiscount);
643
643
  // src/PolarProduct.ts
644
+ import { Polar as Polar6 } from "@polar-sh/sdk";
644
645
  import { AppEnv as AppEnv6 } from "@talosjs/app-env";
645
646
  import { inject as inject6, injectable as injectable6 } from "@talosjs/container";
646
- import { Polar as Polar6 } from "@polar-sh/sdk";
647
647
  class PolarProduct {
648
648
  env;
649
649
  client;
@@ -840,4 +840,4 @@ export {
840
840
  EAnalyticsInterval
841
841
  };
842
842
 
843
- //# debugId=1D32103632506D8764756E2164756E21
843
+ //# debugId=33031D37A547AF8A64756E2164756E21
package/dist/index.js.map CHANGED
@@ -3,15 +3,15 @@
3
3
  "sources": ["src/PaymentException.ts", "src/PolarAnalytics.ts", "src/PolarCheckout.ts", "src/PolarCustomer.ts", "src/PolarCustomerPortal.ts", "src/PolarDiscount.ts", "src/PolarProduct.ts", "src/types.ts"],
4
4
  "sourcesContent": [
5
5
  "import { Exception } from \"@talosjs/exception\";\nimport { HttpStatus } from \"@talosjs/http-status\";\n\nexport class PaymentException extends Exception {\n constructor(message: string, key: string, data: Record<string, unknown> = {}) {\n super(message, {\n key,\n status: HttpStatus.Code.InternalServerError,\n data,\n });\n\n this.name = \"PaymentException\";\n }\n}\n",
6
- "import { AppEnv } from \"@talosjs/app-env\";\nimport { inject, injectable } from \"@talosjs/container\";\nimport { Polar } from \"@polar-sh/sdk\";\nimport type { RFCDate } from \"@polar-sh/sdk/types/rfcdate.js\";\nimport { PaymentException } from \"./PaymentException\";\nimport type {\n AnalyticsIntervalsLimitsType,\n AnalyticsLimitsType,\n AnalyticsMetricInfoType,\n AnalyticsMetricsType,\n AnalyticsOptionsType,\n AnalyticsPeriodType,\n AnalyticsResponseType,\n BillingTypeType,\n} from \"./types\";\n\n@injectable()\nexport class PolarAnalytics {\n private client: Polar;\n\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n const accessToken = this.env.POLAR_ACCESS_TOKEN;\n\n if (!accessToken) {\n throw new PaymentException(\n \"Polar access token is required. Please set the POLAR_ACCESS_TOKEN environment variable.\",\n \"TOKEN_REQUIRED\",\n );\n }\n\n this.client = new Polar({\n accessToken,\n server: (this.env.POLAR_ENVIRONMENT as \"sandbox\" | \"production\") || \"production\",\n });\n }\n\n public async get(options: AnalyticsOptionsType): Promise<AnalyticsResponseType> {\n const response = await this.client.metrics.get({\n startDate: this.toRFCDate(options.startDate),\n endDate: this.toRFCDate(options.endDate),\n interval: options.interval,\n organizationId: options.organizationId ?? null,\n productId: options.productId ?? null,\n billingType: (options.billingType as BillingTypeType) ?? null,\n customerId: options.customerId ?? null,\n });\n\n return {\n periods: response.periods.map((period) => this.mapPeriod(period)),\n metrics: this.mapMetrics(response.metrics),\n };\n }\n\n public async getLimits(): Promise<AnalyticsLimitsType> {\n const response = await this.client.metrics.limits();\n\n return {\n minDate: new Date(response.minDate.toString()),\n intervals: this.mapIntervalsLimits(response.intervals),\n };\n }\n\n private toRFCDate(date: Date): RFCDate {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n\n return `${year}-${month}-${day}` as unknown as RFCDate;\n }\n\n private mapPeriod(period: {\n timestamp: Date;\n orders: number;\n revenue: number;\n cumulativeRevenue: number;\n averageOrderValue: number;\n oneTimeProducts: number;\n oneTimeProductsRevenue: number;\n newSubscriptions: number;\n newSubscriptionsRevenue: number;\n renewedSubscriptions: number;\n renewedSubscriptionsRevenue: number;\n activeSubscriptions: number;\n monthlyRecurringRevenue: number;\n }): AnalyticsPeriodType {\n return {\n timestamp: period.timestamp,\n orders: period.orders,\n revenue: period.revenue,\n cumulativeRevenue: period.cumulativeRevenue,\n averageOrderValue: period.averageOrderValue,\n oneTimeProducts: period.oneTimeProducts,\n oneTimeProductsRevenue: period.oneTimeProductsRevenue,\n newSubscriptions: period.newSubscriptions,\n newSubscriptionsRevenue: period.newSubscriptionsRevenue,\n renewedSubscriptions: period.renewedSubscriptions,\n renewedSubscriptionsRevenue: period.renewedSubscriptionsRevenue,\n activeSubscriptions: period.activeSubscriptions,\n monthlyRecurringRevenue: period.monthlyRecurringRevenue,\n };\n }\n\n private mapMetricInfo(metric: { slug: string; displayName: string; type: string }): AnalyticsMetricInfoType {\n return {\n slug: metric.slug,\n displayName: metric.displayName,\n type: metric.type,\n };\n }\n\n private mapMetrics(metrics: {\n orders: { slug: string; displayName: string; type: string };\n revenue: { slug: string; displayName: string; type: string };\n cumulativeRevenue: { slug: string; displayName: string; type: string };\n averageOrderValue: { slug: string; displayName: string; type: string };\n oneTimeProducts: { slug: string; displayName: string; type: string };\n oneTimeProductsRevenue: { slug: string; displayName: string; type: string };\n newSubscriptions: { slug: string; displayName: string; type: string };\n newSubscriptionsRevenue: { slug: string; displayName: string; type: string };\n renewedSubscriptions: { slug: string; displayName: string; type: string };\n renewedSubscriptionsRevenue: { slug: string; displayName: string; type: string };\n activeSubscriptions: { slug: string; displayName: string; type: string };\n monthlyRecurringRevenue: { slug: string; displayName: string; type: string };\n }): AnalyticsMetricsType {\n return {\n orders: this.mapMetricInfo(metrics.orders),\n revenue: this.mapMetricInfo(metrics.revenue),\n cumulativeRevenue: this.mapMetricInfo(metrics.cumulativeRevenue),\n averageOrderValue: this.mapMetricInfo(metrics.averageOrderValue),\n oneTimeProducts: this.mapMetricInfo(metrics.oneTimeProducts),\n oneTimeProductsRevenue: this.mapMetricInfo(metrics.oneTimeProductsRevenue),\n newSubscriptions: this.mapMetricInfo(metrics.newSubscriptions),\n newSubscriptionsRevenue: this.mapMetricInfo(metrics.newSubscriptionsRevenue),\n renewedSubscriptions: this.mapMetricInfo(metrics.renewedSubscriptions),\n renewedSubscriptionsRevenue: this.mapMetricInfo(metrics.renewedSubscriptionsRevenue),\n activeSubscriptions: this.mapMetricInfo(metrics.activeSubscriptions),\n monthlyRecurringRevenue: this.mapMetricInfo(metrics.monthlyRecurringRevenue),\n };\n }\n\n private mapIntervalsLimits(intervals: {\n hour: { maxDays: number };\n day: { maxDays: number };\n week: { maxDays: number };\n month: { maxDays: number };\n year: { maxDays: number };\n }): AnalyticsIntervalsLimitsType {\n return {\n hour: { maxDays: intervals.hour.maxDays },\n day: { maxDays: intervals.day.maxDays },\n week: { maxDays: intervals.week.maxDays },\n month: { maxDays: intervals.month.maxDays },\n year: { maxDays: intervals.year.maxDays },\n };\n }\n}\n",
7
- "import { AppEnv } from \"@talosjs/app-env\";\nimport { inject, injectable } from \"@talosjs/container\";\nimport type { CurrencyCodeType } from \"@talosjs/currencies\";\nimport { Polar } from \"@polar-sh/sdk\";\nimport { PaymentException } from \"./PaymentException\";\nimport type {\n CheckoutAddressType,\n CheckoutCreateType,\n CheckoutCustomerType,\n CheckoutResponseType,\n CheckoutStatusType,\n CheckoutType,\n} from \"./types\";\n\n@injectable()\nexport class PolarCheckout {\n private client: Polar;\n\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n const accessToken = this.env.POLAR_ACCESS_TOKEN;\n\n if (!accessToken) {\n throw new PaymentException(\n \"Polar access token is required. Please set the POLAR_ACCESS_TOKEN environment variable.\",\n \"TOKEN_REQUIRED\",\n );\n }\n\n this.client = new Polar({\n accessToken,\n server: (this.env.POLAR_ENVIRONMENT as \"sandbox\" | \"production\") || \"production\",\n });\n }\n\n public async create(data: CheckoutCreateType): Promise<CheckoutType> {\n const response = await this.client.checkouts.create({\n products: data.products,\n customerExternalId: data.customerExternalId ?? null,\n customerId: data.customerId ?? null,\n customerEmail: data.customerEmail ?? null,\n customerName: data.customerName ?? null,\n customerBillingAddress: data.customerBillingAddress?.country\n ? {\n country: data.customerBillingAddress.country,\n line1: data.customerBillingAddress.line1 ?? null,\n line2: data.customerBillingAddress.line2 ?? null,\n city: data.customerBillingAddress.city ?? null,\n state: data.customerBillingAddress.state ?? null,\n postalCode: data.customerBillingAddress.postalCode ?? null,\n }\n : null,\n customerTaxId: data.customerTaxId ?? null,\n discountId: data.discountId ?? null,\n allowDiscountCodes: data.allowDiscountCodes ?? true,\n successUrl: data.successUrl ?? null,\n embedOrigin: data.embedOrigin ?? null,\n metadata: data.metadata,\n });\n\n return this.mapResponse(response as unknown as CheckoutResponseType);\n }\n\n public async get(id: string): Promise<CheckoutType> {\n const response = await this.client.checkouts.get({ id });\n\n return this.mapResponse(response as unknown as CheckoutResponseType);\n }\n\n private mapResponse(response: CheckoutResponseType): CheckoutType {\n const checkout: CheckoutType = {\n id: response.id,\n status: response.status as CheckoutStatusType,\n clientSecret: response.clientSecret,\n };\n\n if (response.url) {\n checkout.url = response.url;\n }\n\n if (response.embedId) {\n checkout.embedId = response.embedId;\n }\n\n if (response.allowDiscountCodes !== undefined) {\n checkout.allowDiscountCodes = response.allowDiscountCodes;\n }\n\n if (response.isDiscountApplicable !== undefined) {\n checkout.isDiscountApplicable = response.isDiscountApplicable;\n }\n\n if (response.isPaymentRequired !== undefined) {\n checkout.isPaymentRequired = response.isPaymentRequired;\n }\n\n if (response.metadata) {\n checkout.metadata = response.metadata;\n }\n\n if (response.createdAt) {\n checkout.createdAt = response.createdAt;\n }\n\n if (response.modifiedAt) {\n checkout.updatedAt = response.modifiedAt;\n }\n\n if (response.expiresAt) {\n checkout.expiresAt = response.expiresAt;\n }\n\n if (response.successUrl) {\n checkout.successUrl = response.successUrl;\n }\n\n if (response.embedOrigin) {\n checkout.embedOrigin = response.embedOrigin;\n }\n\n if (response.amount !== undefined) {\n checkout.amount = response.amount;\n }\n\n if (response.taxAmount !== undefined) {\n checkout.taxAmount = response.taxAmount;\n }\n\n if (response.currency) {\n checkout.currency = response.currency as CurrencyCodeType;\n }\n\n if (response.subtotalAmount !== undefined) {\n checkout.subtotalAmount = response.subtotalAmount;\n }\n\n if (response.totalAmount !== undefined) {\n checkout.totalAmount = response.totalAmount;\n }\n\n if (response.productId) {\n checkout.productId = response.productId;\n }\n\n if (response.productPriceId) {\n checkout.productPriceId = response.productPriceId;\n }\n\n if (response.discountId) {\n checkout.discountId = response.discountId;\n }\n\n if (response.customer) {\n checkout.customer = {\n id: response.customer.id,\n email: response.customer.email,\n name: response.customer.name,\n externalId: response.customer.externalId,\n taxId: response.customer.taxId,\n } as CheckoutCustomerType;\n\n if (response.customer.billingAddress) {\n checkout.customer.billingAddress = response.customer.billingAddress as CheckoutAddressType;\n }\n }\n\n return checkout;\n }\n}\n",
8
- "import { AppEnv } from \"@talosjs/app-env\";\nimport { inject, injectable } from \"@talosjs/container\";\nimport { Polar } from \"@polar-sh/sdk\";\nimport type { Address } from \"@polar-sh/sdk/models/components/address.js\";\nimport { PaymentException } from \"./PaymentException\";\nimport type {\n CustomerAddressType,\n CustomerCreateType,\n CustomerListOptionsType,\n CustomerListResponseType,\n CustomerListResultType,\n CustomerResponseType,\n CustomerType,\n CustomerUpdateType,\n} from \"./types\";\n\n@injectable()\nexport class PolarCustomer {\n private client: Polar;\n\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n const accessToken = this.env.POLAR_ACCESS_TOKEN;\n\n if (!accessToken) {\n throw new PaymentException(\n \"Polar access token is required. Please set the POLAR_ACCESS_TOKEN environment variable.\",\n \"TOKEN_REQUIRED\",\n );\n }\n\n this.client = new Polar({\n accessToken,\n server: (this.env.POLAR_ENVIRONMENT as \"sandbox\" | \"production\") || \"production\",\n });\n }\n\n public async create(data: CustomerCreateType): Promise<CustomerType> {\n const response = await this.client.customers.create({\n email: data.email,\n name: data.name ?? null,\n externalId: data.externalId ?? null,\n billingAddress: data.billingAddress ? this.toBillingAddress(data.billingAddress) : null,\n taxId: data.taxId ? [data.taxId, null] : null,\n organizationId: data.organizationId ?? null,\n metadata: data.metadata,\n });\n\n return this.mapResponse(response as unknown as CustomerResponseType);\n }\n\n public async update(id: string, data: CustomerUpdateType): Promise<CustomerType> {\n const response = await this.client.customers.update({\n id,\n customerUpdate: {\n email: data.email ?? null,\n name: data.name ?? null,\n billingAddress: data.billingAddress ? this.toBillingAddress(data.billingAddress) : null,\n taxId: data.taxId ? [data.taxId, null] : null,\n metadata: data.metadata,\n },\n });\n\n return this.mapResponse(response as unknown as CustomerResponseType);\n }\n\n public async remove(id: string): Promise<void> {\n await this.client.customers.delete({ id });\n }\n\n public async get(id: string): Promise<CustomerType> {\n const response = await this.client.customers.get({ id });\n\n return this.mapResponse(response as unknown as CustomerResponseType);\n }\n\n public async list(options?: CustomerListOptionsType): Promise<CustomerListResultType> {\n const response = await this.client.customers.list({\n organizationId: options?.organizationId,\n email: options?.email,\n query: options?.query,\n page: options?.page ?? 1,\n limit: options?.limit ?? 10,\n });\n\n const result = response as unknown as CustomerListResponseType;\n\n return {\n items: result.result.items.map((item) => this.mapResponse(item)),\n pagination: {\n totalCount: result.result.pagination.totalCount,\n maxPage: result.result.pagination.maxPage,\n },\n };\n }\n\n public async getByExternalId(externalId: string): Promise<CustomerType> {\n const response = await this.client.customers.getExternal({ externalId });\n\n return this.mapResponse(response as unknown as CustomerResponseType);\n }\n\n public async updateByExternalId(externalId: string, data: CustomerUpdateType): Promise<CustomerType> {\n const response = await this.client.customers.updateExternal({\n externalId,\n customerUpdate: {\n email: data.email ?? null,\n name: data.name ?? null,\n billingAddress: data.billingAddress ? this.toBillingAddress(data.billingAddress) : null,\n taxId: data.taxId ? [data.taxId, null] : null,\n metadata: data.metadata,\n },\n });\n\n return this.mapResponse(response as unknown as CustomerResponseType);\n }\n\n public async removeByExternalId(externalId: string): Promise<void> {\n await this.client.customers.deleteExternal({ externalId });\n }\n\n private toBillingAddress(address: CustomerAddressType): Address {\n return {\n country: address.country ?? \"\",\n line1: address.line1,\n line2: address.line2,\n city: address.city,\n state: address.state,\n postalCode: address.postalCode,\n };\n }\n\n private mapResponse(response: CustomerResponseType): CustomerType {\n const customer: CustomerType = {\n id: response.id,\n email: response.email,\n emailVerified: response.emailVerified ?? false,\n };\n\n if (response.createdAt) {\n customer.createdAt = response.createdAt;\n }\n\n if (response.modifiedAt) {\n customer.updatedAt = response.modifiedAt;\n }\n\n if (response.deletedAt) {\n customer.deletedAt = response.deletedAt;\n }\n\n if (response.name) {\n customer.name = response.name;\n }\n\n if (response.externalId) {\n customer.externalId = response.externalId;\n }\n\n if (response.avatarUrl) {\n customer.avatarUrl = response.avatarUrl;\n }\n\n if (response.billingAddress) {\n const billingAddress: CustomerAddressType = {};\n if (response.billingAddress.line1) {\n billingAddress.line1 = response.billingAddress.line1;\n }\n if (response.billingAddress.line2) {\n billingAddress.line2 = response.billingAddress.line2;\n }\n if (response.billingAddress.city) {\n billingAddress.city = response.billingAddress.city;\n }\n if (response.billingAddress.state) {\n billingAddress.state = response.billingAddress.state;\n }\n if (response.billingAddress.postalCode) {\n billingAddress.postalCode = response.billingAddress.postalCode;\n }\n if (response.billingAddress.country) {\n billingAddress.country = response.billingAddress.country;\n }\n customer.billingAddress = billingAddress;\n }\n\n if (response.taxId) {\n const taxIdValue = typeof response.taxId === \"string\" ? response.taxId : response.taxId[1];\n customer.taxId = taxIdValue;\n }\n\n if (response.organizationId) {\n customer.organizationId = response.organizationId;\n }\n\n if (response.metadata) {\n customer.metadata = response.metadata;\n }\n\n return customer;\n }\n}\n",
9
- "import { AppEnv } from \"@talosjs/app-env\";\nimport { inject, injectable } from \"@talosjs/container\";\nimport { Polar } from \"@polar-sh/sdk\";\nimport { PaymentException } from \"./PaymentException\";\nimport type { CustomerSessionCreateType, CustomerSessionResponseType, CustomerSessionType } from \"./types\";\n\n@injectable()\nexport class PolarCustomerPortal {\n private client: Polar;\n\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n const accessToken = this.env.POLAR_ACCESS_TOKEN;\n\n if (!accessToken) {\n throw new PaymentException(\n \"Polar access token is required. Please set the POLAR_ACCESS_TOKEN environment variable.\",\n \"TOKEN_REQUIRED\",\n );\n }\n\n this.client = new Polar({\n accessToken,\n server: (this.env.POLAR_ENVIRONMENT as \"sandbox\" | \"production\") || \"production\",\n });\n }\n\n public async create(data: CustomerSessionCreateType): Promise<CustomerSessionType> {\n const response = await this.client.customerSessions.create({\n customerId: data.customerId,\n });\n\n return this.mapResponse(response as unknown as CustomerSessionResponseType);\n }\n\n public getPortalUrl(organizationSlug: string): string {\n const baseUrl = this.env.POLAR_ENVIRONMENT === \"sandbox\" ? \"https://sandbox.polar.sh\" : \"https://polar.sh\";\n\n return `${baseUrl}/${organizationSlug}/portal`;\n }\n\n private mapResponse(response: CustomerSessionResponseType): CustomerSessionType {\n const session: CustomerSessionType = {\n id: response.id,\n token: response.token,\n customerPortalUrl: response.customerPortalUrl,\n };\n\n if (response.createdAt) {\n session.createdAt = response.createdAt;\n }\n\n if (response.expiresAt) {\n session.expiresAt = response.expiresAt;\n }\n\n if (response.customerId) {\n session.customerId = response.customerId;\n }\n\n return session;\n }\n}\n",
10
- "import { AppEnv } from \"@talosjs/app-env\";\nimport { inject, injectable } from \"@talosjs/container\";\nimport type { CurrencyCodeType } from \"@talosjs/currencies\";\nimport { Polar } from \"@polar-sh/sdk\";\nimport { PaymentException } from \"./PaymentException\";\nimport type { DiscountDurationType, DiscountResponseType, DiscountType, IDiscount, IProduct } from \"./types\";\n\n@injectable()\nexport class PolarDiscount {\n private client: Polar;\n\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n const accessToken = this.env.POLAR_ACCESS_TOKEN;\n\n if (!accessToken) {\n throw new PaymentException(\n \"Polar access token is required. Please set the POLAR_ACCESS_TOKEN environment variable.\",\n \"TOKEN_REQUIRED\",\n );\n }\n\n this.client = new Polar({\n accessToken,\n server: (this.env.POLAR_ENVIRONMENT as \"sandbox\" | \"production\") || \"production\",\n });\n }\n\n private toDiscountType(type: DiscountType): \"percentage\" | \"fixed\" {\n return type === \"percentage\" ? \"percentage\" : \"fixed\";\n }\n\n private toDiscountDuration(duration: DiscountDurationType): \"once\" | \"repeating\" | \"forever\" {\n switch (duration) {\n case \"once\":\n return \"once\";\n case \"repeating\":\n return \"repeating\";\n case \"forever\":\n return \"forever\";\n default:\n return \"once\";\n }\n }\n\n public async create(data: IDiscount): Promise<IDiscount> {\n const discountType = this.toDiscountType(data.type);\n const duration = this.toDiscountDuration(data.duration);\n\n const basePayload = {\n name: data.name,\n code: data.code ?? null,\n startsAt: data.startAt ?? null,\n endsAt: data.endAt ?? null,\n maxRedemptions: data.maxRedemptions ?? null,\n organizationId: data.organizationId ?? null,\n metadata: data.metadata,\n products: data.applicableProducts?.map((p) => p.id as string) ?? null,\n };\n\n let response: unknown;\n\n if (discountType === \"percentage\") {\n if (duration === \"repeating\") {\n response = await this.client.discounts.create({\n ...basePayload,\n type: \"percentage\",\n basisPoints: data.amount * 100,\n duration: \"repeating\",\n durationInMonths: data.durationInMonths ?? 1,\n });\n } else {\n response = await this.client.discounts.create({\n ...basePayload,\n type: \"percentage\",\n basisPoints: data.amount * 100,\n duration: duration as \"once\" | \"forever\",\n });\n }\n } else {\n if (duration === \"repeating\") {\n response = await this.client.discounts.create({\n ...basePayload,\n type: \"fixed\",\n amount: data.amount,\n currency: data.currency ?? \"usd\",\n duration: \"repeating\",\n durationInMonths: data.durationInMonths ?? 1,\n });\n } else {\n response = await this.client.discounts.create({\n ...basePayload,\n type: \"fixed\",\n amount: data.amount,\n currency: data.currency ?? \"usd\",\n duration: duration as \"once\" | \"forever\",\n });\n }\n }\n\n return this.mapResponse(response as unknown as DiscountResponseType);\n }\n\n public async update(id: string, data: Partial<IDiscount>): Promise<IDiscount> {\n const response = await this.client.discounts.update({\n id,\n discountUpdate: {\n name: data.name ?? null,\n code: data.code ?? null,\n startsAt: data.startAt ?? null,\n endsAt: data.endAt ?? null,\n maxRedemptions: data.maxRedemptions ?? null,\n metadata: data.metadata,\n products: data.applicableProducts?.map((p) => p.id as string) ?? null,\n },\n });\n\n return this.mapResponse(response as unknown as DiscountResponseType);\n }\n\n public async remove(id: string): Promise<void> {\n await this.client.discounts.delete({ id });\n }\n\n public async get(id: string): Promise<IDiscount> {\n const response = await this.client.discounts.get({ id });\n\n return this.mapResponse(response as unknown as DiscountResponseType);\n }\n\n private mapResponse(response: DiscountResponseType): IDiscount {\n const discount: IDiscount = {\n id: response.id,\n name: response.name,\n type: response.type as DiscountType,\n amount: response.type === \"percentage\" ? (response.basisPoints ?? 0) / 100 : (response.amount ?? 0),\n duration: response.duration as DiscountDurationType,\n redemptionsCount: response.redemptionsCount,\n metadata: response.metadata,\n };\n\n if (response.createdAt) {\n discount.createdAt = response.createdAt;\n }\n\n if (response.modifiedAt) {\n discount.updatedAt = response.modifiedAt;\n }\n\n if (response.code) {\n discount.code = response.code;\n }\n\n if (response.startsAt) {\n discount.startAt = response.startsAt;\n }\n\n if (response.endsAt) {\n discount.endAt = response.endsAt;\n }\n\n if (response.maxRedemptions) {\n discount.maxRedemptions = response.maxRedemptions;\n }\n\n if (response.durationInMonths) {\n discount.durationInMonths = response.durationInMonths;\n }\n\n if (response.organizationId) {\n discount.organizationId = response.organizationId;\n }\n\n if (response.currency) {\n discount.currency = response.currency as CurrencyCodeType;\n }\n\n if (response.products) {\n discount.applicableProducts = response.products.map(\n (p: { id: string; name: string }) =>\n ({\n id: p.id,\n name: p.name,\n }) as IProduct,\n );\n }\n\n return discount;\n }\n}\n",
11
- "import { AppEnv } from \"@talosjs/app-env\";\nimport { inject, injectable } from \"@talosjs/container\";\nimport { Polar } from \"@polar-sh/sdk\";\nimport type { SubscriptionRecurringInterval } from \"@polar-sh/sdk/models/components/subscriptionrecurringinterval.js\";\nimport { PaymentException } from \"./PaymentException\";\nimport type { BenefitType, CustomFieldType, IProduct, PriceType, SubscriptionPeriodType } from \"./types\";\n\n@injectable()\nexport class PolarProduct {\n private client: Polar;\n\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n const accessToken = this.env.POLAR_ACCESS_TOKEN;\n\n if (!accessToken) {\n throw new PaymentException(\n \"Polar access token is required. Please set the POLAR_ACCESS_TOKEN environment variable.\",\n \"TOKEN_REQUIRED\",\n );\n }\n\n this.client = new Polar({\n accessToken,\n server: (this.env.POLAR_ENVIRONMENT as \"sandbox\" | \"production\") || \"production\",\n });\n }\n\n private toRecurringInterval(period?: SubscriptionPeriodType): SubscriptionRecurringInterval | null {\n if (!period) return null;\n\n switch (period) {\n case \"monthly\":\n return \"month\";\n case \"yearly\":\n return \"year\";\n default:\n return null;\n }\n }\n\n public async create(data: IProduct): Promise<Omit<IProduct, \"id\">> {\n const response = await this.client.products.create({\n name: data.name,\n description: data.description ?? null,\n recurringInterval: this.toRecurringInterval(data.recurringInterval),\n prices:\n data.prices?.map((price) => ({\n type: price.type,\n priceCurrency: price.priceCurrency ?? \"usd\",\n priceAmount: price.priceAmount,\n minimumAmount: price.minimumAmount,\n maximumAmount: price.maximumAmount,\n presetAmount: price.presetAmount,\n })) ?? [],\n medias: data.images?.map((image) => image.url) ?? null,\n organizationId: data.organizationId ?? null,\n metadata: data.metadata,\n attachedCustomFields: data.attachedCustomFields?.map((field) => ({\n customFieldId: field.customFieldId,\n required: field.required,\n })),\n });\n\n return this.mapResponse(response);\n }\n\n public async update(id: string, data: Partial<IProduct>): Promise<Omit<IProduct, \"id\">> {\n const response = await this.client.products.update({\n id,\n productUpdate: {\n name: data.name ?? null,\n description: data.description ?? null,\n isArchived: data.isArchived ?? null,\n recurringInterval: this.toRecurringInterval(data.recurringInterval),\n prices:\n data.prices?.map((price) => ({\n type: price.type,\n priceCurrency: price.priceCurrency ?? \"usd\",\n priceAmount: price.priceAmount,\n minimumAmount: price.minimumAmount,\n maximumAmount: price.maximumAmount,\n presetAmount: price.presetAmount,\n })) ?? null,\n medias: data.images?.map((image) => image.url) ?? null,\n metadata: data.metadata,\n attachedCustomFields:\n data.attachedCustomFields?.map((field) => ({\n customFieldId: field.customFieldId,\n required: field.required,\n })) ?? null,\n },\n });\n\n return this.mapResponse(response);\n }\n\n public async remove(id: string): Promise<void> {\n await this.client.products.update({\n id,\n productUpdate: {\n isArchived: true,\n },\n });\n }\n\n private mapResponse(response: {\n id: string;\n createdAt: Date;\n modifiedAt: Date | null;\n name: string;\n description: string | null;\n isRecurring: boolean;\n isArchived: boolean;\n organizationId: string;\n metadata: Record<string, string | number | boolean>;\n prices: unknown[];\n benefits: unknown[];\n attachedCustomFields: unknown[];\n }): Omit<IProduct, \"id\"> {\n const product: Omit<IProduct, \"id\"> = {\n key: response.id,\n name: response.name,\n isRecurring: response.isRecurring,\n isArchived: response.isArchived,\n organizationId: response.organizationId,\n metadata: response.metadata,\n prices: response.prices as PriceType[],\n benefits: response.benefits as BenefitType[],\n attachedCustomFields: response.attachedCustomFields as CustomFieldType[],\n };\n\n if (response.createdAt) {\n product.createdAt = response.createdAt;\n }\n\n if (response.modifiedAt) {\n product.updatedAt = response.modifiedAt;\n }\n\n if (response.description) {\n product.description = response.description;\n }\n\n return product;\n }\n}\n",
6
+ "import { Polar } from \"@polar-sh/sdk\";\nimport type { RFCDate } from \"@polar-sh/sdk/types/rfcdate.js\";\nimport { AppEnv } from \"@talosjs/app-env\";\nimport { inject, injectable } from \"@talosjs/container\";\nimport { PaymentException } from \"./PaymentException\";\nimport type {\n AnalyticsIntervalsLimitsType,\n AnalyticsLimitsType,\n AnalyticsMetricInfoType,\n AnalyticsMetricsType,\n AnalyticsOptionsType,\n AnalyticsPeriodType,\n AnalyticsResponseType,\n BillingTypeType,\n} from \"./types\";\n\n@injectable()\nexport class PolarAnalytics {\n private client: Polar;\n\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n const accessToken = this.env.POLAR_ACCESS_TOKEN;\n\n if (!accessToken) {\n throw new PaymentException(\n \"Polar access token is required. Please set the POLAR_ACCESS_TOKEN environment variable.\",\n \"TOKEN_REQUIRED\",\n );\n }\n\n this.client = new Polar({\n accessToken,\n server: (this.env.POLAR_ENVIRONMENT as \"sandbox\" | \"production\") || \"production\",\n });\n }\n\n public async get(options: AnalyticsOptionsType): Promise<AnalyticsResponseType> {\n const response = await this.client.metrics.get({\n startDate: this.toRFCDate(options.startDate),\n endDate: this.toRFCDate(options.endDate),\n interval: options.interval,\n organizationId: options.organizationId ?? null,\n productId: options.productId ?? null,\n billingType: (options.billingType as BillingTypeType) ?? null,\n customerId: options.customerId ?? null,\n });\n\n return {\n periods: response.periods.map((period) => this.mapPeriod(period)),\n metrics: this.mapMetrics(response.metrics),\n };\n }\n\n public async getLimits(): Promise<AnalyticsLimitsType> {\n const response = await this.client.metrics.limits();\n\n return {\n minDate: new Date(response.minDate.toString()),\n intervals: this.mapIntervalsLimits(response.intervals),\n };\n }\n\n private toRFCDate(date: Date): RFCDate {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n\n return `${year}-${month}-${day}` as unknown as RFCDate;\n }\n\n private mapPeriod(period: {\n timestamp: Date;\n orders: number;\n revenue: number;\n cumulativeRevenue: number;\n averageOrderValue: number;\n oneTimeProducts: number;\n oneTimeProductsRevenue: number;\n newSubscriptions: number;\n newSubscriptionsRevenue: number;\n renewedSubscriptions: number;\n renewedSubscriptionsRevenue: number;\n activeSubscriptions: number;\n monthlyRecurringRevenue: number;\n }): AnalyticsPeriodType {\n return {\n timestamp: period.timestamp,\n orders: period.orders,\n revenue: period.revenue,\n cumulativeRevenue: period.cumulativeRevenue,\n averageOrderValue: period.averageOrderValue,\n oneTimeProducts: period.oneTimeProducts,\n oneTimeProductsRevenue: period.oneTimeProductsRevenue,\n newSubscriptions: period.newSubscriptions,\n newSubscriptionsRevenue: period.newSubscriptionsRevenue,\n renewedSubscriptions: period.renewedSubscriptions,\n renewedSubscriptionsRevenue: period.renewedSubscriptionsRevenue,\n activeSubscriptions: period.activeSubscriptions,\n monthlyRecurringRevenue: period.monthlyRecurringRevenue,\n };\n }\n\n private mapMetricInfo(metric: { slug: string; displayName: string; type: string }): AnalyticsMetricInfoType {\n return {\n slug: metric.slug,\n displayName: metric.displayName,\n type: metric.type,\n };\n }\n\n private mapMetrics(metrics: {\n orders: { slug: string; displayName: string; type: string };\n revenue: { slug: string; displayName: string; type: string };\n cumulativeRevenue: { slug: string; displayName: string; type: string };\n averageOrderValue: { slug: string; displayName: string; type: string };\n oneTimeProducts: { slug: string; displayName: string; type: string };\n oneTimeProductsRevenue: { slug: string; displayName: string; type: string };\n newSubscriptions: { slug: string; displayName: string; type: string };\n newSubscriptionsRevenue: { slug: string; displayName: string; type: string };\n renewedSubscriptions: { slug: string; displayName: string; type: string };\n renewedSubscriptionsRevenue: { slug: string; displayName: string; type: string };\n activeSubscriptions: { slug: string; displayName: string; type: string };\n monthlyRecurringRevenue: { slug: string; displayName: string; type: string };\n }): AnalyticsMetricsType {\n return {\n orders: this.mapMetricInfo(metrics.orders),\n revenue: this.mapMetricInfo(metrics.revenue),\n cumulativeRevenue: this.mapMetricInfo(metrics.cumulativeRevenue),\n averageOrderValue: this.mapMetricInfo(metrics.averageOrderValue),\n oneTimeProducts: this.mapMetricInfo(metrics.oneTimeProducts),\n oneTimeProductsRevenue: this.mapMetricInfo(metrics.oneTimeProductsRevenue),\n newSubscriptions: this.mapMetricInfo(metrics.newSubscriptions),\n newSubscriptionsRevenue: this.mapMetricInfo(metrics.newSubscriptionsRevenue),\n renewedSubscriptions: this.mapMetricInfo(metrics.renewedSubscriptions),\n renewedSubscriptionsRevenue: this.mapMetricInfo(metrics.renewedSubscriptionsRevenue),\n activeSubscriptions: this.mapMetricInfo(metrics.activeSubscriptions),\n monthlyRecurringRevenue: this.mapMetricInfo(metrics.monthlyRecurringRevenue),\n };\n }\n\n private mapIntervalsLimits(intervals: {\n hour: { maxDays: number };\n day: { maxDays: number };\n week: { maxDays: number };\n month: { maxDays: number };\n year: { maxDays: number };\n }): AnalyticsIntervalsLimitsType {\n return {\n hour: { maxDays: intervals.hour.maxDays },\n day: { maxDays: intervals.day.maxDays },\n week: { maxDays: intervals.week.maxDays },\n month: { maxDays: intervals.month.maxDays },\n year: { maxDays: intervals.year.maxDays },\n };\n }\n}\n",
7
+ "import { Polar } from \"@polar-sh/sdk\";\nimport { AppEnv } from \"@talosjs/app-env\";\nimport { inject, injectable } from \"@talosjs/container\";\nimport type { CurrencyCodeType } from \"@talosjs/currencies\";\nimport { PaymentException } from \"./PaymentException\";\nimport type {\n CheckoutAddressType,\n CheckoutCreateType,\n CheckoutCustomerType,\n CheckoutResponseType,\n CheckoutStatusType,\n CheckoutType,\n} from \"./types\";\n\n@injectable()\nexport class PolarCheckout {\n private client: Polar;\n\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n const accessToken = this.env.POLAR_ACCESS_TOKEN;\n\n if (!accessToken) {\n throw new PaymentException(\n \"Polar access token is required. Please set the POLAR_ACCESS_TOKEN environment variable.\",\n \"TOKEN_REQUIRED\",\n );\n }\n\n this.client = new Polar({\n accessToken,\n server: (this.env.POLAR_ENVIRONMENT as \"sandbox\" | \"production\") || \"production\",\n });\n }\n\n public async create(data: CheckoutCreateType): Promise<CheckoutType> {\n const response = await this.client.checkouts.create({\n products: data.products,\n customerExternalId: data.customerExternalId ?? null,\n customerId: data.customerId ?? null,\n customerEmail: data.customerEmail ?? null,\n customerName: data.customerName ?? null,\n customerBillingAddress: data.customerBillingAddress?.country\n ? {\n country: data.customerBillingAddress.country,\n line1: data.customerBillingAddress.line1 ?? null,\n line2: data.customerBillingAddress.line2 ?? null,\n city: data.customerBillingAddress.city ?? null,\n state: data.customerBillingAddress.state ?? null,\n postalCode: data.customerBillingAddress.postalCode ?? null,\n }\n : null,\n customerTaxId: data.customerTaxId ?? null,\n discountId: data.discountId ?? null,\n allowDiscountCodes: data.allowDiscountCodes ?? true,\n successUrl: data.successUrl ?? null,\n embedOrigin: data.embedOrigin ?? null,\n metadata: data.metadata,\n });\n\n return this.mapResponse(response as unknown as CheckoutResponseType);\n }\n\n public async get(id: string): Promise<CheckoutType> {\n const response = await this.client.checkouts.get({ id });\n\n return this.mapResponse(response as unknown as CheckoutResponseType);\n }\n\n private mapResponse(response: CheckoutResponseType): CheckoutType {\n const checkout: CheckoutType = {\n id: response.id,\n status: response.status as CheckoutStatusType,\n clientSecret: response.clientSecret,\n };\n\n if (response.url) {\n checkout.url = response.url;\n }\n\n if (response.embedId) {\n checkout.embedId = response.embedId;\n }\n\n if (response.allowDiscountCodes !== undefined) {\n checkout.allowDiscountCodes = response.allowDiscountCodes;\n }\n\n if (response.isDiscountApplicable !== undefined) {\n checkout.isDiscountApplicable = response.isDiscountApplicable;\n }\n\n if (response.isPaymentRequired !== undefined) {\n checkout.isPaymentRequired = response.isPaymentRequired;\n }\n\n if (response.metadata) {\n checkout.metadata = response.metadata;\n }\n\n if (response.createdAt) {\n checkout.createdAt = response.createdAt;\n }\n\n if (response.modifiedAt) {\n checkout.updatedAt = response.modifiedAt;\n }\n\n if (response.expiresAt) {\n checkout.expiresAt = response.expiresAt;\n }\n\n if (response.successUrl) {\n checkout.successUrl = response.successUrl;\n }\n\n if (response.embedOrigin) {\n checkout.embedOrigin = response.embedOrigin;\n }\n\n if (response.amount !== undefined) {\n checkout.amount = response.amount;\n }\n\n if (response.taxAmount !== undefined) {\n checkout.taxAmount = response.taxAmount;\n }\n\n if (response.currency) {\n checkout.currency = response.currency as CurrencyCodeType;\n }\n\n if (response.subtotalAmount !== undefined) {\n checkout.subtotalAmount = response.subtotalAmount;\n }\n\n if (response.totalAmount !== undefined) {\n checkout.totalAmount = response.totalAmount;\n }\n\n if (response.productId) {\n checkout.productId = response.productId;\n }\n\n if (response.productPriceId) {\n checkout.productPriceId = response.productPriceId;\n }\n\n if (response.discountId) {\n checkout.discountId = response.discountId;\n }\n\n if (response.customer) {\n checkout.customer = {\n id: response.customer.id,\n email: response.customer.email,\n name: response.customer.name,\n externalId: response.customer.externalId,\n taxId: response.customer.taxId,\n } as CheckoutCustomerType;\n\n if (response.customer.billingAddress) {\n checkout.customer.billingAddress = response.customer.billingAddress as CheckoutAddressType;\n }\n }\n\n return checkout;\n }\n}\n",
8
+ "import { Polar } from \"@polar-sh/sdk\";\nimport type { Address } from \"@polar-sh/sdk/models/components/address.js\";\nimport { AppEnv } from \"@talosjs/app-env\";\nimport { inject, injectable } from \"@talosjs/container\";\nimport { PaymentException } from \"./PaymentException\";\nimport type {\n CustomerAddressType,\n CustomerCreateType,\n CustomerListOptionsType,\n CustomerListResponseType,\n CustomerListResultType,\n CustomerResponseType,\n CustomerType,\n CustomerUpdateType,\n} from \"./types\";\n\n@injectable()\nexport class PolarCustomer {\n private client: Polar;\n\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n const accessToken = this.env.POLAR_ACCESS_TOKEN;\n\n if (!accessToken) {\n throw new PaymentException(\n \"Polar access token is required. Please set the POLAR_ACCESS_TOKEN environment variable.\",\n \"TOKEN_REQUIRED\",\n );\n }\n\n this.client = new Polar({\n accessToken,\n server: (this.env.POLAR_ENVIRONMENT as \"sandbox\" | \"production\") || \"production\",\n });\n }\n\n public async create(data: CustomerCreateType): Promise<CustomerType> {\n const response = await this.client.customers.create({\n email: data.email,\n name: data.name ?? null,\n externalId: data.externalId ?? null,\n billingAddress: data.billingAddress ? this.toBillingAddress(data.billingAddress) : null,\n taxId: data.taxId ? [data.taxId, null] : null,\n organizationId: data.organizationId ?? null,\n metadata: data.metadata,\n });\n\n return this.mapResponse(response as unknown as CustomerResponseType);\n }\n\n public async update(id: string, data: CustomerUpdateType): Promise<CustomerType> {\n const response = await this.client.customers.update({\n id,\n customerUpdate: {\n email: data.email ?? null,\n name: data.name ?? null,\n billingAddress: data.billingAddress ? this.toBillingAddress(data.billingAddress) : null,\n taxId: data.taxId ? [data.taxId, null] : null,\n metadata: data.metadata,\n },\n });\n\n return this.mapResponse(response as unknown as CustomerResponseType);\n }\n\n public async remove(id: string): Promise<void> {\n await this.client.customers.delete({ id });\n }\n\n public async get(id: string): Promise<CustomerType> {\n const response = await this.client.customers.get({ id });\n\n return this.mapResponse(response as unknown as CustomerResponseType);\n }\n\n public async list(options?: CustomerListOptionsType): Promise<CustomerListResultType> {\n const response = await this.client.customers.list({\n organizationId: options?.organizationId,\n email: options?.email,\n query: options?.query,\n page: options?.page ?? 1,\n limit: options?.limit ?? 10,\n });\n\n const result = response as unknown as CustomerListResponseType;\n\n return {\n items: result.result.items.map((item) => this.mapResponse(item)),\n pagination: {\n totalCount: result.result.pagination.totalCount,\n maxPage: result.result.pagination.maxPage,\n },\n };\n }\n\n public async getByExternalId(externalId: string): Promise<CustomerType> {\n const response = await this.client.customers.getExternal({ externalId });\n\n return this.mapResponse(response as unknown as CustomerResponseType);\n }\n\n public async updateByExternalId(externalId: string, data: CustomerUpdateType): Promise<CustomerType> {\n const response = await this.client.customers.updateExternal({\n externalId,\n customerUpdate: {\n email: data.email ?? null,\n name: data.name ?? null,\n billingAddress: data.billingAddress ? this.toBillingAddress(data.billingAddress) : null,\n taxId: data.taxId ? [data.taxId, null] : null,\n metadata: data.metadata,\n },\n });\n\n return this.mapResponse(response as unknown as CustomerResponseType);\n }\n\n public async removeByExternalId(externalId: string): Promise<void> {\n await this.client.customers.deleteExternal({ externalId });\n }\n\n private toBillingAddress(address: CustomerAddressType): Address {\n return {\n country: address.country ?? \"\",\n line1: address.line1,\n line2: address.line2,\n city: address.city,\n state: address.state,\n postalCode: address.postalCode,\n };\n }\n\n private mapResponse(response: CustomerResponseType): CustomerType {\n const customer: CustomerType = {\n id: response.id,\n email: response.email,\n emailVerified: response.emailVerified ?? false,\n };\n\n if (response.createdAt) {\n customer.createdAt = response.createdAt;\n }\n\n if (response.modifiedAt) {\n customer.updatedAt = response.modifiedAt;\n }\n\n if (response.deletedAt) {\n customer.deletedAt = response.deletedAt;\n }\n\n if (response.name) {\n customer.name = response.name;\n }\n\n if (response.externalId) {\n customer.externalId = response.externalId;\n }\n\n if (response.avatarUrl) {\n customer.avatarUrl = response.avatarUrl;\n }\n\n if (response.billingAddress) {\n const billingAddress: CustomerAddressType = {};\n if (response.billingAddress.line1) {\n billingAddress.line1 = response.billingAddress.line1;\n }\n if (response.billingAddress.line2) {\n billingAddress.line2 = response.billingAddress.line2;\n }\n if (response.billingAddress.city) {\n billingAddress.city = response.billingAddress.city;\n }\n if (response.billingAddress.state) {\n billingAddress.state = response.billingAddress.state;\n }\n if (response.billingAddress.postalCode) {\n billingAddress.postalCode = response.billingAddress.postalCode;\n }\n if (response.billingAddress.country) {\n billingAddress.country = response.billingAddress.country;\n }\n customer.billingAddress = billingAddress;\n }\n\n if (response.taxId) {\n const taxIdValue = typeof response.taxId === \"string\" ? response.taxId : response.taxId[1];\n customer.taxId = taxIdValue;\n }\n\n if (response.organizationId) {\n customer.organizationId = response.organizationId;\n }\n\n if (response.metadata) {\n customer.metadata = response.metadata;\n }\n\n return customer;\n }\n}\n",
9
+ "import { Polar } from \"@polar-sh/sdk\";\nimport { AppEnv } from \"@talosjs/app-env\";\nimport { inject, injectable } from \"@talosjs/container\";\nimport { PaymentException } from \"./PaymentException\";\nimport type { CustomerSessionCreateType, CustomerSessionResponseType, CustomerSessionType } from \"./types\";\n\n@injectable()\nexport class PolarCustomerPortal {\n private client: Polar;\n\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n const accessToken = this.env.POLAR_ACCESS_TOKEN;\n\n if (!accessToken) {\n throw new PaymentException(\n \"Polar access token is required. Please set the POLAR_ACCESS_TOKEN environment variable.\",\n \"TOKEN_REQUIRED\",\n );\n }\n\n this.client = new Polar({\n accessToken,\n server: (this.env.POLAR_ENVIRONMENT as \"sandbox\" | \"production\") || \"production\",\n });\n }\n\n public async create(data: CustomerSessionCreateType): Promise<CustomerSessionType> {\n const response = await this.client.customerSessions.create({\n customerId: data.customerId,\n });\n\n return this.mapResponse(response as unknown as CustomerSessionResponseType);\n }\n\n public getPortalUrl(organizationSlug: string): string {\n const baseUrl = this.env.POLAR_ENVIRONMENT === \"sandbox\" ? \"https://sandbox.polar.sh\" : \"https://polar.sh\";\n\n return `${baseUrl}/${organizationSlug}/portal`;\n }\n\n private mapResponse(response: CustomerSessionResponseType): CustomerSessionType {\n const session: CustomerSessionType = {\n id: response.id,\n token: response.token,\n customerPortalUrl: response.customerPortalUrl,\n };\n\n if (response.createdAt) {\n session.createdAt = response.createdAt;\n }\n\n if (response.expiresAt) {\n session.expiresAt = response.expiresAt;\n }\n\n if (response.customerId) {\n session.customerId = response.customerId;\n }\n\n return session;\n }\n}\n",
10
+ "import { Polar } from \"@polar-sh/sdk\";\nimport { AppEnv } from \"@talosjs/app-env\";\nimport { inject, injectable } from \"@talosjs/container\";\nimport type { CurrencyCodeType } from \"@talosjs/currencies\";\nimport { PaymentException } from \"./PaymentException\";\nimport type { DiscountDurationType, DiscountResponseType, DiscountType, IDiscount, IProduct } from \"./types\";\n\n@injectable()\nexport class PolarDiscount {\n private client: Polar;\n\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n const accessToken = this.env.POLAR_ACCESS_TOKEN;\n\n if (!accessToken) {\n throw new PaymentException(\n \"Polar access token is required. Please set the POLAR_ACCESS_TOKEN environment variable.\",\n \"TOKEN_REQUIRED\",\n );\n }\n\n this.client = new Polar({\n accessToken,\n server: (this.env.POLAR_ENVIRONMENT as \"sandbox\" | \"production\") || \"production\",\n });\n }\n\n private toDiscountType(type: DiscountType): \"percentage\" | \"fixed\" {\n return type === \"percentage\" ? \"percentage\" : \"fixed\";\n }\n\n private toDiscountDuration(duration: DiscountDurationType): \"once\" | \"repeating\" | \"forever\" {\n switch (duration) {\n case \"once\":\n return \"once\";\n case \"repeating\":\n return \"repeating\";\n case \"forever\":\n return \"forever\";\n default:\n return \"once\";\n }\n }\n\n public async create(data: IDiscount): Promise<IDiscount> {\n const discountType = this.toDiscountType(data.type);\n const duration = this.toDiscountDuration(data.duration);\n\n const basePayload = {\n name: data.name,\n code: data.code ?? null,\n startsAt: data.startAt ?? null,\n endsAt: data.endAt ?? null,\n maxRedemptions: data.maxRedemptions ?? null,\n organizationId: data.organizationId ?? null,\n metadata: data.metadata,\n products: data.applicableProducts?.map((p) => p.id as string) ?? null,\n };\n\n let response: unknown;\n\n if (discountType === \"percentage\") {\n if (duration === \"repeating\") {\n response = await this.client.discounts.create({\n ...basePayload,\n type: \"percentage\",\n basisPoints: data.amount * 100,\n duration: \"repeating\",\n durationInMonths: data.durationInMonths ?? 1,\n });\n } else {\n response = await this.client.discounts.create({\n ...basePayload,\n type: \"percentage\",\n basisPoints: data.amount * 100,\n duration: duration as \"once\" | \"forever\",\n });\n }\n } else {\n if (duration === \"repeating\") {\n response = await this.client.discounts.create({\n ...basePayload,\n type: \"fixed\",\n amount: data.amount,\n currency: data.currency ?? \"usd\",\n duration: \"repeating\",\n durationInMonths: data.durationInMonths ?? 1,\n });\n } else {\n response = await this.client.discounts.create({\n ...basePayload,\n type: \"fixed\",\n amount: data.amount,\n currency: data.currency ?? \"usd\",\n duration: duration as \"once\" | \"forever\",\n });\n }\n }\n\n return this.mapResponse(response as unknown as DiscountResponseType);\n }\n\n public async update(id: string, data: Partial<IDiscount>): Promise<IDiscount> {\n const response = await this.client.discounts.update({\n id,\n discountUpdate: {\n name: data.name ?? null,\n code: data.code ?? null,\n startsAt: data.startAt ?? null,\n endsAt: data.endAt ?? null,\n maxRedemptions: data.maxRedemptions ?? null,\n metadata: data.metadata,\n products: data.applicableProducts?.map((p) => p.id as string) ?? null,\n },\n });\n\n return this.mapResponse(response as unknown as DiscountResponseType);\n }\n\n public async remove(id: string): Promise<void> {\n await this.client.discounts.delete({ id });\n }\n\n public async get(id: string): Promise<IDiscount> {\n const response = await this.client.discounts.get({ id });\n\n return this.mapResponse(response as unknown as DiscountResponseType);\n }\n\n private mapResponse(response: DiscountResponseType): IDiscount {\n const discount: IDiscount = {\n id: response.id,\n name: response.name,\n type: response.type as DiscountType,\n amount: response.type === \"percentage\" ? (response.basisPoints ?? 0) / 100 : (response.amount ?? 0),\n duration: response.duration as DiscountDurationType,\n redemptionsCount: response.redemptionsCount,\n metadata: response.metadata,\n };\n\n if (response.createdAt) {\n discount.createdAt = response.createdAt;\n }\n\n if (response.modifiedAt) {\n discount.updatedAt = response.modifiedAt;\n }\n\n if (response.code) {\n discount.code = response.code;\n }\n\n if (response.startsAt) {\n discount.startAt = response.startsAt;\n }\n\n if (response.endsAt) {\n discount.endAt = response.endsAt;\n }\n\n if (response.maxRedemptions) {\n discount.maxRedemptions = response.maxRedemptions;\n }\n\n if (response.durationInMonths) {\n discount.durationInMonths = response.durationInMonths;\n }\n\n if (response.organizationId) {\n discount.organizationId = response.organizationId;\n }\n\n if (response.currency) {\n discount.currency = response.currency as CurrencyCodeType;\n }\n\n if (response.products) {\n discount.applicableProducts = response.products.map(\n (p: { id: string; name: string }) =>\n ({\n id: p.id,\n name: p.name,\n }) as IProduct,\n );\n }\n\n return discount;\n }\n}\n",
11
+ "import { Polar } from \"@polar-sh/sdk\";\nimport type { SubscriptionRecurringInterval } from \"@polar-sh/sdk/models/components/subscriptionrecurringinterval.js\";\nimport { AppEnv } from \"@talosjs/app-env\";\nimport { inject, injectable } from \"@talosjs/container\";\nimport { PaymentException } from \"./PaymentException\";\nimport type { BenefitType, CustomFieldType, IProduct, PriceType, SubscriptionPeriodType } from \"./types\";\n\n@injectable()\nexport class PolarProduct {\n private client: Polar;\n\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n const accessToken = this.env.POLAR_ACCESS_TOKEN;\n\n if (!accessToken) {\n throw new PaymentException(\n \"Polar access token is required. Please set the POLAR_ACCESS_TOKEN environment variable.\",\n \"TOKEN_REQUIRED\",\n );\n }\n\n this.client = new Polar({\n accessToken,\n server: (this.env.POLAR_ENVIRONMENT as \"sandbox\" | \"production\") || \"production\",\n });\n }\n\n private toRecurringInterval(period?: SubscriptionPeriodType): SubscriptionRecurringInterval | null {\n if (!period) return null;\n\n switch (period) {\n case \"monthly\":\n return \"month\";\n case \"yearly\":\n return \"year\";\n default:\n return null;\n }\n }\n\n public async create(data: IProduct): Promise<Omit<IProduct, \"id\">> {\n const response = await this.client.products.create({\n name: data.name,\n description: data.description ?? null,\n recurringInterval: this.toRecurringInterval(data.recurringInterval),\n prices:\n data.prices?.map((price) => ({\n type: price.type,\n priceCurrency: price.priceCurrency ?? \"usd\",\n priceAmount: price.priceAmount,\n minimumAmount: price.minimumAmount,\n maximumAmount: price.maximumAmount,\n presetAmount: price.presetAmount,\n })) ?? [],\n medias: data.images?.map((image) => image.url) ?? null,\n organizationId: data.organizationId ?? null,\n metadata: data.metadata,\n attachedCustomFields: data.attachedCustomFields?.map((field) => ({\n customFieldId: field.customFieldId,\n required: field.required,\n })),\n });\n\n return this.mapResponse(response);\n }\n\n public async update(id: string, data: Partial<IProduct>): Promise<Omit<IProduct, \"id\">> {\n const response = await this.client.products.update({\n id,\n productUpdate: {\n name: data.name ?? null,\n description: data.description ?? null,\n isArchived: data.isArchived ?? null,\n recurringInterval: this.toRecurringInterval(data.recurringInterval),\n prices:\n data.prices?.map((price) => ({\n type: price.type,\n priceCurrency: price.priceCurrency ?? \"usd\",\n priceAmount: price.priceAmount,\n minimumAmount: price.minimumAmount,\n maximumAmount: price.maximumAmount,\n presetAmount: price.presetAmount,\n })) ?? null,\n medias: data.images?.map((image) => image.url) ?? null,\n metadata: data.metadata,\n attachedCustomFields:\n data.attachedCustomFields?.map((field) => ({\n customFieldId: field.customFieldId,\n required: field.required,\n })) ?? null,\n },\n });\n\n return this.mapResponse(response);\n }\n\n public async remove(id: string): Promise<void> {\n await this.client.products.update({\n id,\n productUpdate: {\n isArchived: true,\n },\n });\n }\n\n private mapResponse(response: {\n id: string;\n createdAt: Date;\n modifiedAt: Date | null;\n name: string;\n description: string | null;\n isRecurring: boolean;\n isArchived: boolean;\n organizationId: string;\n metadata: Record<string, string | number | boolean>;\n prices: unknown[];\n benefits: unknown[];\n attachedCustomFields: unknown[];\n }): Omit<IProduct, \"id\"> {\n const product: Omit<IProduct, \"id\"> = {\n key: response.id,\n name: response.name,\n isRecurring: response.isRecurring,\n isArchived: response.isArchived,\n organizationId: response.organizationId,\n metadata: response.metadata,\n prices: response.prices as PriceType[],\n benefits: response.benefits as BenefitType[],\n attachedCustomFields: response.attachedCustomFields as CustomFieldType[],\n };\n\n if (response.createdAt) {\n product.createdAt = response.createdAt;\n }\n\n if (response.modifiedAt) {\n product.updatedAt = response.modifiedAt;\n }\n\n if (response.description) {\n product.description = response.description;\n }\n\n return product;\n }\n}\n",
12
12
  "import type { CurrencyCodeType } from \"@talosjs/currencies\";\nimport type { IBase, ScalarType } from \"@talosjs/types\";\n\nexport enum EPriceType {\n FIXED = \"fixed\",\n CUSTOM = \"custom\",\n FREE = \"free\",\n}\n\nexport type PriceTypeType = `${EPriceType}`;\n\nexport type ProductImageType = {\n id: string;\n url: string;\n};\n\nexport type PriceType = {\n type: PriceTypeType;\n priceCurrency?: string;\n priceAmount?: number;\n minimumAmount?: number;\n maximumAmount?: number;\n presetAmount?: number;\n};\n\nexport type CustomFieldType = {\n customFieldId: string;\n required: boolean;\n};\n\nexport enum EDiscountType {\n PERCENTAGE = \"percentage\",\n FIXED = \"fixed\",\n}\n\nexport enum EDiscountDuration {\n ONCE = \"once\",\n REPEATING = \"repeating\",\n FOREVER = \"forever\",\n}\n\nexport type DiscountDurationType = `${EDiscountDuration}`;\n\nexport enum ESubscriptionPeriod {\n MONTHLY = \"monthly\",\n YEARLY = \"yearly\",\n WEEKLY = \"weekly\",\n DAILY = \"daily\",\n}\n\nexport type DiscountType = `${EDiscountType}`;\nexport type SubscriptionPeriodType = `${ESubscriptionPeriod}`;\n\nexport enum EBenefitType {\n CREDITS = \"credits\",\n LICENSE_KEYS = \"license_keys\",\n FILE_DOWNLOADS = \"file_downloads\",\n GITHUB_REPOSITORY_ACCESS = \"github_repository_access\",\n DISCORD_ACCESS = \"discord_access\",\n CUSTOM = \"custom\",\n}\n\nexport type BenefitTypeType = `${EBenefitType}`;\n\nexport enum EGitHubPermission {\n READ = \"read\",\n TRIAGE = \"triage\",\n WRITE = \"write\",\n MAINTAIN = \"maintain\",\n ADMIN = \"admin\",\n}\n\nexport type GitHubPermissionType = `${EGitHubPermission}`;\n\nexport type BenefitBaseType = {\n type: BenefitTypeType;\n name: string;\n description?: string;\n isSelectable?: boolean;\n isDeletable?: boolean;\n organizationId?: string;\n};\n\nexport type CreditsBenefitType = BenefitBaseType & {\n type: typeof EBenefitType.CREDITS;\n amount: number;\n rollover?: boolean;\n};\n\nexport type LicenseKeysBenefitType = BenefitBaseType & {\n type: typeof EBenefitType.LICENSE_KEYS;\n prefix?: string;\n expiresInDays?: number;\n expiresInMonths?: number;\n expiresInYears?: number;\n activationLimit?: number;\n usageLimit?: number;\n};\n\nexport type FileDownloadsBenefitType = BenefitBaseType & {\n type: typeof EBenefitType.FILE_DOWNLOADS;\n files?: BenefitFileType[];\n};\n\nexport type BenefitFileType = {\n id: string;\n name: string;\n size: number;\n mimeType?: string;\n checksum?: string;\n isEnabled?: boolean;\n};\n\nexport type GitHubRepositoryAccessBenefitType = BenefitBaseType & {\n type: typeof EBenefitType.GITHUB_REPOSITORY_ACCESS;\n repositoryOwner: string;\n repositoryName: string;\n permission?: GitHubPermissionType;\n};\n\nexport type DiscordAccessBenefitType = BenefitBaseType & {\n type: typeof EBenefitType.DISCORD_ACCESS;\n guildId: string;\n roleId: string;\n};\n\nexport type CustomBenefitType = BenefitBaseType & {\n type: typeof EBenefitType.CUSTOM;\n note?: string;\n};\n\nexport type BenefitType =\n | CreditsBenefitType\n | LicenseKeysBenefitType\n | FileDownloadsBenefitType\n | GitHubRepositoryAccessBenefitType\n | DiscordAccessBenefitType\n | CustomBenefitType;\n\nexport interface IProduct extends IBase {\n key?: string;\n name: string;\n description?: string;\n categories?: string[];\n currency?: CurrencyCodeType;\n price?: number;\n barcode?: string;\n images?: ProductImageType[];\n attributes?: Record<string, ScalarType>;\n tags?: string[];\n isRecurring?: boolean;\n isArchived?: boolean;\n organizationId?: string;\n recurringInterval?: SubscriptionPeriodType;\n metadata?: Record<string, string | number | boolean>;\n prices?: PriceType[];\n benefits?: BenefitType[];\n attachedCustomFields?: CustomFieldType[];\n}\n\nexport interface IFeature extends IBase {\n name: string;\n description?: string;\n isEnabled?: boolean;\n limit?: number;\n}\n\nexport interface IPlan extends IBase {\n name: string;\n description?: string;\n currency: CurrencyCodeType;\n price: number;\n period: ESubscriptionPeriod;\n periodCount?: number;\n features?: IFeature[];\n isActive?: boolean;\n trialDays?: number;\n}\n\nexport interface ICredit extends IBase {\n balance: number;\n currency?: CurrencyCodeType;\n expiresAt?: Date;\n description?: string;\n}\n\nexport interface ISubscription extends IBase {\n discounts?: IDiscount[];\n plans?: IPlan[];\n credits?: ICredit[];\n startAt: Date;\n endAt?: Date;\n isTrial?: boolean;\n isActive?: boolean;\n}\n\nexport interface IDiscount extends IBase {\n key?: string;\n name: string;\n description?: string;\n code?: string;\n type: DiscountType;\n amount: number;\n currency?: CurrencyCodeType;\n duration: DiscountDurationType;\n durationInMonths?: number;\n startAt?: Date;\n endAt?: Date;\n maxUses?: number;\n usedCount?: number;\n maxRedemptions?: number;\n redemptionsCount?: number;\n isActive?: boolean;\n minimumAmount?: number;\n applicableProducts?: IProduct[];\n applicablePlans?: IPlan[];\n organizationId?: string;\n metadata?: Record<string, string | number | boolean>;\n}\n\nexport enum ECheckoutStatus {\n OPEN = \"open\",\n EXPIRED = \"expired\",\n CONFIRMED = \"confirmed\",\n SUCCEEDED = \"succeeded\",\n FAILED = \"failed\",\n}\n\nexport type CheckoutStatusType = `${ECheckoutStatus}`;\n\nexport type CheckoutCustomerType = {\n id?: string;\n email?: string;\n name?: string;\n externalId?: string;\n billingAddress?: CheckoutAddressType;\n taxId?: string;\n};\n\nexport type CheckoutAddressType = {\n line1?: string;\n line2?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n};\n\nexport type CheckoutCreateType = {\n products: string[];\n customerExternalId?: string;\n customerId?: string;\n customerEmail?: string;\n customerName?: string;\n customerBillingAddress?: CheckoutAddressType;\n customerTaxId?: string;\n discountId?: string;\n allowDiscountCodes?: boolean;\n successUrl?: string;\n embedOrigin?: string;\n metadata?: Record<string, string | number | boolean>;\n};\n\nexport type CheckoutType = {\n id: string;\n url?: string;\n embedId?: string;\n status: CheckoutStatusType;\n clientSecret: string;\n createdAt?: Date;\n updatedAt?: Date;\n expiresAt?: Date;\n successUrl?: string;\n embedOrigin?: string;\n amount?: number;\n taxAmount?: number;\n currency?: CurrencyCodeType;\n subtotalAmount?: number;\n totalAmount?: number;\n productId?: string;\n productPriceId?: string;\n discountId?: string;\n allowDiscountCodes?: boolean;\n isDiscountApplicable?: boolean;\n isPaymentRequired?: boolean;\n customer?: CheckoutCustomerType;\n metadata?: Record<string, string | number | boolean>;\n};\n\nexport type CustomerSessionCreateType = {\n customerId: string;\n};\n\nexport type CustomerSessionType = {\n id: string;\n token: string;\n customerPortalUrl: string;\n createdAt?: Date;\n expiresAt?: Date;\n customerId?: string;\n};\n\nexport type CustomerAddressType = {\n line1?: string;\n line2?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n};\n\nexport type CustomerCreateType = {\n email: string;\n name?: string;\n externalId?: string;\n billingAddress?: CustomerAddressType;\n taxId?: string;\n organizationId?: string;\n metadata?: Record<string, string | number | boolean>;\n};\n\nexport type CustomerUpdateType = {\n email?: string;\n name?: string;\n billingAddress?: CustomerAddressType;\n taxId?: string;\n metadata?: Record<string, string | number | boolean>;\n};\n\nexport type CustomerType = {\n id: string;\n email: string;\n emailVerified: boolean;\n name?: string;\n externalId?: string;\n avatarUrl?: string;\n billingAddress?: CustomerAddressType;\n taxId?: string;\n organizationId?: string;\n metadata?: Record<string, string | number | boolean>;\n createdAt?: Date;\n updatedAt?: Date;\n deletedAt?: Date;\n};\n\nexport type CustomerListOptionsType = {\n organizationId?: string;\n email?: string;\n query?: string;\n page?: number;\n limit?: number;\n};\n\nexport type CustomerListResultType = {\n items: CustomerType[];\n pagination: {\n totalCount: number;\n maxPage: number;\n };\n};\n\nexport enum EAnalyticsInterval {\n YEAR = \"year\",\n MONTH = \"month\",\n WEEK = \"week\",\n DAY = \"day\",\n HOUR = \"hour\",\n}\n\nexport type AnalyticsIntervalType = `${EAnalyticsInterval}`;\n\nexport enum EBillingType {\n ONE_TIME = \"one_time\",\n RECURRING = \"recurring\",\n}\n\nexport type BillingTypeType = `${EBillingType}`;\n\nexport type AnalyticsOptionsType = {\n startDate: Date;\n endDate: Date;\n interval: AnalyticsIntervalType;\n organizationId?: string | string[];\n productId?: string | string[];\n billingType?: BillingTypeType | BillingTypeType[];\n customerId?: string | string[];\n};\n\nexport type AnalyticsPeriodType = {\n timestamp: Date;\n orders: number;\n revenue: number;\n cumulativeRevenue: number;\n averageOrderValue: number;\n oneTimeProducts: number;\n oneTimeProductsRevenue: number;\n newSubscriptions: number;\n newSubscriptionsRevenue: number;\n renewedSubscriptions: number;\n renewedSubscriptionsRevenue: number;\n activeSubscriptions: number;\n monthlyRecurringRevenue: number;\n};\n\nexport type AnalyticsMetricInfoType = {\n slug: string;\n displayName: string;\n type: string;\n};\n\nexport type AnalyticsMetricsType = {\n orders: AnalyticsMetricInfoType;\n revenue: AnalyticsMetricInfoType;\n cumulativeRevenue: AnalyticsMetricInfoType;\n averageOrderValue: AnalyticsMetricInfoType;\n oneTimeProducts: AnalyticsMetricInfoType;\n oneTimeProductsRevenue: AnalyticsMetricInfoType;\n newSubscriptions: AnalyticsMetricInfoType;\n newSubscriptionsRevenue: AnalyticsMetricInfoType;\n renewedSubscriptions: AnalyticsMetricInfoType;\n renewedSubscriptionsRevenue: AnalyticsMetricInfoType;\n activeSubscriptions: AnalyticsMetricInfoType;\n monthlyRecurringRevenue: AnalyticsMetricInfoType;\n};\n\nexport type AnalyticsResponseType = {\n periods: AnalyticsPeriodType[];\n metrics: AnalyticsMetricsType;\n};\n\nexport type AnalyticsIntervalLimitType = {\n maxDays: number;\n};\n\nexport type AnalyticsIntervalsLimitsType = {\n hour: AnalyticsIntervalLimitType;\n day: AnalyticsIntervalLimitType;\n week: AnalyticsIntervalLimitType;\n month: AnalyticsIntervalLimitType;\n year: AnalyticsIntervalLimitType;\n};\n\nexport type AnalyticsLimitsType = {\n minDate: Date;\n intervals: AnalyticsIntervalsLimitsType;\n};\n\nexport type CustomerSessionResponseType = {\n id: string;\n token: string;\n customerPortalUrl: string;\n createdAt?: Date;\n expiresAt?: Date;\n customerId?: string;\n};\n\nexport type DiscountResponseType = {\n id: string;\n createdAt?: Date;\n modifiedAt?: Date;\n name: string;\n code?: string;\n type: string;\n basisPoints?: number;\n amount?: number;\n currency?: string;\n duration: string;\n durationInMonths?: number;\n startsAt?: Date;\n endsAt?: Date;\n maxRedemptions?: number;\n redemptionsCount: number;\n organizationId?: string;\n metadata: Record<string, string | number | boolean>;\n products?: { id: string; name: string }[];\n};\n\nexport type CheckoutResponseType = {\n id: string;\n createdAt?: Date;\n modifiedAt?: Date;\n url?: string;\n embedId?: string;\n status: string;\n clientSecret: string;\n expiresAt?: Date;\n successUrl?: string;\n embedOrigin?: string;\n amount?: number;\n taxAmount?: number;\n currency?: string;\n subtotalAmount?: number;\n totalAmount?: number;\n productId?: string;\n productPriceId?: string;\n discountId?: string;\n allowDiscountCodes?: boolean;\n isDiscountApplicable?: boolean;\n isPaymentRequired?: boolean;\n customer?: {\n id?: string;\n email?: string;\n name?: string;\n externalId?: string;\n billingAddress?: {\n line1?: string;\n line2?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n };\n taxId?: string;\n };\n metadata: Record<string, string | number | boolean>;\n};\n\nexport type CustomerResponseType = {\n id: string;\n createdAt?: Date;\n modifiedAt?: Date;\n deletedAt?: Date;\n email: string;\n emailVerified?: boolean;\n name?: string;\n externalId?: string;\n avatarUrl?: string;\n billingAddress?: {\n line1?: string;\n line2?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n };\n taxId?: string | [string, string];\n organizationId?: string;\n metadata?: Record<string, string | number | boolean>;\n};\n\nexport type CustomerListResponseType = {\n result: {\n items: CustomerResponseType[];\n pagination: {\n totalCount: number;\n maxPage: number;\n };\n };\n};\n"
13
13
  ],
14
- "mappings": "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",
15
- "debugId": "1D32103632506D8764756E2164756E21",
14
+ "mappings": "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",
15
+ "debugId": "33031D37A547AF8A64756E2164756E21",
16
16
  "names": []
17
17
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@talosjs/payment",
3
3
  "description": "Payment and pricing type definitions with currency handling, product categorization, and billing metadata for e-commerce integrations",
4
- "version": "1.1.1",
4
+ "version": "1.1.3",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist",
@@ -24,18 +24,18 @@
24
24
  "scripts": {
25
25
  "build": "bunup",
26
26
  "fmt": "bunx biome check --write",
27
- "lint": "tsgo --noEmit && bunx biome lint"
27
+ "lint": "tsc --noEmit && bunx biome lint"
28
28
  },
29
29
  "dependencies": {
30
- "@talosjs/app-env": "^1.1.2",
31
- "@talosjs/container": "^1.1.1",
32
- "@talosjs/exception": "^1.1.1",
33
- "@talosjs/http-status": "^1.1.1",
30
+ "@talosjs/app-env": "^1.2.3",
31
+ "@talosjs/container": "^1.1.2",
32
+ "@talosjs/exception": "^1.1.2",
33
+ "@talosjs/http-status": "^1.1.2",
34
34
  "@polar-sh/sdk": "^0.30.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@talosjs/currencies": "^1.1.1",
38
- "@talosjs/types": "^1.1.1"
37
+ "@talosjs/currencies": "^1.1.2",
38
+ "@talosjs/types": "^1.1.2"
39
39
  },
40
40
  "keywords": [
41
41
  "billing",