@openmeter/client 1.0.0-beta.228

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.
Files changed (122) hide show
  1. package/README.md +318 -0
  2. package/dist/core.d.ts +10 -0
  3. package/dist/core.js +38 -0
  4. package/dist/funcs/addons.d.ts +11 -0
  5. package/dist/funcs/addons.js +49 -0
  6. package/dist/funcs/apps.d.ts +6 -0
  7. package/dist/funcs/apps.js +18 -0
  8. package/dist/funcs/billing.d.ts +9 -0
  9. package/dist/funcs/billing.js +35 -0
  10. package/dist/funcs/currencies.d.ts +8 -0
  11. package/dist/funcs/currencies.js +35 -0
  12. package/dist/funcs/customers.d.ts +21 -0
  13. package/dist/funcs/customers.js +127 -0
  14. package/dist/funcs/defaults.d.ts +6 -0
  15. package/dist/funcs/defaults.js +13 -0
  16. package/dist/funcs/entitlements.d.ts +5 -0
  17. package/dist/funcs/entitlements.js +10 -0
  18. package/dist/funcs/events.d.ts +6 -0
  19. package/dist/funcs/events.js +19 -0
  20. package/dist/funcs/features.d.ts +10 -0
  21. package/dist/funcs/features.js +43 -0
  22. package/dist/funcs/governance.d.ts +5 -0
  23. package/dist/funcs/governance.js +12 -0
  24. package/dist/funcs/index.d.ts +17 -0
  25. package/dist/funcs/index.js +17 -0
  26. package/dist/funcs/llmCost.d.ts +9 -0
  27. package/dist/funcs/llmCost.js +40 -0
  28. package/dist/funcs/meters.d.ts +10 -0
  29. package/dist/funcs/meters.js +43 -0
  30. package/dist/funcs/planAddons.d.ts +9 -0
  31. package/dist/funcs/planAddons.js +37 -0
  32. package/dist/funcs/plans.d.ts +11 -0
  33. package/dist/funcs/plans.js +49 -0
  34. package/dist/funcs/subscriptions.d.ts +12 -0
  35. package/dist/funcs/subscriptions.js +59 -0
  36. package/dist/funcs/tax.d.ts +9 -0
  37. package/dist/funcs/tax.js +36 -0
  38. package/dist/index.d.ts +42 -0
  39. package/dist/index.js +23 -0
  40. package/dist/lib/config.d.ts +14 -0
  41. package/dist/lib/config.js +13 -0
  42. package/dist/lib/encodings.d.ts +8 -0
  43. package/dist/lib/encodings.js +56 -0
  44. package/dist/lib/request.d.ts +3 -0
  45. package/dist/lib/request.js +11 -0
  46. package/dist/lib/to-error.d.ts +2 -0
  47. package/dist/lib/to-error.js +16 -0
  48. package/dist/lib/types.d.ts +15 -0
  49. package/dist/lib/types.js +13 -0
  50. package/dist/models/errors.d.ts +16 -0
  51. package/dist/models/errors.js +28 -0
  52. package/dist/models/operations/addons.d.ts +38 -0
  53. package/dist/models/operations/addons.js +2 -0
  54. package/dist/models/operations/apps.d.ts +17 -0
  55. package/dist/models/operations/apps.js +2 -0
  56. package/dist/models/operations/billing.d.ts +26 -0
  57. package/dist/models/operations/billing.js +2 -0
  58. package/dist/models/operations/currencies.d.ts +35 -0
  59. package/dist/models/operations/currencies.js +2 -0
  60. package/dist/models/operations/customers.d.ts +117 -0
  61. package/dist/models/operations/customers.js +2 -0
  62. package/dist/models/operations/defaults.d.ts +6 -0
  63. package/dist/models/operations/defaults.js +2 -0
  64. package/dist/models/operations/entitlements.d.ts +6 -0
  65. package/dist/models/operations/entitlements.js +2 -0
  66. package/dist/models/operations/events.d.ts +13 -0
  67. package/dist/models/operations/events.js +2 -0
  68. package/dist/models/operations/features.d.ts +35 -0
  69. package/dist/models/operations/features.js +2 -0
  70. package/dist/models/operations/governance.d.ts +9 -0
  71. package/dist/models/operations/governance.js +2 -0
  72. package/dist/models/operations/llmCost.d.ts +35 -0
  73. package/dist/models/operations/llmCost.js +2 -0
  74. package/dist/models/operations/meters.d.ts +35 -0
  75. package/dist/models/operations/meters.js +2 -0
  76. package/dist/models/operations/planAddons.d.ts +34 -0
  77. package/dist/models/operations/planAddons.js +2 -0
  78. package/dist/models/operations/plans.d.ts +38 -0
  79. package/dist/models/operations/plans.js +2 -0
  80. package/dist/models/operations/subscriptions.d.ts +52 -0
  81. package/dist/models/operations/subscriptions.js +2 -0
  82. package/dist/models/operations/tax.d.ts +28 -0
  83. package/dist/models/operations/tax.js +2 -0
  84. package/dist/models/schemas.d.ts +11372 -0
  85. package/dist/models/schemas.js +4026 -0
  86. package/dist/models/types.d.ts +3385 -0
  87. package/dist/models/types.js +2 -0
  88. package/dist/sdk/addons.d.ts +15 -0
  89. package/dist/sdk/addons.js +30 -0
  90. package/dist/sdk/apps.d.ts +10 -0
  91. package/dist/sdk/apps.js +15 -0
  92. package/dist/sdk/billing.d.ts +13 -0
  93. package/dist/sdk/billing.js +24 -0
  94. package/dist/sdk/currencies.d.ts +12 -0
  95. package/dist/sdk/currencies.js +21 -0
  96. package/dist/sdk/customers.d.ts +67 -0
  97. package/dist/sdk/customers.js +130 -0
  98. package/dist/sdk/defaults.d.ts +10 -0
  99. package/dist/sdk/defaults.js +15 -0
  100. package/dist/sdk/entitlements.d.ts +9 -0
  101. package/dist/sdk/entitlements.js +12 -0
  102. package/dist/sdk/events.d.ts +10 -0
  103. package/dist/sdk/events.js +15 -0
  104. package/dist/sdk/features.d.ts +14 -0
  105. package/dist/sdk/features.js +27 -0
  106. package/dist/sdk/governance.d.ts +9 -0
  107. package/dist/sdk/governance.js +12 -0
  108. package/dist/sdk/llmCost.d.ts +13 -0
  109. package/dist/sdk/llmCost.js +24 -0
  110. package/dist/sdk/meters.d.ts +14 -0
  111. package/dist/sdk/meters.js +27 -0
  112. package/dist/sdk/planAddons.d.ts +13 -0
  113. package/dist/sdk/planAddons.js +24 -0
  114. package/dist/sdk/plans.d.ts +15 -0
  115. package/dist/sdk/plans.js +30 -0
  116. package/dist/sdk/sdk.d.ts +52 -0
  117. package/dist/sdk/sdk.js +84 -0
  118. package/dist/sdk/subscriptions.d.ts +16 -0
  119. package/dist/sdk/subscriptions.js +33 -0
  120. package/dist/sdk/tax.d.ts +13 -0
  121. package/dist/sdk/tax.js +24 -0
  122. package/package.json +33 -0
@@ -0,0 +1,36 @@
1
+ import { http } from '../core.js';
2
+ import { request } from '../lib/request.js';
3
+ import { encodePath, toURLSearchParams } from '../lib/encodings.js';
4
+ export function createTaxCode(client, req, options) {
5
+ return request(() => http(client)
6
+ .post('openmeter/tax-codes', { ...options, json: req })
7
+ .json());
8
+ }
9
+ export function getTaxCode(client, req, options) {
10
+ const path = encodePath('openmeter/tax-codes/{taxCodeId}', { taxCodeId: req.taxCodeId });
11
+ return request(() => http(client)
12
+ .get(path, options)
13
+ .json());
14
+ }
15
+ export function listTaxCodes(client, req = {}, options) {
16
+ const searchParams = toURLSearchParams({
17
+ page: req.page,
18
+ include_deleted: req.include_deleted,
19
+ });
20
+ return request(() => http(client)
21
+ .get('openmeter/tax-codes', { ...options, searchParams })
22
+ .json());
23
+ }
24
+ export function upsertTaxCode(client, req, options) {
25
+ const path = encodePath('openmeter/tax-codes/{taxCodeId}', { taxCodeId: req.taxCodeId });
26
+ return request(() => http(client)
27
+ .put(path, { ...options, json: req.body })
28
+ .json());
29
+ }
30
+ export function deleteTaxCode(client, req, options) {
31
+ const path = encodePath('openmeter/tax-codes/{taxCodeId}', { taxCodeId: req.taxCodeId });
32
+ return request(async () => {
33
+ await http(client).delete(path, options);
34
+ });
35
+ }
36
+ //# sourceMappingURL=tax.js.map
@@ -0,0 +1,42 @@
1
+ export { OpenMeter } from './sdk/sdk.js';
2
+ export { Events } from './sdk/events.js';
3
+ export { Meters } from './sdk/meters.js';
4
+ export { Customers } from './sdk/customers.js';
5
+ export { Entitlements } from './sdk/entitlements.js';
6
+ export { Subscriptions } from './sdk/subscriptions.js';
7
+ export { Apps } from './sdk/apps.js';
8
+ export { Billing } from './sdk/billing.js';
9
+ export { Tax } from './sdk/tax.js';
10
+ export { Currencies } from './sdk/currencies.js';
11
+ export { Features } from './sdk/features.js';
12
+ export { LLMCost } from './sdk/llmCost.js';
13
+ export { Plans } from './sdk/plans.js';
14
+ export { Addons } from './sdk/addons.js';
15
+ export { PlanAddons } from './sdk/planAddons.js';
16
+ export { Defaults } from './sdk/defaults.js';
17
+ export { Governance } from './sdk/governance.js';
18
+ export { Client } from './core.js';
19
+ export { HTTPError } from './models/errors.js';
20
+ export { ServerList, Regions } from './lib/config.js';
21
+ export type { SDKOptions, Region, ServerVariables } from './lib/config.js';
22
+ export type { Result, RequestOptions } from './lib/types.js';
23
+ export { encodePath, encodeSort, querySerializer, toURLSearchParams, } from './lib/encodings.js';
24
+ export * as funcs from './funcs/index.js';
25
+ export type * from './models/operations/events.js';
26
+ export type * from './models/operations/meters.js';
27
+ export type * from './models/operations/customers.js';
28
+ export type * from './models/operations/entitlements.js';
29
+ export type * from './models/operations/subscriptions.js';
30
+ export type * from './models/operations/apps.js';
31
+ export type * from './models/operations/billing.js';
32
+ export type * from './models/operations/tax.js';
33
+ export type * from './models/operations/currencies.js';
34
+ export type * from './models/operations/features.js';
35
+ export type * from './models/operations/llmCost.js';
36
+ export type * from './models/operations/plans.js';
37
+ export type * from './models/operations/addons.js';
38
+ export type * from './models/operations/planAddons.js';
39
+ export type * from './models/operations/defaults.js';
40
+ export type * from './models/operations/governance.js';
41
+ export type { Labels, CursorPaginationQueryPage, SortQuery, IngestedEventValidationError, CursorMetaPage, BaseError, PageMeta, QueryFilterString, AppStripeCheckoutSessionCustomTextParams, AppStripeCreateCustomerPortalSessionOptions, CreateLabels, PriceFree, TaxConfigStripe, TaxConfigExternalInvoicing, FlatFeeDiscounts, WorkflowCollectionAlignmentSubscription, WorkflowInvoicingSettings, WorkflowPaymentChargeAutomaticallySettings, WorkflowPaymentSendInvoiceSettings, LlmCostProvider, LlmCostModel, ProductCatalogValidationError, GovernanceQueryRequestCustomers, GovernanceQueryRequestFeatures, QueryFilterInteger, QueryFilterFloat, QueryFilterBoolean, PagePaginationQuery, PublicLabels, SystemAccountAccessToken, PersonalAccessToken, KonnectAccessToken, UpdateMeterRequest, AppCustomerDataStripe, AppCustomerDataExternalInvoicing, ListCostBasesParamsFilter, PriceFlat, PriceUnit, CurrencyAmount, RateCardDiscounts, Totals, FeatureManualUnitCost, FeatureLlmUnitCostPricing, LlmCostModelPricing, SpendCommitments, QueryFilterNumeric, CursorPaginationQuery, ListMetersParamsFilter, ListLlmCostPricesParamsFilter, LabelsFieldFilter, CustomerReference, ProfileReference, CreateResourceReference, TaxCodeReference, CreditGrantInvoiceReference, BillingCustomerReference, SubscriptionReference, AddonReference, AppReference, CurrencyFiat, FeatureReference, Event, MeterQueryRow, AppStripeCreateCustomerPortalSessionResult, ClosedPeriod, CostBasis, CreateCostBasisRequest, FeatureCostQueryRow, Resource, ResourceImmutable, QueryFilterDateTime, CursorMeta, InvalidParameterStandard, InvalidParameterMinimumLength, InvalidParameterMaximumLength, InvalidParameterChoiceItem, InvalidParameterDependentItem, Unauthorized, Forbidden, NotFound, Gone, Conflict, PayloadTooLarge, UnsupportedMediaType, UnprocessableContent, TooManyRequests, Internal, NotImplemented, NotAvailable, CreateCreditGrantFilters, CreditGrantFilters, UpsertPlanAddonRequest, ResourceWithKey, CreateMeterRequest, Meter, PaginatedMeta, QueryFilterStringMapItem, SubscriptionCreate, CustomerKeyReference, CustomerUsageAttribution, BillingAddress, Address, AppStripeCreateCheckoutSessionCustomerUpdate, AppStripeCreateCheckoutSessionConsentCollectionPaymentMethodReuseAgreement, AppStripeCreateCheckoutSessionTaxIdCollection, AppStripeCreateCheckoutSessionResult, CustomerStripeCreateCustomerPortalSessionRequest, EntitlementAccessResult, CreateCreditGrantPurchase, RecurringPeriod, CreditGrantPurchase, UpdateCreditGrantExternalSettlementRequest, ListCreditGrantsParamsFilter, GetCreditBalanceParamsFilter, ListChargesParamsFilter, ListPlansParamsFilter, RateCardProrationConfiguration, Subscription, AppCatalogItem, TaxCodeAppMapping, PartyTaxIdentity, ListCurrenciesParamsFilter, CurrencyCustom, CreateCurrencyCustomRequest, GovernanceQueryRequest, GovernanceFeatureAccessReason, GovernanceQueryError, UnitConfig, AppCustomerData, UpsertAppCustomerDataRequest, CreditAdjustment, CreditBalance, CreateCreditAdjustmentRequest, ListCreditTransactionsParamsFilter, CreditTransaction, PriceTier, ChargeTotals, FeatureLlmUnitCost, LlmCostPrice, LlmCostOverrideCreate, ListCustomersParamsFilter, ListSubscriptionsParamsFilter, ListFeatureParamsFilter, ListAddonsParamsFilter, CreateCreditGrantTaxConfig, CreditGrantTaxConfig, TaxConfig, RateCardTaxConfig, OrganizationDefaultTaxCodes, UpdateOrganizationDefaultTaxCodesRequest, SubscriptionAddon, PlanAddon, CreatePlanAddonRequest, ProfileAppReferences, ListEventsParamsFilter, ResourceFilters, FieldFilters, IngestedEvent, MeterQueryResult, FeatureCostQueryResult, MeterPagePaginatedResponse, CostBasisPagePaginatedResponse, MeterQueryFilters, FeatureMeterReference, CreateCustomerRequest, Customer, UpsertCustomerRequest, PartyAddresses, AppStripeCreateCheckoutSessionConsentCollection, ListCustomerEntitlementAccessResponseData, WorkflowCollectionAlignmentAnchored, SubscriptionPagePaginatedResponse, SubscriptionChangeResponse, SubscriptionCancel, SubscriptionChange, AppStripe, AppSandbox, AppExternalInvoicing, CreateTaxCodeRequest, TaxCode, UpsertTaxCodeRequest, GovernanceFeatureAccess, InvoiceUsageQuantityDetail, CustomerData, UpsertCustomerBillingDataRequest, CreditBalances, CreditTransactionPaginatedResponse, PriceGraduated, PriceVolume, PricePagePaginatedResponse, CreateCreditGrantRequest, CreditGrant, WorkflowTaxSettings, SubscriptionAddonPagePaginatedResponse, PlanAddonPagePaginatedResponse, IngestedEventPaginatedResponse, InvalidParameters, MeterQueryRequest, CustomerPagePaginatedResponse, Party, AppStripeCreateCheckoutSessionRequestOptions, TaxCodePagePaginatedResponse, CurrencyPagePaginatedResponse, GovernanceQueryResult, Feature, CreateFeatureRequest, UpdateFeatureRequest, CreditGrantPagePaginatedResponse, BadRequest, CustomerStripeCreateCheckoutSessionRequest, WorkflowCollectionSettings, AppPagePaginatedResponse, ProfileApps, GovernanceQueryResponse, FlatFeeCharge, UsageBasedCharge, RateCard, FeaturePagePaginatedResponse, Workflow, PlanPhase, Addon, CreateAddonRequest, UpsertAddonRequest, Profile, CreateBillingProfileRequest, UpsertBillingProfileRequest, ChargePagePaginatedResponse, Plan, CreatePlanRequest, UpsertPlanRequest, AddonPagePaginatedResponse, ProfilePagePaginatedResponse, PlanPagePaginatedResponse, SortQueryInput, BaseErrorInput, WorkflowInvoicingSettingsInput, WorkflowPaymentSendInvoiceSettingsInput, EventInput, UnauthorizedInput, ForbiddenInput, NotFoundInput, GoneInput, ConflictInput, PayloadTooLargeInput, UnsupportedMediaTypeInput, UnprocessableContentInput, TooManyRequestsInput, InternalInput, NotImplementedInput, NotAvailableInput, AppStripeCreateCheckoutSessionCustomerUpdateInput, AppStripeCreateCheckoutSessionTaxIdCollectionInput, CreateCreditGrantPurchaseInput, CreditGrantPurchaseInput, GovernanceQueryRequestInput, UnitConfigInput, IngestedEventInput, SubscriptionCancelInput, InvoiceUsageQuantityDetailInput, CreateCreditGrantRequestInput, CreditGrantInput, WorkflowTaxSettingsInput, IngestedEventPaginatedResponseInput, MeterQueryRequestInput, AppStripeCreateCheckoutSessionRequestOptionsInput, CreditGrantPagePaginatedResponseInput, BadRequestInput, CustomerStripeCreateCheckoutSessionRequestInput, WorkflowCollectionSettingsInput, RateCardInput, WorkflowInput, PlanPhaseInput, AddonInput, CreateAddonRequestInput, UpsertAddonRequestInput, ProfileInput, CreateBillingProfileRequestInput, UpsertBillingProfileRequestInput, PlanInput, CreatePlanRequestInput, UpsertPlanRequestInput, AddonPagePaginatedResponseInput, ProfilePagePaginatedResponseInput, PlanPagePaginatedResponseInput, } from './models/types.js';
42
+ //# sourceMappingURL=index.d.ts.map
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ export { OpenMeter } from './sdk/sdk.js';
2
+ export { Events } from './sdk/events.js';
3
+ export { Meters } from './sdk/meters.js';
4
+ export { Customers } from './sdk/customers.js';
5
+ export { Entitlements } from './sdk/entitlements.js';
6
+ export { Subscriptions } from './sdk/subscriptions.js';
7
+ export { Apps } from './sdk/apps.js';
8
+ export { Billing } from './sdk/billing.js';
9
+ export { Tax } from './sdk/tax.js';
10
+ export { Currencies } from './sdk/currencies.js';
11
+ export { Features } from './sdk/features.js';
12
+ export { LLMCost } from './sdk/llmCost.js';
13
+ export { Plans } from './sdk/plans.js';
14
+ export { Addons } from './sdk/addons.js';
15
+ export { PlanAddons } from './sdk/planAddons.js';
16
+ export { Defaults } from './sdk/defaults.js';
17
+ export { Governance } from './sdk/governance.js';
18
+ export { Client } from './core.js';
19
+ export { HTTPError } from './models/errors.js';
20
+ export { ServerList, Regions } from './lib/config.js';
21
+ export { encodePath, encodeSort, querySerializer, toURLSearchParams, } from './lib/encodings.js';
22
+ export * as funcs from './funcs/index.js';
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,14 @@
1
+ import { type Options } from 'ky';
2
+ export declare const ServerList: readonly ["https://{region}.api.konghq.com/v3", "http://localhost:{port}/api/v3", "https://openmeter.cloud/api/v3"];
3
+ export declare const Regions: readonly ["in", "me", "au", "eu", "us"];
4
+ export type Region = (typeof Regions)[number];
5
+ export type ServerVariables = {
6
+ region?: Region;
7
+ port?: string | number;
8
+ };
9
+ export interface SDKOptions extends Omit<Options, 'method'> {
10
+ baseUrl: (typeof ServerList)[number] | URL | string;
11
+ serverVariables?: ServerVariables;
12
+ apiKey?: string | (() => string | Promise<string>);
13
+ }
14
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1,13 @@
1
+ export const ServerList = [
2
+ 'https://{region}.api.konghq.com/v3',
3
+ 'http://localhost:{port}/api/v3',
4
+ 'https://openmeter.cloud/api/v3',
5
+ ];
6
+ export const Regions = [
7
+ 'in',
8
+ 'me',
9
+ 'au',
10
+ 'eu',
11
+ 'us',
12
+ ];
13
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1,8 @@
1
+ export declare function encodePath(template: string, params: Record<string, string | number>): string;
2
+ export declare function querySerializer(params: Record<string, unknown>): string;
3
+ export declare function toURLSearchParams(params: Record<string, unknown>): URLSearchParams;
4
+ export declare function encodeSort(sort: {
5
+ by?: string;
6
+ order?: 'asc' | 'desc';
7
+ } | undefined): string | undefined;
8
+ //# sourceMappingURL=encodings.d.ts.map
@@ -0,0 +1,56 @@
1
+ export function encodePath(template, params) {
2
+ return template.replace(/\{(\w+)\}/g, (_, key) => {
3
+ const value = params[key];
4
+ if (value === undefined) {
5
+ throw new Error(`missing path parameter: ${key}`);
6
+ }
7
+ return encodeURIComponent(String(value));
8
+ });
9
+ }
10
+ function serializeDeepObject(prefix, value, parts) {
11
+ if (value === null || value === undefined) {
12
+ return;
13
+ }
14
+ if (Array.isArray(value)) {
15
+ parts.push([prefix, value.map(String).join(',')]);
16
+ }
17
+ else if (typeof value === 'object') {
18
+ for (const [k, v] of Object.entries(value)) {
19
+ serializeDeepObject(`${prefix}[${k}]`, v, parts);
20
+ }
21
+ }
22
+ else {
23
+ parts.push([prefix, String(value)]);
24
+ }
25
+ }
26
+ function serializeParams(params) {
27
+ const parts = [];
28
+ for (const [key, value] of Object.entries(params)) {
29
+ serializeDeepObject(key, value, parts);
30
+ }
31
+ return parts;
32
+ }
33
+ export function querySerializer(params) {
34
+ const parts = serializeParams(params).map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`);
35
+ return parts.length ? `?${parts.join('&')}` : '';
36
+ }
37
+ export function toURLSearchParams(params) {
38
+ const search = new URLSearchParams();
39
+ for (const [key, value] of serializeParams(params)) {
40
+ search.append(key, value);
41
+ }
42
+ return search;
43
+ }
44
+ export function encodeSort(sort) {
45
+ if (!sort?.by) {
46
+ return undefined;
47
+ }
48
+ if (sort.order === 'desc') {
49
+ return `${sort.by} desc`;
50
+ }
51
+ if (sort.order === 'asc') {
52
+ return `${sort.by} asc`;
53
+ }
54
+ return sort.by;
55
+ }
56
+ //# sourceMappingURL=encodings.js.map
@@ -0,0 +1,3 @@
1
+ import { type Result } from './types.js';
2
+ export declare function request<T>(fn: () => Promise<T>): Promise<Result<T>>;
3
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1,11 @@
1
+ import { ok, err } from './types.js';
2
+ import { toError } from './to-error.js';
3
+ export async function request(fn) {
4
+ try {
5
+ return ok(await fn());
6
+ }
7
+ catch (e) {
8
+ return err(await toError(e));
9
+ }
10
+ }
11
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1,2 @@
1
+ export declare function toError(e: unknown): Promise<Error>;
2
+ //# sourceMappingURL=to-error.d.ts.map
@@ -0,0 +1,16 @@
1
+ import { HTTPError as KyHTTPError } from 'ky';
2
+ import * as schemas from '../models/schemas.js';
3
+ import { HTTPError } from '../models/errors.js';
4
+ export async function toError(e) {
5
+ if (e instanceof KyHTTPError) {
6
+ // ky consumes the body into e.data; e.response.json() would throw.
7
+ const parsed = schemas.baseError.safeParse(e.data);
8
+ const error = parsed.success ? parsed.data : undefined;
9
+ return HTTPError.fromResponse({ response: e.response, error });
10
+ }
11
+ if (e instanceof Error) {
12
+ return e;
13
+ }
14
+ return new Error(String(e));
15
+ }
16
+ //# sourceMappingURL=to-error.js.map
@@ -0,0 +1,15 @@
1
+ import type { Options } from 'ky';
2
+ export type RequestOptions = Pick<Options, 'signal' | 'headers' | 'timeout' | 'retry'>;
3
+ export type Result<T, E = Error> = {
4
+ ok: true;
5
+ value: T;
6
+ error?: never;
7
+ } | {
8
+ ok: false;
9
+ value?: never;
10
+ error: E;
11
+ };
12
+ export declare function ok<T>(value: T): Result<T, never>;
13
+ export declare function err<E>(error: E): Result<never, E>;
14
+ export declare function unwrap<T, E>(result: Result<T, E>): T;
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,13 @@
1
+ export function ok(value) {
2
+ return { ok: true, value };
3
+ }
4
+ export function err(error) {
5
+ return { ok: false, error };
6
+ }
7
+ export function unwrap(result) {
8
+ if (result.ok) {
9
+ return result.value;
10
+ }
11
+ throw result.error;
12
+ }
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ import * as schemas from './schemas.js';
3
+ export declare class HTTPError extends Error {
4
+ type: string;
5
+ title: string;
6
+ status: number;
7
+ url: string;
8
+ protected __raw?: Record<string, unknown> | undefined;
9
+ constructor(message: string, type: string, title: string, status: number, url: string, __raw?: Record<string, unknown> | undefined);
10
+ static fromResponse(resp: {
11
+ response: Response;
12
+ error?: z.infer<typeof schemas.baseError>;
13
+ }): HTTPError;
14
+ getField(key: string): unknown;
15
+ }
16
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1,28 @@
1
+ export class HTTPError extends Error {
2
+ type;
3
+ title;
4
+ status;
5
+ url;
6
+ __raw;
7
+ constructor(message, type, title, status, url, __raw) {
8
+ super(message);
9
+ this.type = type;
10
+ this.title = title;
11
+ this.status = status;
12
+ this.url = url;
13
+ this.__raw = __raw;
14
+ }
15
+ static fromResponse(resp) {
16
+ if (resp.response.headers
17
+ .get('Content-Type')
18
+ ?.includes('application/problem+json') &&
19
+ resp.error) {
20
+ return new HTTPError(resp.error.detail, resp.error.type ?? resp.error.title, resp.error.title, resp.error.status ?? resp.response.status, resp.response.url, resp.error);
21
+ }
22
+ return new HTTPError(`Request failed: ${resp.response.statusText}`, resp.response.statusText, resp.response.statusText, resp.response.status, resp.response.url);
23
+ }
24
+ getField(key) {
25
+ return this.__raw?.[key];
26
+ }
27
+ }
28
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1,38 @@
1
+ import type { Addon, AddonPagePaginatedResponse, CreateAddonRequestInput, ListAddonsParamsFilter, SortQueryInput, UpsertAddonRequestInput } from '../types.js';
2
+ export interface ListAddonsQuery {
3
+ /** Determines which page of the collection to retrieve. */
4
+ page?: {
5
+ size?: number;
6
+ number?: number;
7
+ };
8
+ /** Sort add-ons returned in the response. Supported sort attributes are: - `id` - `key` - `name` - `created_at` (default) - `updated_at` The `asc` suffix is optional as the default sort order is ascending. The `desc` suffix is used to specify a descending order. */
9
+ sort?: SortQueryInput;
10
+ /** Filter add-ons returned in the response. */
11
+ filter?: ListAddonsParamsFilter;
12
+ }
13
+ export type ListAddonsRequest = ListAddonsQuery;
14
+ export type ListAddonsResponse = AddonPagePaginatedResponse;
15
+ export type CreateAddonRequest = CreateAddonRequestInput;
16
+ export type CreateAddonResponse = Addon;
17
+ export type UpdateAddonRequest = {
18
+ addonId: string;
19
+ body: UpsertAddonRequestInput;
20
+ };
21
+ export type UpdateAddonResponse = Addon;
22
+ export type GetAddonRequest = {
23
+ addonId: string;
24
+ };
25
+ export type GetAddonResponse = Addon;
26
+ export type DeleteAddonRequest = {
27
+ addonId: string;
28
+ };
29
+ export type DeleteAddonResponse = void;
30
+ export type ArchiveAddonRequest = {
31
+ addonId: string;
32
+ };
33
+ export type ArchiveAddonResponse = Addon;
34
+ export type PublishAddonRequest = {
35
+ addonId: string;
36
+ };
37
+ export type PublishAddonResponse = Addon;
38
+ //# sourceMappingURL=addons.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=addons.js.map
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import * as schemas from '../schemas.js';
3
+ import type { AppPagePaginatedResponse } from '../types.js';
4
+ export interface ListAppsQuery {
5
+ /** Determines which page of the collection to retrieve. */
6
+ page?: {
7
+ size?: number;
8
+ number?: number;
9
+ };
10
+ }
11
+ export type ListAppsRequest = ListAppsQuery;
12
+ export type ListAppsResponse = AppPagePaginatedResponse;
13
+ export type GetAppRequest = {
14
+ appId: string;
15
+ };
16
+ export type GetAppResponse = z.output<typeof schemas.getAppResponse>;
17
+ //# sourceMappingURL=apps.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=apps.js.map
@@ -0,0 +1,26 @@
1
+ import type { CreateBillingProfileRequestInput, Profile, ProfilePagePaginatedResponse, UpsertBillingProfileRequestInput } from '../types.js';
2
+ export interface ListBillingProfilesQuery {
3
+ /** Determines which page of the collection to retrieve. */
4
+ page?: {
5
+ size?: number;
6
+ number?: number;
7
+ };
8
+ }
9
+ export type ListBillingProfilesRequest = ListBillingProfilesQuery;
10
+ export type ListBillingProfilesResponse = ProfilePagePaginatedResponse;
11
+ export type CreateBillingProfileRequest = CreateBillingProfileRequestInput;
12
+ export type CreateBillingProfileResponse = Profile;
13
+ export type GetBillingProfileRequest = {
14
+ id: string;
15
+ };
16
+ export type GetBillingProfileResponse = Profile;
17
+ export type UpdateBillingProfileRequest = {
18
+ id: string;
19
+ body: UpsertBillingProfileRequestInput;
20
+ };
21
+ export type UpdateBillingProfileResponse = Profile;
22
+ export type DeleteBillingProfileRequest = {
23
+ id: string;
24
+ };
25
+ export type DeleteBillingProfileResponse = void;
26
+ //# sourceMappingURL=billing.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=billing.js.map
@@ -0,0 +1,35 @@
1
+ import type { CostBasis, CostBasisPagePaginatedResponse, CreateCostBasisRequest as CreateCostBasisRequestBody, CreateCurrencyCustomRequest, CurrencyCustom, CurrencyPagePaginatedResponse, ListCostBasesParamsFilter, ListCurrenciesParamsFilter, SortQueryInput } from '../types.js';
2
+ export interface ListCurrenciesQuery {
3
+ /** Determines which page of the collection to retrieve. */
4
+ page?: {
5
+ size?: number;
6
+ number?: number;
7
+ };
8
+ /** Sort currencies returned in the response. Supported sort attributes are: - `code` (default) - `name` The `asc` suffix is optional as the default sort order is ascending. The `desc` suffix is used to specify a descending order. */
9
+ sort?: SortQueryInput;
10
+ /** Filter currencies returned in the response. To filter currencies by type add the following query param: filter[type]=custom */
11
+ filter?: ListCurrenciesParamsFilter;
12
+ }
13
+ export type ListCurrenciesRequest = ListCurrenciesQuery;
14
+ export type ListCurrenciesResponse = CurrencyPagePaginatedResponse;
15
+ export type CreateCustomCurrencyRequest = CreateCurrencyCustomRequest;
16
+ export type CreateCustomCurrencyResponse = CurrencyCustom;
17
+ export interface ListCostBasesQuery {
18
+ /** Filter cost bases returned in the response. To filter cost bases by fiat currency code add the following query param: filter[fiat_code]=USD */
19
+ filter?: ListCostBasesParamsFilter;
20
+ /** Determines which page of the collection to retrieve. */
21
+ page?: {
22
+ size?: number;
23
+ number?: number;
24
+ };
25
+ }
26
+ export type ListCostBasesRequest = ListCostBasesQuery & {
27
+ currencyId: string;
28
+ };
29
+ export type ListCostBasesResponse = CostBasisPagePaginatedResponse;
30
+ export type CreateCostBasisRequest = {
31
+ currencyId: string;
32
+ body: CreateCostBasisRequestBody;
33
+ };
34
+ export type CreateCostBasisResponse = CostBasis;
35
+ //# sourceMappingURL=currencies.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=currencies.js.map
@@ -0,0 +1,117 @@
1
+ import type { AppCustomerData, AppStripeCreateCheckoutSessionResult, AppStripeCreateCustomerPortalSessionResult, ChargePagePaginatedResponse, CreateCreditAdjustmentRequest as CreateCreditAdjustmentRequestBody, CreateCreditGrantRequestInput, CreateCustomerRequest as CreateCustomerRequestBody, CreditAdjustment, CreditBalances, CreditGrant, CreditGrantPagePaginatedResponse, CreditTransactionPaginatedResponse, CursorPaginationQueryPage, Customer, CustomerData, CustomerPagePaginatedResponse, CustomerStripeCreateCheckoutSessionRequestInput, CustomerStripeCreateCustomerPortalSessionRequest, GetCreditBalanceParamsFilter, ListChargesParamsFilter, ListCreditGrantsParamsFilter, ListCreditTransactionsParamsFilter, ListCustomersParamsFilter, SortQueryInput, UpsertAppCustomerDataRequest, UpsertCustomerBillingDataRequest, UpsertCustomerRequest as UpsertCustomerRequestBody } from '../types.js';
2
+ export type CreateCustomerRequest = CreateCustomerRequestBody;
3
+ export type CreateCustomerResponse = Customer;
4
+ export type GetCustomerRequest = {
5
+ customerId: string;
6
+ };
7
+ export type GetCustomerResponse = Customer;
8
+ export interface ListCustomersQuery {
9
+ /** Determines which page of the collection to retrieve. */
10
+ page?: {
11
+ size?: number;
12
+ number?: number;
13
+ };
14
+ /** Sort customers returned in the response. Supported sort attributes are: - `id` - `name` (default) - `created_at` The `asc` suffix is optional as the default sort order is ascending. The `desc` suffix is used to specify a descending order. */
15
+ sort?: SortQueryInput;
16
+ /** Filter customers returned in the response. To filter customers by key add the following query param: filter[key]=my-db-id */
17
+ filter?: ListCustomersParamsFilter;
18
+ }
19
+ export type ListCustomersRequest = ListCustomersQuery;
20
+ export type ListCustomersResponse = CustomerPagePaginatedResponse;
21
+ export type UpsertCustomerRequest = {
22
+ customerId: string;
23
+ body: UpsertCustomerRequestBody;
24
+ };
25
+ export type UpsertCustomerResponse = Customer;
26
+ export type DeleteCustomerRequest = {
27
+ customerId: string;
28
+ };
29
+ export type DeleteCustomerResponse = void;
30
+ export type GetCustomerBillingRequest = {
31
+ customerId: string;
32
+ };
33
+ export type GetCustomerBillingResponse = CustomerData;
34
+ export type UpdateCustomerBillingRequest = {
35
+ customerId: string;
36
+ body: UpsertCustomerBillingDataRequest;
37
+ };
38
+ export type UpdateCustomerBillingResponse = CustomerData;
39
+ export type UpdateCustomerBillingAppDataRequest = {
40
+ customerId: string;
41
+ body: UpsertAppCustomerDataRequest;
42
+ };
43
+ export type UpdateCustomerBillingAppDataResponse = AppCustomerData;
44
+ export type CreateCustomerStripeCheckoutSessionRequest = {
45
+ customerId: string;
46
+ body: CustomerStripeCreateCheckoutSessionRequestInput;
47
+ };
48
+ export type CreateCustomerStripeCheckoutSessionResponse = AppStripeCreateCheckoutSessionResult;
49
+ export type CreateCustomerStripePortalSessionRequest = {
50
+ customerId: string;
51
+ body: CustomerStripeCreateCustomerPortalSessionRequest;
52
+ };
53
+ export type CreateCustomerStripePortalSessionResponse = AppStripeCreateCustomerPortalSessionResult;
54
+ export type CreateCreditGrantRequest = {
55
+ customerId: string;
56
+ body: CreateCreditGrantRequestInput;
57
+ };
58
+ export type CreateCreditGrantResponse = CreditGrant;
59
+ export type GetCreditGrantRequest = {
60
+ customerId: string;
61
+ creditGrantId: string;
62
+ };
63
+ export type GetCreditGrantResponse = CreditGrant;
64
+ export interface ListCreditGrantsQuery {
65
+ /** Determines which page of the collection to retrieve. */
66
+ page?: {
67
+ size?: number;
68
+ number?: number;
69
+ };
70
+ /** Filter credit grants returned in the response. */
71
+ filter?: ListCreditGrantsParamsFilter;
72
+ }
73
+ export type ListCreditGrantsRequest = ListCreditGrantsQuery & {
74
+ customerId: string;
75
+ };
76
+ export type ListCreditGrantsResponse = CreditGrantPagePaginatedResponse;
77
+ export interface GetCustomerCreditBalanceQuery {
78
+ /** Return the credit balance as of this timestamp. Defaults to the current time. */
79
+ timestamp?: string;
80
+ filter?: GetCreditBalanceParamsFilter;
81
+ }
82
+ export type GetCustomerCreditBalanceRequest = GetCustomerCreditBalanceQuery & {
83
+ customerId: string;
84
+ };
85
+ export type GetCustomerCreditBalanceResponse = CreditBalances;
86
+ export type CreateCreditAdjustmentRequest = {
87
+ customerId: string;
88
+ body: CreateCreditAdjustmentRequestBody;
89
+ };
90
+ export type CreateCreditAdjustmentResponse = CreditAdjustment;
91
+ export interface ListCreditTransactionsQuery {
92
+ page?: CursorPaginationQueryPage;
93
+ /** Filter credit transactions returned in the response. */
94
+ filter?: ListCreditTransactionsParamsFilter;
95
+ }
96
+ export type ListCreditTransactionsRequest = ListCreditTransactionsQuery & {
97
+ customerId: string;
98
+ };
99
+ export type ListCreditTransactionsResponse = CreditTransactionPaginatedResponse;
100
+ export interface ListCustomerChargesQuery {
101
+ /** Determines which page of the collection to retrieve. */
102
+ page?: {
103
+ size?: number;
104
+ number?: number;
105
+ };
106
+ /** Sort charges returned in the response. Supported sort attributes are: - `id` - `created_at` - `service_period.from` - `billing_period.from` */
107
+ sort?: SortQueryInput;
108
+ /** Filter charges. To filter charges by status add the following query param: `filter[status][oeq]=created,active` */
109
+ filter?: ListChargesParamsFilter;
110
+ /** Expand full objects for referenced entities. Supported values are: - `real_time_usage`: Expand the charge's real-time usage. */
111
+ expand?: "real_time_usage"[];
112
+ }
113
+ export type ListCustomerChargesRequest = ListCustomerChargesQuery & {
114
+ customerId: string;
115
+ };
116
+ export type ListCustomerChargesResponse = ChargePagePaginatedResponse;
117
+ //# sourceMappingURL=customers.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=customers.js.map
@@ -0,0 +1,6 @@
1
+ import type { OrganizationDefaultTaxCodes, UpdateOrganizationDefaultTaxCodesRequest as UpdateOrganizationDefaultTaxCodesRequestBody } from '../types.js';
2
+ export type GetOrganizationDefaultTaxCodesRequest = Record<string, never>;
3
+ export type GetOrganizationDefaultTaxCodesResponse = OrganizationDefaultTaxCodes;
4
+ export type UpdateOrganizationDefaultTaxCodesRequest = UpdateOrganizationDefaultTaxCodesRequestBody;
5
+ export type UpdateOrganizationDefaultTaxCodesResponse = OrganizationDefaultTaxCodes;
6
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1,6 @@
1
+ import type { ListCustomerEntitlementAccessResponseData } from '../types.js';
2
+ export type ListCustomerEntitlementAccessRequest = {
3
+ customerId: string;
4
+ };
5
+ export type ListCustomerEntitlementAccessResponse = ListCustomerEntitlementAccessResponseData;
6
+ //# sourceMappingURL=entitlements.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=entitlements.js.map
@@ -0,0 +1,13 @@
1
+ import type { CursorPaginationQueryPage, EventInput, IngestedEventPaginatedResponse, ListEventsParamsFilter, SortQueryInput } from '../types.js';
2
+ export interface ListMeteringEventsQuery {
3
+ page?: CursorPaginationQueryPage;
4
+ /** Filter events returned in the response. To filter events by subject add the following query param: filter[subject][eq]=customer-1 */
5
+ filter?: ListEventsParamsFilter;
6
+ /** Sort events returned in the response. Supported sort attributes are: - `time` (default) - `ingested_at` - `stored_at` When omitted, events are sorted by `time desc` (most recent first). When a sort field is provided without a suffix, it sorts descending. Append the `asc` suffix to sort ascending, or the `desc` suffix to sort descending. */
7
+ sort?: SortQueryInput;
8
+ }
9
+ export type ListMeteringEventsRequest = ListMeteringEventsQuery;
10
+ export type ListMeteringEventsResponse = IngestedEventPaginatedResponse;
11
+ export type IngestMeteringEventsRequest = EventInput | EventInput[];
12
+ export type IngestMeteringEventsResponse = void;
13
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=events.js.map