autumn-js 0.1.34 → 0.1.36
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 +221 -310
- package/dist/libraries/backend/better-auth.d.ts +221 -310
- package/dist/libraries/backend/better-auth.js +389 -133
- package/dist/libraries/backend/better-auth.mjs +250 -100
- package/dist/libraries/backend/{chunk-F3S66STP.mjs → chunk-35N7BIAE.mjs} +45 -1
- package/dist/libraries/backend/{chunk-WBHGLFLE.mjs → chunk-4MEEJLXG.mjs} +6 -6
- package/dist/libraries/backend/{chunk-SVTPC45F.mjs → chunk-LOSIWWM2.mjs} +1 -1
- package/dist/libraries/backend/{chunk-7OEFNFGZ.mjs → chunk-MHIUO3ST.mjs} +1 -1
- package/dist/libraries/backend/{chunk-SRHT6RDB.mjs → chunk-PO4EL4BW.mjs} +9 -27
- package/dist/libraries/backend/{chunk-ENRZQDOT.mjs → chunk-QOJMX7ML.mjs} +2 -25
- package/dist/libraries/backend/chunk-SRJD6EXQ.mjs +104 -0
- package/dist/libraries/backend/{chunk-D5C5Q5FZ.mjs → chunk-USQ76FYI.mjs} +1 -1
- package/dist/libraries/backend/convex.js +52 -43
- package/dist/libraries/backend/convex.mjs +7 -7
- package/dist/libraries/backend/elysia.js +53 -62
- package/dist/libraries/backend/elysia.mjs +10 -28
- package/dist/libraries/backend/express.js +52 -43
- package/dist/libraries/backend/express.mjs +7 -7
- package/dist/libraries/backend/fastify.js +52 -43
- package/dist/libraries/backend/fastify.mjs +7 -7
- package/dist/libraries/backend/hono.js +52 -43
- package/dist/libraries/backend/hono.mjs +7 -7
- package/dist/libraries/backend/index.js +52 -43
- package/dist/libraries/backend/index.mjs +7 -7
- package/dist/libraries/backend/next.js +52 -43
- package/dist/libraries/backend/next.mjs +7 -7
- package/dist/libraries/backend/react-router.js +52 -43
- package/dist/libraries/backend/react-router.mjs +7 -7
- package/dist/libraries/backend/remix_dep.js +52 -43
- package/dist/libraries/backend/remix_dep.mjs +7 -7
- package/dist/libraries/backend/routes/backendRouter.js +52 -43
- package/dist/libraries/backend/routes/backendRouter.mjs +7 -7
- package/dist/libraries/backend/routes/entityRoutes.js +44 -17
- package/dist/libraries/backend/routes/entityRoutes.mjs +3 -3
- package/dist/libraries/backend/routes/genRoutes.js +57 -48
- package/dist/libraries/backend/routes/genRoutes.mjs +3 -3
- package/dist/libraries/backend/routes/productRoutes.js +44 -17
- package/dist/libraries/backend/routes/productRoutes.mjs +3 -3
- package/dist/libraries/backend/routes/referralRoutes.js +44 -17
- package/dist/libraries/backend/routes/referralRoutes.mjs +3 -3
- package/dist/libraries/backend/supabase.js +52 -43
- package/dist/libraries/backend/supabase.mjs +7 -7
- package/dist/libraries/backend/tanstack.js +52 -43
- package/dist/libraries/backend/tanstack.mjs +7 -7
- package/dist/libraries/backend/utils/backendRes.js +1 -17
- package/dist/libraries/backend/utils/backendRes.mjs +1 -1
- package/dist/libraries/backend/utils/betterAuth/middlewares.d.mts +26 -0
- package/dist/libraries/backend/utils/betterAuth/middlewares.d.ts +26 -0
- package/dist/libraries/backend/utils/betterAuth/middlewares.js +130 -0
- package/dist/libraries/backend/utils/betterAuth/middlewares.mjs +10 -0
- package/dist/libraries/backend/utils/betterAuth/types.d.mts +18 -0
- package/dist/libraries/backend/utils/betterAuth/types.d.ts +18 -0
- package/dist/libraries/backend/utils/betterAuth/types.js +18 -0
- package/dist/libraries/backend/utils/betterAuth/types.mjs +0 -0
- package/dist/libraries/backend/utils/withAuth.js +44 -17
- package/dist/libraries/backend/utils/withAuth.mjs +2 -2
- package/dist/libraries/react/AutumnContext.d.mts +7 -9
- package/dist/libraries/react/AutumnContext.d.ts +7 -9
- package/dist/libraries/react/AutumnContext.js +32 -81
- package/dist/libraries/react/AutumnContext.mjs +7 -9
- package/dist/libraries/react/BaseAutumnProvider.d.mts +7 -9
- package/dist/libraries/react/BaseAutumnProvider.d.ts +7 -9
- package/dist/libraries/react/BaseAutumnProvider.js +201 -254
- package/dist/libraries/react/BaseAutumnProvider.mjs +12 -14
- package/dist/libraries/react/{ReactAutumnClient-DEHKGBDi.d.ts → ReactAutumnClient-DkAcY1X2.d.ts} +32 -37
- package/dist/libraries/react/{ReactAutumnClient-Zj0UGjxH.d.mts → ReactAutumnClient-DuYr1i4C.d.mts} +32 -37
- package/dist/libraries/react/ReactAutumnProvider.d.mts +2 -2
- package/dist/libraries/react/ReactAutumnProvider.d.ts +2 -2
- package/dist/libraries/react/ReactAutumnProvider.js +201 -263
- package/dist/libraries/react/ReactAutumnProvider.mjs +14 -16
- package/dist/libraries/react/{attachTypes-DVF4f7Hw.d.ts → attachTypes-CKp1KMwX.d.ts} +1 -1
- package/dist/libraries/react/{attachTypes-DJIr5ldB.d.mts → attachTypes-DbuZWzAP.d.mts} +1 -1
- package/dist/libraries/react/{chunk-SIYKVK6T.mjs → chunk-5BTQDWG6.mjs} +1 -1
- package/dist/libraries/react/{chunk-IMAERZCR.mjs → chunk-5LRBYZUD.mjs} +1 -1
- package/dist/libraries/react/{chunk-RMTUAI3D.mjs → chunk-6PLIVXZY.mjs} +4 -3
- package/dist/libraries/react/{chunk-C4Z4C6RL.mjs → chunk-6U2XJZGO.mjs} +2 -2
- package/dist/libraries/react/{chunk-QUXQNE4G.mjs → chunk-7YNNQGHZ.mjs} +1 -1
- package/dist/libraries/react/{chunk-QTDNLHRG.mjs → chunk-AUZMXLNB.mjs} +1 -1
- package/dist/libraries/react/{chunk-R6KU3V35.mjs → chunk-BR56DHZ2.mjs} +2 -2
- package/dist/libraries/react/{chunk-YLBFGNCO.mjs → chunk-DJXOY3UC.mjs} +2 -2
- package/dist/libraries/react/{chunk-L2DI44KG.mjs → chunk-FSJNDXTY.mjs} +11 -11
- package/dist/libraries/react/chunk-LS2RW6JG.mjs +51 -0
- package/dist/libraries/react/{chunk-SJKUKNBU.mjs → chunk-NJRJLNGW.mjs} +1 -1
- package/dist/libraries/react/{chunk-ZF2HUCN6.mjs → chunk-OYBOLAL5.mjs} +2 -7
- package/dist/libraries/react/{chunk-RQFIIPL2.mjs → chunk-P4BHBYHL.mjs} +1 -1
- package/dist/libraries/react/{chunk-5LYLN4C2.mjs → chunk-SFOIZTAS.mjs} +1 -17
- package/dist/libraries/react/{chunk-ZV4RPZTM.mjs → chunk-SUENW2KS.mjs} +2 -7
- package/dist/libraries/react/{chunk-MJGGWQ7J.mjs → chunk-W3YUWXSL.mjs} +2 -2
- package/dist/libraries/react/{chunk-CM5UZD2G.mjs → chunk-WJZUVBCL.mjs} +4 -4
- package/dist/libraries/react/{chunk-GM7LHHFX.mjs → chunk-WRYAEUUV.mjs} +5 -9
- package/dist/libraries/react/{chunk-OLMAXT44.mjs → chunk-XGIQOMYH.mjs} +25 -25
- package/dist/libraries/react/{chunk-P4QKFNVY.mjs → chunk-ZVGPT54A.mjs} +1 -10
- package/dist/libraries/react/client/ConvexAutumnClient.d.mts +7 -13
- package/dist/libraries/react/client/ConvexAutumnClient.d.ts +7 -13
- package/dist/libraries/react/client/ConvexAutumnClient.js +1 -26
- package/dist/libraries/react/client/ConvexAutumnClient.mjs +2 -2
- package/dist/libraries/react/client/ReactAutumnClient.d.mts +6 -8
- package/dist/libraries/react/client/ReactAutumnClient.d.ts +6 -8
- package/dist/libraries/react/client/ReactAutumnClient.js +32 -81
- package/dist/libraries/react/client/ReactAutumnClient.mjs +6 -8
- package/dist/libraries/react/client/clientCompMethods.d.mts +25 -9
- package/dist/libraries/react/client/clientCompMethods.d.ts +25 -9
- package/dist/libraries/react/client/clientCompMethods.mjs +6 -3
- package/dist/libraries/react/client/clientCusMethods.d.mts +7 -9
- package/dist/libraries/react/client/clientCusMethods.d.ts +7 -9
- package/dist/libraries/react/client/clientEntityMethods.d.mts +6 -7
- package/dist/libraries/react/client/clientEntityMethods.d.ts +6 -7
- package/dist/libraries/react/client/clientEntityMethods.js +2 -25
- package/dist/libraries/react/client/clientEntityMethods.mjs +1 -2
- package/dist/libraries/react/client/clientGenMethods.d.mts +8 -9
- package/dist/libraries/react/client/clientGenMethods.d.ts +8 -9
- package/dist/libraries/react/client/clientGenMethods.js +12 -40
- package/dist/libraries/react/client/clientGenMethods.mjs +1 -2
- package/dist/libraries/react/client/clientProdMethods.d.mts +7 -9
- package/dist/libraries/react/client/clientProdMethods.d.ts +7 -9
- package/dist/libraries/react/client/clientReferralMethods.d.mts +6 -8
- package/dist/libraries/react/client/clientReferralMethods.d.ts +6 -8
- package/dist/libraries/react/client/clientReferralMethods.js +2 -27
- package/dist/libraries/react/client/clientReferralMethods.mjs +1 -2
- package/dist/libraries/react/client/types/clientEntTypes.d.mts +18 -13
- package/dist/libraries/react/client/types/clientEntTypes.d.ts +18 -13
- package/dist/libraries/react/client/types/clientEntTypes.js +28 -0
- package/dist/libraries/react/client/types/clientEntTypes.mjs +20 -0
- package/dist/libraries/react/client/types/clientGenTypes.d.mts +12 -10
- package/dist/libraries/react/client/types/clientGenTypes.d.ts +12 -10
- package/dist/libraries/react/client/types/clientGenTypes.js +14 -17
- package/dist/libraries/react/client/types/clientGenTypes.mjs +12 -1
- package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.d.mts +2 -2
- package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.d.ts +2 -2
- package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.js +285 -338
- package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.mjs +23 -25
- package/dist/libraries/react/components/checkout-dialog/lib/checkout-content.d.mts +2 -2
- package/dist/libraries/react/components/checkout-dialog/lib/checkout-content.d.ts +2 -2
- package/dist/libraries/react/components/paywall-dialog/lib/paywall-content.d.mts +1 -1
- package/dist/libraries/react/components/paywall-dialog/lib/paywall-content.d.ts +1 -1
- package/dist/libraries/react/components/paywall-dialog/paywall-dialog-synced.js +81 -131
- package/dist/libraries/react/components/paywall-dialog/paywall-dialog-synced.mjs +23 -25
- package/dist/libraries/react/components/pricing-table/lib/pricing-table-content.d.mts +1 -1
- package/dist/libraries/react/components/pricing-table/lib/pricing-table-content.d.ts +1 -1
- 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 +484 -537
- package/dist/libraries/react/components/pricing-table/pricing-table-synced.mjs +23 -25
- package/dist/libraries/react/components/ui/accordion.d.mts +10 -4
- package/dist/libraries/react/components/ui/accordion.d.ts +10 -4
- 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/dialog.d.mts +15 -7
- package/dist/libraries/react/components/ui/dialog.d.ts +15 -7
- package/dist/libraries/react/components/ui/popover.d.mts +6 -4
- package/dist/libraries/react/components/ui/popover.d.ts +6 -4
- package/dist/libraries/react/components/ui/switch.d.mts +3 -1
- package/dist/libraries/react/components/ui/switch.d.ts +3 -1
- package/dist/libraries/react/{cusTypes-CEb_KwPo.d.ts → cusTypes-D3QQXjif.d.ts} +1 -1
- package/dist/libraries/react/{cusTypes-DynqPCZH.d.mts → cusTypes-RU0fmR-t.d.mts} +1 -1
- package/dist/libraries/react/{entTypes-DjasDDYh.d.mts → entTypes-35x0LnYH.d.mts} +1 -1
- package/dist/libraries/react/{entTypes--Y-4T20Y.d.ts → entTypes-n2T2wpRx.d.ts} +1 -1
- package/dist/libraries/react/{genTypes-VKn7hoqQ.d.mts → genTypes-B5_6Pu_4.d.mts} +1 -1
- package/dist/libraries/react/{genTypes-BjHbcZ7E.d.ts → genTypes-CY6GNiAn.d.ts} +1 -1
- package/dist/libraries/react/hooks/helpers/handleCheck.d.mts +6 -7
- package/dist/libraries/react/hooks/helpers/handleCheck.d.ts +6 -7
- package/dist/libraries/react/hooks/helpers/handleCheck.js +1 -17
- package/dist/libraries/react/hooks/helpers/handleCheck.mjs +2 -2
- package/dist/libraries/react/hooks/helpers/useAutumnBase.d.mts +6 -7
- package/dist/libraries/react/hooks/helpers/useAutumnBase.d.ts +6 -7
- package/dist/libraries/react/hooks/helpers/useAutumnBase.js +1 -17
- package/dist/libraries/react/hooks/helpers/useAutumnBase.mjs +3 -3
- package/dist/libraries/react/hooks/useAnalytics.d.mts +2 -2
- package/dist/libraries/react/hooks/useAnalytics.d.ts +2 -2
- package/dist/libraries/react/hooks/useAnalytics.js +32 -81
- package/dist/libraries/react/hooks/useAnalytics.mjs +8 -10
- package/dist/libraries/react/hooks/useCustomer.d.mts +10 -10
- package/dist/libraries/react/hooks/useCustomer.d.ts +10 -10
- package/dist/libraries/react/hooks/useCustomer.js +181 -234
- package/dist/libraries/react/hooks/useCustomer.mjs +12 -14
- package/dist/libraries/react/hooks/useCustomerBase.d.mts +10 -10
- package/dist/libraries/react/hooks/useCustomerBase.d.ts +10 -10
- package/dist/libraries/react/hooks/useCustomerBase.js +197 -250
- package/dist/libraries/react/hooks/useCustomerBase.mjs +11 -13
- package/dist/libraries/react/hooks/useEntity.d.mts +4 -4
- package/dist/libraries/react/hooks/useEntity.d.ts +4 -4
- package/dist/libraries/react/hooks/useEntity.js +33 -81
- package/dist/libraries/react/hooks/useEntity.mjs +12 -14
- package/dist/libraries/react/hooks/useEntityBase.d.mts +6 -6
- package/dist/libraries/react/hooks/useEntityBase.d.ts +6 -6
- package/dist/libraries/react/hooks/useEntityBase.js +33 -81
- package/dist/libraries/react/hooks/useEntityBase.mjs +11 -13
- package/dist/libraries/react/hooks/usePaywall.d.mts +1 -1
- package/dist/libraries/react/hooks/usePaywall.d.ts +1 -1
- package/dist/libraries/react/hooks/usePaywall.js +32 -81
- package/dist/libraries/react/hooks/usePaywall.mjs +8 -10
- 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.js +32 -81
- package/dist/libraries/react/hooks/usePricingTable.mjs +9 -11
- package/dist/libraries/react/hooks/usePricingTableBase.d.mts +6 -8
- package/dist/libraries/react/hooks/usePricingTableBase.d.ts +6 -8
- package/dist/libraries/react/hooks/usePricingTableBase.js +1 -17
- package/dist/libraries/react/hooks/usePricingTableBase.mjs +2 -2
- package/dist/libraries/react/hooks/useProductsBase.d.mts +6 -8
- package/dist/libraries/react/hooks/useProductsBase.d.ts +6 -8
- package/dist/libraries/react/hooks/useProductsBase.js +2 -1
- package/dist/libraries/react/hooks/useProductsBase.mjs +2 -1
- package/dist/libraries/react/index.d.mts +62 -58
- package/dist/libraries/react/index.d.ts +62 -58
- package/dist/libraries/react/index.js +489 -550
- package/dist/libraries/react/index.mjs +461 -522
- package/dist/libraries/react/{prodTypes-C8xRoBP7.d.ts → prodTypes-C4aZSZfO.d.mts} +1 -1
- package/dist/libraries/react/{prodTypes-C8xRoBP7.d.mts → prodTypes-C4aZSZfO.d.ts} +1 -1
- package/dist/next/client/NextAutumnClient.d.mts +31 -34
- package/dist/next/client/NextAutumnClient.d.ts +31 -34
- package/dist/next/client/NextAutumnProvider.d.mts +2 -2
- package/dist/next/client/NextAutumnProvider.d.ts +2 -2
- package/dist/next/client/{clientAttachTypes-BqwjCML1.d.ts → clientAttachTypes-BtZh00uu.d.ts} +12 -10
- package/dist/next/client/{clientAttachTypes-9AXt1E5H.d.mts → clientAttachTypes-yOuJqDWt.d.mts} +12 -10
- package/dist/next/client/{clientEntTypes-CnQkrPEG.d.mts → clientEntTypes-Bsi7ciUF.d.ts} +12 -10
- package/dist/next/client/{clientEntTypes-BhQWlwSW.d.ts → clientEntTypes-aLfa3lyP.d.mts} +12 -10
- package/dist/next/client/clientUtils.d.mts +3 -3
- package/dist/next/client/clientUtils.d.ts +3 -3
- package/dist/next/client/{cusTypes-5W4JVk2C.d.ts → cusTypes-B-rJwpui.d.ts} +2 -2
- package/dist/next/client/{cusTypes-Cb9Peq72.d.mts → cusTypes-CXjHwB-c.d.mts} +2 -2
- package/dist/next/client/{entTypes-R0fGEyG8.d.mts → entTypes-BkN-Puru.d.mts} +1 -1
- package/dist/next/client/{entTypes-B2gnYOgY.d.ts → entTypes-DjKFS-Zk.d.ts} +1 -1
- package/dist/next/client/hooks/useAutumn.d.mts +3 -3
- package/dist/next/client/hooks/useAutumn.d.ts +3 -3
- package/dist/next/client/hooks/useCustomer.d.mts +6 -6
- package/dist/next/client/hooks/useCustomer.d.ts +6 -6
- package/dist/next/client/hooks/useEntity.d.mts +4 -4
- package/dist/next/client/hooks/useEntity.d.ts +4 -4
- package/dist/next/client/hooks/usePricingTable.d.mts +1 -1
- package/dist/next/client/hooks/usePricingTable.d.ts +1 -1
- package/dist/next/client/{prodTypes-BC--Np0p.d.mts → prodTypes-B_VMILpU.d.mts} +1 -1
- package/dist/next/client/{prodTypes-BC--Np0p.d.ts → prodTypes-B_VMILpU.d.ts} +1 -1
- package/dist/next/client/types.d.mts +3 -3
- package/dist/next/client/types.d.ts +3 -3
- package/dist/next/server/cusActions.d.mts +10 -8
- package/dist/next/server/cusActions.d.ts +10 -8
- package/dist/next/server/cusActions.js +3 -3
- package/dist/next/server/cusActions.mjs +3 -3
- package/dist/next/server/genActions.js +5 -5
- package/dist/next/server/genActions.mjs +5 -5
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/index.mjs +1 -1
- package/dist/utils/encryptUtils.js +1 -17
- package/dist/utils/encryptUtils.mjs +1 -17
- package/dist/utils/toSnakeCase.d.mts +5 -1
- package/dist/utils/toSnakeCase.d.ts +5 -1
- package/dist/utils/toSnakeCase.js +25 -6
- package/dist/utils/toSnakeCase.mjs +25 -6
- package/package.json +1 -1
- package/dist/libraries/react/chunk-KQT5G3HT.mjs +0 -27
- package/dist/libraries/react/chunk-VTGR7VVK.mjs +0 -12
- package/dist/libraries/react/chunk-YQHZT73Z.mjs +0 -59
- package/dist/libraries/react/utils/toSnakeCase.d.mts +0 -3
- package/dist/libraries/react/utils/toSnakeCase.d.ts +0 -3
- package/dist/libraries/react/utils/toSnakeCase.js +0 -50
- package/dist/libraries/react/utils/toSnakeCase.mjs +0 -8
|
@@ -37,8 +37,8 @@ __export(ReactAutumnProvider_exports, {
|
|
|
37
37
|
module.exports = __toCommonJS(ReactAutumnProvider_exports);
|
|
38
38
|
|
|
39
39
|
// src/libraries/react/BaseAutumnProvider.tsx
|
|
40
|
+
var import_react3 = require("react");
|
|
40
41
|
var import_react4 = require("react");
|
|
41
|
-
var import_react5 = require("react");
|
|
42
42
|
|
|
43
43
|
// src/libraries/react/hooks/helpers/useDialog.tsx
|
|
44
44
|
var import_react = require("react");
|
|
@@ -57,23 +57,6 @@ var useDialog = (component) => {
|
|
|
57
57
|
|
|
58
58
|
// src/libraries/react/hooks/useCustomerBase.tsx
|
|
59
59
|
var import_swr2 = __toESM(require("swr"));
|
|
60
|
-
var import_react3 = require("react");
|
|
61
|
-
|
|
62
|
-
// src/libraries/react/errorUtils/logAuthError.ts
|
|
63
|
-
var logAuthError = async (response) => {
|
|
64
|
-
if (response.status === 401) {
|
|
65
|
-
let clonedResponse = response.clone();
|
|
66
|
-
let data = await clonedResponse.json();
|
|
67
|
-
if (data.message.includes("Missing authorization header")) {
|
|
68
|
-
console.error(`[Autumn] Missing authorization header.
|
|
69
|
-
|
|
70
|
-
Use the getBearerToken prop in <AutumnProvider /> to set the authorization header.
|
|
71
|
-
https://docs.useautumn.com/quickstart/quickstart#5-set-up-autumnprovider`);
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return false;
|
|
76
|
-
};
|
|
77
60
|
|
|
78
61
|
// src/sdk/error.ts
|
|
79
62
|
var AutumnError = class _AutumnError extends Error {
|
|
@@ -389,14 +372,6 @@ var toContainerResult = async ({
|
|
|
389
372
|
}
|
|
390
373
|
} catch (error2) {
|
|
391
374
|
throw error2;
|
|
392
|
-
return {
|
|
393
|
-
data: null,
|
|
394
|
-
error: new AutumnError({
|
|
395
|
-
message: "Failed to parse JSON response from Autumn",
|
|
396
|
-
code: "internal_error"
|
|
397
|
-
}),
|
|
398
|
-
statusCode: response.status
|
|
399
|
-
};
|
|
400
375
|
}
|
|
401
376
|
return {
|
|
402
377
|
data: null,
|
|
@@ -408,7 +383,7 @@ var toContainerResult = async ({
|
|
|
408
383
|
};
|
|
409
384
|
}
|
|
410
385
|
try {
|
|
411
|
-
|
|
386
|
+
const data = await response.json();
|
|
412
387
|
return {
|
|
413
388
|
data,
|
|
414
389
|
error: null,
|
|
@@ -416,14 +391,6 @@ var toContainerResult = async ({
|
|
|
416
391
|
};
|
|
417
392
|
} catch (error) {
|
|
418
393
|
throw error;
|
|
419
|
-
return {
|
|
420
|
-
data: null,
|
|
421
|
-
error: new AutumnError({
|
|
422
|
-
message: "Failed to parse Autumn API response",
|
|
423
|
-
code: "internal_error"
|
|
424
|
-
}),
|
|
425
|
-
statusCode: response?.status
|
|
426
|
-
};
|
|
427
394
|
}
|
|
428
395
|
};
|
|
429
396
|
|
|
@@ -1038,6 +1005,169 @@ var FeatureSchema = import_v48.z.object({
|
|
|
1038
1005
|
archived: import_v48.z.boolean()
|
|
1039
1006
|
});
|
|
1040
1007
|
|
|
1008
|
+
// src/libraries/react/hooks/helpers/handleCheck.ts
|
|
1009
|
+
var getCusFeature = ({
|
|
1010
|
+
customer,
|
|
1011
|
+
featureId,
|
|
1012
|
+
requiredBalance = 1
|
|
1013
|
+
}) => {
|
|
1014
|
+
let cusFeature = customer.features[featureId];
|
|
1015
|
+
if (cusFeature && typeof cusFeature.balance === "number" && cusFeature.balance >= requiredBalance) {
|
|
1016
|
+
return {
|
|
1017
|
+
cusFeature,
|
|
1018
|
+
requiredBalance
|
|
1019
|
+
};
|
|
1020
|
+
}
|
|
1021
|
+
let creditSchema = Object.values(customer.features).find(
|
|
1022
|
+
(f) => f.credit_schema && f.credit_schema.some((c) => c.feature_id === featureId)
|
|
1023
|
+
);
|
|
1024
|
+
if (creditSchema) {
|
|
1025
|
+
let schemaItem = creditSchema.credit_schema?.find(
|
|
1026
|
+
(c) => c.feature_id === featureId
|
|
1027
|
+
);
|
|
1028
|
+
return {
|
|
1029
|
+
cusFeature: creditSchema,
|
|
1030
|
+
requiredBalance: schemaItem.credit_amount * requiredBalance
|
|
1031
|
+
};
|
|
1032
|
+
}
|
|
1033
|
+
return {
|
|
1034
|
+
cusFeature: customer.features[featureId],
|
|
1035
|
+
requiredBalance
|
|
1036
|
+
};
|
|
1037
|
+
};
|
|
1038
|
+
var getFeatureAllowed = ({
|
|
1039
|
+
cusFeature,
|
|
1040
|
+
requiredBalance
|
|
1041
|
+
}) => {
|
|
1042
|
+
if (!cusFeature) return false;
|
|
1043
|
+
if (cusFeature.type == "static") return true;
|
|
1044
|
+
if (cusFeature.unlimited || cusFeature.overage_allowed) return true;
|
|
1045
|
+
if (cusFeature.usage_limit) {
|
|
1046
|
+
let extraUsage = (cusFeature.usage_limit || 0) - (cusFeature.included_usage || 0);
|
|
1047
|
+
return (cusFeature.balance || 0) + extraUsage >= requiredBalance;
|
|
1048
|
+
}
|
|
1049
|
+
return (cusFeature.balance || 0) >= requiredBalance;
|
|
1050
|
+
};
|
|
1051
|
+
var handleFeatureCheck = ({
|
|
1052
|
+
customer,
|
|
1053
|
+
isEntity,
|
|
1054
|
+
params
|
|
1055
|
+
}) => {
|
|
1056
|
+
let { cusFeature, requiredBalance } = getCusFeature({
|
|
1057
|
+
customer,
|
|
1058
|
+
featureId: params.featureId,
|
|
1059
|
+
...params.requiredBalance ? { requiredBalance: params.requiredBalance } : {}
|
|
1060
|
+
});
|
|
1061
|
+
let allowed = getFeatureAllowed({
|
|
1062
|
+
cusFeature,
|
|
1063
|
+
requiredBalance: requiredBalance ?? 1
|
|
1064
|
+
});
|
|
1065
|
+
let result = {
|
|
1066
|
+
allowed,
|
|
1067
|
+
feature_id: cusFeature?.id ?? params.featureId,
|
|
1068
|
+
customer_id: isEntity ? customer.customer_id : customer.id,
|
|
1069
|
+
required_balance: requiredBalance,
|
|
1070
|
+
...cusFeature
|
|
1071
|
+
};
|
|
1072
|
+
if (isEntity) {
|
|
1073
|
+
result.entity_id = customer.id;
|
|
1074
|
+
}
|
|
1075
|
+
try {
|
|
1076
|
+
return CheckFeatureResultSchema.parse(result);
|
|
1077
|
+
} catch (error) {
|
|
1078
|
+
return result;
|
|
1079
|
+
}
|
|
1080
|
+
};
|
|
1081
|
+
var handleProductCheck = ({
|
|
1082
|
+
customer,
|
|
1083
|
+
isEntity,
|
|
1084
|
+
params
|
|
1085
|
+
}) => {
|
|
1086
|
+
let product = customer.products.find((p) => p.id == params.productId);
|
|
1087
|
+
let allowed = product?.status === "active";
|
|
1088
|
+
let result = {
|
|
1089
|
+
allowed,
|
|
1090
|
+
customer_id: isEntity ? customer.customer_id : customer.id,
|
|
1091
|
+
product_id: params.productId
|
|
1092
|
+
};
|
|
1093
|
+
if (product) {
|
|
1094
|
+
result.status = product.status;
|
|
1095
|
+
}
|
|
1096
|
+
if (isEntity) {
|
|
1097
|
+
result.entity_id = customer.id;
|
|
1098
|
+
}
|
|
1099
|
+
return result;
|
|
1100
|
+
};
|
|
1101
|
+
var openDialog = ({
|
|
1102
|
+
result,
|
|
1103
|
+
params,
|
|
1104
|
+
context
|
|
1105
|
+
}) => {
|
|
1106
|
+
let open = result?.allowed === false && params.dialog && context;
|
|
1107
|
+
if (!open) return;
|
|
1108
|
+
const isInRenderCycle = (() => {
|
|
1109
|
+
const stack = new Error().stack || "";
|
|
1110
|
+
return stack.includes("renderWithHooks") || stack.includes("updateFunctionComponent") || stack.includes("beginWork") || stack.includes("performUnitOfWork") || stack.includes("workLoop") || stack.includes("Component.render") || stack.includes("FunctionComponent");
|
|
1111
|
+
})();
|
|
1112
|
+
if (isInRenderCycle) {
|
|
1113
|
+
context.paywallRef.current = {
|
|
1114
|
+
component: params.dialog,
|
|
1115
|
+
open: true,
|
|
1116
|
+
props: params
|
|
1117
|
+
};
|
|
1118
|
+
} else {
|
|
1119
|
+
context.paywallDialog.setComponent(params.dialog);
|
|
1120
|
+
context.paywallDialog.setProps(params);
|
|
1121
|
+
context.paywallDialog.setOpen(true);
|
|
1122
|
+
}
|
|
1123
|
+
};
|
|
1124
|
+
var handleCheck2 = ({
|
|
1125
|
+
customer,
|
|
1126
|
+
isEntity,
|
|
1127
|
+
params,
|
|
1128
|
+
context
|
|
1129
|
+
}) => {
|
|
1130
|
+
if (!customer) {
|
|
1131
|
+
return {
|
|
1132
|
+
data: {
|
|
1133
|
+
allowed: false,
|
|
1134
|
+
feature_id: "",
|
|
1135
|
+
customer_id: "",
|
|
1136
|
+
required_balance: 0
|
|
1137
|
+
},
|
|
1138
|
+
error: null
|
|
1139
|
+
};
|
|
1140
|
+
}
|
|
1141
|
+
if (!params.featureId && !params.productId) {
|
|
1142
|
+
throw new Error("allowed() requires either featureId or productId");
|
|
1143
|
+
}
|
|
1144
|
+
let result;
|
|
1145
|
+
if (params.featureId)
|
|
1146
|
+
result = handleFeatureCheck({ customer, params, isEntity });
|
|
1147
|
+
if (params.productId)
|
|
1148
|
+
result = handleProductCheck({ customer, params, isEntity });
|
|
1149
|
+
return {
|
|
1150
|
+
data: result,
|
|
1151
|
+
error: null
|
|
1152
|
+
};
|
|
1153
|
+
};
|
|
1154
|
+
|
|
1155
|
+
// src/libraries/react/errorUtils/logAuthError.ts
|
|
1156
|
+
var logAuthError = async (response) => {
|
|
1157
|
+
if (response.status === 401) {
|
|
1158
|
+
let clonedResponse = response.clone();
|
|
1159
|
+
let data = await clonedResponse.json();
|
|
1160
|
+
if (data.message.includes("Missing authorization header")) {
|
|
1161
|
+
console.error(`[Autumn] Missing authorization header.
|
|
1162
|
+
|
|
1163
|
+
Use the getBearerToken prop in <AutumnProvider /> to set the authorization header.
|
|
1164
|
+
https://docs.useautumn.com/quickstart/quickstart#5-set-up-autumnprovider`);
|
|
1165
|
+
return true;
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
return false;
|
|
1169
|
+
};
|
|
1170
|
+
|
|
1041
1171
|
// src/libraries/react/errorUtils/logFetchError.ts
|
|
1042
1172
|
var logFetchError = ({
|
|
1043
1173
|
method,
|
|
@@ -1051,12 +1181,6 @@ var logFetchError = ({
|
|
|
1051
1181
|
2. Check that autumnHandler is correctly registered on your backend.`);
|
|
1052
1182
|
};
|
|
1053
1183
|
|
|
1054
|
-
// src/libraries/react/client/clientCompMethods.ts
|
|
1055
|
-
async function getPricingTableMethod() {
|
|
1056
|
-
const res = await this.get(`${this.prefix}/components/pricing_table`);
|
|
1057
|
-
return res;
|
|
1058
|
-
}
|
|
1059
|
-
|
|
1060
1184
|
// src/libraries/react/client/clientCusMethods.ts
|
|
1061
1185
|
var createCustomerMethod = async ({
|
|
1062
1186
|
client,
|
|
@@ -1066,27 +1190,6 @@ var createCustomerMethod = async ({
|
|
|
1066
1190
|
return result;
|
|
1067
1191
|
};
|
|
1068
1192
|
|
|
1069
|
-
// src/libraries/react/utils/toSnakeCase.ts
|
|
1070
|
-
function stringToSnakeCase(str) {
|
|
1071
|
-
return str.replace(/([a-z])([A-Z])/g, "$1_$2").replace(/[-\s]+/g, "_").toLowerCase();
|
|
1072
|
-
}
|
|
1073
|
-
var toSnakeCase = (obj, excludeKeys) => {
|
|
1074
|
-
if (Array.isArray(obj)) {
|
|
1075
|
-
return obj.map((item) => toSnakeCase(item, excludeKeys));
|
|
1076
|
-
} else if (obj !== null && typeof obj === "object") {
|
|
1077
|
-
return Object.fromEntries(
|
|
1078
|
-
Object.entries(obj).map(([key, value]) => {
|
|
1079
|
-
const snakeKey = stringToSnakeCase(key);
|
|
1080
|
-
if (excludeKeys && excludeKeys.includes(key)) {
|
|
1081
|
-
return [snakeKey, value];
|
|
1082
|
-
}
|
|
1083
|
-
return [snakeKey, toSnakeCase(value, excludeKeys)];
|
|
1084
|
-
})
|
|
1085
|
-
);
|
|
1086
|
-
}
|
|
1087
|
-
return obj;
|
|
1088
|
-
};
|
|
1089
|
-
|
|
1090
1193
|
// src/utils/entityUtils.tsx
|
|
1091
1194
|
var getEntityExpandStr = (expand) => {
|
|
1092
1195
|
if (!expand) {
|
|
@@ -1097,13 +1200,11 @@ var getEntityExpandStr = (expand) => {
|
|
|
1097
1200
|
|
|
1098
1201
|
// src/libraries/react/client/clientEntityMethods.ts
|
|
1099
1202
|
async function createEntityMethod(params) {
|
|
1100
|
-
|
|
1101
|
-
const res = await this.post(`${this.prefix}/entities`, snakeParams);
|
|
1203
|
+
const res = await this.post(`${this.prefix}/entities`, params);
|
|
1102
1204
|
return res;
|
|
1103
1205
|
}
|
|
1104
1206
|
async function getEntityMethod(entityId, params) {
|
|
1105
|
-
|
|
1106
|
-
let expand = getEntityExpandStr(params?.expand);
|
|
1207
|
+
const expand = getEntityExpandStr(params?.expand);
|
|
1107
1208
|
const res = await this.get(`${this.prefix}/entities/${entityId}?${expand}`);
|
|
1108
1209
|
return res;
|
|
1109
1210
|
}
|
|
@@ -1114,44 +1215,39 @@ async function deleteEntityMethod(entityId) {
|
|
|
1114
1215
|
|
|
1115
1216
|
// src/libraries/react/client/clientGenMethods.ts
|
|
1116
1217
|
async function checkoutMethod(params) {
|
|
1117
|
-
|
|
1118
|
-
const res = await this.post(`${this.prefix}/checkout`, snakeParams);
|
|
1218
|
+
const res = await this.post(`${this.prefix}/checkout`, params);
|
|
1119
1219
|
return res;
|
|
1120
1220
|
}
|
|
1121
1221
|
async function attachMethod(params) {
|
|
1122
|
-
|
|
1123
|
-
const res = await this.post(`${this.prefix}/attach`, snakeParams);
|
|
1222
|
+
const res = await this.post(`${this.prefix}/attach`, params);
|
|
1124
1223
|
return res;
|
|
1125
1224
|
}
|
|
1126
1225
|
async function setupPaymentMethod(params) {
|
|
1127
|
-
|
|
1128
|
-
const res = await this.post(`${this.prefix}/setup_payment`, snakeParams);
|
|
1226
|
+
const res = await this.post(`${this.prefix}/setup_payment`, params);
|
|
1129
1227
|
return res;
|
|
1130
1228
|
}
|
|
1131
1229
|
async function cancelMethod(params) {
|
|
1132
|
-
|
|
1133
|
-
const res = await this.post(`${this.prefix}/cancel`, snakeParams);
|
|
1230
|
+
const res = await this.post(`${this.prefix}/cancel`, params);
|
|
1134
1231
|
return res;
|
|
1135
1232
|
}
|
|
1136
1233
|
async function checkMethod(params) {
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1234
|
+
const noDialogParams = {
|
|
1235
|
+
...params,
|
|
1236
|
+
dialog: void 0
|
|
1237
|
+
};
|
|
1238
|
+
const res = await this.post(`${this.prefix}/check`, noDialogParams);
|
|
1140
1239
|
return res;
|
|
1141
1240
|
}
|
|
1142
1241
|
async function trackMethod(params) {
|
|
1143
|
-
|
|
1144
|
-
const res = await this.post(`${this.prefix}/track`, snakeParams);
|
|
1242
|
+
const res = await this.post(`${this.prefix}/track`, params);
|
|
1145
1243
|
return res;
|
|
1146
1244
|
}
|
|
1147
1245
|
async function openBillingPortalMethod(params) {
|
|
1148
|
-
|
|
1149
|
-
const res = await this.post(`${this.prefix}/billing_portal`, snakeParams);
|
|
1246
|
+
const res = await this.post(`${this.prefix}/billing_portal`, params || {});
|
|
1150
1247
|
return res;
|
|
1151
1248
|
}
|
|
1152
1249
|
async function queryMethod(params) {
|
|
1153
|
-
|
|
1154
|
-
const res = await this.post(`${this.prefix}/query`, snakeParams);
|
|
1250
|
+
const res = await this.post(`${this.prefix}/query`, params);
|
|
1155
1251
|
return res;
|
|
1156
1252
|
}
|
|
1157
1253
|
|
|
@@ -1163,13 +1259,11 @@ async function listProductsMethod() {
|
|
|
1163
1259
|
|
|
1164
1260
|
// src/libraries/react/client/clientReferralMethods.ts
|
|
1165
1261
|
async function createCode(params) {
|
|
1166
|
-
|
|
1167
|
-
const res = await this.post(`${this.prefix}/referrals/code`, snakeParams);
|
|
1262
|
+
const res = await this.post(`${this.prefix}/referrals/code`, params);
|
|
1168
1263
|
return res;
|
|
1169
1264
|
}
|
|
1170
1265
|
async function redeemCode(params) {
|
|
1171
|
-
|
|
1172
|
-
const res = await this.post(`${this.prefix}/referrals/redeem`, snakeParams);
|
|
1266
|
+
const res = await this.post(`${this.prefix}/referrals/redeem`, params);
|
|
1173
1267
|
return res;
|
|
1174
1268
|
}
|
|
1175
1269
|
|
|
@@ -1180,7 +1274,9 @@ var AutumnClient = class {
|
|
|
1180
1274
|
customerData;
|
|
1181
1275
|
includeCredentials;
|
|
1182
1276
|
prefix;
|
|
1277
|
+
camelCase;
|
|
1183
1278
|
headers;
|
|
1279
|
+
framework;
|
|
1184
1280
|
constructor({
|
|
1185
1281
|
backendUrl,
|
|
1186
1282
|
getBearerToken,
|
|
@@ -1194,11 +1290,15 @@ var AutumnClient = class {
|
|
|
1194
1290
|
this.customerData = customerData;
|
|
1195
1291
|
this.includeCredentials = includeCredentials;
|
|
1196
1292
|
this.prefix = "/api/autumn";
|
|
1293
|
+
let camelCase = false;
|
|
1197
1294
|
if (betterAuthUrl) {
|
|
1198
1295
|
this.prefix = "/api/auth/autumn";
|
|
1199
1296
|
this.backendUrl = betterAuthUrl;
|
|
1297
|
+
camelCase = true;
|
|
1200
1298
|
}
|
|
1201
1299
|
this.headers = headers;
|
|
1300
|
+
if (betterAuthUrl) camelCase = true;
|
|
1301
|
+
this.camelCase = camelCase;
|
|
1202
1302
|
}
|
|
1203
1303
|
/**
|
|
1204
1304
|
* Detects if the backend supports CORS credentials by making an OPTIONS request
|
|
@@ -1216,7 +1316,7 @@ var AutumnClient = class {
|
|
|
1216
1316
|
body: JSON.stringify({})
|
|
1217
1317
|
});
|
|
1218
1318
|
return { valid: true, includeCredentials: true };
|
|
1219
|
-
} catch (
|
|
1319
|
+
} catch (_) {
|
|
1220
1320
|
try {
|
|
1221
1321
|
await fetch(testEndpoint, {
|
|
1222
1322
|
method: "POST",
|
|
@@ -1225,7 +1325,7 @@ var AutumnClient = class {
|
|
|
1225
1325
|
body: JSON.stringify({})
|
|
1226
1326
|
});
|
|
1227
1327
|
return { valid: true, includeCredentials: false };
|
|
1228
|
-
} catch (
|
|
1328
|
+
} catch (_2) {
|
|
1229
1329
|
return { valid: false, includeCredentials: void 0 };
|
|
1230
1330
|
}
|
|
1231
1331
|
}
|
|
@@ -1262,9 +1362,9 @@ var AutumnClient = class {
|
|
|
1262
1362
|
};
|
|
1263
1363
|
if (this.getBearerToken) {
|
|
1264
1364
|
try {
|
|
1265
|
-
|
|
1365
|
+
const token = await this.getBearerToken();
|
|
1266
1366
|
headers.Authorization = `Bearer ${token}`;
|
|
1267
|
-
} catch (
|
|
1367
|
+
} catch (_) {
|
|
1268
1368
|
console.error(`Failed to call getToken() in AutumnProvider`);
|
|
1269
1369
|
}
|
|
1270
1370
|
}
|
|
@@ -1278,15 +1378,15 @@ var AutumnClient = class {
|
|
|
1278
1378
|
method,
|
|
1279
1379
|
body
|
|
1280
1380
|
}) {
|
|
1281
|
-
body = method === "POST" ?
|
|
1381
|
+
body = method === "POST" ? {
|
|
1282
1382
|
...body,
|
|
1283
|
-
customer_data: this.customerData || void 0
|
|
1284
|
-
}
|
|
1383
|
+
[this.camelCase ? "customerData" : "customer_data"]: this.customerData || void 0
|
|
1384
|
+
} : void 0;
|
|
1285
1385
|
const includeCredentials = await this.shouldIncludeCredentials();
|
|
1286
1386
|
try {
|
|
1287
1387
|
const response = await fetch(`${this.backendUrl}${path}`, {
|
|
1288
1388
|
method,
|
|
1289
|
-
body,
|
|
1389
|
+
body: body ? JSON.stringify(body) : void 0,
|
|
1290
1390
|
headers: await this.getHeaders(),
|
|
1291
1391
|
credentials: includeCredentials ? "include" : "omit"
|
|
1292
1392
|
});
|
|
@@ -1306,7 +1406,7 @@ var AutumnClient = class {
|
|
|
1306
1406
|
return {
|
|
1307
1407
|
data: null,
|
|
1308
1408
|
error: new AutumnError({
|
|
1309
|
-
message: error.message,
|
|
1409
|
+
message: error instanceof Error ? error.message : JSON.stringify(error),
|
|
1310
1410
|
code: "fetch_failed"
|
|
1311
1411
|
})
|
|
1312
1412
|
};
|
|
@@ -1337,9 +1437,6 @@ var AutumnClient = class {
|
|
|
1337
1437
|
params
|
|
1338
1438
|
});
|
|
1339
1439
|
}
|
|
1340
|
-
async getPricingTable() {
|
|
1341
|
-
return await getPricingTableMethod.bind(this)();
|
|
1342
|
-
}
|
|
1343
1440
|
attach = attachMethod.bind(this);
|
|
1344
1441
|
checkout = checkoutMethod.bind(this);
|
|
1345
1442
|
cancel = cancelMethod.bind(this);
|
|
@@ -1747,153 +1844,6 @@ var useAutumnBase = ({
|
|
|
1747
1844
|
};
|
|
1748
1845
|
};
|
|
1749
1846
|
|
|
1750
|
-
// src/libraries/react/hooks/helpers/handleCheck.ts
|
|
1751
|
-
var getCusFeature = ({
|
|
1752
|
-
customer,
|
|
1753
|
-
featureId,
|
|
1754
|
-
requiredBalance = 1
|
|
1755
|
-
}) => {
|
|
1756
|
-
let cusFeature = customer.features[featureId];
|
|
1757
|
-
if (cusFeature && typeof cusFeature.balance === "number" && cusFeature.balance >= requiredBalance) {
|
|
1758
|
-
return {
|
|
1759
|
-
cusFeature,
|
|
1760
|
-
requiredBalance
|
|
1761
|
-
};
|
|
1762
|
-
}
|
|
1763
|
-
let creditSchema = Object.values(customer.features).find(
|
|
1764
|
-
(f) => f.credit_schema && f.credit_schema.some((c) => c.feature_id === featureId)
|
|
1765
|
-
);
|
|
1766
|
-
if (creditSchema) {
|
|
1767
|
-
let schemaItem = creditSchema.credit_schema?.find(
|
|
1768
|
-
(c) => c.feature_id === featureId
|
|
1769
|
-
);
|
|
1770
|
-
return {
|
|
1771
|
-
cusFeature: creditSchema,
|
|
1772
|
-
requiredBalance: schemaItem.credit_amount * requiredBalance
|
|
1773
|
-
};
|
|
1774
|
-
}
|
|
1775
|
-
return {
|
|
1776
|
-
cusFeature: customer.features[featureId],
|
|
1777
|
-
requiredBalance
|
|
1778
|
-
};
|
|
1779
|
-
};
|
|
1780
|
-
var getFeatureAllowed = ({
|
|
1781
|
-
cusFeature,
|
|
1782
|
-
requiredBalance
|
|
1783
|
-
}) => {
|
|
1784
|
-
if (!cusFeature) return false;
|
|
1785
|
-
if (cusFeature.type == "static") return true;
|
|
1786
|
-
if (cusFeature.unlimited || cusFeature.overage_allowed) return true;
|
|
1787
|
-
if (cusFeature.usage_limit) {
|
|
1788
|
-
let extraUsage = (cusFeature.usage_limit || 0) - (cusFeature.included_usage || 0);
|
|
1789
|
-
return (cusFeature.balance || 0) + extraUsage >= requiredBalance;
|
|
1790
|
-
}
|
|
1791
|
-
return (cusFeature.balance || 0) >= requiredBalance;
|
|
1792
|
-
};
|
|
1793
|
-
var handleFeatureCheck = ({
|
|
1794
|
-
customer,
|
|
1795
|
-
isEntity,
|
|
1796
|
-
params
|
|
1797
|
-
}) => {
|
|
1798
|
-
let { cusFeature, requiredBalance } = getCusFeature({
|
|
1799
|
-
customer,
|
|
1800
|
-
featureId: params.featureId,
|
|
1801
|
-
...params.requiredBalance ? { requiredBalance: params.requiredBalance } : {}
|
|
1802
|
-
});
|
|
1803
|
-
let allowed = getFeatureAllowed({
|
|
1804
|
-
cusFeature,
|
|
1805
|
-
requiredBalance: requiredBalance ?? 1
|
|
1806
|
-
});
|
|
1807
|
-
let result = {
|
|
1808
|
-
allowed,
|
|
1809
|
-
feature_id: cusFeature?.id ?? params.featureId,
|
|
1810
|
-
customer_id: isEntity ? customer.customer_id : customer.id,
|
|
1811
|
-
required_balance: requiredBalance,
|
|
1812
|
-
...cusFeature
|
|
1813
|
-
};
|
|
1814
|
-
if (isEntity) {
|
|
1815
|
-
result.entity_id = customer.id;
|
|
1816
|
-
}
|
|
1817
|
-
try {
|
|
1818
|
-
return CheckFeatureResultSchema.parse(result);
|
|
1819
|
-
} catch (error) {
|
|
1820
|
-
return result;
|
|
1821
|
-
}
|
|
1822
|
-
};
|
|
1823
|
-
var handleProductCheck = ({
|
|
1824
|
-
customer,
|
|
1825
|
-
isEntity,
|
|
1826
|
-
params
|
|
1827
|
-
}) => {
|
|
1828
|
-
let product = customer.products.find((p) => p.id == params.productId);
|
|
1829
|
-
let allowed = product?.status === "active";
|
|
1830
|
-
let result = {
|
|
1831
|
-
allowed,
|
|
1832
|
-
customer_id: isEntity ? customer.customer_id : customer.id,
|
|
1833
|
-
product_id: params.productId
|
|
1834
|
-
};
|
|
1835
|
-
if (product) {
|
|
1836
|
-
result.status = product.status;
|
|
1837
|
-
}
|
|
1838
|
-
if (isEntity) {
|
|
1839
|
-
result.entity_id = customer.id;
|
|
1840
|
-
}
|
|
1841
|
-
return result;
|
|
1842
|
-
};
|
|
1843
|
-
var openDialog = ({
|
|
1844
|
-
result,
|
|
1845
|
-
params,
|
|
1846
|
-
context
|
|
1847
|
-
}) => {
|
|
1848
|
-
let open = result?.allowed === false && params.dialog && context;
|
|
1849
|
-
if (!open) return;
|
|
1850
|
-
const isInRenderCycle = (() => {
|
|
1851
|
-
const stack = new Error().stack || "";
|
|
1852
|
-
return stack.includes("renderWithHooks") || stack.includes("updateFunctionComponent") || stack.includes("beginWork") || stack.includes("performUnitOfWork") || stack.includes("workLoop") || stack.includes("Component.render") || stack.includes("FunctionComponent");
|
|
1853
|
-
})();
|
|
1854
|
-
if (isInRenderCycle) {
|
|
1855
|
-
context.paywallRef.current = {
|
|
1856
|
-
component: params.dialog,
|
|
1857
|
-
open: true,
|
|
1858
|
-
props: params
|
|
1859
|
-
};
|
|
1860
|
-
} else {
|
|
1861
|
-
context.paywallDialog.setComponent(params.dialog);
|
|
1862
|
-
context.paywallDialog.setProps(params);
|
|
1863
|
-
context.paywallDialog.setOpen(true);
|
|
1864
|
-
}
|
|
1865
|
-
};
|
|
1866
|
-
var handleCheck2 = ({
|
|
1867
|
-
customer,
|
|
1868
|
-
isEntity,
|
|
1869
|
-
params,
|
|
1870
|
-
context
|
|
1871
|
-
}) => {
|
|
1872
|
-
if (!customer) {
|
|
1873
|
-
return {
|
|
1874
|
-
data: {
|
|
1875
|
-
allowed: false,
|
|
1876
|
-
feature_id: "",
|
|
1877
|
-
customer_id: "",
|
|
1878
|
-
required_balance: 0
|
|
1879
|
-
},
|
|
1880
|
-
error: null
|
|
1881
|
-
};
|
|
1882
|
-
}
|
|
1883
|
-
if (!params.featureId && !params.productId) {
|
|
1884
|
-
throw new Error("allowed() requires either featureId or productId");
|
|
1885
|
-
}
|
|
1886
|
-
let result;
|
|
1887
|
-
if (params.featureId)
|
|
1888
|
-
result = handleFeatureCheck({ customer, params, isEntity });
|
|
1889
|
-
if (params.productId)
|
|
1890
|
-
result = handleProductCheck({ customer, params, isEntity });
|
|
1891
|
-
return {
|
|
1892
|
-
data: result,
|
|
1893
|
-
error: null
|
|
1894
|
-
};
|
|
1895
|
-
};
|
|
1896
|
-
|
|
1897
1847
|
// src/libraries/react/hooks/useCustomerBase.tsx
|
|
1898
1848
|
var useCustomerBase = ({
|
|
1899
1849
|
params,
|
|
@@ -1910,7 +1860,7 @@ var useCustomerBase = ({
|
|
|
1910
1860
|
if (!client) {
|
|
1911
1861
|
client = context.client;
|
|
1912
1862
|
}
|
|
1913
|
-
|
|
1863
|
+
const baseUrl = client?.backendUrl || "";
|
|
1914
1864
|
const queryKey = ["customer", baseUrl, params?.expand];
|
|
1915
1865
|
const fetchCustomer = async () => {
|
|
1916
1866
|
const { data, error: error2 } = await client.createCustomer({
|
|
@@ -1931,11 +1881,10 @@ var useCustomerBase = ({
|
|
|
1931
1881
|
isLoading,
|
|
1932
1882
|
mutate
|
|
1933
1883
|
} = (0, import_swr2.default)(queryKey, fetchCustomer, {
|
|
1934
|
-
fallbackData: null,
|
|
1935
1884
|
// Default to 5 minutes
|
|
1885
|
+
fallbackData: null,
|
|
1936
1886
|
swrConfig: {
|
|
1937
1887
|
shouldRetryOnError: false,
|
|
1938
|
-
// refreshInterval: 1000 * 60 * 5,
|
|
1939
1888
|
refreshInterval: 0,
|
|
1940
1889
|
...params?.swrConfig
|
|
1941
1890
|
}
|
|
@@ -1945,8 +1894,6 @@ var useCustomerBase = ({
|
|
|
1945
1894
|
client,
|
|
1946
1895
|
refetchCustomer: mutate
|
|
1947
1896
|
});
|
|
1948
|
-
(0, import_react3.useEffect)(() => {
|
|
1949
|
-
}, [context?.paywallRef.current]);
|
|
1950
1897
|
return {
|
|
1951
1898
|
customer: error ? null : customer,
|
|
1952
1899
|
isLoading,
|
|
@@ -1980,7 +1927,7 @@ function BaseAutumnProvider({
|
|
|
1980
1927
|
children,
|
|
1981
1928
|
AutumnContext: AutumnContext2
|
|
1982
1929
|
}) {
|
|
1983
|
-
const [components, setComponents] = (0,
|
|
1930
|
+
const [components, setComponents] = (0, import_react4.useState)({});
|
|
1984
1931
|
const [paywallProps, setPaywallProps, paywallOpen, setPaywallOpen] = useDialog(components.paywallDialog);
|
|
1985
1932
|
const [
|
|
1986
1933
|
productChangeProps,
|
|
@@ -1989,8 +1936,8 @@ function BaseAutumnProvider({
|
|
|
1989
1936
|
setProductChangeOpen
|
|
1990
1937
|
] = useDialog(components.productChangeDialog);
|
|
1991
1938
|
useCustomerBase({ client, params: { errorOnNotFound: false } });
|
|
1992
|
-
const paywallRef = (0,
|
|
1993
|
-
const [refresh, setRefresh] = (0,
|
|
1939
|
+
const paywallRef = (0, import_react3.useRef)(null);
|
|
1940
|
+
const [refresh, setRefresh] = (0, import_react4.useState)(0);
|
|
1994
1941
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
1995
1942
|
AutumnContext2.Provider,
|
|
1996
1943
|
{
|
|
@@ -2121,15 +2068,6 @@ var ConvexAutumnClient = class {
|
|
|
2121
2068
|
};
|
|
2122
2069
|
}
|
|
2123
2070
|
}
|
|
2124
|
-
async getPricingTable() {
|
|
2125
|
-
return {
|
|
2126
|
-
data: null,
|
|
2127
|
-
error: new AutumnError({
|
|
2128
|
-
message: "getPricingTable not yet implemented for Convex",
|
|
2129
|
-
code: "not_implemented"
|
|
2130
|
-
})
|
|
2131
|
-
};
|
|
2132
|
-
}
|
|
2133
2071
|
// Core methods that wrap Convex actions
|
|
2134
2072
|
attach = async (args) => {
|
|
2135
2073
|
try {
|