autumn-js 0.0.100 → 0.0.101

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 (177) hide show
  1. package/dist/libraries/backend/better-auth.d.mts +18 -18
  2. package/dist/libraries/backend/better-auth.d.ts +18 -18
  3. package/dist/libraries/backend/better-auth.mjs +2 -2
  4. package/dist/libraries/backend/convex.mjs +2 -2
  5. package/dist/libraries/backend/elysia.d.mts +35 -0
  6. package/dist/libraries/backend/elysia.d.ts +35 -0
  7. package/dist/libraries/backend/elysia.js +1123 -0
  8. package/dist/libraries/backend/elysia.mjs +96 -0
  9. package/dist/libraries/backend/express.d.mts +1 -1
  10. package/dist/libraries/backend/express.d.ts +1 -1
  11. package/dist/libraries/backend/express.mjs +2 -2
  12. package/dist/libraries/backend/fastify.mjs +2 -2
  13. package/dist/libraries/backend/hono.mjs +2 -2
  14. package/dist/libraries/backend/next.js +94 -94
  15. package/dist/libraries/backend/next.mjs +96 -96
  16. package/dist/libraries/backend/react-router.mjs +2 -2
  17. package/dist/libraries/backend/{referralTypes-CkT8JNar.d.mts → referralTypes-Dg9pRvI7.d.mts} +27 -29
  18. package/dist/libraries/backend/{referralTypes-Dh4wyHJ1.d.ts → referralTypes-HAk2vTns.d.ts} +27 -29
  19. package/dist/libraries/backend/remix_dep.mjs +2 -2
  20. package/dist/libraries/backend/routes/backendRouter.mjs +2 -2
  21. package/dist/libraries/backend/supabase.mjs +2 -2
  22. package/dist/libraries/backend/tanstack.js +2 -2
  23. package/dist/libraries/backend/tanstack.mjs +4 -4
  24. package/dist/libraries/backend/utils/withAuth.d.mts +1 -1
  25. package/dist/libraries/backend/utils/withAuth.d.ts +1 -1
  26. package/dist/libraries/react/AutumnContext.d.mts +4 -4
  27. package/dist/libraries/react/AutumnContext.d.ts +4 -4
  28. package/dist/libraries/react/AutumnContext.mjs +4 -4
  29. package/dist/libraries/react/BaseAutumnProvider.d.mts +4 -4
  30. package/dist/libraries/react/BaseAutumnProvider.d.ts +4 -4
  31. package/dist/libraries/react/BaseAutumnProvider.mjs +9 -9
  32. package/dist/libraries/react/{ReactAutumnClient-DpexS7O5.d.ts → ReactAutumnClient-B4P_QjY1.d.ts} +3 -3
  33. package/dist/libraries/react/{ReactAutumnClient-Da2CbwmZ.d.mts → ReactAutumnClient-DCdPx-ps.d.mts} +3 -3
  34. package/dist/libraries/react/ReactAutumnProvider.d.mts +1 -1
  35. package/dist/libraries/react/ReactAutumnProvider.d.ts +1 -1
  36. package/dist/libraries/react/ReactAutumnProvider.mjs +10 -10
  37. package/dist/libraries/react/{chunk-DW6X6NNG.mjs → chunk-24EVX3BR.mjs} +273 -273
  38. package/dist/libraries/react/{chunk-OAWFFAKA.mjs → chunk-3CJSWXNT.mjs} +6 -6
  39. package/dist/libraries/react/{chunk-K3223VDB.mjs → chunk-5G3DYUNT.mjs} +1 -1
  40. package/dist/libraries/react/{chunk-EZAZUSYO.mjs → chunk-6CJ3FB74.mjs} +2 -2
  41. package/dist/libraries/react/{chunk-XOGMTMNM.mjs → chunk-AOJCMXVS.mjs} +3 -3
  42. package/dist/libraries/react/{chunk-KRW7ZHBV.mjs → chunk-APDR7D6A.mjs} +2 -2
  43. package/dist/libraries/react/{chunk-H2NGSCWI.mjs → chunk-CAMHARUX.mjs} +2 -2
  44. package/dist/libraries/react/{chunk-BSF3KB4R.mjs → chunk-CPITDC7S.mjs} +46 -46
  45. package/dist/libraries/react/{chunk-VRDE5C4M.mjs → chunk-DVMVIAZE.mjs} +3 -3
  46. package/dist/libraries/react/{chunk-GQ3TAHSV.mjs → chunk-G3FBFZLU.mjs} +1 -1
  47. package/dist/libraries/react/{chunk-HJ374VZF.mjs → chunk-LVDONEVF.mjs} +2 -2
  48. package/dist/libraries/react/{chunk-6SRIDR3L.mjs → chunk-MZDRIPNS.mjs} +2 -2
  49. package/dist/libraries/react/{chunk-OAPUYXBO.mjs → chunk-R46CJXF7.mjs} +6 -6
  50. package/dist/libraries/react/{chunk-TPKQIL3N.mjs → chunk-R4BYOLST.mjs} +2 -2
  51. package/dist/libraries/react/{chunk-ZVQKDPUP.mjs → chunk-RQEL7G2O.mjs} +3 -3
  52. package/dist/libraries/react/{chunk-6MNYJ3YQ.mjs → chunk-RQG36YPD.mjs} +2 -2
  53. package/dist/libraries/react/{chunk-BYXO62BF.mjs → chunk-T5PIJ4HG.mjs} +2 -2
  54. package/dist/libraries/react/{chunk-AL3VJLFU.mjs → chunk-YLZ5NFYO.mjs} +1 -1
  55. package/dist/libraries/react/client/ReactAutumnClient.d.mts +4 -4
  56. package/dist/libraries/react/client/ReactAutumnClient.d.ts +4 -4
  57. package/dist/libraries/react/client/ReactAutumnClient.mjs +3 -3
  58. package/dist/libraries/react/client/clientCompMethods.d.mts +4 -4
  59. package/dist/libraries/react/client/clientCompMethods.d.ts +4 -4
  60. package/dist/libraries/react/client/clientCusMethods.d.mts +4 -4
  61. package/dist/libraries/react/client/clientCusMethods.d.ts +4 -4
  62. package/dist/libraries/react/client/clientEntityMethods.d.mts +4 -4
  63. package/dist/libraries/react/client/clientEntityMethods.d.ts +4 -4
  64. package/dist/libraries/react/client/clientGenMethods.d.mts +4 -4
  65. package/dist/libraries/react/client/clientGenMethods.d.ts +4 -4
  66. package/dist/libraries/react/client/clientProdMethods.d.mts +4 -4
  67. package/dist/libraries/react/client/clientProdMethods.d.ts +4 -4
  68. package/dist/libraries/react/client/clientReferralMethods.d.mts +4 -4
  69. package/dist/libraries/react/client/clientReferralMethods.d.ts +4 -4
  70. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.css +116 -111
  71. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.d.mts +1 -1
  72. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.d.ts +1 -1
  73. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.js +55 -55
  74. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.mjs +23 -23
  75. package/dist/libraries/react/components/attach-dialog/lib/attach-content.d.mts +1 -1
  76. package/dist/libraries/react/components/attach-dialog/lib/attach-content.d.ts +1 -1
  77. package/dist/libraries/react/components/check-dialog/check-dialog-synced.d.mts +1 -1
  78. package/dist/libraries/react/components/check-dialog/check-dialog-synced.d.ts +1 -1
  79. package/dist/libraries/react/components/check-dialog/check-dialog-synced.js +50 -50
  80. package/dist/libraries/react/components/check-dialog/check-dialog-synced.mjs +5 -5
  81. package/dist/libraries/react/components/check-dialog/lib/check-content.d.mts +1 -1
  82. package/dist/libraries/react/components/check-dialog/lib/check-content.d.ts +1 -1
  83. package/dist/libraries/react/components/pricing-table/pricing-table-synced.css +116 -111
  84. package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.mts +1 -1
  85. package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.ts +1 -1
  86. package/dist/libraries/react/components/pricing-table/pricing-table-synced.js +55 -55
  87. package/dist/libraries/react/components/pricing-table/pricing-table-synced.mjs +23 -23
  88. package/dist/libraries/react/components/ui/button.d.mts +1 -1
  89. package/dist/libraries/react/components/ui/button.d.ts +1 -1
  90. package/dist/libraries/react/components/ui/button.js +3 -3
  91. package/dist/libraries/react/components/ui/button.mjs +2 -2
  92. package/dist/libraries/react/components/ui/dialog.js +49 -49
  93. package/dist/libraries/react/components/ui/dialog.mjs +3 -3
  94. package/dist/libraries/react/components/ui/switch.js +12 -12
  95. package/dist/libraries/react/components/ui/switch.mjs +3 -3
  96. package/dist/libraries/react/{cusTypes-4aCCdGkc.d.ts → cusTypes-Bf1qr9iE.d.mts} +1 -3
  97. package/dist/libraries/react/{cusTypes-4aCCdGkc.d.mts → cusTypes-Bf1qr9iE.d.ts} +1 -3
  98. package/dist/libraries/react/{entTypes-Bw20cBXx.d.mts → entTypes-CscyyE1A.d.mts} +1 -1
  99. package/dist/libraries/react/{entTypes-BgAiRNBf.d.ts → entTypes-O8YXxhrA.d.ts} +1 -1
  100. package/dist/libraries/react/hooks/handleAllowed.d.mts +2 -2
  101. package/dist/libraries/react/hooks/handleAllowed.d.ts +2 -2
  102. package/dist/libraries/react/hooks/useAutumn.d.mts +2 -2
  103. package/dist/libraries/react/hooks/useAutumn.d.ts +2 -2
  104. package/dist/libraries/react/hooks/useAutumn.mjs +7 -7
  105. package/dist/libraries/react/hooks/useAutumnBase.d.mts +4 -4
  106. package/dist/libraries/react/hooks/useAutumnBase.d.ts +4 -4
  107. package/dist/libraries/react/hooks/useAutumnBase.mjs +6 -6
  108. package/dist/libraries/react/hooks/useCustomer.d.mts +4 -4
  109. package/dist/libraries/react/hooks/useCustomer.d.ts +4 -4
  110. package/dist/libraries/react/hooks/useCustomer.mjs +8 -8
  111. package/dist/libraries/react/hooks/useCustomerBase.d.mts +4 -4
  112. package/dist/libraries/react/hooks/useCustomerBase.d.ts +4 -4
  113. package/dist/libraries/react/hooks/useCustomerBase.mjs +7 -7
  114. package/dist/libraries/react/hooks/useEntity.d.mts +3 -3
  115. package/dist/libraries/react/hooks/useEntity.d.ts +3 -3
  116. package/dist/libraries/react/hooks/useEntity.mjs +8 -8
  117. package/dist/libraries/react/hooks/useEntityBase.d.mts +4 -4
  118. package/dist/libraries/react/hooks/useEntityBase.d.ts +4 -4
  119. package/dist/libraries/react/hooks/useEntityBase.mjs +7 -7
  120. package/dist/libraries/react/hooks/usePricingTable.d.mts +1 -1
  121. package/dist/libraries/react/hooks/usePricingTable.d.ts +1 -1
  122. package/dist/libraries/react/hooks/usePricingTable.mjs +6 -6
  123. package/dist/libraries/react/hooks/usePricingTableBase.d.mts +4 -4
  124. package/dist/libraries/react/hooks/usePricingTableBase.d.ts +4 -4
  125. package/dist/libraries/react/hooks/usePricingTableBase.mjs +5 -5
  126. package/dist/libraries/react/hooks/useProductsBase.mjs +4 -4
  127. package/dist/libraries/react/index.d.mts +0 -2
  128. package/dist/libraries/react/index.d.ts +0 -2
  129. package/dist/libraries/react/index.js +56 -56
  130. package/dist/libraries/react/index.mjs +56 -56
  131. package/dist/libraries/react/{response-D24DJs94.d.mts → response-B4VzjWEU.d.mts} +1 -1
  132. package/dist/libraries/react/{response-B9P0zPDQ.d.ts → response-C3S90max.d.ts} +1 -1
  133. package/dist/next/{AutumnProvider-BFEETHYT.d.mts → AutumnProvider-CCYZC_bN.d.mts} +0 -2
  134. package/dist/next/{AutumnProvider-BFEETHYT.d.ts → AutumnProvider-CCYZC_bN.d.ts} +0 -2
  135. package/dist/next/AutumnProvider.d.mts +1 -1
  136. package/dist/next/AutumnProvider.d.ts +1 -1
  137. package/dist/next/client/NextAutumnClient.d.mts +7 -7
  138. package/dist/next/client/NextAutumnClient.d.ts +7 -7
  139. package/dist/next/client/NextAutumnProvider.d.mts +1 -1
  140. package/dist/next/client/NextAutumnProvider.d.ts +1 -1
  141. package/dist/next/client/{clientGenTypes-BIYZcmWk.d.mts → clientGenTypes-9ngy1q97.d.mts} +9 -9
  142. package/dist/next/client/{clientGenTypes-xd2Egfm-.d.ts → clientGenTypes-CxB4go6q.d.ts} +9 -9
  143. package/dist/next/client/clientUtils.d.mts +2 -2
  144. package/dist/next/client/clientUtils.d.ts +2 -2
  145. package/dist/next/client/{cusTypes-u2ZoeKeF.d.mts → cusTypes-D8lhXGaX.d.mts} +2 -4
  146. package/dist/next/client/{cusTypes-u2ZoeKeF.d.ts → cusTypes-D8lhXGaX.d.ts} +2 -4
  147. package/dist/next/client/{entTypes-B54OSRIo.d.mts → entTypes-B-2_9hzP.d.mts} +1 -1
  148. package/dist/next/client/{entTypes-Cl6ES2C6.d.ts → entTypes-Dq2mbehl.d.ts} +1 -1
  149. package/dist/next/client/hooks/useAutumn.d.mts +2 -2
  150. package/dist/next/client/hooks/useAutumn.d.ts +2 -2
  151. package/dist/next/client/hooks/useCustomer.d.mts +3 -3
  152. package/dist/next/client/hooks/useCustomer.d.ts +3 -3
  153. package/dist/next/client/hooks/useEntity.d.mts +3 -3
  154. package/dist/next/client/hooks/useEntity.d.ts +3 -3
  155. package/dist/next/client/hooks/usePricingTable.d.mts +1 -1
  156. package/dist/next/client/hooks/usePricingTable.d.ts +1 -1
  157. package/dist/next/client/types.d.mts +2 -2
  158. package/dist/next/client/types.d.ts +2 -2
  159. package/dist/next/index.d.mts +2 -2
  160. package/dist/next/index.d.ts +2 -2
  161. package/dist/next/server/auth/withNextAuth.d.mts +1 -1
  162. package/dist/next/server/auth/withNextAuth.d.ts +1 -1
  163. package/dist/next/server/componentActions.d.mts +1 -1
  164. package/dist/next/server/componentActions.d.ts +1 -1
  165. package/dist/next/server/cusActions.d.mts +21 -21
  166. package/dist/next/server/cusActions.d.ts +21 -21
  167. package/dist/next/server/{cusTypes-JQwzkgDU.d.mts → cusTypes-DhOYtM7H.d.mts} +2 -4
  168. package/dist/next/server/{cusTypes-JQwzkgDU.d.ts → cusTypes-DhOYtM7H.d.ts} +2 -4
  169. package/dist/next/server/genActions.d.mts +1 -1
  170. package/dist/next/server/genActions.d.ts +1 -1
  171. package/dist/sdk/index.d.mts +0 -2
  172. package/dist/sdk/index.d.ts +0 -2
  173. package/dist/styles/global.css +116 -111
  174. package/package.json +28 -9
  175. package/tsup.config.ts +1 -0
  176. package/dist/libraries/backend/{chunk-DUDRVC7W.mjs → chunk-NW6B7QXB.mjs} +3 -3
  177. package/dist/libraries/react/{chunk-ALIGIMSK.mjs → chunk-ALFXUHDD.mjs} +6 -6
@@ -0,0 +1,1123 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/libraries/backend/elysia.ts
31
+ var elysia_exports = {};
32
+ __export(elysia_exports, {
33
+ autumnHandler: () => autumnHandler
34
+ });
35
+ module.exports = __toCommonJS(elysia_exports);
36
+ var import_rou36 = require("rou3");
37
+
38
+ // src/sdk/error.ts
39
+ var AutumnError = class _AutumnError extends Error {
40
+ message;
41
+ code;
42
+ constructor(response) {
43
+ super(response.message);
44
+ this.message = response.message;
45
+ this.code = response.code;
46
+ }
47
+ static fromError(error) {
48
+ return new _AutumnError({
49
+ message: error.message || "Unknown error",
50
+ code: error.code || "unknown_error"
51
+ });
52
+ }
53
+ toString() {
54
+ return `${this.message} (code: ${this.code})`;
55
+ }
56
+ toJSON() {
57
+ return {
58
+ message: this.message,
59
+ code: this.code
60
+ };
61
+ }
62
+ };
63
+
64
+ // src/sdk/general/genMethods.ts
65
+ var handleAttach = async ({
66
+ instance,
67
+ params
68
+ }) => {
69
+ return instance.post("/attach", params);
70
+ };
71
+ var handleSetupPayment = async ({
72
+ instance,
73
+ params
74
+ }) => {
75
+ return instance.post("/setup_payment", params);
76
+ };
77
+ var handleCancel = async ({
78
+ instance,
79
+ params
80
+ }) => {
81
+ return instance.post("/cancel", params);
82
+ };
83
+ var handleEntitled = async ({
84
+ instance,
85
+ params
86
+ }) => {
87
+ return instance.post("/entitled", params);
88
+ };
89
+ var handleEvent = async ({
90
+ instance,
91
+ params
92
+ }) => {
93
+ return instance.post("/events", params);
94
+ };
95
+ var handleTrack = async ({
96
+ instance,
97
+ params
98
+ }) => {
99
+ return instance.post("/track", params);
100
+ };
101
+ var handleUsage = async ({
102
+ instance,
103
+ params
104
+ }) => {
105
+ return instance.post("/usage", params);
106
+ };
107
+ var handleCheck = async ({
108
+ instance,
109
+ params
110
+ }) => {
111
+ return instance.post("/check", params);
112
+ };
113
+
114
+ // src/libraries/backend/constants.ts
115
+ var autumnApiUrl = "https://api.useautumn.com/v1";
116
+ var BASE_PATH = "/api/autumn";
117
+
118
+ // src/sdk/utils.ts
119
+ var staticWrapper = (callback, instance, args) => {
120
+ if (!instance) {
121
+ instance = new Autumn();
122
+ }
123
+ return callback({ instance, ...args });
124
+ };
125
+
126
+ // src/sdk/customers/cusMethods.ts
127
+ var customerMethods = (instance) => {
128
+ return {
129
+ get: (id, params) => staticWrapper(getCustomer, instance, { id, params }),
130
+ create: (params) => staticWrapper(createCustomer, instance, { params }),
131
+ update: (id, params) => staticWrapper(updateCustomer, instance, { id, params }),
132
+ delete: (id) => staticWrapper(deleteCustomer, instance, { id }),
133
+ billingPortal: (id, params) => staticWrapper(billingPortal, instance, { id, params })
134
+ };
135
+ };
136
+ var getExpandStr = (expand) => {
137
+ if (!expand) {
138
+ return "";
139
+ }
140
+ return `expand=${expand.join(",")}`;
141
+ };
142
+ var getCustomer = async ({
143
+ instance,
144
+ id,
145
+ params
146
+ }) => {
147
+ if (!id) {
148
+ return {
149
+ data: null,
150
+ error: new AutumnError({
151
+ message: "Customer ID is required",
152
+ code: "CUSTOMER_ID_REQUIRED"
153
+ })
154
+ };
155
+ }
156
+ return instance.get(`/customers/${id}?${getExpandStr(params?.expand)}`);
157
+ };
158
+ var createCustomer = async ({
159
+ instance,
160
+ params
161
+ }) => {
162
+ return instance.post(`/customers?${getExpandStr(params?.expand)}`, params);
163
+ };
164
+ var updateCustomer = async ({
165
+ instance,
166
+ id,
167
+ params
168
+ }) => {
169
+ return instance.post(`/customers/${id}`, params);
170
+ };
171
+ var deleteCustomer = async ({
172
+ instance,
173
+ id
174
+ }) => {
175
+ return instance.delete(`/customers/${id}`);
176
+ };
177
+ var billingPortal = async ({
178
+ instance,
179
+ id,
180
+ params
181
+ }) => {
182
+ return instance.post(`/customers/${id}/billing_portal`, params);
183
+ };
184
+
185
+ // src/sdk/customers/entities/entMethods.ts
186
+ var entityMethods = (instance) => {
187
+ return {
188
+ get: (customer_id, entity_id, params) => staticWrapper(getEntity, instance, {
189
+ customer_id,
190
+ entity_id,
191
+ params
192
+ }),
193
+ create: (customer_id, params) => staticWrapper(createEntity, instance, { customer_id, params }),
194
+ delete: (customer_id, entity_id) => staticWrapper(deleteEntity, instance, { customer_id, entity_id })
195
+ };
196
+ };
197
+ var getExpandStr2 = (expand) => {
198
+ if (!expand) {
199
+ return "";
200
+ }
201
+ return `expand=${expand.join(",")}`;
202
+ };
203
+ var getEntity = async ({
204
+ instance,
205
+ customer_id,
206
+ entity_id,
207
+ params
208
+ }) => {
209
+ return instance.get(
210
+ `/customers/${customer_id}/entities/${entity_id}?${getExpandStr2(
211
+ params?.expand
212
+ )}`
213
+ );
214
+ };
215
+ var createEntity = async ({
216
+ instance,
217
+ customer_id,
218
+ params
219
+ }) => {
220
+ return instance.post(`/customers/${customer_id}/entities`, params);
221
+ };
222
+ var deleteEntity = async ({
223
+ instance,
224
+ customer_id,
225
+ entity_id
226
+ }) => {
227
+ return instance.delete(`/customers/${customer_id}/entities/${entity_id}`);
228
+ };
229
+
230
+ // src/sdk/products/prodMethods.ts
231
+ var productMethods = (instance) => {
232
+ return {
233
+ get: (id) => staticWrapper(getProduct, instance, { id }),
234
+ create: (params) => staticWrapper(createProduct, instance, { params }),
235
+ list: (params) => staticWrapper(listProducts, instance, { params })
236
+ };
237
+ };
238
+ var listProducts = async ({
239
+ instance,
240
+ params
241
+ }) => {
242
+ let path = "/products_beta";
243
+ if (params) {
244
+ const queryParams = new URLSearchParams();
245
+ for (const [key, value] of Object.entries(params)) {
246
+ if (value !== void 0) {
247
+ queryParams.append(key, String(value));
248
+ }
249
+ }
250
+ const queryString = queryParams.toString();
251
+ if (queryString) {
252
+ path += `?${queryString}`;
253
+ }
254
+ }
255
+ return instance.get(path);
256
+ };
257
+ var getProduct = async ({
258
+ instance,
259
+ id
260
+ }) => {
261
+ return instance.get(`/products/${id}`);
262
+ };
263
+ var createProduct = async ({
264
+ instance,
265
+ params
266
+ }) => {
267
+ return instance.post("/products", params);
268
+ };
269
+
270
+ // src/sdk/referrals/referralMethods.ts
271
+ var referralMethods = (instance) => {
272
+ return {
273
+ createCode: (params) => staticWrapper(createReferralCode, instance, { params }),
274
+ redeemCode: (params) => staticWrapper(redeemReferralCode, instance, { params })
275
+ };
276
+ };
277
+ var createReferralCode = async ({
278
+ instance,
279
+ params
280
+ }) => {
281
+ return instance.post("/referrals/code", params);
282
+ };
283
+ var redeemReferralCode = async ({
284
+ instance,
285
+ params
286
+ }) => {
287
+ return instance.post("/referrals/redeem", params);
288
+ };
289
+
290
+ // src/sdk/response.ts
291
+ var toContainerResult = async ({
292
+ response,
293
+ logger: logger2,
294
+ logError = true
295
+ }) => {
296
+ if (response.status < 200 || response.status >= 300) {
297
+ let error;
298
+ try {
299
+ error = await response.json();
300
+ if (logError) {
301
+ logger2.error(`[Autumn] ${error.message}`);
302
+ }
303
+ } catch (error2) {
304
+ throw error2;
305
+ return {
306
+ data: null,
307
+ error: new AutumnError({
308
+ message: "Failed to parse JSON response from Autumn",
309
+ code: "internal_error"
310
+ }),
311
+ statusCode: response.status
312
+ };
313
+ }
314
+ return {
315
+ data: null,
316
+ error: new AutumnError({
317
+ message: error.message,
318
+ code: error.code
319
+ }),
320
+ statusCode: response.status
321
+ };
322
+ }
323
+ try {
324
+ let data = await response.json();
325
+ return {
326
+ data,
327
+ error: null,
328
+ statusCode: response?.status
329
+ };
330
+ } catch (error) {
331
+ throw error;
332
+ return {
333
+ data: null,
334
+ error: new AutumnError({
335
+ message: "Failed to parse Autumn API response",
336
+ code: "internal_error"
337
+ }),
338
+ statusCode: response?.status
339
+ };
340
+ }
341
+ };
342
+
343
+ // src/utils/logger.ts
344
+ var import_chalk = __toESM(require("chalk"));
345
+ var getTime = () => {
346
+ let timeString = (/* @__PURE__ */ new Date()).toISOString();
347
+ return `[${timeString.split("T")[1].split(".")[0]}]`;
348
+ };
349
+ var greaterThanLevel = (level) => {
350
+ return levels.indexOf(level) >= levels.indexOf(logger.level);
351
+ };
352
+ var levels = ["debug", "info", "warn", "error", "fatal"];
353
+ var logger = {
354
+ ...console,
355
+ level: "info",
356
+ debug: (...args) => {
357
+ if (greaterThanLevel("debug")) {
358
+ console.log(getTime(), import_chalk.default.gray("DEBUG"), ...args);
359
+ }
360
+ },
361
+ log: (...args) => {
362
+ console.log(getTime(), import_chalk.default.blue("INFO"), ...args);
363
+ },
364
+ info: (...args) => {
365
+ if (greaterThanLevel("info")) {
366
+ console.log(getTime(), import_chalk.default.blue("INFO"), ...args);
367
+ }
368
+ },
369
+ warn: (...args) => {
370
+ if (greaterThanLevel("warn")) {
371
+ console.log(getTime(), import_chalk.default.yellow("WARN"), ...args);
372
+ }
373
+ },
374
+ error: (...args) => {
375
+ if (greaterThanLevel("error")) {
376
+ console.log(getTime(), import_chalk.default.red("ERROR"), ...args);
377
+ }
378
+ }
379
+ };
380
+
381
+ // src/sdk/client.ts
382
+ var LATEST_API_VERSION = "1.2";
383
+ var Autumn = class {
384
+ secretKey;
385
+ publishableKey;
386
+ headers;
387
+ url;
388
+ logger = console;
389
+ constructor(options) {
390
+ try {
391
+ this.secretKey = options?.secretKey || process.env.AUTUMN_SECRET_KEY;
392
+ this.publishableKey = options?.publishableKey || process.env.AUTUMN_PUBLISHABLE_KEY;
393
+ } catch (error) {
394
+ }
395
+ if (!this.secretKey && !this.publishableKey && !options?.headers) {
396
+ throw new Error("Autumn secret key or publishable key is required");
397
+ }
398
+ this.headers = options?.headers || {
399
+ Authorization: `Bearer ${this.secretKey || this.publishableKey}`,
400
+ "Content-Type": "application/json"
401
+ };
402
+ let version = options?.version || LATEST_API_VERSION;
403
+ this.headers["x-api-version"] = version;
404
+ this.url = options?.url || autumnApiUrl;
405
+ this.logger = logger;
406
+ this.logger.level = options?.logLevel || "info";
407
+ }
408
+ async get(path) {
409
+ const response = await fetch(`${this.url}${path}`, {
410
+ headers: this.headers
411
+ });
412
+ return toContainerResult({ response, logger: this.logger });
413
+ }
414
+ async post(path, body) {
415
+ try {
416
+ const response = await fetch(`${this.url}${path}`, {
417
+ method: "POST",
418
+ headers: this.headers,
419
+ body: JSON.stringify(body)
420
+ });
421
+ return toContainerResult({ response, logger: this.logger });
422
+ } catch (error) {
423
+ console.error("Error sending request:", error);
424
+ throw error;
425
+ }
426
+ }
427
+ async delete(path) {
428
+ const response = await fetch(`${this.url}${path}`, {
429
+ method: "DELETE",
430
+ headers: this.headers
431
+ });
432
+ return toContainerResult({ response, logger: this.logger });
433
+ }
434
+ static customers = customerMethods();
435
+ static products = productMethods();
436
+ static entities = entityMethods();
437
+ static referrals = referralMethods();
438
+ customers = customerMethods(this);
439
+ products = productMethods(this);
440
+ entities = entityMethods(this);
441
+ referrals = referralMethods(this);
442
+ static attach = (params) => staticWrapper(handleAttach, void 0, { params });
443
+ static usage = (params) => staticWrapper(handleUsage, void 0, { params });
444
+ async attach(params) {
445
+ return handleAttach({
446
+ instance: this,
447
+ params
448
+ });
449
+ }
450
+ static setupPayment = (params) => staticWrapper(handleSetupPayment, void 0, { params });
451
+ async setupPayment(params) {
452
+ return handleSetupPayment({
453
+ instance: this,
454
+ params
455
+ });
456
+ }
457
+ static cancel = (params) => staticWrapper(handleCancel, void 0, { params });
458
+ async cancel(params) {
459
+ return handleCancel({
460
+ instance: this,
461
+ params
462
+ });
463
+ }
464
+ /**
465
+ * @deprecated This method is deprecated and will be removed in a future version.
466
+ * Please use the new check() method instead.
467
+ */
468
+ static entitled = (params) => staticWrapper(handleEntitled, void 0, { params });
469
+ /**
470
+ * @deprecated This method is deprecated and will be removed in a future version.
471
+ * Please use the new check() method instead.
472
+ */
473
+ async entitled(params) {
474
+ return handleEntitled({
475
+ instance: this,
476
+ params
477
+ });
478
+ }
479
+ static check = (params) => staticWrapper(handleCheck, void 0, { params });
480
+ async check(params) {
481
+ return handleCheck({
482
+ instance: this,
483
+ params
484
+ });
485
+ }
486
+ /**
487
+ * @deprecated This method is deprecated and will be removed in a future version.
488
+ * Please use the new track() method instead.
489
+ */
490
+ static event = (params) => staticWrapper(handleEvent, void 0, { params });
491
+ /**
492
+ * @deprecated This method is deprecated and will be removed in a future version.
493
+ * Please use the new track() method instead.
494
+ */
495
+ async event(params) {
496
+ return handleEvent({
497
+ instance: this,
498
+ params
499
+ });
500
+ }
501
+ static track = (params) => staticWrapper(handleTrack, void 0, { params });
502
+ async track(params) {
503
+ return handleTrack({
504
+ instance: this,
505
+ params
506
+ });
507
+ }
508
+ async usage(params) {
509
+ return handleUsage({
510
+ instance: this,
511
+ params
512
+ });
513
+ }
514
+ };
515
+
516
+ // src/sdk/customers/entities/entTypes.ts
517
+ var import_zod = require("zod");
518
+ var EntityDataSchema = import_zod.z.object({
519
+ name: import_zod.z.string().optional(),
520
+ feature_id: import_zod.z.string()
521
+ });
522
+
523
+ // src/sdk/general/genTypes.ts
524
+ var import_zod2 = require("zod");
525
+ var AttachFeatureOptionsSchema = import_zod2.z.object({
526
+ feature_id: import_zod2.z.string(),
527
+ quantity: import_zod2.z.number()
528
+ });
529
+ var AttachParamsSchema = import_zod2.z.object({
530
+ customer_id: import_zod2.z.string(),
531
+ product_id: import_zod2.z.string().optional(),
532
+ entity_id: import_zod2.z.string().optional(),
533
+ options: import_zod2.z.array(
534
+ import_zod2.z.object({
535
+ feature_id: import_zod2.z.string(),
536
+ quantity: import_zod2.z.number()
537
+ })
538
+ ).optional(),
539
+ product_ids: import_zod2.z.array(import_zod2.z.string()).optional(),
540
+ // If set, will attach multiple products to the customer (cannot be used with product_id)
541
+ free_trial: import_zod2.z.boolean().optional(),
542
+ // Default is true -- if set to false, will bypass product free trial
543
+ success_url: import_zod2.z.string().optional(),
544
+ // Passed to Stripe
545
+ metadata: import_zod2.z.record(import_zod2.z.string()).optional(),
546
+ // Passed to Stripe
547
+ force_checkout: import_zod2.z.boolean().optional(),
548
+ // Default is false -- if set to true, will force the customer to checkout (not allowed for upgrades / downgrades)
549
+ customer_data: import_zod2.z.any().optional(),
550
+ entity_data: import_zod2.z.any().optional(),
551
+ checkout_session_params: import_zod2.z.record(import_zod2.z.any()).optional(),
552
+ // Passed to Stripe
553
+ reward: import_zod2.z.string().optional()
554
+ });
555
+ var AttachResultSchema = import_zod2.z.object({
556
+ checkout_url: import_zod2.z.string().optional(),
557
+ customer_id: import_zod2.z.string(),
558
+ product_ids: import_zod2.z.array(import_zod2.z.string()),
559
+ code: import_zod2.z.string(),
560
+ message: import_zod2.z.string(),
561
+ customer_data: import_zod2.z.any().optional()
562
+ });
563
+ var CancelParamsSchema = import_zod2.z.object({
564
+ customer_id: import_zod2.z.string(),
565
+ product_id: import_zod2.z.string(),
566
+ entity_id: import_zod2.z.string().optional(),
567
+ cancel_immediately: import_zod2.z.boolean().optional()
568
+ });
569
+ var CancelResultSchema = import_zod2.z.object({
570
+ success: import_zod2.z.boolean(),
571
+ customer_id: import_zod2.z.string(),
572
+ product_id: import_zod2.z.string()
573
+ });
574
+ var TrackParamsSchema = import_zod2.z.object({
575
+ customer_id: import_zod2.z.string(),
576
+ value: import_zod2.z.number().optional(),
577
+ feature_id: import_zod2.z.string().optional(),
578
+ event_name: import_zod2.z.string().optional(),
579
+ entity_id: import_zod2.z.string().optional(),
580
+ customer_data: import_zod2.z.any().optional(),
581
+ idempotency_key: import_zod2.z.string().optional(),
582
+ entity_data: import_zod2.z.any().optional()
583
+ });
584
+ var TrackResultSchema = import_zod2.z.object({
585
+ id: import_zod2.z.string(),
586
+ code: import_zod2.z.string(),
587
+ customer_id: import_zod2.z.string(),
588
+ feature_id: import_zod2.z.string().optional(),
589
+ event_name: import_zod2.z.string().optional()
590
+ });
591
+ var CheckParamsSchema = import_zod2.z.object({
592
+ customer_id: import_zod2.z.string(),
593
+ feature_id: import_zod2.z.string().optional(),
594
+ product_id: import_zod2.z.string().optional(),
595
+ entity_id: import_zod2.z.string().optional(),
596
+ customer_data: import_zod2.z.any().optional(),
597
+ required_balance: import_zod2.z.number().optional(),
598
+ send_event: import_zod2.z.boolean().optional(),
599
+ with_preview: import_zod2.z.boolean().optional(),
600
+ entity_data: EntityDataSchema.optional()
601
+ });
602
+
603
+ // src/sdk/customers/cusEnums.ts
604
+ var import_zod3 = require("zod");
605
+ var CustomerExpandEnum = import_zod3.z.enum([
606
+ "invoices",
607
+ "rewards",
608
+ "trials_used",
609
+ "entities",
610
+ "referrals",
611
+ "payment_method"
612
+ ]);
613
+
614
+ // src/sdk/customers/cusTypes.ts
615
+ var import_zod4 = require("zod");
616
+ var CreateCustomerParamsSchema = import_zod4.z.object({
617
+ id: import_zod4.z.string().nullish(),
618
+ email: import_zod4.z.string().nullish(),
619
+ name: import_zod4.z.string().nullish(),
620
+ fingerprint: import_zod4.z.string().nullish(),
621
+ metadata: import_zod4.z.record(import_zod4.z.any()).optional(),
622
+ expand: import_zod4.z.array(CustomerExpandEnum).optional()
623
+ });
624
+ var BillingPortalParamsSchema = import_zod4.z.object({
625
+ return_url: import_zod4.z.string().optional()
626
+ });
627
+
628
+ // src/sdk/components/componentMethods.ts
629
+ var fetchPricingTable = async ({
630
+ instance,
631
+ params
632
+ }) => {
633
+ let path = "/components/pricing_table";
634
+ if (params) {
635
+ const queryParams = new URLSearchParams();
636
+ for (const [key, value] of Object.entries(params)) {
637
+ if (key === "products") {
638
+ continue;
639
+ }
640
+ if (value !== void 0) {
641
+ queryParams.append(key, String(value));
642
+ }
643
+ }
644
+ const queryString = queryParams.toString();
645
+ if (queryString) {
646
+ path += `?${queryString}`;
647
+ }
648
+ }
649
+ return await instance.get(path);
650
+ };
651
+
652
+ // src/sdk/referrals/referralTypes.ts
653
+ var import_zod5 = require("zod");
654
+ var CreateReferralCodeParamsSchema = import_zod5.z.object({
655
+ customer_id: import_zod5.z.string(),
656
+ program_id: import_zod5.z.string()
657
+ });
658
+ var RedeemReferralCodeParamsSchema = import_zod5.z.object({
659
+ code: import_zod5.z.string(),
660
+ customer_id: import_zod5.z.string()
661
+ });
662
+
663
+ // src/libraries/backend/utils/backendRes.ts
664
+ var toBackendRes = ({ res }) => {
665
+ let statusCode = res.statusCode ? res.statusCode : res.error ? 500 : 200;
666
+ return {
667
+ body: res.data ? res.data : res.error,
668
+ statusCode
669
+ };
670
+ };
671
+ var toBackendError = ({
672
+ path,
673
+ message,
674
+ code,
675
+ statusCode = 500
676
+ }) => {
677
+ return {
678
+ statusCode,
679
+ body: new AutumnError({
680
+ message: message || "Internal server error",
681
+ code: code || "internal_server_error"
682
+ })
683
+ };
684
+ };
685
+
686
+ // src/libraries/backend/utils/withAuth.ts
687
+ var withAuth = ({
688
+ fn,
689
+ requireCustomer = true
690
+ }) => {
691
+ return async ({
692
+ autumn,
693
+ body,
694
+ path,
695
+ getCustomer: getCustomer2,
696
+ pathParams,
697
+ searchParams
698
+ }) => {
699
+ let authResult = await getCustomer2();
700
+ let customerId = authResult?.customerId;
701
+ if (!customerId && requireCustomer) {
702
+ if (body?.errorOnNotFound === false) {
703
+ return {
704
+ statusCode: 202,
705
+ body: null
706
+ };
707
+ } else {
708
+ logger.error(
709
+ `[Autumn]: customerId returned from identify function is ${customerId}`
710
+ );
711
+ return toBackendError({
712
+ path,
713
+ message: `customerId returned from identify function is ${customerId}`,
714
+ code: "no_customer_id",
715
+ statusCode: 401
716
+ });
717
+ }
718
+ }
719
+ let cusData = authResult?.customerData || body?.customer_data;
720
+ try {
721
+ let res = await fn({
722
+ body,
723
+ autumn,
724
+ customer_id: customerId,
725
+ customer_data: cusData,
726
+ pathParams,
727
+ searchParams
728
+ });
729
+ return toBackendRes({ res });
730
+ } catch (error) {
731
+ logger.error(`${error.message}`);
732
+ return toBackendError({
733
+ path,
734
+ message: error.message || "unknown error",
735
+ code: "internal_error"
736
+ });
737
+ }
738
+ };
739
+ };
740
+
741
+ // src/libraries/backend/routes/genRoutes.ts
742
+ var import_rou3 = require("rou3");
743
+ var sanitizeBody = (body) => {
744
+ let bodyCopy = { ...body };
745
+ delete bodyCopy.customer_id;
746
+ delete bodyCopy.customer_data;
747
+ return bodyCopy;
748
+ };
749
+ var attachHandler = withAuth({
750
+ fn: async ({
751
+ autumn,
752
+ customer_id,
753
+ customer_data,
754
+ body
755
+ }) => {
756
+ return await autumn.attach({
757
+ ...sanitizeBody(body),
758
+ customer_id,
759
+ customer_data
760
+ });
761
+ }
762
+ });
763
+ var setupPaymentHandler = withAuth({
764
+ fn: async ({
765
+ autumn,
766
+ customer_id,
767
+ customer_data,
768
+ body
769
+ }) => {
770
+ return await autumn.setupPayment({
771
+ ...sanitizeBody(body),
772
+ customer_id,
773
+ customer_data
774
+ });
775
+ }
776
+ });
777
+ var cancelHandler = withAuth({
778
+ fn: async ({
779
+ autumn,
780
+ customer_id,
781
+ body
782
+ }) => {
783
+ return await autumn.cancel({
784
+ ...sanitizeBody(body),
785
+ customer_id
786
+ });
787
+ }
788
+ });
789
+ var checkHandler = withAuth({
790
+ fn: async ({
791
+ autumn,
792
+ customer_id,
793
+ customer_data,
794
+ body
795
+ }) => {
796
+ const result = await autumn.check({
797
+ ...sanitizeBody(body),
798
+ customer_id,
799
+ customer_data
800
+ });
801
+ return result;
802
+ }
803
+ });
804
+ var trackHandler = withAuth({
805
+ fn: async ({
806
+ autumn,
807
+ customer_id,
808
+ customer_data,
809
+ body
810
+ }) => {
811
+ return await autumn.track({
812
+ ...sanitizeBody(body),
813
+ customer_id,
814
+ customer_data
815
+ });
816
+ }
817
+ });
818
+ var openBillingPortalHandler = withAuth({
819
+ fn: async ({
820
+ autumn,
821
+ customer_id,
822
+ body
823
+ }) => {
824
+ return await autumn.customers.billingPortal(customer_id, body);
825
+ }
826
+ });
827
+ var addGenRoutes = (router) => {
828
+ (0, import_rou3.addRoute)(router, "POST", `${BASE_PATH}/attach`, {
829
+ handler: attachHandler
830
+ });
831
+ (0, import_rou3.addRoute)(router, "POST", `${BASE_PATH}/cancel`, {
832
+ handler: cancelHandler
833
+ });
834
+ (0, import_rou3.addRoute)(router, "POST", `${BASE_PATH}/check`, {
835
+ handler: checkHandler
836
+ });
837
+ (0, import_rou3.addRoute)(router, "POST", `${BASE_PATH}/track`, {
838
+ handler: trackHandler
839
+ });
840
+ (0, import_rou3.addRoute)(router, "POST", `${BASE_PATH}/billing_portal`, {
841
+ handler: openBillingPortalHandler
842
+ });
843
+ (0, import_rou3.addRoute)(router, "POST", `${BASE_PATH}/setup_payment`, {
844
+ handler: setupPaymentHandler
845
+ });
846
+ };
847
+
848
+ // src/libraries/backend/routes/backendRouter.ts
849
+ var import_rou35 = require("rou3");
850
+
851
+ // src/libraries/backend/routes/entityRoutes.ts
852
+ var import_rou32 = require("rou3");
853
+ var createEntityHandler = withAuth({
854
+ fn: async ({
855
+ autumn,
856
+ customer_id,
857
+ body
858
+ }) => {
859
+ return await autumn.entities.create(customer_id, body);
860
+ }
861
+ });
862
+ var getEntityHandler = withAuth({
863
+ fn: async ({
864
+ autumn,
865
+ customer_id,
866
+ pathParams,
867
+ searchParams
868
+ }) => {
869
+ if (!pathParams?.entityId) {
870
+ return {
871
+ statusCode: 400,
872
+ body: {
873
+ error: "no_entity_id",
874
+ message: "Entity ID is required"
875
+ }
876
+ };
877
+ }
878
+ let params = {
879
+ expand: searchParams?.expand?.split(",")
880
+ };
881
+ let res = await autumn.entities.get(
882
+ customer_id,
883
+ pathParams.entityId,
884
+ params
885
+ );
886
+ return res;
887
+ }
888
+ });
889
+ var deleteEntityHandler = withAuth({
890
+ fn: async ({
891
+ autumn,
892
+ customer_id,
893
+ pathParams
894
+ }) => {
895
+ if (!pathParams?.entityId) {
896
+ return {
897
+ statusCode: 400,
898
+ body: {
899
+ error: "no_entity_id",
900
+ message: "Entity ID is required"
901
+ }
902
+ };
903
+ }
904
+ return await autumn.entities.delete(customer_id, pathParams.entityId);
905
+ }
906
+ });
907
+ var addEntityRoutes = async (router) => {
908
+ (0, import_rou32.addRoute)(router, "POST", "/api/autumn/entities", {
909
+ handler: createEntityHandler
910
+ });
911
+ (0, import_rou32.addRoute)(router, "GET", "/api/autumn/entities/:entityId", {
912
+ handler: getEntityHandler
913
+ });
914
+ (0, import_rou32.addRoute)(router, "DELETE", "/api/autumn/entities/:entityId", {
915
+ handler: deleteEntityHandler
916
+ });
917
+ };
918
+
919
+ // src/libraries/backend/routes/referralRoutes.ts
920
+ var import_rou33 = require("rou3");
921
+ var createReferralCodeHandler = withAuth({
922
+ fn: async ({
923
+ autumn,
924
+ customer_id,
925
+ body
926
+ }) => {
927
+ return await autumn.referrals.createCode({
928
+ ...body,
929
+ customer_id
930
+ });
931
+ }
932
+ });
933
+ var redeemReferralCodeHandler = withAuth({
934
+ fn: async ({
935
+ autumn,
936
+ customer_id,
937
+ body
938
+ }) => {
939
+ return await autumn.referrals.redeemCode({
940
+ ...body,
941
+ customer_id
942
+ });
943
+ }
944
+ });
945
+ var addReferralRoutes = async (router) => {
946
+ (0, import_rou33.addRoute)(router, "POST", `${BASE_PATH}/referrals/code`, {
947
+ handler: createReferralCodeHandler
948
+ });
949
+ (0, import_rou33.addRoute)(router, "POST", `${BASE_PATH}/referrals/redeem`, {
950
+ handler: redeemReferralCodeHandler
951
+ });
952
+ };
953
+
954
+ // src/libraries/backend/routes/productRoutes.ts
955
+ var import_rou34 = require("rou3");
956
+ var listProductsHandler = withAuth({
957
+ fn: async ({
958
+ autumn,
959
+ customer_id
960
+ }) => {
961
+ return await autumn.products.list({
962
+ customer_id
963
+ });
964
+ }
965
+ });
966
+ var addProductRoutes = async (router) => {
967
+ (0, import_rou34.addRoute)(router, "GET", `${BASE_PATH}/products`, {
968
+ handler: listProductsHandler
969
+ });
970
+ };
971
+
972
+ // src/libraries/backend/routes/backendRouter.ts
973
+ var sanitizeCustomerBody = (body) => {
974
+ let bodyCopy = { ...body };
975
+ delete bodyCopy.id;
976
+ delete bodyCopy.name;
977
+ delete bodyCopy.email;
978
+ return bodyCopy;
979
+ };
980
+ var createCustomerHandler = withAuth({
981
+ fn: async ({
982
+ autumn,
983
+ customer_id,
984
+ customer_data = {},
985
+ body
986
+ }) => {
987
+ let res = await autumn.customers.create({
988
+ id: customer_id,
989
+ ...customer_data,
990
+ ...sanitizeCustomerBody(body)
991
+ });
992
+ return res;
993
+ }
994
+ });
995
+ var getPricingTableHandler = withAuth({
996
+ fn: async ({
997
+ autumn,
998
+ customer_id
999
+ }) => {
1000
+ return await fetchPricingTable({
1001
+ instance: autumn,
1002
+ params: {
1003
+ customer_id: customer_id || void 0
1004
+ }
1005
+ });
1006
+ },
1007
+ requireCustomer: false
1008
+ });
1009
+ var createRouterWithOptions = () => {
1010
+ const router = (0, import_rou35.createRouter)();
1011
+ (0, import_rou35.addRoute)(router, "POST", `${BASE_PATH}/cors`, {
1012
+ handler: () => {
1013
+ return {
1014
+ body: {
1015
+ message: "OK"
1016
+ },
1017
+ statusCode: 200
1018
+ };
1019
+ }
1020
+ });
1021
+ (0, import_rou35.addRoute)(router, "POST", `${BASE_PATH}/customers`, {
1022
+ handler: createCustomerHandler
1023
+ });
1024
+ (0, import_rou35.addRoute)(router, "GET", `${BASE_PATH}/components/pricing_table`, {
1025
+ handler: getPricingTableHandler,
1026
+ requireCustomer: false
1027
+ });
1028
+ addGenRoutes(router);
1029
+ addEntityRoutes(router);
1030
+ addReferralRoutes(router);
1031
+ addProductRoutes(router);
1032
+ return router;
1033
+ };
1034
+
1035
+ // src/libraries/backend/utils/secretKeyCheck.ts
1036
+ var secretKeyCheck = (secretKey) => {
1037
+ if (!secretKey && !process.env.AUTUMN_SECRET_KEY) {
1038
+ return {
1039
+ found: false,
1040
+ error: {
1041
+ statusCode: 500,
1042
+ message: `Autumn secret key not found in ENV variables or passed into autumnHandler`,
1043
+ code: "no_secret_key"
1044
+ }
1045
+ };
1046
+ }
1047
+ return { found: true, error: null };
1048
+ };
1049
+
1050
+ // src/utils/toSnakeCase.ts
1051
+ function stringToSnakeCase(str) {
1052
+ return str.replace(/([a-z])([A-Z])/g, "$1_$2").replace(/[-\s]+/g, "_").toLowerCase();
1053
+ }
1054
+ var toSnakeCase = (obj) => {
1055
+ if (Array.isArray(obj)) {
1056
+ return obj.map(toSnakeCase);
1057
+ } else if (obj !== null && typeof obj === "object") {
1058
+ return Object.fromEntries(
1059
+ Object.entries(obj).map(([key, value]) => [
1060
+ stringToSnakeCase(key),
1061
+ toSnakeCase(value)
1062
+ ])
1063
+ );
1064
+ }
1065
+ return obj;
1066
+ };
1067
+
1068
+ // src/libraries/backend/elysia.ts
1069
+ function autumnHandler(options) {
1070
+ const { found, error: resError } = secretKeyCheck(options.secretKey);
1071
+ if (!found && !options.secretKey) {
1072
+ throw new Error(resError?.message || "Secret key check failed");
1073
+ }
1074
+ const router = createRouterWithOptions();
1075
+ return function plugin(app) {
1076
+ const autumn = new Autumn({
1077
+ url: options.url || autumnApiUrl,
1078
+ version: options.version,
1079
+ secretKey: options.secretKey
1080
+ });
1081
+ app.all("/api/autumn/*", async (context) => {
1082
+ const request = context.request;
1083
+ const url = new URL(request.url);
1084
+ const path = url.pathname;
1085
+ const searchParams = Object.fromEntries(url.searchParams);
1086
+ const method = request.method;
1087
+ const match = (0, import_rou36.findRoute)(router, method, path);
1088
+ if (!match) {
1089
+ context.set.status = 404;
1090
+ return { error: "Not found" };
1091
+ }
1092
+ const { data, params: pathParams } = match;
1093
+ const { handler } = data;
1094
+ let body = null;
1095
+ if (["POST", "PUT", "PATCH"].includes(method)) {
1096
+ body = context.body;
1097
+ }
1098
+ try {
1099
+ const result = await handler({
1100
+ autumn,
1101
+ body: toSnakeCase(body),
1102
+ path,
1103
+ getCustomer: async () => await options.identify(context),
1104
+ pathParams,
1105
+ searchParams
1106
+ });
1107
+ context.set.status = result.statusCode;
1108
+ return result.body;
1109
+ } catch (error) {
1110
+ context.set.status = 500;
1111
+ return {
1112
+ error: "Internal server error",
1113
+ message: error?.message || "Unknown error"
1114
+ };
1115
+ }
1116
+ });
1117
+ return app;
1118
+ };
1119
+ }
1120
+ // Annotate the CommonJS export names for ESM import in node:
1121
+ 0 && (module.exports = {
1122
+ autumnHandler
1123
+ });