@usehercules/sdk 1.7.0 → 1.8.0

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 (201) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +17 -16
  3. package/package.json +1 -1
  4. package/resources/beta/beta.d.mts +4 -4
  5. package/resources/beta/beta.d.mts.map +1 -1
  6. package/resources/beta/beta.d.ts +4 -4
  7. package/resources/beta/beta.d.ts.map +1 -1
  8. package/resources/beta/beta.js +4 -4
  9. package/resources/beta/beta.js.map +1 -1
  10. package/resources/beta/beta.mjs +4 -4
  11. package/resources/beta/beta.mjs.map +1 -1
  12. package/resources/beta/commerce/commerce.d.mts +201 -0
  13. package/resources/beta/commerce/commerce.d.mts.map +1 -0
  14. package/resources/beta/commerce/commerce.d.ts +201 -0
  15. package/resources/beta/commerce/commerce.d.ts.map +1 -0
  16. package/resources/beta/{pay/pay.js → commerce/commerce.js} +10 -14
  17. package/resources/beta/commerce/commerce.js.map +1 -0
  18. package/resources/beta/{pay/pay.mjs → commerce/commerce.mjs} +8 -12
  19. package/resources/beta/commerce/commerce.mjs.map +1 -0
  20. package/resources/beta/commerce/coupons.d.mts +333 -0
  21. package/resources/beta/commerce/coupons.d.mts.map +1 -0
  22. package/resources/beta/commerce/coupons.d.ts +333 -0
  23. package/resources/beta/commerce/coupons.d.ts.map +1 -0
  24. package/resources/beta/{pay → commerce}/coupons.js +8 -5
  25. package/resources/beta/commerce/coupons.js.map +1 -0
  26. package/resources/beta/{pay → commerce}/coupons.mjs +8 -5
  27. package/resources/beta/commerce/coupons.mjs.map +1 -0
  28. package/resources/beta/commerce/customers.d.mts +407 -0
  29. package/resources/beta/commerce/customers.d.mts.map +1 -0
  30. package/resources/beta/commerce/customers.d.ts +407 -0
  31. package/resources/beta/commerce/customers.d.ts.map +1 -0
  32. package/resources/beta/{pay → commerce}/customers.js +9 -6
  33. package/resources/beta/commerce/customers.js.map +1 -0
  34. package/resources/beta/{pay → commerce}/customers.mjs +9 -6
  35. package/resources/beta/commerce/customers.mjs.map +1 -0
  36. package/resources/beta/commerce/index.d.mts +5 -0
  37. package/resources/beta/commerce/index.d.mts.map +1 -0
  38. package/resources/beta/commerce/index.d.ts +5 -0
  39. package/resources/beta/commerce/index.d.ts.map +1 -0
  40. package/resources/beta/{pay → commerce}/index.js +3 -5
  41. package/resources/beta/commerce/index.js.map +1 -0
  42. package/resources/beta/{pay → commerce}/index.mjs +1 -2
  43. package/resources/beta/commerce/index.mjs.map +1 -0
  44. package/resources/beta/commerce/products/index.d.mts +4 -0
  45. package/resources/beta/commerce/products/index.d.mts.map +1 -0
  46. package/resources/beta/commerce/products/index.d.ts +4 -0
  47. package/resources/beta/commerce/products/index.d.ts.map +1 -0
  48. package/resources/beta/{pay → commerce}/products/index.js +3 -3
  49. package/resources/beta/commerce/products/index.js.map +1 -0
  50. package/resources/beta/{pay → commerce}/products/index.mjs +1 -1
  51. package/resources/beta/commerce/products/index.mjs.map +1 -0
  52. package/resources/beta/commerce/products/products.d.mts +967 -0
  53. package/resources/beta/commerce/products/products.d.mts.map +1 -0
  54. package/resources/beta/commerce/products/products.d.ts +967 -0
  55. package/resources/beta/commerce/products/products.d.ts.map +1 -0
  56. package/resources/beta/{pay → commerce}/products/products.js +16 -12
  57. package/resources/beta/commerce/products/products.js.map +1 -0
  58. package/resources/beta/{pay → commerce}/products/products.mjs +16 -12
  59. package/resources/beta/commerce/products/products.mjs.map +1 -0
  60. package/resources/beta/commerce/products/resources.d.mts +160 -0
  61. package/resources/beta/commerce/products/resources.d.mts.map +1 -0
  62. package/resources/beta/commerce/products/resources.d.ts +160 -0
  63. package/resources/beta/commerce/products/resources.d.ts.map +1 -0
  64. package/resources/beta/commerce/products/resources.js +41 -0
  65. package/resources/beta/commerce/products/resources.js.map +1 -0
  66. package/resources/beta/commerce/products/resources.mjs +37 -0
  67. package/resources/beta/commerce/products/resources.mjs.map +1 -0
  68. package/resources/beta/commerce/products/variants.d.mts +798 -0
  69. package/resources/beta/commerce/products/variants.d.mts.map +1 -0
  70. package/resources/beta/commerce/products/variants.d.ts +798 -0
  71. package/resources/beta/commerce/products/variants.d.ts.map +1 -0
  72. package/resources/beta/{pay → commerce}/products/variants.js +5 -8
  73. package/resources/beta/commerce/products/variants.js.map +1 -0
  74. package/resources/beta/{pay → commerce}/products/variants.mjs +5 -8
  75. package/resources/beta/commerce/products/variants.mjs.map +1 -0
  76. package/resources/beta/commerce/products.d.mts.map +1 -0
  77. package/resources/beta/commerce/products.d.ts.map +1 -0
  78. package/resources/beta/commerce/products.js.map +1 -0
  79. package/resources/beta/commerce/products.mjs.map +1 -0
  80. package/resources/beta/commerce.d.mts +2 -0
  81. package/resources/beta/commerce.d.mts.map +1 -0
  82. package/resources/beta/commerce.d.ts +2 -0
  83. package/resources/beta/commerce.d.ts.map +1 -0
  84. package/resources/beta/{pay.js → commerce.js} +2 -2
  85. package/resources/beta/commerce.js.map +1 -0
  86. package/resources/beta/{pay.mjs → commerce.mjs} +2 -2
  87. package/resources/beta/commerce.mjs.map +1 -0
  88. package/resources/beta/index.d.mts +1 -1
  89. package/resources/beta/index.d.mts.map +1 -1
  90. package/resources/beta/index.d.ts +1 -1
  91. package/resources/beta/index.d.ts.map +1 -1
  92. package/resources/beta/index.js +3 -3
  93. package/resources/beta/index.js.map +1 -1
  94. package/resources/beta/index.mjs +1 -1
  95. package/resources/beta/index.mjs.map +1 -1
  96. package/resources/push-notifications/push-notifications.d.mts +8 -9
  97. package/resources/push-notifications/push-notifications.d.mts.map +1 -1
  98. package/resources/push-notifications/push-notifications.d.ts +8 -9
  99. package/resources/push-notifications/push-notifications.d.ts.map +1 -1
  100. package/resources/push-notifications/push-notifications.js +5 -6
  101. package/resources/push-notifications/push-notifications.js.map +1 -1
  102. package/resources/push-notifications/push-notifications.mjs +5 -6
  103. package/resources/push-notifications/push-notifications.mjs.map +1 -1
  104. package/src/resources/beta/beta.ts +18 -18
  105. package/src/resources/beta/{pay/pay.ts → commerce/commerce.ts} +82 -85
  106. package/src/resources/beta/commerce/coupons.ts +440 -0
  107. package/src/resources/beta/commerce/customers.ts +532 -0
  108. package/src/resources/beta/commerce/index.ts +47 -0
  109. package/src/resources/beta/commerce/products/index.ts +37 -0
  110. package/src/resources/beta/commerce/products/products.ts +1199 -0
  111. package/src/resources/beta/commerce/products/resources.ts +213 -0
  112. package/src/resources/beta/commerce/products/variants.ts +984 -0
  113. package/src/resources/beta/{pay.ts → commerce.ts} +1 -1
  114. package/src/resources/beta/index.ts +8 -8
  115. package/src/resources/push-notifications/push-notifications.ts +8 -9
  116. package/src/version.ts +1 -1
  117. package/version.d.mts +1 -1
  118. package/version.d.ts +1 -1
  119. package/version.js +1 -1
  120. package/version.mjs +1 -1
  121. package/resources/beta/pay/coupons.d.mts +0 -156
  122. package/resources/beta/pay/coupons.d.mts.map +0 -1
  123. package/resources/beta/pay/coupons.d.ts +0 -156
  124. package/resources/beta/pay/coupons.d.ts.map +0 -1
  125. package/resources/beta/pay/coupons.js.map +0 -1
  126. package/resources/beta/pay/coupons.mjs.map +0 -1
  127. package/resources/beta/pay/customers.d.mts +0 -160
  128. package/resources/beta/pay/customers.d.mts.map +0 -1
  129. package/resources/beta/pay/customers.d.ts +0 -160
  130. package/resources/beta/pay/customers.d.ts.map +0 -1
  131. package/resources/beta/pay/customers.js.map +0 -1
  132. package/resources/beta/pay/customers.mjs.map +0 -1
  133. package/resources/beta/pay/entitlements.d.mts +0 -76
  134. package/resources/beta/pay/entitlements.d.mts.map +0 -1
  135. package/resources/beta/pay/entitlements.d.ts +0 -76
  136. package/resources/beta/pay/entitlements.d.ts.map +0 -1
  137. package/resources/beta/pay/entitlements.js +0 -41
  138. package/resources/beta/pay/entitlements.js.map +0 -1
  139. package/resources/beta/pay/entitlements.mjs +0 -37
  140. package/resources/beta/pay/entitlements.mjs.map +0 -1
  141. package/resources/beta/pay/index.d.mts +0 -6
  142. package/resources/beta/pay/index.d.mts.map +0 -1
  143. package/resources/beta/pay/index.d.ts +0 -6
  144. package/resources/beta/pay/index.d.ts.map +0 -1
  145. package/resources/beta/pay/index.js.map +0 -1
  146. package/resources/beta/pay/index.mjs.map +0 -1
  147. package/resources/beta/pay/pay.d.mts +0 -206
  148. package/resources/beta/pay/pay.d.mts.map +0 -1
  149. package/resources/beta/pay/pay.d.ts +0 -206
  150. package/resources/beta/pay/pay.d.ts.map +0 -1
  151. package/resources/beta/pay/pay.js.map +0 -1
  152. package/resources/beta/pay/pay.mjs.map +0 -1
  153. package/resources/beta/pay/products/entitlements.d.mts +0 -53
  154. package/resources/beta/pay/products/entitlements.d.mts.map +0 -1
  155. package/resources/beta/pay/products/entitlements.d.ts +0 -53
  156. package/resources/beta/pay/products/entitlements.d.ts.map +0 -1
  157. package/resources/beta/pay/products/entitlements.js +0 -38
  158. package/resources/beta/pay/products/entitlements.js.map +0 -1
  159. package/resources/beta/pay/products/entitlements.mjs +0 -34
  160. package/resources/beta/pay/products/entitlements.mjs.map +0 -1
  161. package/resources/beta/pay/products/index.d.mts +0 -4
  162. package/resources/beta/pay/products/index.d.mts.map +0 -1
  163. package/resources/beta/pay/products/index.d.ts +0 -4
  164. package/resources/beta/pay/products/index.d.ts.map +0 -1
  165. package/resources/beta/pay/products/index.js.map +0 -1
  166. package/resources/beta/pay/products/index.mjs.map +0 -1
  167. package/resources/beta/pay/products/products.d.mts +0 -183
  168. package/resources/beta/pay/products/products.d.mts.map +0 -1
  169. package/resources/beta/pay/products/products.d.ts +0 -183
  170. package/resources/beta/pay/products/products.d.ts.map +0 -1
  171. package/resources/beta/pay/products/products.js.map +0 -1
  172. package/resources/beta/pay/products/products.mjs.map +0 -1
  173. package/resources/beta/pay/products/variants.d.mts +0 -206
  174. package/resources/beta/pay/products/variants.d.mts.map +0 -1
  175. package/resources/beta/pay/products/variants.d.ts +0 -206
  176. package/resources/beta/pay/products/variants.d.ts.map +0 -1
  177. package/resources/beta/pay/products/variants.js.map +0 -1
  178. package/resources/beta/pay/products/variants.mjs.map +0 -1
  179. package/resources/beta/pay/products.d.mts.map +0 -1
  180. package/resources/beta/pay/products.d.ts.map +0 -1
  181. package/resources/beta/pay/products.js.map +0 -1
  182. package/resources/beta/pay/products.mjs.map +0 -1
  183. package/resources/beta/pay.d.mts +0 -2
  184. package/resources/beta/pay.d.mts.map +0 -1
  185. package/resources/beta/pay.d.ts +0 -2
  186. package/resources/beta/pay.d.ts.map +0 -1
  187. package/resources/beta/pay.js.map +0 -1
  188. package/resources/beta/pay.mjs.map +0 -1
  189. package/src/resources/beta/pay/coupons.ts +0 -218
  190. package/src/resources/beta/pay/customers.ts +0 -229
  191. package/src/resources/beta/pay/entitlements.ts +0 -113
  192. package/src/resources/beta/pay/index.ts +0 -46
  193. package/src/resources/beta/pay/products/entitlements.ts +0 -93
  194. package/src/resources/beta/pay/products/index.ts +0 -28
  195. package/src/resources/beta/pay/products/products.ts +0 -280
  196. package/src/resources/beta/pay/products/variants.ts +0 -279
  197. /package/resources/beta/{pay → commerce}/products.d.mts +0 -0
  198. /package/resources/beta/{pay → commerce}/products.d.ts +0 -0
  199. /package/resources/beta/{pay → commerce}/products.js +0 -0
  200. /package/resources/beta/{pay → commerce}/products.mjs +0 -0
  201. /package/src/resources/beta/{pay → commerce}/products.ts +0 -0
@@ -0,0 +1,213 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../../../core/resource';
4
+ import { APIPromise } from '../../../../core/api-promise';
5
+ import { CursorIDPage, type CursorIDPageParams, PagePromise } from '../../../../core/pagination';
6
+ import { buildHeaders } from '../../../../internal/headers';
7
+ import { RequestOptions } from '../../../../internal/request-options';
8
+ import { path } from '../../../../internal/utils/path';
9
+
10
+ export class Resources extends APIResource {
11
+ /**
12
+ * Retrieves all resources attached to a product. Resources define the features,
13
+ * content, or entitlements that customers gain access to when purchasing this
14
+ * product.
15
+ */
16
+ list(
17
+ productID: string,
18
+ query: ResourceListParams | null | undefined = {},
19
+ options?: RequestOptions,
20
+ ): PagePromise<ResourceListResponsesCursorIDPage, ResourceListResponse> {
21
+ return this._client.getAPIList(
22
+ path`/v1/commerce/products/${productID}/resources`,
23
+ CursorIDPage<ResourceListResponse>,
24
+ { query, ...options },
25
+ );
26
+ }
27
+
28
+ /**
29
+ * Attaches a resource to a product. All customers who purchase this product (via
30
+ * subscription or one-time payment) will gain access to the attached resource. For
31
+ * subscriptions, access is granted while active. For one-time purchases, access is
32
+ * permanent.
33
+ */
34
+ attach(
35
+ productID: string,
36
+ body: ResourceAttachParams,
37
+ options?: RequestOptions,
38
+ ): APIPromise<ResourceAttachResponse> {
39
+ return this._client.post(path`/v1/commerce/products/${productID}/resources`, { body, ...options });
40
+ }
41
+
42
+ /**
43
+ * Removes a resource from a product. Customers will lose access to this resource.
44
+ * For subscriptions, access is revoked immediately. For one-time purchases,
45
+ * existing grants are not affected.
46
+ */
47
+ remove(resourceID: string, params: ResourceRemoveParams, options?: RequestOptions): APIPromise<void> {
48
+ const { product_id } = params;
49
+ return this._client.delete(path`/v1/commerce/products/${product_id}/resources/${resourceID}`, {
50
+ ...options,
51
+ headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
52
+ });
53
+ }
54
+ }
55
+
56
+ export type ResourceListResponsesCursorIDPage = CursorIDPage<ResourceListResponse>;
57
+
58
+ /**
59
+ * A resource that can be attached to products to grant access to customers.
60
+ * Resources represent monetizable content or features in your app.
61
+ */
62
+ export interface ResourceListResponse {
63
+ /**
64
+ * Unique identifier for the topic subscription
65
+ */
66
+ id: string;
67
+
68
+ /**
69
+ * Whether the resource is active and grants access
70
+ */
71
+ active: boolean;
72
+
73
+ /**
74
+ * Timestamp when the resource was created
75
+ */
76
+ created: string;
77
+
78
+ /**
79
+ * Type of resource: custom_entitlement, file, content, course, or ticket
80
+ */
81
+ type: 'custom_entitlement' | 'file' | 'content' | 'course' | 'ticket';
82
+
83
+ /**
84
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
85
+ */
86
+ custom_entitlement?: ResourceListResponse.CustomEntitlement | null;
87
+ }
88
+
89
+ export namespace ResourceListResponse {
90
+ /**
91
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
92
+ */
93
+ export interface CustomEntitlement {
94
+ /**
95
+ * Unique identifier for the custom entitlement. Must not contain '.'
96
+ */
97
+ id: string;
98
+
99
+ /**
100
+ * Custom metadata for the entitlement
101
+ */
102
+ metadata?: { [key: string]: unknown };
103
+ }
104
+ }
105
+
106
+ /**
107
+ * A resource that can be attached to products to grant access to customers.
108
+ * Resources represent monetizable content or features in your app.
109
+ */
110
+ export interface ResourceAttachResponse {
111
+ /**
112
+ * Unique identifier for the topic subscription
113
+ */
114
+ id: string;
115
+
116
+ /**
117
+ * Whether the resource is active and grants access
118
+ */
119
+ active: boolean;
120
+
121
+ /**
122
+ * Timestamp when the resource was created
123
+ */
124
+ created: string;
125
+
126
+ /**
127
+ * Type of resource: custom_entitlement, file, content, course, or ticket
128
+ */
129
+ type: 'custom_entitlement' | 'file' | 'content' | 'course' | 'ticket';
130
+
131
+ /**
132
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
133
+ */
134
+ custom_entitlement?: ResourceAttachResponse.CustomEntitlement | null;
135
+ }
136
+
137
+ export namespace ResourceAttachResponse {
138
+ /**
139
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
140
+ */
141
+ export interface CustomEntitlement {
142
+ /**
143
+ * Unique identifier for the custom entitlement. Must not contain '.'
144
+ */
145
+ id: string;
146
+
147
+ /**
148
+ * Custom metadata for the entitlement
149
+ */
150
+ metadata?: { [key: string]: unknown };
151
+ }
152
+ }
153
+
154
+ export interface ResourceListParams extends CursorIDPageParams {
155
+ /**
156
+ * Filter by active status
157
+ */
158
+ active?: 'true' | 'false';
159
+
160
+ /**
161
+ * Filter by resource type
162
+ */
163
+ type?: 'custom_entitlement' | 'file' | 'content' | 'course' | 'ticket';
164
+ }
165
+
166
+ export interface ResourceAttachParams {
167
+ /**
168
+ * Type of resource: custom_entitlement, file, content, course, or ticket
169
+ */
170
+ type: 'custom_entitlement' | 'file' | 'content' | 'course' | 'ticket';
171
+
172
+ /**
173
+ * Optional custom ID for the resource. If not provided, one will be generated.
174
+ */
175
+ id?: string;
176
+
177
+ /**
178
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
179
+ */
180
+ custom_entitlement?: ResourceAttachParams.CustomEntitlement;
181
+ }
182
+
183
+ export namespace ResourceAttachParams {
184
+ /**
185
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
186
+ */
187
+ export interface CustomEntitlement {
188
+ /**
189
+ * Unique identifier for the custom entitlement. Must not contain '.'
190
+ */
191
+ id: string;
192
+
193
+ /**
194
+ * Custom metadata for the entitlement
195
+ */
196
+ metadata?: { [key: string]: unknown };
197
+ }
198
+ }
199
+
200
+ export interface ResourceRemoveParams {
201
+ product_id: string;
202
+ }
203
+
204
+ export declare namespace Resources {
205
+ export {
206
+ type ResourceListResponse as ResourceListResponse,
207
+ type ResourceAttachResponse as ResourceAttachResponse,
208
+ type ResourceListResponsesCursorIDPage as ResourceListResponsesCursorIDPage,
209
+ type ResourceListParams as ResourceListParams,
210
+ type ResourceAttachParams as ResourceAttachParams,
211
+ type ResourceRemoveParams as ResourceRemoveParams,
212
+ };
213
+ }