@flexprice/sdk 2.1.34 → 2.1.35

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 (121) hide show
  1. package/README.md +39 -3
  2. package/docs/sdk/models/create-customer-request.md +1 -0
  3. package/docs/sdk/models/create-subscription-request.md +1 -0
  4. package/docs/sdk/models/customer-response.md +1 -0
  5. package/docs/sdk/models/customer.md +1 -0
  6. package/docs/sdk/models/fx-conversion-source.md +18 -0
  7. package/docs/sdk/models/fx-conversion.md +21 -0
  8. package/docs/sdk/models/inline-fx-rate.md +17 -0
  9. package/docs/sdk/models/invoice-line-item-response.md +1 -0
  10. package/docs/sdk/models/invoice-response.md +1 -0
  11. package/docs/sdk/models/update-customer-request.md +1 -0
  12. package/docs/sdk/models/update-subscription-line-item-request.md +20 -18
  13. package/docs/sdk/models/update-tenant-address.md +20 -0
  14. package/docs/sdk/models/update-tenant-billing-details.md +18 -0
  15. package/docs/sdk/models/update-tenant-request.md +5 -5
  16. package/esm/hooks/auth-headers.d.ts +4 -0
  17. package/esm/hooks/auth-headers.d.ts.map +1 -0
  18. package/esm/hooks/auth-headers.js +35 -0
  19. package/esm/hooks/auth-headers.js.map +1 -0
  20. package/esm/hooks/registration.d.ts +2 -3
  21. package/esm/hooks/registration.d.ts.map +1 -1
  22. package/esm/hooks/registration.js +4 -4
  23. package/esm/hooks/registration.js.map +1 -1
  24. package/esm/lib/config.d.ts +7 -3
  25. package/esm/lib/config.d.ts.map +1 -1
  26. package/esm/lib/config.js +3 -3
  27. package/esm/lib/config.js.map +1 -1
  28. package/esm/sdk/models/address.d.ts +0 -12
  29. package/esm/sdk/models/address.d.ts.map +1 -1
  30. package/esm/sdk/models/address.js +0 -21
  31. package/esm/sdk/models/address.js.map +1 -1
  32. package/esm/sdk/models/create-customer-request.d.ts +5 -0
  33. package/esm/sdk/models/create-customer-request.d.ts.map +1 -1
  34. package/esm/sdk/models/create-customer-request.js +2 -0
  35. package/esm/sdk/models/create-customer-request.js.map +1 -1
  36. package/esm/sdk/models/create-subscription-request.d.ts +9 -0
  37. package/esm/sdk/models/create-subscription-request.d.ts.map +1 -1
  38. package/esm/sdk/models/create-subscription-request.js +3 -0
  39. package/esm/sdk/models/create-subscription-request.js.map +1 -1
  40. package/esm/sdk/models/customer-response.d.ts +4 -0
  41. package/esm/sdk/models/customer-response.d.ts.map +1 -1
  42. package/esm/sdk/models/customer-response.js +2 -0
  43. package/esm/sdk/models/customer-response.js.map +1 -1
  44. package/esm/sdk/models/customer.d.ts +4 -0
  45. package/esm/sdk/models/customer.d.ts.map +1 -1
  46. package/esm/sdk/models/customer.js +2 -0
  47. package/esm/sdk/models/customer.js.map +1 -1
  48. package/esm/sdk/models/fx-conversion-source.d.ts +13 -0
  49. package/esm/sdk/models/fx-conversion-source.d.ts.map +1 -0
  50. package/esm/sdk/models/fx-conversion-source.js +23 -0
  51. package/esm/sdk/models/fx-conversion-source.js.map +1 -0
  52. package/esm/sdk/models/fx-conversion.d.ts +33 -0
  53. package/esm/sdk/models/fx-conversion.d.ts.map +1 -0
  54. package/esm/sdk/models/fx-conversion.js +30 -0
  55. package/esm/sdk/models/fx-conversion.js.map +1 -0
  56. package/esm/sdk/models/index.d.ts +5 -0
  57. package/esm/sdk/models/index.d.ts.map +1 -1
  58. package/esm/sdk/models/index.js +5 -0
  59. package/esm/sdk/models/index.js.map +1 -1
  60. package/esm/sdk/models/inline-fx-rate.d.ts +16 -0
  61. package/esm/sdk/models/inline-fx-rate.d.ts.map +1 -0
  62. package/esm/sdk/models/inline-fx-rate.js +20 -0
  63. package/esm/sdk/models/inline-fx-rate.js.map +1 -0
  64. package/esm/sdk/models/invoice-line-item-response.d.ts +2 -0
  65. package/esm/sdk/models/invoice-line-item-response.d.ts.map +1 -1
  66. package/esm/sdk/models/invoice-line-item-response.js +3 -0
  67. package/esm/sdk/models/invoice-line-item-response.js.map +1 -1
  68. package/esm/sdk/models/invoice-response.d.ts +2 -0
  69. package/esm/sdk/models/invoice-response.d.ts.map +1 -1
  70. package/esm/sdk/models/invoice-response.js +3 -0
  71. package/esm/sdk/models/invoice-response.js.map +1 -1
  72. package/esm/sdk/models/tenant-billing-details.d.ts +1 -11
  73. package/esm/sdk/models/tenant-billing-details.d.ts.map +1 -1
  74. package/esm/sdk/models/tenant-billing-details.js +1 -15
  75. package/esm/sdk/models/tenant-billing-details.js.map +1 -1
  76. package/esm/sdk/models/update-customer-request.d.ts +5 -0
  77. package/esm/sdk/models/update-customer-request.d.ts.map +1 -1
  78. package/esm/sdk/models/update-customer-request.js +2 -0
  79. package/esm/sdk/models/update-customer-request.js.map +1 -1
  80. package/esm/sdk/models/update-subscription-line-item-request.d.ts +10 -0
  81. package/esm/sdk/models/update-subscription-line-item-request.d.ts.map +1 -1
  82. package/esm/sdk/models/update-subscription-line-item-request.js +4 -0
  83. package/esm/sdk/models/update-subscription-line-item-request.js.map +1 -1
  84. package/esm/sdk/models/update-tenant-address.d.ts +22 -0
  85. package/esm/sdk/models/update-tenant-address.d.ts.map +1 -0
  86. package/esm/sdk/models/update-tenant-address.js +27 -0
  87. package/esm/sdk/models/update-tenant-address.js.map +1 -0
  88. package/esm/sdk/models/update-tenant-billing-details.d.ts +19 -0
  89. package/esm/sdk/models/update-tenant-billing-details.d.ts.map +1 -0
  90. package/esm/sdk/models/update-tenant-billing-details.js +21 -0
  91. package/esm/sdk/models/update-tenant-billing-details.js.map +1 -0
  92. package/esm/sdk/models/update-tenant-request.d.ts +3 -3
  93. package/esm/sdk/models/update-tenant-request.d.ts.map +1 -1
  94. package/esm/sdk/models/update-tenant-request.js +2 -2
  95. package/esm/sdk/models/update-tenant-request.js.map +1 -1
  96. package/esm/types/smart-union.d.ts.map +1 -1
  97. package/esm/types/smart-union.js +13 -8
  98. package/esm/types/smart-union.js.map +1 -1
  99. package/jsr.json +1 -1
  100. package/package.json +1 -1
  101. package/src/hooks/auth-headers.ts +47 -0
  102. package/src/hooks/registration.ts +4 -4
  103. package/src/lib/config.ts +7 -3
  104. package/src/sdk/models/address.ts +0 -35
  105. package/src/sdk/models/create-customer-request.ts +7 -0
  106. package/src/sdk/models/create-subscription-request.ts +15 -0
  107. package/src/sdk/models/customer-response.ts +6 -0
  108. package/src/sdk/models/customer.ts +6 -0
  109. package/src/sdk/models/fx-conversion-source.ts +46 -0
  110. package/src/sdk/models/fx-conversion.ts +72 -0
  111. package/src/sdk/models/index.ts +5 -0
  112. package/src/sdk/models/inline-fx-rate.ts +41 -0
  113. package/src/sdk/models/invoice-line-item-response.ts +4 -0
  114. package/src/sdk/models/invoice-response.ts +4 -0
  115. package/src/sdk/models/tenant-billing-details.ts +1 -38
  116. package/src/sdk/models/update-customer-request.ts +7 -0
  117. package/src/sdk/models/update-subscription-line-item-request.ts +14 -0
  118. package/src/sdk/models/update-tenant-address.ts +58 -0
  119. package/src/sdk/models/update-tenant-billing-details.ts +52 -0
  120. package/src/sdk/models/update-tenant-request.ts +7 -7
  121. package/src/types/smart-union.ts +17 -8
@@ -0,0 +1,21 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+ import * as z from "zod/v4-mini";
5
+ import { remap as remap$ } from "../../lib/primitives.js";
6
+ import { UpdateTenantAddress$outboundSchema, } from "./update-tenant-address.js";
7
+ /** @internal */
8
+ export const UpdateTenantBillingDetails$outboundSchema = z.pipe(z.object({
9
+ address: z.optional(UpdateTenantAddress$outboundSchema),
10
+ email: z.optional(z.string()),
11
+ helpEmail: z.optional(z.string()),
12
+ phone: z.optional(z.string()),
13
+ }), z.transform((v) => {
14
+ return remap$(v, {
15
+ helpEmail: "help_email",
16
+ });
17
+ }));
18
+ export function updateTenantBillingDetailsToJSON(updateTenantBillingDetails) {
19
+ return JSON.stringify(UpdateTenantBillingDetails$outboundSchema.parse(updateTenantBillingDetails));
20
+ }
21
+ //# sourceMappingURL=update-tenant-billing-details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-tenant-billing-details.js","sourceRoot":"","sources":["../../../src/sdk/models/update-tenant-billing-details.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAGL,kCAAkC,GACnC,MAAM,4BAA4B,CAAC;AAiBpC,gBAAgB;AAChB,MAAM,CAAC,MAAM,yCAAyC,GAGlD,CAAC,CAAC,IAAI,CACR,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7B,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAC,EACF,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACjB,OAAO,MAAM,CAAC,CAAC,EAAE;QACf,SAAS,EAAE,YAAY;KACxB,CAAC,CAAC;AAAA,CACJ,CAAC,CACH,CAAC;AAEF,MAAM,UAAU,gCAAgC,CAC9C,0BAAsD,EAC9C;IACR,OAAO,IAAI,CAAC,SAAS,CACnB,yCAAyC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAC5E,CAAC;AAAA,CACH"}
@@ -1,7 +1,7 @@
1
1
  import * as z from "zod/v4-mini";
2
- import { TenantBillingDetails, TenantBillingDetails$Outbound } from "./tenant-billing-details.js";
2
+ import { UpdateTenantBillingDetails, UpdateTenantBillingDetails$Outbound } from "./update-tenant-billing-details.js";
3
3
  export type UpdateTenantRequest = {
4
- billingDetails?: TenantBillingDetails | undefined;
4
+ billingDetails?: UpdateTenantBillingDetails | undefined;
5
5
  metadata?: {
6
6
  [k: string]: string;
7
7
  } | undefined;
@@ -9,7 +9,7 @@ export type UpdateTenantRequest = {
9
9
  };
10
10
  /** @internal */
11
11
  export type UpdateTenantRequest$Outbound = {
12
- billing_details?: TenantBillingDetails$Outbound | undefined;
12
+ billing_details?: UpdateTenantBillingDetails$Outbound | undefined;
13
13
  metadata?: {
14
14
  [k: string]: string;
15
15
  } | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"update-tenant-request.d.ts","sourceRoot":"","sources":["../../../src/sdk/models/update-tenant-request.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAEjC,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAE9B,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC/C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,gBAAgB;AAChB,MAAM,MAAM,4BAA4B,GAAG;IACzC,eAAe,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC/C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,kCAAkC,EAAE,CAAC,CAAC,WAAW,CAC5D,4BAA4B,EAC5B,mBAAmB,CAYpB,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,mBAAmB,EAAE,mBAAmB,GACvC,MAAM,CAIR"}
1
+ {"version":3,"file":"update-tenant-request.d.ts","sourceRoot":"","sources":["../../../src/sdk/models/update-tenant-request.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAEjC,OAAO,EACL,0BAA0B,EAC1B,mCAAmC,EAEpC,MAAM,oCAAoC,CAAC;AAE5C,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC/C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,gBAAgB;AAChB,MAAM,MAAM,4BAA4B,GAAG;IACzC,eAAe,CAAC,EAAE,mCAAmC,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC/C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,kCAAkC,EAAE,CAAC,CAAC,WAAW,CAC5D,4BAA4B,EAC5B,mBAAmB,CAYpB,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,mBAAmB,EAAE,mBAAmB,GACvC,MAAM,CAIR"}
@@ -3,10 +3,10 @@
3
3
  */
4
4
  import * as z from "zod/v4-mini";
5
5
  import { remap as remap$ } from "../../lib/primitives.js";
6
- import { TenantBillingDetails$outboundSchema, } from "./tenant-billing-details.js";
6
+ import { UpdateTenantBillingDetails$outboundSchema, } from "./update-tenant-billing-details.js";
7
7
  /** @internal */
8
8
  export const UpdateTenantRequest$outboundSchema = z.pipe(z.object({
9
- billingDetails: z.optional(TenantBillingDetails$outboundSchema),
9
+ billingDetails: z.optional(UpdateTenantBillingDetails$outboundSchema),
10
10
  metadata: z.optional(z.record(z.string(), z.string())),
11
11
  name: z.optional(z.string()),
12
12
  }), z.transform((v) => {
@@ -1 +1 @@
1
- {"version":3,"file":"update-tenant-request.js","sourceRoot":"","sources":["../../../src/sdk/models/update-tenant-request.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAGL,mCAAmC,GACpC,MAAM,6BAA6B,CAAC;AAerC,gBAAgB;AAChB,MAAM,CAAC,MAAM,kCAAkC,GAG3C,CAAC,CAAC,IAAI,CACR,CAAC,CAAC,MAAM,CAAC;IACP,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC/D,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC7B,CAAC,EACF,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACjB,OAAO,MAAM,CAAC,CAAC,EAAE;QACf,cAAc,EAAE,iBAAiB;KAClC,CAAC,CAAC;AAAA,CACJ,CAAC,CACH,CAAC;AAEF,MAAM,UAAU,yBAAyB,CACvC,mBAAwC,EAChC;IACR,OAAO,IAAI,CAAC,SAAS,CACnB,kCAAkC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAC9D,CAAC;AAAA,CACH"}
1
+ {"version":3,"file":"update-tenant-request.js","sourceRoot":"","sources":["../../../src/sdk/models/update-tenant-request.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAGL,yCAAyC,GAC1C,MAAM,oCAAoC,CAAC;AAe5C,gBAAgB;AAChB,MAAM,CAAC,MAAM,kCAAkC,GAG3C,CAAC,CAAC,IAAI,CACR,CAAC,CAAC,MAAM,CAAC;IACP,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IACrE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC7B,CAAC,EACF,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACjB,OAAO,MAAM,CAAC,CAAC,EAAE;QACf,cAAc,EAAE,iBAAiB;KAClC,CAAC,CAAC;AAAA,CACJ,CAAC,CACH,CAAC;AAEF,MAAM,UAAU,yBAAyB,CACvC,mBAAwC,EAChC;IACR,OAAO,IAAI,CAAC,SAAS,CACnB,kCAAkC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAC9D,CAAC;AAAA,CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"smart-union.d.ts","sourceRoot":"","sources":["../../src/types/smart-union.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAejC;;;GAGG;AACH,wBAAgB,UAAU,CACxB,OAAO,SAAS,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,EAE3E,OAAO,EAAE,OAAO,GACf,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CA2DpE"}
1
+ {"version":3,"file":"smart-union.d.ts","sourceRoot":"","sources":["../../src/types/smart-union.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AAejC;;;GAGG;AACH,wBAAgB,UAAU,CACxB,OAAO,SAAS,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,EAE3E,OAAO,EAAE,OAAO,GACf,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAoEpE"}
@@ -13,26 +13,31 @@ import { startCountingUnrecognized } from "./unrecognized.js";
13
13
  export function smartUnion(options) {
14
14
  return z.pipe(z.unknown(), z.transform((input, ctx) => {
15
15
  const candidates = [];
16
- const errors = options.map(() => []);
16
+ const errors = [];
17
17
  const parentUnrecognizedCtr = startCountingUnrecognized();
18
18
  const parentZeroDefaultCtr = startCountingDefaultToZeroValue();
19
19
  // Filter out invalid options
20
- for (const [i, option] of options.entries()) {
20
+ for (const option of options) {
21
21
  const unrecognizedCtr = startCountingUnrecognized();
22
22
  const zeroDefaultCtr = startCountingDefaultToZeroValue();
23
- const result = option.safeParse(input);
23
+ const result = option._zod.run({ value: input, issues: [] }, {
24
+ async: false,
25
+ });
26
+ if (result instanceof Promise) {
27
+ throw new z.core.$ZodAsyncError();
28
+ }
24
29
  const inexactCount = unrecognizedCtr.end();
25
30
  const zeroDefaultCount = zeroDefaultCtr.end();
26
- if (result.success) {
31
+ if (result.issues.length === 0) {
27
32
  candidates.push({
28
- data: result.data,
33
+ data: result.value,
29
34
  inexactCount,
30
35
  zeroDefaultCount,
31
36
  fieldCount: -1, // We'll count this later if needed
32
37
  });
33
38
  continue;
34
39
  }
35
- errors[i].push(...result.error.issues);
40
+ errors.push(result.issues);
36
41
  }
37
42
  // No valid options
38
43
  if (candidates.length === 0) {
@@ -41,9 +46,9 @@ export function smartUnion(options) {
41
46
  ctx.issues.push({
42
47
  input: input,
43
48
  code: "invalid_union",
44
- errors: errors,
49
+ errors: errors.map(issues => issues.map(issue => z.core.util.finalizeIssue(issue, {}, z.core.config()))),
45
50
  });
46
- return z.NEVER;
51
+ return undefined;
47
52
  }
48
53
  let best = candidates[0];
49
54
  // Find the best option
@@ -1 +1 @@
1
- {"version":3,"file":"smart-union.js","sourceRoot":"","sources":["../../src/types/smart-union.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smart-union.js","sourceRoot":"","sources":["../../src/types/smart-union.ts"],"names":[],"mappings":"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"}
package/jsr.json CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  {
4
4
  "name": "@flexprice/sdk",
5
- "version": "2.1.34",
5
+ "version": "2.1.35",
6
6
  "exports": {
7
7
  ".": "./src/index.ts",
8
8
  "./sdk/models": "./src/sdk/models/index.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flexprice/sdk",
3
- "version": "2.1.34",
3
+ "version": "2.1.35",
4
4
  "author": "FlexPrice",
5
5
  "engines": {
6
6
  "node": ">=18"
@@ -0,0 +1,47 @@
1
+ import type { BeforeRequestContext, BeforeRequestHook } from "./types.js";
2
+
3
+ type Credential = string | (() => string | undefined | Promise<string | undefined>) | undefined;
4
+
5
+ // One environment per API call. Every attempt of a call gets the same context, so retries reuse it.
6
+ const environmentByCall = new WeakMap<BeforeRequestContext, string | undefined>();
7
+
8
+ async function resolveCredential(value: Credential): Promise<string | undefined> {
9
+ const resolved = typeof value === "function" ? await value() : value;
10
+ return resolved || undefined;
11
+ }
12
+
13
+ async function environmentFor(
14
+ hookCtx: BeforeRequestContext,
15
+ environmentId: Credential,
16
+ ): Promise<string | undefined> {
17
+ if (!environmentByCall.has(hookCtx)) {
18
+ environmentByCall.set(hookCtx, await resolveCredential(environmentId));
19
+ }
20
+ return environmentByCall.get(hookCtx);
21
+ }
22
+
23
+ /** Sends bearerAuth and environmentId as headers. Headers passed on a call take precedence. */
24
+ export const authHeadersHook: BeforeRequestHook = {
25
+ async beforeRequest(hookCtx, request) {
26
+ const { apiKeyAuth, bearerAuth, environmentId } = hookCtx.options;
27
+ if (apiKeyAuth && bearerAuth) {
28
+ throw new Error("set either apiKeyAuth or bearerAuth, not both.");
29
+ }
30
+
31
+ if (!request.headers.has("Authorization")) {
32
+ const token = await resolveCredential(bearerAuth);
33
+ if (token) {
34
+ request.headers.set("Authorization", `Bearer ${token}`);
35
+ }
36
+ }
37
+
38
+ if (!request.headers.has("X-Environment-ID")) {
39
+ const envId = await environmentFor(hookCtx, environmentId);
40
+ if (envId) {
41
+ request.headers.set("X-Environment-ID", envId);
42
+ }
43
+ }
44
+
45
+ return request;
46
+ },
47
+ };
@@ -1,9 +1,9 @@
1
+ import { authHeadersHook } from "./auth-headers.js";
1
2
  import type { Hooks } from "./types.js";
2
3
 
3
4
  /**
4
- * No-op hook registration. The generated SDK calls initHooks(this) from hooks/hooks.ts.
5
- * Customize here only if you need to register debug or instrumentation hooks.
5
+ * Registers FlexPrice's custom hooks. The generated SDK calls initHooks(this) from hooks/hooks.ts.
6
6
  */
7
- export function initHooks(_hooks: Hooks): void {
8
- // No hooks registered.
7
+ export function initHooks(hooks: Hooks): void {
8
+ hooks.registerBeforeRequestHook(authHeadersHook);
9
9
  }
package/src/lib/config.ts CHANGED
@@ -23,6 +23,10 @@ export const ServerList = [
23
23
 
24
24
  export type SDKOptions = {
25
25
  apiKeyAuth?: string | (() => Promise<string>) | undefined;
26
+ /** Signed-in user's JWT, sent as `Authorization: Bearer <token>`. Use instead of apiKeyAuth. */
27
+ bearerAuth?: string | (() => string | undefined | Promise<string | undefined>) | undefined;
28
+ /** Sent as `X-Environment-ID`. Needed with bearerAuth on environment-scoped endpoints. */
29
+ environmentId?: string | (() => string | undefined | Promise<string | undefined>) | undefined;
26
30
 
27
31
  httpClient?: HTTPClient;
28
32
  /**
@@ -65,7 +69,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
65
69
  export const SDK_METADATA = {
66
70
  language: "typescript",
67
71
  openapiDocVersion: "1.0",
68
- sdkVersion: "2.1.34",
69
- genVersion: "2.943.0",
70
- userAgent: "speakeasy-sdk/typescript 2.1.34 2.943.0 1.0 @flexprice/sdk",
72
+ sdkVersion: "2.1.35",
73
+ genVersion: "2.946.0",
74
+ userAgent: "speakeasy-sdk/typescript 2.1.35 2.946.0 1.0 @flexprice/sdk",
71
75
  } as const;
@@ -39,42 +39,7 @@ export const Address$inboundSchema: z.ZodMiniType<Address, unknown> = z.pipe(
39
39
  });
40
40
  }),
41
41
  );
42
- /** @internal */
43
- export type Address$Outbound = {
44
- address_city?: string | undefined;
45
- address_country?: string | undefined;
46
- address_line1?: string | undefined;
47
- address_line2?: string | undefined;
48
- address_postal_code?: string | undefined;
49
- address_state?: string | undefined;
50
- };
51
-
52
- /** @internal */
53
- export const Address$outboundSchema: z.ZodMiniType<Address$Outbound, Address> =
54
- z.pipe(
55
- z.object({
56
- addressCity: z.optional(z.string()),
57
- addressCountry: z.optional(z.string()),
58
- addressLine1: z.optional(z.string()),
59
- addressLine2: z.optional(z.string()),
60
- addressPostalCode: z.optional(z.string()),
61
- addressState: z.optional(z.string()),
62
- }),
63
- z.transform((v) => {
64
- return remap$(v, {
65
- addressCity: "address_city",
66
- addressCountry: "address_country",
67
- addressLine1: "address_line1",
68
- addressLine2: "address_line2",
69
- addressPostalCode: "address_postal_code",
70
- addressState: "address_state",
71
- });
72
- }),
73
- );
74
42
 
75
- export function addressToJSON(address: Address): string {
76
- return JSON.stringify(Address$outboundSchema.parse(address));
77
- }
78
43
  export function addressFromJSON(
79
44
  jsonString: string,
80
45
  ): SafeParseResult<Address, SDKValidationError> {
@@ -44,6 +44,10 @@ export type CreateCustomerRequest = {
44
44
  * address_state is the state, province, or region name with maximum 100 characters
45
45
  */
46
46
  addressState?: string | undefined;
47
+ /**
48
+ * billing_currency is the fiat currency invoices are issued in; empty means the charge currency is used as-is
49
+ */
50
+ billingCurrency?: string | undefined;
47
51
  /**
48
52
  * contact is an optional contact number for the customer (e.g. phone)
49
53
  */
@@ -104,6 +108,7 @@ export type CreateCustomerRequest$Outbound = {
104
108
  address_line2?: string | undefined;
105
109
  address_postal_code?: string | undefined;
106
110
  address_state?: string | undefined;
111
+ billing_currency?: string | undefined;
107
112
  contact?: string | undefined;
108
113
  email?: string | undefined;
109
114
  external_id: string;
@@ -131,6 +136,7 @@ export const CreateCustomerRequest$outboundSchema: z.ZodMiniType<
131
136
  addressLine2: z.optional(z.string()),
132
137
  addressPostalCode: z.optional(z.string()),
133
138
  addressState: z.optional(z.string()),
139
+ billingCurrency: z.optional(z.string()),
134
140
  contact: z.optional(z.string()),
135
141
  email: z.optional(z.string()),
136
142
  externalId: z.string(),
@@ -153,6 +159,7 @@ export const CreateCustomerRequest$outboundSchema: z.ZodMiniType<
153
159
  addressLine2: "address_line2",
154
160
  addressPostalCode: "address_postal_code",
155
161
  addressState: "address_state",
162
+ billingCurrency: "billing_currency",
156
163
  externalId: "external_id",
157
164
  integrationEntityMapping: "integration_entity_mapping",
158
165
  onboardingWorkflowName: "onboarding_workflow_name",
@@ -33,6 +33,11 @@ import {
33
33
  CreateSubscriptionLineItemRequest$Outbound,
34
34
  CreateSubscriptionLineItemRequest$outboundSchema,
35
35
  } from "./create-subscription-line-item-request.js";
36
+ import {
37
+ InlineFXRate,
38
+ InlineFXRate$Outbound,
39
+ InlineFXRate$outboundSchema,
40
+ } from "./inline-fx-rate.js";
36
41
  import {
37
42
  LineItemCommitmentConfig,
38
43
  LineItemCommitmentConfig$Outbound,
@@ -122,6 +127,13 @@ export type CreateSubscriptionRequest = {
122
127
  enableTrueUp?: boolean | undefined;
123
128
  endDate?: Date | undefined;
124
129
  externalCustomerId?: string | undefined;
130
+ /**
131
+ * FxRates sets subscription-scope rates to the invoicing customer's billing currency, one per
132
+ *
133
+ * @remarks
134
+ * non-overlapping window. Rejected when nothing needs converting or the pair has no tenant rate.
135
+ */
136
+ fxRates?: Array<InlineFXRate> | undefined;
125
137
  gatewayPaymentMethodId?: string | undefined;
126
138
  /**
127
139
  * IncludePriceIDs selects which plan prices to attach. Nil/omitted attaches matching-cadence
@@ -200,6 +212,7 @@ export type CreateSubscriptionRequest$Outbound = {
200
212
  enable_true_up?: boolean | undefined;
201
213
  end_date?: string | undefined;
202
214
  external_customer_id?: string | undefined;
215
+ fx_rates?: Array<InlineFXRate$Outbound> | undefined;
203
216
  gateway_payment_method_id?: string | undefined;
204
217
  include_price_ids?: Array<string> | undefined;
205
218
  inheritance?: SubscriptionInheritanceConfig$Outbound | undefined;
@@ -254,6 +267,7 @@ export const CreateSubscriptionRequest$outboundSchema: z.ZodMiniType<
254
267
  enableTrueUp: z.optional(z.boolean()),
255
268
  endDate: z.optional(z.pipe(z.date(), z.transform(v => v.toISOString()))),
256
269
  externalCustomerId: z.optional(z.string()),
270
+ fxRates: z.optional(z.array(InlineFXRate$outboundSchema)),
257
271
  gatewayPaymentMethodId: z.optional(z.string()),
258
272
  includePriceIds: z.optional(z.array(z.string())),
259
273
  inheritance: z.optional(SubscriptionInheritanceConfig$outboundSchema),
@@ -303,6 +317,7 @@ export const CreateSubscriptionRequest$outboundSchema: z.ZodMiniType<
303
317
  enableTrueUp: "enable_true_up",
304
318
  endDate: "end_date",
305
319
  externalCustomerId: "external_customer_id",
320
+ fxRates: "fx_rates",
306
321
  gatewayPaymentMethodId: "gateway_payment_method_id",
307
322
  includePriceIds: "include_price_ids",
308
323
  lineItemCommitments: "line_item_commitments",
@@ -43,6 +43,10 @@ export type CustomerResponse = {
43
43
  * AddressState is the state of the customer's address
44
44
  */
45
45
  addressState?: string | undefined;
46
+ /**
47
+ * BillingCurrency is the fiat currency invoices are issued in; nil means charge currency is used as-is.
48
+ */
49
+ billingCurrency?: string | undefined;
46
50
  /**
47
51
  * Contact is an optional contact number for the customer (e.g. phone)
48
52
  */
@@ -100,6 +104,7 @@ export const CustomerResponse$inboundSchema: z.ZodMiniType<
100
104
  address_line2: types.optional(types.string()),
101
105
  address_postal_code: types.optional(types.string()),
102
106
  address_state: types.optional(types.string()),
107
+ billing_currency: types.optional(types.string()),
103
108
  contact: types.optional(types.string()),
104
109
  created_at: types.optional(types.date()),
105
110
  created_by: types.optional(types.string()),
@@ -127,6 +132,7 @@ export const CustomerResponse$inboundSchema: z.ZodMiniType<
127
132
  "address_line2": "addressLine2",
128
133
  "address_postal_code": "addressPostalCode",
129
134
  "address_state": "addressState",
135
+ "billing_currency": "billingCurrency",
130
136
  "created_at": "createdAt",
131
137
  "created_by": "createdBy",
132
138
  "environment_id": "environmentId",
@@ -36,6 +36,10 @@ export type Customer = {
36
36
  * AddressState is the state of the customer's address
37
37
  */
38
38
  addressState?: string | undefined;
39
+ /**
40
+ * BillingCurrency is the fiat currency invoices are issued in; nil means charge currency is used as-is.
41
+ */
42
+ billingCurrency?: string | undefined;
39
43
  /**
40
44
  * Contact is an optional contact number for the customer (e.g. phone)
41
45
  */
@@ -89,6 +93,7 @@ export const Customer$inboundSchema: z.ZodMiniType<Customer, unknown> = z.pipe(
89
93
  address_line2: types.optional(types.string()),
90
94
  address_postal_code: types.optional(types.string()),
91
95
  address_state: types.optional(types.string()),
96
+ billing_currency: types.optional(types.string()),
92
97
  contact: types.optional(types.string()),
93
98
  created_at: types.optional(types.date()),
94
99
  created_by: types.optional(types.string()),
@@ -113,6 +118,7 @@ export const Customer$inboundSchema: z.ZodMiniType<Customer, unknown> = z.pipe(
113
118
  "address_line2": "addressLine2",
114
119
  "address_postal_code": "addressPostalCode",
115
120
  "address_state": "addressState",
121
+ "billing_currency": "billingCurrency",
116
122
  "created_at": "createdAt",
117
123
  "created_by": "createdBy",
118
124
  "environment_id": "environmentId",
@@ -0,0 +1,46 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import { Result as SafeParseResult } from "../../types/fp.js";
9
+ import * as types from "../../types/primitives.js";
10
+ import { SDKValidationError } from "./sdk-validation-error.js";
11
+
12
+ export type FxConversionSource = {
13
+ net?: string | undefined;
14
+ subtotal?: string | undefined;
15
+ totalDiscount?: string | undefined;
16
+ totalPrepaidCreditsApplied?: string | undefined;
17
+ };
18
+
19
+ /** @internal */
20
+ export const FxConversionSource$inboundSchema: z.ZodMiniType<
21
+ FxConversionSource,
22
+ unknown
23
+ > = z.pipe(
24
+ z.object({
25
+ net: types.optional(types.string()),
26
+ subtotal: types.optional(types.string()),
27
+ total_discount: types.optional(types.string()),
28
+ total_prepaid_credits_applied: types.optional(types.string()),
29
+ }),
30
+ z.transform((v) => {
31
+ return remap$(v, {
32
+ "total_discount": "totalDiscount",
33
+ "total_prepaid_credits_applied": "totalPrepaidCreditsApplied",
34
+ });
35
+ }),
36
+ );
37
+
38
+ export function fxConversionSourceFromJSON(
39
+ jsonString: string,
40
+ ): SafeParseResult<FxConversionSource, SDKValidationError> {
41
+ return safeParse(
42
+ jsonString,
43
+ (x) => FxConversionSource$inboundSchema.parse(JSON.parse(x)),
44
+ `Failed to parse 'FxConversionSource' from JSON`,
45
+ );
46
+ }
@@ -0,0 +1,72 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import { Result as SafeParseResult } from "../../types/fp.js";
9
+ import * as types from "../../types/primitives.js";
10
+ import {
11
+ FxConversionSource,
12
+ FxConversionSource$inboundSchema,
13
+ } from "./fx-conversion-source.js";
14
+ import { FXRateScope, FXRateScope$inboundSchema } from "./fx-rate-scope.js";
15
+ import { SDKValidationError } from "./sdk-validation-error.js";
16
+
17
+ export type FxConversion = {
18
+ /**
19
+ * BillingCurrency is the currency the invoice was issued in.
20
+ */
21
+ billingCurrency?: string | undefined;
22
+ /**
23
+ * ChargeCurrency is the invoice's original (draft) currency.
24
+ */
25
+ chargeCurrency?: string | undefined;
26
+ /**
27
+ * ConvertedAt is when the conversion ran.
28
+ */
29
+ convertedAt?: Date | undefined;
30
+ /**
31
+ * Rate is the frozen rate: billing per 1 charge unit.
32
+ */
33
+ rate?: string | undefined;
34
+ /**
35
+ * RateID is the fx_rates row used, for reference only; never read again.
36
+ */
37
+ rateId?: string | undefined;
38
+ scope?: FXRateScope | undefined;
39
+ source?: FxConversionSource | undefined;
40
+ };
41
+
42
+ /** @internal */
43
+ export const FxConversion$inboundSchema: z.ZodMiniType<FxConversion, unknown> =
44
+ z.pipe(
45
+ z.object({
46
+ billing_currency: types.optional(types.string()),
47
+ charge_currency: types.optional(types.string()),
48
+ converted_at: types.optional(types.date()),
49
+ rate: types.optional(types.string()),
50
+ rate_id: types.optional(types.string()),
51
+ scope: types.optional(FXRateScope$inboundSchema),
52
+ source: types.optional(FxConversionSource$inboundSchema),
53
+ }),
54
+ z.transform((v) => {
55
+ return remap$(v, {
56
+ "billing_currency": "billingCurrency",
57
+ "charge_currency": "chargeCurrency",
58
+ "converted_at": "convertedAt",
59
+ "rate_id": "rateId",
60
+ });
61
+ }),
62
+ );
63
+
64
+ export function fxConversionFromJSON(
65
+ jsonString: string,
66
+ ): SafeParseResult<FxConversion, SDKValidationError> {
67
+ return safeParse(
68
+ jsonString,
69
+ (x) => FxConversion$inboundSchema.parse(JSON.parse(x)),
70
+ `Failed to parse 'FxConversion' from JSON`,
71
+ );
72
+ }
@@ -262,6 +262,8 @@ export * from "./filter-operator-type.js";
262
262
  export * from "./finalize-credit-note-request.js";
263
263
  export * from "./finalize-invoice-op.js";
264
264
  export * from "./flex-price-error.js";
265
+ export * from "./fx-conversion-source.js";
266
+ export * from "./fx-conversion.js";
265
267
  export * from "./fx-rate-filter.js";
266
268
  export * from "./fx-rate-response.js";
267
269
  export * from "./fx-rate-scope.js";
@@ -350,6 +352,7 @@ export * from "./grouped-invoicing-child-request.js";
350
352
  export * from "./http-client-errors.js";
351
353
  export * from "./ingest-event-request.js";
352
354
  export * from "./inheritance-action.js";
355
+ export * from "./inline-fx-rate.js";
353
356
  export * from "./integration-config-entry.js";
354
357
  export * from "./integration-config-response.js";
355
358
  export * from "./integration-entity-type.js";
@@ -673,6 +676,8 @@ export * from "./update-task-status-request.js";
673
676
  export * from "./update-tax-association-op.js";
674
677
  export * from "./update-tax-rate-op.js";
675
678
  export * from "./update-tax-rate-request.js";
679
+ export * from "./update-tenant-address.js";
680
+ export * from "./update-tenant-billing-details.js";
676
681
  export * from "./update-tenant-request.js";
677
682
  export * from "./update-user-request.js";
678
683
  export * from "./update-user-response.js";
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+
8
+ export type InlineFXRate = {
9
+ endDate?: Date | undefined;
10
+ rate?: string | undefined;
11
+ startDate?: Date | undefined;
12
+ };
13
+
14
+ /** @internal */
15
+ export type InlineFXRate$Outbound = {
16
+ end_date?: string | undefined;
17
+ rate?: string | undefined;
18
+ start_date?: string | undefined;
19
+ };
20
+
21
+ /** @internal */
22
+ export const InlineFXRate$outboundSchema: z.ZodMiniType<
23
+ InlineFXRate$Outbound,
24
+ InlineFXRate
25
+ > = z.pipe(
26
+ z.object({
27
+ endDate: z.optional(z.pipe(z.date(), z.transform(v => v.toISOString()))),
28
+ rate: z.optional(z.string()),
29
+ startDate: z.optional(z.pipe(z.date(), z.transform(v => v.toISOString()))),
30
+ }),
31
+ z.transform((v) => {
32
+ return remap$(v, {
33
+ endDate: "end_date",
34
+ startDate: "start_date",
35
+ });
36
+ }),
37
+ );
38
+
39
+ export function inlineFXRateToJSON(inlineFXRate: InlineFXRate): string {
40
+ return JSON.stringify(InlineFXRate$outboundSchema.parse(inlineFXRate));
41
+ }