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.
- package/dist/libraries/backend/better-auth.d.mts +18 -18
- package/dist/libraries/backend/better-auth.d.ts +18 -18
- package/dist/libraries/backend/better-auth.mjs +2 -2
- package/dist/libraries/backend/convex.mjs +2 -2
- package/dist/libraries/backend/elysia.d.mts +35 -0
- package/dist/libraries/backend/elysia.d.ts +35 -0
- package/dist/libraries/backend/elysia.js +1123 -0
- package/dist/libraries/backend/elysia.mjs +96 -0
- package/dist/libraries/backend/express.d.mts +1 -1
- package/dist/libraries/backend/express.d.ts +1 -1
- package/dist/libraries/backend/express.mjs +2 -2
- package/dist/libraries/backend/fastify.mjs +2 -2
- package/dist/libraries/backend/hono.mjs +2 -2
- package/dist/libraries/backend/next.js +94 -94
- package/dist/libraries/backend/next.mjs +96 -96
- package/dist/libraries/backend/react-router.mjs +2 -2
- package/dist/libraries/backend/{referralTypes-CkT8JNar.d.mts → referralTypes-Dg9pRvI7.d.mts} +27 -29
- package/dist/libraries/backend/{referralTypes-Dh4wyHJ1.d.ts → referralTypes-HAk2vTns.d.ts} +27 -29
- package/dist/libraries/backend/remix_dep.mjs +2 -2
- package/dist/libraries/backend/routes/backendRouter.mjs +2 -2
- package/dist/libraries/backend/supabase.mjs +2 -2
- package/dist/libraries/backend/tanstack.js +2 -2
- package/dist/libraries/backend/tanstack.mjs +4 -4
- package/dist/libraries/backend/utils/withAuth.d.mts +1 -1
- package/dist/libraries/backend/utils/withAuth.d.ts +1 -1
- package/dist/libraries/react/AutumnContext.d.mts +4 -4
- package/dist/libraries/react/AutumnContext.d.ts +4 -4
- package/dist/libraries/react/AutumnContext.mjs +4 -4
- package/dist/libraries/react/BaseAutumnProvider.d.mts +4 -4
- package/dist/libraries/react/BaseAutumnProvider.d.ts +4 -4
- package/dist/libraries/react/BaseAutumnProvider.mjs +9 -9
- package/dist/libraries/react/{ReactAutumnClient-DpexS7O5.d.ts → ReactAutumnClient-B4P_QjY1.d.ts} +3 -3
- package/dist/libraries/react/{ReactAutumnClient-Da2CbwmZ.d.mts → ReactAutumnClient-DCdPx-ps.d.mts} +3 -3
- package/dist/libraries/react/ReactAutumnProvider.d.mts +1 -1
- package/dist/libraries/react/ReactAutumnProvider.d.ts +1 -1
- package/dist/libraries/react/ReactAutumnProvider.mjs +10 -10
- package/dist/libraries/react/{chunk-DW6X6NNG.mjs → chunk-24EVX3BR.mjs} +273 -273
- package/dist/libraries/react/{chunk-OAWFFAKA.mjs → chunk-3CJSWXNT.mjs} +6 -6
- package/dist/libraries/react/{chunk-K3223VDB.mjs → chunk-5G3DYUNT.mjs} +1 -1
- package/dist/libraries/react/{chunk-EZAZUSYO.mjs → chunk-6CJ3FB74.mjs} +2 -2
- package/dist/libraries/react/{chunk-XOGMTMNM.mjs → chunk-AOJCMXVS.mjs} +3 -3
- package/dist/libraries/react/{chunk-KRW7ZHBV.mjs → chunk-APDR7D6A.mjs} +2 -2
- package/dist/libraries/react/{chunk-H2NGSCWI.mjs → chunk-CAMHARUX.mjs} +2 -2
- package/dist/libraries/react/{chunk-BSF3KB4R.mjs → chunk-CPITDC7S.mjs} +46 -46
- package/dist/libraries/react/{chunk-VRDE5C4M.mjs → chunk-DVMVIAZE.mjs} +3 -3
- package/dist/libraries/react/{chunk-GQ3TAHSV.mjs → chunk-G3FBFZLU.mjs} +1 -1
- package/dist/libraries/react/{chunk-HJ374VZF.mjs → chunk-LVDONEVF.mjs} +2 -2
- package/dist/libraries/react/{chunk-6SRIDR3L.mjs → chunk-MZDRIPNS.mjs} +2 -2
- package/dist/libraries/react/{chunk-OAPUYXBO.mjs → chunk-R46CJXF7.mjs} +6 -6
- package/dist/libraries/react/{chunk-TPKQIL3N.mjs → chunk-R4BYOLST.mjs} +2 -2
- package/dist/libraries/react/{chunk-ZVQKDPUP.mjs → chunk-RQEL7G2O.mjs} +3 -3
- package/dist/libraries/react/{chunk-6MNYJ3YQ.mjs → chunk-RQG36YPD.mjs} +2 -2
- package/dist/libraries/react/{chunk-BYXO62BF.mjs → chunk-T5PIJ4HG.mjs} +2 -2
- package/dist/libraries/react/{chunk-AL3VJLFU.mjs → chunk-YLZ5NFYO.mjs} +1 -1
- package/dist/libraries/react/client/ReactAutumnClient.d.mts +4 -4
- package/dist/libraries/react/client/ReactAutumnClient.d.ts +4 -4
- package/dist/libraries/react/client/ReactAutumnClient.mjs +3 -3
- package/dist/libraries/react/client/clientCompMethods.d.mts +4 -4
- package/dist/libraries/react/client/clientCompMethods.d.ts +4 -4
- package/dist/libraries/react/client/clientCusMethods.d.mts +4 -4
- package/dist/libraries/react/client/clientCusMethods.d.ts +4 -4
- package/dist/libraries/react/client/clientEntityMethods.d.mts +4 -4
- package/dist/libraries/react/client/clientEntityMethods.d.ts +4 -4
- package/dist/libraries/react/client/clientGenMethods.d.mts +4 -4
- package/dist/libraries/react/client/clientGenMethods.d.ts +4 -4
- package/dist/libraries/react/client/clientProdMethods.d.mts +4 -4
- package/dist/libraries/react/client/clientProdMethods.d.ts +4 -4
- package/dist/libraries/react/client/clientReferralMethods.d.mts +4 -4
- package/dist/libraries/react/client/clientReferralMethods.d.ts +4 -4
- package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.css +116 -111
- package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.d.mts +1 -1
- package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.d.ts +1 -1
- package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.js +55 -55
- package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.mjs +23 -23
- package/dist/libraries/react/components/attach-dialog/lib/attach-content.d.mts +1 -1
- package/dist/libraries/react/components/attach-dialog/lib/attach-content.d.ts +1 -1
- package/dist/libraries/react/components/check-dialog/check-dialog-synced.d.mts +1 -1
- package/dist/libraries/react/components/check-dialog/check-dialog-synced.d.ts +1 -1
- package/dist/libraries/react/components/check-dialog/check-dialog-synced.js +50 -50
- package/dist/libraries/react/components/check-dialog/check-dialog-synced.mjs +5 -5
- package/dist/libraries/react/components/check-dialog/lib/check-content.d.mts +1 -1
- package/dist/libraries/react/components/check-dialog/lib/check-content.d.ts +1 -1
- package/dist/libraries/react/components/pricing-table/pricing-table-synced.css +116 -111
- package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.mts +1 -1
- package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.ts +1 -1
- package/dist/libraries/react/components/pricing-table/pricing-table-synced.js +55 -55
- package/dist/libraries/react/components/pricing-table/pricing-table-synced.mjs +23 -23
- package/dist/libraries/react/components/ui/button.d.mts +1 -1
- package/dist/libraries/react/components/ui/button.d.ts +1 -1
- package/dist/libraries/react/components/ui/button.js +3 -3
- package/dist/libraries/react/components/ui/button.mjs +2 -2
- package/dist/libraries/react/components/ui/dialog.js +49 -49
- package/dist/libraries/react/components/ui/dialog.mjs +3 -3
- package/dist/libraries/react/components/ui/switch.js +12 -12
- package/dist/libraries/react/components/ui/switch.mjs +3 -3
- package/dist/libraries/react/{cusTypes-4aCCdGkc.d.ts → cusTypes-Bf1qr9iE.d.mts} +1 -3
- package/dist/libraries/react/{cusTypes-4aCCdGkc.d.mts → cusTypes-Bf1qr9iE.d.ts} +1 -3
- package/dist/libraries/react/{entTypes-Bw20cBXx.d.mts → entTypes-CscyyE1A.d.mts} +1 -1
- package/dist/libraries/react/{entTypes-BgAiRNBf.d.ts → entTypes-O8YXxhrA.d.ts} +1 -1
- package/dist/libraries/react/hooks/handleAllowed.d.mts +2 -2
- package/dist/libraries/react/hooks/handleAllowed.d.ts +2 -2
- package/dist/libraries/react/hooks/useAutumn.d.mts +2 -2
- package/dist/libraries/react/hooks/useAutumn.d.ts +2 -2
- package/dist/libraries/react/hooks/useAutumn.mjs +7 -7
- package/dist/libraries/react/hooks/useAutumnBase.d.mts +4 -4
- package/dist/libraries/react/hooks/useAutumnBase.d.ts +4 -4
- package/dist/libraries/react/hooks/useAutumnBase.mjs +6 -6
- package/dist/libraries/react/hooks/useCustomer.d.mts +4 -4
- package/dist/libraries/react/hooks/useCustomer.d.ts +4 -4
- package/dist/libraries/react/hooks/useCustomer.mjs +8 -8
- package/dist/libraries/react/hooks/useCustomerBase.d.mts +4 -4
- package/dist/libraries/react/hooks/useCustomerBase.d.ts +4 -4
- package/dist/libraries/react/hooks/useCustomerBase.mjs +7 -7
- package/dist/libraries/react/hooks/useEntity.d.mts +3 -3
- package/dist/libraries/react/hooks/useEntity.d.ts +3 -3
- package/dist/libraries/react/hooks/useEntity.mjs +8 -8
- package/dist/libraries/react/hooks/useEntityBase.d.mts +4 -4
- package/dist/libraries/react/hooks/useEntityBase.d.ts +4 -4
- package/dist/libraries/react/hooks/useEntityBase.mjs +7 -7
- package/dist/libraries/react/hooks/usePricingTable.d.mts +1 -1
- package/dist/libraries/react/hooks/usePricingTable.d.ts +1 -1
- package/dist/libraries/react/hooks/usePricingTable.mjs +6 -6
- package/dist/libraries/react/hooks/usePricingTableBase.d.mts +4 -4
- package/dist/libraries/react/hooks/usePricingTableBase.d.ts +4 -4
- package/dist/libraries/react/hooks/usePricingTableBase.mjs +5 -5
- package/dist/libraries/react/hooks/useProductsBase.mjs +4 -4
- package/dist/libraries/react/index.d.mts +0 -2
- package/dist/libraries/react/index.d.ts +0 -2
- package/dist/libraries/react/index.js +56 -56
- package/dist/libraries/react/index.mjs +56 -56
- package/dist/libraries/react/{response-D24DJs94.d.mts → response-B4VzjWEU.d.mts} +1 -1
- package/dist/libraries/react/{response-B9P0zPDQ.d.ts → response-C3S90max.d.ts} +1 -1
- package/dist/next/{AutumnProvider-BFEETHYT.d.mts → AutumnProvider-CCYZC_bN.d.mts} +0 -2
- package/dist/next/{AutumnProvider-BFEETHYT.d.ts → AutumnProvider-CCYZC_bN.d.ts} +0 -2
- package/dist/next/AutumnProvider.d.mts +1 -1
- package/dist/next/AutumnProvider.d.ts +1 -1
- package/dist/next/client/NextAutumnClient.d.mts +7 -7
- package/dist/next/client/NextAutumnClient.d.ts +7 -7
- package/dist/next/client/NextAutumnProvider.d.mts +1 -1
- package/dist/next/client/NextAutumnProvider.d.ts +1 -1
- package/dist/next/client/{clientGenTypes-BIYZcmWk.d.mts → clientGenTypes-9ngy1q97.d.mts} +9 -9
- package/dist/next/client/{clientGenTypes-xd2Egfm-.d.ts → clientGenTypes-CxB4go6q.d.ts} +9 -9
- package/dist/next/client/clientUtils.d.mts +2 -2
- package/dist/next/client/clientUtils.d.ts +2 -2
- package/dist/next/client/{cusTypes-u2ZoeKeF.d.mts → cusTypes-D8lhXGaX.d.mts} +2 -4
- package/dist/next/client/{cusTypes-u2ZoeKeF.d.ts → cusTypes-D8lhXGaX.d.ts} +2 -4
- package/dist/next/client/{entTypes-B54OSRIo.d.mts → entTypes-B-2_9hzP.d.mts} +1 -1
- package/dist/next/client/{entTypes-Cl6ES2C6.d.ts → entTypes-Dq2mbehl.d.ts} +1 -1
- package/dist/next/client/hooks/useAutumn.d.mts +2 -2
- package/dist/next/client/hooks/useAutumn.d.ts +2 -2
- package/dist/next/client/hooks/useCustomer.d.mts +3 -3
- package/dist/next/client/hooks/useCustomer.d.ts +3 -3
- package/dist/next/client/hooks/useEntity.d.mts +3 -3
- package/dist/next/client/hooks/useEntity.d.ts +3 -3
- package/dist/next/client/hooks/usePricingTable.d.mts +1 -1
- package/dist/next/client/hooks/usePricingTable.d.ts +1 -1
- package/dist/next/client/types.d.mts +2 -2
- package/dist/next/client/types.d.ts +2 -2
- package/dist/next/index.d.mts +2 -2
- package/dist/next/index.d.ts +2 -2
- package/dist/next/server/auth/withNextAuth.d.mts +1 -1
- package/dist/next/server/auth/withNextAuth.d.ts +1 -1
- package/dist/next/server/componentActions.d.mts +1 -1
- package/dist/next/server/componentActions.d.ts +1 -1
- package/dist/next/server/cusActions.d.mts +21 -21
- package/dist/next/server/cusActions.d.ts +21 -21
- package/dist/next/server/{cusTypes-JQwzkgDU.d.mts → cusTypes-DhOYtM7H.d.mts} +2 -4
- package/dist/next/server/{cusTypes-JQwzkgDU.d.ts → cusTypes-DhOYtM7H.d.ts} +2 -4
- package/dist/next/server/genActions.d.mts +1 -1
- package/dist/next/server/genActions.d.ts +1 -1
- package/dist/sdk/index.d.mts +0 -2
- package/dist/sdk/index.d.ts +0 -2
- package/dist/styles/global.css +116 -111
- package/package.json +28 -9
- package/tsup.config.ts +1 -0
- package/dist/libraries/backend/{chunk-DUDRVC7W.mjs → chunk-NW6B7QXB.mjs} +3 -3
- 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
|
+
});
|