@buildbase/sdk 0.0.71 → 0.0.73
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/CHANGELOG.md +81 -0
- package/README.md +43 -10
- package/dist/cli.mjs +2 -0
- package/dist/css/styles.css +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +103 -2
- package/dist/index.mjs +1 -1
- package/dist/mcp/index.cjs +1 -1
- package/dist/mcp/index.d.ts +30 -0
- package/dist/mcp/index.mjs +1 -1
- package/dist/react/chunks/SettingsDialog-CvBSuMf-.mjs +2 -0
- package/dist/react/chunks/SettingsDialog-DdOUkwIi.cjs +2 -0
- package/dist/react/chunks/{SubscriptionDialog-Bkue_qyM.cjs → SubscriptionDialog-CdZzF5eK.cjs} +1 -1
- package/dist/react/chunks/{SubscriptionDialog-ZjdyTmxn.mjs → SubscriptionDialog-D8_frxHc.mjs} +1 -1
- package/dist/react/chunks/react-BSHCN-ZU.mjs +2 -0
- package/dist/react/chunks/react-DQqr117G.cjs +2 -0
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.d.ts +130 -8
- package/dist/react/index.mjs +1 -1
- package/dist/server/browser.cjs +1 -0
- package/dist/server/browser.mjs +1 -0
- package/dist/server/index.cjs +1 -0
- package/dist/server/index.d.ts +556 -0
- package/dist/server/index.mjs +1 -0
- package/dist/server/next/index.cjs +1 -0
- package/dist/server/next/index.d.ts +156 -0
- package/dist/server/next/index.mjs +1 -0
- package/dist/tracking/index.cjs +1 -1
- package/dist/tracking/index.d.ts +205 -8
- package/dist/tracking/index.mjs +1 -1
- package/docs/SERVER-CONTENT.md +297 -0
- package/package.json +65 -5
- package/dist/react/chunks/SettingsDialog-D5lLHG9-.cjs +0 -2
- package/dist/react/chunks/SettingsDialog-DiTnAWFt.mjs +0 -2
- package/dist/react/chunks/react-BIZcTNos.mjs +0 -2
- package/dist/react/chunks/react-DM1nGVlR.cjs +0 -2
- /package/dist/react/chunks/{ar-D_agqxXa.cjs → ar-CRVhjpVE.cjs} +0 -0
- /package/dist/react/chunks/{ar-By_nJtJ6.mjs → ar-DFPDdu2U.mjs} +0 -0
- /package/dist/react/chunks/{de-D7j-9T8u.cjs → de-BGhzn711.cjs} +0 -0
- /package/dist/react/chunks/{de-CQW2yLLr.mjs → de-Bqi8scew.mjs} +0 -0
- /package/dist/react/chunks/{es-CggBj8dc.mjs → es-D_Eqhob3.mjs} +0 -0
- /package/dist/react/chunks/{es-DYtfnqFg.cjs → es-DyrMaeUp.cjs} +0 -0
- /package/dist/react/chunks/{fr-Bu6_05LA.cjs → fr-C0SkloRr.cjs} +0 -0
- /package/dist/react/chunks/{fr-CbvudRKC.mjs → fr-DkZpFQ1Q.mjs} +0 -0
- /package/dist/react/chunks/{hi-dKtSIE95.cjs → hi-B9TK87T8.cjs} +0 -0
- /package/dist/react/chunks/{hi-DrJIuj_0.mjs → hi-DrTcPkiY.mjs} +0 -0
- /package/dist/react/chunks/{ja-BtZsSYAE.mjs → ja-Dgahn--0.mjs} +0 -0
- /package/dist/react/chunks/{ja-6AwwCaS_.cjs → ja-LjzlAhAT.cjs} +0 -0
- /package/dist/react/chunks/{zh-BZsPG6yc.mjs → zh-BezRHDHs.mjs} +0 -0
- /package/dist/react/chunks/{zh-C6onHYpa.cjs → zh-CcodKi4U.cjs} +0 -0
package/dist/react/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use strict";var e=require("./chunks/react-DM1nGVlR.cjs");require("react/jsx-runtime"),require("react"),require("clsx"),require("tailwind-merge"),require("intl-messageformat"),require("@radix-ui/react-slot"),require("class-variance-authority"),require("lucide-react"),require("@radix-ui/react-dialog"),require("@radix-ui/react-icons"),require("@hookform/resolvers/zod"),require("react-hook-form"),require("@radix-ui/react-label"),require("zod"),require("@radix-ui/react-avatar"),require("@radix-ui/react-radio-group"),require("@radix-ui/react-scroll-area"),require("@radix-ui/react-separator"),require("@radix-ui/react-accordion"),require("@radix-ui/react-alert-dialog"),require("@radix-ui/react-popover"),Object.defineProperty(exports,"ApiVersion",{enumerable:!0,get:function(){return e.ApiVersion}}),exports.AuthApi=e.AuthApi,Object.defineProperty(exports,"AuthStatus",{enumerable:!0,get:function(){return e.AuthStatus}}),exports.BBAction=e.BBAction,exports.BBScreen=e.BBScreen,exports.BBStatus=e.BBStatus,exports.BB_PARAM=e.BB_PARAM,exports.BaseApi=e.BaseApi,exports.BetaForm=e.BetaForm,exports.BillingIntervals=e.BillingIntervals,exports.BuildBaseBadge=e.BuildBaseBadge,exports.BuildBaseProvider=e.SaaSOSProvider,exports.CURRENCY_DISPLAY=e.CURRENCY_DISPLAY,exports.CURRENCY_FLAG=e.CURRENCY_FLAG,exports.ConnectMcpGuide=e.ConnectMcpGuide,exports.ConnectedAgents=e.ConnectedAgents,exports.ConnectedAgentsApi=e.ConnectedAgentsApi,exports.CreditActionsProvider=e.CreditActionsProvider,exports.CreditBalance=e.CreditBalance,exports.CreditBalanceContextProvider=e.CreditBalanceContextProvider,exports.CreditBucketSource=e.CreditBucketSource,exports.CreditBucketStatus=e.CreditBucketStatus,exports.CreditStorePage=e.CreditStorePage,exports.CreditTransactionType=e.CreditTransactionType,exports.DEFAULT_ROLE_PERMISSIONS=e.DEFAULT_ROLE_PERMISSIONS,exports.Devices=e.Devices,exports.DevicesApi=e.DevicesApi,exports.DunningState=e.DunningState,exports.EmptyState=e.EmptyState,exports.EventEmitter=e.EventEmitter,exports.FullScreenLoader=e.FullScreenLoader,exports.INVITATION_ERROR_CODE=e.INVITATION_ERROR_CODE,exports.InvoiceStatuses=e.InvoiceStatuses,exports.LoadingState=e.LoadingState,exports.NotificationBell=e.NotificationBell,exports.NotificationInbox=e.NotificationInbox,exports.NotificationsApi=e.NotificationsApi,exports.PLAN_CURRENCY_CODES=e.PLAN_CURRENCY_CODES,exports.PLAN_CURRENCY_OPTIONS=e.PLAN_CURRENCY_OPTIONS,exports.PUSH_SERVICE_WORKER_SCRIPT=e.PUSH_SERVICE_WORKER_SCRIPT,exports.PendingInvitations=e.PendingInvitations,exports.Permission=e.Permission,exports.PricingPage=e.PricingPage,exports.PushApi=e.PushApi,exports.PushNotificationProvider=e.PushNotificationProvider,exports.QuotaUsageContextProvider=e.QuotaUsageContextProvider,exports.SDKEvent=e.SDKEvent,exports.SETTINGS_SCREENS=e.SETTINGS_SCREENS,exports.SUPPORTED_LOCALES=e.SUPPORTED_LOCALES,exports.SaaSOSProvider=e.SaaSOSProvider,exports.SectionHeader=e.SectionHeader,exports.Sessions=e.Sessions,exports.SessionsApi=e.SessionsApi,exports.SettingsApi=e.SettingsApi,exports.SettingsScreen=e.SettingsScreen,exports.SidebarNavItem=e.SidebarNavItem,exports.SidebarNavSection=e.SidebarNavSection,exports.StatusBanner=e.StatusBanner,exports.SubscriptionContextProvider=e.SubscriptionContextProvider,exports.SubscriptionItemType=e.SubscriptionItemType,exports.SubscriptionStatus=e.SubscriptionStatus,exports.UserApi=e.UserApi,exports.WhenAuthenticated=e.WhenAuthenticated,exports.WhenCreditsAvailable=e.WhenCreditsAvailable,exports.WhenCreditsExhausted=e.WhenCreditsExhausted,exports.WhenCreditsLow=e.WhenCreditsLow,exports.WhenNoSubscription=e.WhenNoSubscription,exports.WhenNotTrialing=e.WhenNotTrialing,exports.WhenPendingInvitations=e.WhenPendingInvitations,exports.WhenPermission=e.WhenPermission,exports.WhenQuotaAvailable=e.WhenQuotaAvailable,exports.WhenQuotaExhausted=e.WhenQuotaExhausted,exports.WhenQuotaOverage=e.WhenQuotaOverage,exports.WhenQuotaThreshold=e.WhenQuotaThreshold,exports.WhenRoles=e.WhenRoles,exports.WhenSubscription=e.WhenSubscription,exports.WhenSubscriptionToPlans=e.WhenSubscriptionToPlans,exports.WhenTrialEnding=e.WhenTrialEnding,exports.WhenTrialing=e.WhenTrialing,exports.WhenUnauthenticated=e.WhenUnauthenticated,exports.WhenUserFeatureDisabled=e.WhenUserFeatureDisabled,exports.WhenUserFeatureEnabled=e.WhenUserFeatureEnabled,exports.WhenWorkspaceFeatureDisabled=e.WhenWorkspaceFeatureDisabled,exports.WhenWorkspaceFeatureEnabled=e.WhenWorkspaceFeatureEnabled,exports.WhenWorkspaceRoles=e.WhenWorkspaceRoles,exports.WorkspaceApi=e.WorkspaceApi,exports.WorkspaceSwitcher=e.WorkspaceSwitcher,exports.actionableInvitations=e.actionableInvitations,exports.calculateBillableSeats=e.calculateBillableSeats,exports.calculateSeatOverageCents=e.calculateSeatOverageCents,exports.calculateTotalSubscriptionCents=e.calculateTotalSubscriptionCents,exports.cleanBBParams=e.cleanBBParams,exports.clearAuthIntent=e.clearAuthIntent,exports.clearPendingInvite=e.clearPendingInvite,exports.coerceBadgeRef=e.coerceBadgeRef,exports.consumeAuthIntent=e.consumeAuthIntent,exports.createBBUrl=e.createBBUrl,exports.createCheckoutRedirectUrls=e.createCheckoutRedirectUrls,exports.createCreditPurchaseRedirectUrls=e.createCreditPurchaseRedirectUrls,exports.eventEmitter=e.eventEmitter,exports.fillMcpTemplate=e.fillMcpTemplate,exports.formatCents=e.formatCents,exports.formatMinorAmountIntl=e.formatMinorAmountIntl,exports.formatOverageRate=e.formatOverageRate,exports.formatOverageRateWithLabel=e.formatOverageRateWithLabel,exports.formatQuotaIncludedOverage=e.formatQuotaIncludedOverage,exports.formatQuotaWithPrice=e.formatQuotaWithPrice,exports.getAvailableCurrenciesFromPlans=e.getAvailableCurrenciesFromPlans,exports.getBasePriceCents=e.getBasePriceCents,exports.getBillingIntervalAndCurrencyFromPriceId=e.getBillingIntervalAndCurrencyFromPriceId,exports.getCurrencyDecimals=e.getCurrencyDecimals,exports.getCurrencyFlag=e.getCurrencyFlag,exports.getCurrencySymbol=e.getCurrencySymbol,exports.getDisplayCurrency=e.getDisplayCurrency,exports.getPerSeatPriceCents=e.getPerSeatPriceCents,exports.getPricingVariant=e.getPricingVariant,exports.getQuotaDisplayValue=e.getQuotaDisplayValue,exports.getQuotaDisplayWithVariant=e.getQuotaDisplayWithVariant,exports.getQuotaOverageCents=e.getQuotaOverageCents,exports.getQuotaUnitLabelFromName=e.getQuotaUnitLabelFromName,exports.getSeatPricing=e.getSeatPricing,exports.getStripePriceIdForInterval=e.getStripePriceIdForInterval,exports.hasPermission=e.hasPermission,exports.invalidateCreditBalance=e.invalidateCreditBalance,exports.invalidateQuotaUsage=e.invalidateQuotaUsage,exports.invalidateSubscription=e.invalidateSubscription,exports.inviterNameOf=e.inviterNameOf,exports.isInvitationActionable=e.isInvitationActionable,exports.isInvitationError=e.isInvitationError,exports.isInvitationLapsed=e.isInvitationLapsed,exports.isZeroDecimalCurrency=e.isZeroDecimalCurrency,exports.mcpServerKey=e.mcpServerKey,exports.mergeUIConfig=e.mergeUIConfig,exports.minorAmountToDisplay=e.minorAmountToDisplay,exports.parkPendingInvite=e.parkPendingInvite,exports.readBBParams=e.readBBParams,exports.readPendingInvite=e.readPendingInvite,exports.resendCooldownSeconds=e.resendCooldownSeconds,exports.resolveMaxUsers=e.resolveMaxUsers,exports.resolvePermissions=e.resolvePermissions,exports.safeRedirect=e.safeRedirect,exports.saveAuthIntent=e.saveAuthIntent,exports.sortInvitations=e.sortInvitations,exports.useAllQuotaUsage=e.useAllQuotaUsage,exports.useBillingPortal=e.useBillingPortal,exports.useCancelSubscription=e.useCancelSubscription,exports.useConnectedAgents=e.useConnectedAgents,exports.useConnectedAgentsApi=e.useConnectedAgentsApi,exports.useConsumeCredits=e.useConsumeCredits,exports.useCreateCheckoutSession=e.useCreateCheckoutSession,exports.useCreditBalance=e.useCreditBalance,exports.useCreditBalanceContext=e.useCreditBalanceContext,exports.useCreditPackages=e.useCreditPackages,exports.useCreditTransactions=e.useCreditTransactions,exports.useDevices=e.useDevices,exports.useDevicesApi=e.useDevicesApi,exports.useExpiringCredits=e.useExpiringCredits,exports.useFullScreenLoader=e.useFullScreenLoader,exports.useInvoice=e.useInvoice,exports.useInvoices=e.useInvoices,exports.useMcpConnection=e.useMcpConnection,exports.useMyInvitations=e.useMyInvitations,exports.useNotifications=e.useNotifications,exports.useNotificationsApi=e.useNotificationsApi,exports.usePermissions=e.usePermissions,exports.usePlanGroup=e.usePlanGroup,exports.usePlanGroupVersions=e.usePlanGroupVersions,exports.usePublicCreditPackages=e.usePublicCreditPackages,exports.usePublicPlanGroupVersion=e.usePublicPlanGroupVersion,exports.usePublicPlans=e.usePublicPlans,exports.usePurchaseCredits=e.usePurchaseCredits,exports.usePushNotifications=e.usePushNotifications,exports.useQuotaUsageContext=e.useQuotaUsageContext,exports.useQuotaUsageStatus=e.useQuotaUsageStatus,exports.useRecordUsage=e.useRecordUsage,exports.useResumeSubscription=e.useResumeSubscription,exports.useSaaSAuth=e.useSaaSAuth,exports.useSaaSOs=e.useSaaSOs,exports.useSaaSSettings=e.useSaaSSettings,exports.useSaaSWorkspaces=e.useSaaSWorkspaces,exports.useSeatStatus=e.useSeatStatus,exports.useSessions=e.useSessions,exports.useSessionsApi=e.useSessionsApi,exports.useSubscription=e.useSubscription,exports.useSubscriptionContext=e.useSubscriptionContext,exports.useSubscriptionManagement=e.useSubscriptionManagement,exports.useTranslation=e.useTranslation,exports.useTrialStatus=e.useTrialStatus,exports.useUIConfig=e.useUIConfig,exports.useUIVisibility=e.useUIVisibility,exports.useUpdateSubscription=e.useUpdateSubscription,exports.useUsageLogs=e.useUsageLogs,exports.useUserAttributes=e.useUserAttributes,exports.useUserFeatures=e.useUserFeatures,exports.useWorkspaceInvitations=e.useWorkspaceInvitations,exports.validateInvite=e.validateInvite,exports.validateRedirectUrl=e.validateRedirectUrl,exports.workspaceIdOf=e.workspaceIdOf,exports.workspaceNameOf=e.workspaceNameOf,exports.workspaceSettingsManager=e.workspaceSettingsManager;
|
|
2
|
+
"use strict";var e=require("./chunks/react-DQqr117G.cjs");require("react/jsx-runtime"),require("react"),require("clsx"),require("tailwind-merge"),require("intl-messageformat"),require("@radix-ui/react-slot"),require("class-variance-authority"),require("lucide-react"),require("@radix-ui/react-dialog"),require("@radix-ui/react-icons"),require("@hookform/resolvers/zod"),require("react-hook-form"),require("@radix-ui/react-label"),require("zod"),require("@radix-ui/react-avatar"),require("@radix-ui/react-radio-group"),require("@radix-ui/react-scroll-area"),require("@radix-ui/react-separator"),require("@radix-ui/react-accordion"),require("@radix-ui/react-alert-dialog"),require("@radix-ui/react-popover"),exports.APP_PERMISSION_FALLBACK_GROUP=e.APP_PERMISSION_FALLBACK_GROUP,Object.defineProperty(exports,"ApiVersion",{enumerable:!0,get:function(){return e.ApiVersion}}),exports.AuthApi=e.AuthApi,Object.defineProperty(exports,"AuthStatus",{enumerable:!0,get:function(){return e.AuthStatus}}),exports.BBAction=e.BBAction,exports.BBScreen=e.BBScreen,exports.BBStatus=e.BBStatus,exports.BB_PARAM=e.BB_PARAM,exports.BaseApi=e.BaseApi,exports.BetaForm=e.BetaForm,exports.BillingIntervals=e.BillingIntervals,exports.BuildBaseBadge=e.BuildBaseBadge,exports.BuildBaseProvider=e.SaaSOSProvider,exports.CURRENCY_DISPLAY=e.CURRENCY_DISPLAY,exports.CURRENCY_FLAG=e.CURRENCY_FLAG,exports.ConnectMcpGuide=e.ConnectMcpGuide,exports.ConnectedAgents=e.ConnectedAgents,exports.ConnectedAgentsApi=e.ConnectedAgentsApi,exports.CreditActionsProvider=e.CreditActionsProvider,exports.CreditBalance=e.CreditBalance,exports.CreditBalanceContextProvider=e.CreditBalanceContextProvider,exports.CreditBucketSource=e.CreditBucketSource,exports.CreditBucketStatus=e.CreditBucketStatus,exports.CreditStorePage=e.CreditStorePage,exports.CreditTransactionType=e.CreditTransactionType,exports.DEFAULT_ROLE_PERMISSIONS=e.DEFAULT_ROLE_PERMISSIONS,exports.Devices=e.Devices,exports.DevicesApi=e.DevicesApi,exports.DunningState=e.DunningState,exports.EmptyState=e.EmptyState,exports.EventEmitter=e.EventEmitter,exports.FALLBACK_WORKSPACE_ROLE=e.FALLBACK_WORKSPACE_ROLE,exports.FullScreenLoader=e.FullScreenLoader,exports.INVITATION_ERROR_CODE=e.INVITATION_ERROR_CODE,exports.InvoiceStatuses=e.InvoiceStatuses,exports.LoadingState=e.LoadingState,exports.NotificationBell=e.NotificationBell,exports.NotificationInbox=e.NotificationInbox,exports.NotificationsApi=e.NotificationsApi,exports.PLAN_CURRENCY_CODES=e.PLAN_CURRENCY_CODES,exports.PLAN_CURRENCY_OPTIONS=e.PLAN_CURRENCY_OPTIONS,exports.PUSH_SERVICE_WORKER_SCRIPT=e.PUSH_SERVICE_WORKER_SCRIPT,exports.PendingInvitations=e.PendingInvitations,exports.Permission=e.Permission,exports.PricingPage=e.PricingPage,exports.PushApi=e.PushApi,exports.PushNotificationProvider=e.PushNotificationProvider,exports.QuotaUsageContextProvider=e.QuotaUsageContextProvider,exports.SDKEvent=e.SDKEvent,exports.SETTINGS_SCREENS=e.SETTINGS_SCREENS,exports.SUPPORTED_LOCALES=e.SUPPORTED_LOCALES,exports.SaaSOSProvider=e.SaaSOSProvider,exports.SectionHeader=e.SectionHeader,exports.Sessions=e.Sessions,exports.SessionsApi=e.SessionsApi,exports.SettingsApi=e.SettingsApi,exports.SettingsScreen=e.SettingsScreen,exports.SidebarNavItem=e.SidebarNavItem,exports.SidebarNavSection=e.SidebarNavSection,exports.StatusBanner=e.StatusBanner,exports.SubscriptionContextProvider=e.SubscriptionContextProvider,exports.SubscriptionItemType=e.SubscriptionItemType,exports.SubscriptionStatus=e.SubscriptionStatus,exports.UserApi=e.UserApi,exports.WhenAuthenticated=e.WhenAuthenticated,exports.WhenCreditsAvailable=e.WhenCreditsAvailable,exports.WhenCreditsExhausted=e.WhenCreditsExhausted,exports.WhenCreditsLow=e.WhenCreditsLow,exports.WhenNoSubscription=e.WhenNoSubscription,exports.WhenNotTrialing=e.WhenNotTrialing,exports.WhenPendingInvitations=e.WhenPendingInvitations,exports.WhenPermission=e.WhenPermission,exports.WhenQuotaAvailable=e.WhenQuotaAvailable,exports.WhenQuotaExhausted=e.WhenQuotaExhausted,exports.WhenQuotaOverage=e.WhenQuotaOverage,exports.WhenQuotaThreshold=e.WhenQuotaThreshold,exports.WhenRoles=e.WhenRoles,exports.WhenSubscription=e.WhenSubscription,exports.WhenSubscriptionToPlans=e.WhenSubscriptionToPlans,exports.WhenTrialEnding=e.WhenTrialEnding,exports.WhenTrialing=e.WhenTrialing,exports.WhenUnauthenticated=e.WhenUnauthenticated,exports.WhenUserFeatureDisabled=e.WhenUserFeatureDisabled,exports.WhenUserFeatureEnabled=e.WhenUserFeatureEnabled,exports.WhenWorkspaceFeatureDisabled=e.WhenWorkspaceFeatureDisabled,exports.WhenWorkspaceFeatureEnabled=e.WhenWorkspaceFeatureEnabled,exports.WhenWorkspaceRoles=e.WhenWorkspaceRoles,exports.WorkspaceApi=e.WorkspaceApi,exports.WorkspaceSwitcher=e.WorkspaceSwitcher,exports.actionableInvitations=e.actionableInvitations,exports.appPermissionCatalogue=e.appPermissionCatalogue,exports.calculateBillableSeats=e.calculateBillableSeats,exports.calculateSeatOverageCents=e.calculateSeatOverageCents,exports.calculateTotalSubscriptionCents=e.calculateTotalSubscriptionCents,exports.cleanBBParams=e.cleanBBParams,exports.clearAuthIntent=e.clearAuthIntent,exports.clearPendingInvite=e.clearPendingInvite,exports.coerceBadgeRef=e.coerceBadgeRef,exports.consumeAuthIntent=e.consumeAuthIntent,exports.createBBUrl=e.createBBUrl,exports.createCheckoutRedirectUrls=e.createCheckoutRedirectUrls,exports.createCreditPurchaseRedirectUrls=e.createCreditPurchaseRedirectUrls,exports.eventEmitter=e.eventEmitter,exports.fillMcpTemplate=e.fillMcpTemplate,exports.formatCents=e.formatCents,exports.formatMinorAmountIntl=e.formatMinorAmountIntl,exports.formatOverageRate=e.formatOverageRate,exports.formatOverageRateWithLabel=e.formatOverageRateWithLabel,exports.formatQuotaIncludedOverage=e.formatQuotaIncludedOverage,exports.formatQuotaWithPrice=e.formatQuotaWithPrice,exports.getAvailableCurrenciesFromPlans=e.getAvailableCurrenciesFromPlans,exports.getBasePriceCents=e.getBasePriceCents,exports.getBillingIntervalAndCurrencyFromPriceId=e.getBillingIntervalAndCurrencyFromPriceId,exports.getCurrencyDecimals=e.getCurrencyDecimals,exports.getCurrencyFlag=e.getCurrencyFlag,exports.getCurrencySymbol=e.getCurrencySymbol,exports.getDisplayCurrency=e.getDisplayCurrency,exports.getPerSeatPriceCents=e.getPerSeatPriceCents,exports.getPricingVariant=e.getPricingVariant,exports.getQuotaDisplayValue=e.getQuotaDisplayValue,exports.getQuotaDisplayWithVariant=e.getQuotaDisplayWithVariant,exports.getQuotaOverageCents=e.getQuotaOverageCents,exports.getQuotaUnitLabelFromName=e.getQuotaUnitLabelFromName,exports.getSeatPricing=e.getSeatPricing,exports.getStripePriceIdForInterval=e.getStripePriceIdForInterval,exports.hasPermission=e.hasPermission,exports.invalidateCreditBalance=e.invalidateCreditBalance,exports.invalidateQuotaUsage=e.invalidateQuotaUsage,exports.invalidateSubscription=e.invalidateSubscription,exports.inviterNameOf=e.inviterNameOf,exports.isInvitationActionable=e.isInvitationActionable,exports.isInvitationError=e.isInvitationError,exports.isInvitationLapsed=e.isInvitationLapsed,exports.isZeroDecimalCurrency=e.isZeroDecimalCurrency,exports.mcpServerKey=e.mcpServerKey,exports.mergeUIConfig=e.mergeUIConfig,exports.minorAmountToDisplay=e.minorAmountToDisplay,exports.parkPendingInvite=e.parkPendingInvite,exports.pickDefaultRole=e.pickDefaultRole,exports.readBBParams=e.readBBParams,exports.readPendingInvite=e.readPendingInvite,exports.resendCooldownSeconds=e.resendCooldownSeconds,exports.resolveMaxUsers=e.resolveMaxUsers,exports.resolvePermissions=e.resolvePermissions,exports.resolveRolePermissions=e.resolveRolePermissions,exports.safeRedirect=e.safeRedirect,exports.saveAuthIntent=e.saveAuthIntent,exports.sortInvitations=e.sortInvitations,exports.useAllQuotaUsage=e.useAllQuotaUsage,exports.useBillingPortal=e.useBillingPortal,exports.useCancelSubscription=e.useCancelSubscription,exports.useConnectedAgents=e.useConnectedAgents,exports.useConnectedAgentsApi=e.useConnectedAgentsApi,exports.useConsumeCredits=e.useConsumeCredits,exports.useCreateCheckoutSession=e.useCreateCheckoutSession,exports.useCreditBalance=e.useCreditBalance,exports.useCreditBalanceContext=e.useCreditBalanceContext,exports.useCreditPackages=e.useCreditPackages,exports.useCreditTransactions=e.useCreditTransactions,exports.useDevices=e.useDevices,exports.useDevicesApi=e.useDevicesApi,exports.useExpiringCredits=e.useExpiringCredits,exports.useFullScreenLoader=e.useFullScreenLoader,exports.useInvoice=e.useInvoice,exports.useInvoices=e.useInvoices,exports.useMcpConnection=e.useMcpConnection,exports.useMyInvitations=e.useMyInvitations,exports.useNotifications=e.useNotifications,exports.useNotificationsApi=e.useNotificationsApi,exports.usePermissions=e.usePermissions,exports.usePlanGroup=e.usePlanGroup,exports.usePlanGroupVersions=e.usePlanGroupVersions,exports.usePublicCreditPackages=e.usePublicCreditPackages,exports.usePublicPlanGroupVersion=e.usePublicPlanGroupVersion,exports.usePublicPlans=e.usePublicPlans,exports.usePurchaseCredits=e.usePurchaseCredits,exports.usePushNotifications=e.usePushNotifications,exports.useQuotaUsageContext=e.useQuotaUsageContext,exports.useQuotaUsageStatus=e.useQuotaUsageStatus,exports.useRecordUsage=e.useRecordUsage,exports.useResumeSubscription=e.useResumeSubscription,exports.useSaaSAuth=e.useSaaSAuth,exports.useSaaSOs=e.useSaaSOs,exports.useSaaSSettings=e.useSaaSSettings,exports.useSaaSWorkspaces=e.useSaaSWorkspaces,exports.useSeatStatus=e.useSeatStatus,exports.useSessions=e.useSessions,exports.useSessionsApi=e.useSessionsApi,exports.useSubscription=e.useSubscription,exports.useSubscriptionContext=e.useSubscriptionContext,exports.useSubscriptionManagement=e.useSubscriptionManagement,exports.useTranslation=e.useTranslation,exports.useTrialStatus=e.useTrialStatus,exports.useUIConfig=e.useUIConfig,exports.useUIVisibility=e.useUIVisibility,exports.useUpdateSubscription=e.useUpdateSubscription,exports.useUsageLogs=e.useUsageLogs,exports.useUserAttributes=e.useUserAttributes,exports.useUserFeatures=e.useUserFeatures,exports.useWorkspaceInvitations=e.useWorkspaceInvitations,exports.validateInvite=e.validateInvite,exports.validateRedirectUrl=e.validateRedirectUrl,exports.workspaceIdOf=e.workspaceIdOf,exports.workspaceNameOf=e.workspaceNameOf,exports.workspaceSettingsManager=e.workspaceSettingsManager;
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1110,6 +1110,16 @@ interface ISettings {
|
|
|
1110
1110
|
canInviteMembers: boolean | 'admin-only';
|
|
1111
1111
|
/** Custom role→permission mapping. Overrides SDK defaults when provided by backend. */
|
|
1112
1112
|
permissions?: Record<string, string[]>;
|
|
1113
|
+
/**
|
|
1114
|
+
* The organization's own permissions, defined in the BuildBase console:
|
|
1115
|
+
* `{ key: 'app:reports:export', label: 'Export reports', group: 'Reports' }`.
|
|
1116
|
+
* Absent on a server from before release 23.
|
|
1117
|
+
*/
|
|
1118
|
+
customPermissions?: {
|
|
1119
|
+
key: string;
|
|
1120
|
+
label: string;
|
|
1121
|
+
group?: string;
|
|
1122
|
+
}[];
|
|
1113
1123
|
/** Show workspace switcher in the UI */
|
|
1114
1124
|
showSwitcher: boolean;
|
|
1115
1125
|
/** Max workspaces a user can own. 0 = unlimited */
|
|
@@ -1312,6 +1322,18 @@ interface AuthRequestParams {
|
|
|
1312
1322
|
* Populated automatically from the tracking provider when one is mounted.
|
|
1313
1323
|
* Omitted means unanswered, which is not the same as refused.
|
|
1314
1324
|
*/
|
|
1325
|
+
/**
|
|
1326
|
+
* Where the visitor came from - the click ids and campaign fields captured
|
|
1327
|
+
* on their landing page, when, and where. Stored on the user the hosted
|
|
1328
|
+
* pages create, so a conversion that happens later with no browser (a trial
|
|
1329
|
+
* converting, a renewal) can still be joined to the ad click. Populated
|
|
1330
|
+
* automatically from the attribution cookie when tracking is mounted.
|
|
1331
|
+
*/
|
|
1332
|
+
trackingAttribution?: {
|
|
1333
|
+
params: Record<string, string>;
|
|
1334
|
+
capturedAt?: number;
|
|
1335
|
+
landingUrl?: string;
|
|
1336
|
+
};
|
|
1315
1337
|
trackingConsent?: {
|
|
1316
1338
|
analytics: boolean;
|
|
1317
1339
|
marketing: boolean;
|
|
@@ -1690,6 +1712,15 @@ declare class UserApi extends BaseApi {
|
|
|
1690
1712
|
getFeatures(signal?: AbortSignal): Promise<Record<string, boolean>>;
|
|
1691
1713
|
}
|
|
1692
1714
|
|
|
1715
|
+
/** What a member may do in a workspace, as the server resolved it. */
|
|
1716
|
+
interface WorkspaceMemberPermissions {
|
|
1717
|
+
/** The member's role, or null when they are not a member. */
|
|
1718
|
+
role: string | null;
|
|
1719
|
+
/** The workspace's owner holds every permission. */
|
|
1720
|
+
isOwner: boolean;
|
|
1721
|
+
/** Platform keys (`workspace:*`) and the organization's own keys. */
|
|
1722
|
+
permissions: string[];
|
|
1723
|
+
}
|
|
1693
1724
|
/** Data passed to a notification template for merge tag replacement. */
|
|
1694
1725
|
interface NotificationData {
|
|
1695
1726
|
/** Push notification title. Falls back to the event name if not provided. */
|
|
@@ -1798,6 +1829,12 @@ declare class WorkspaceApi extends BaseApi {
|
|
|
1798
1829
|
createWorkspace(data: {
|
|
1799
1830
|
name: string;
|
|
1800
1831
|
image?: string;
|
|
1832
|
+
/** Where the creator came from. Stored on the workspace for conversions recorded later. */
|
|
1833
|
+
trackingAttribution?: {
|
|
1834
|
+
params: Record<string, string>;
|
|
1835
|
+
capturedAt?: number;
|
|
1836
|
+
landingUrl?: string;
|
|
1837
|
+
};
|
|
1801
1838
|
}, signal?: AbortSignal): Promise<IWorkspace>;
|
|
1802
1839
|
updateWorkspace(id: string, data: Partial<IWorkspace>, signal?: AbortSignal): Promise<IWorkspace>;
|
|
1803
1840
|
deleteWorkspace(id: string, signal?: AbortSignal): Promise<{
|
|
@@ -1881,6 +1918,12 @@ declare class WorkspaceApi extends BaseApi {
|
|
|
1881
1918
|
permissions: Record<string, string[]>;
|
|
1882
1919
|
}, signal?: AbortSignal): Promise<any>;
|
|
1883
1920
|
updateWorkspacePermissions(workspaceId: string, permissions: Record<string, string[]>, signal?: AbortSignal): Promise<any>;
|
|
1921
|
+
/**
|
|
1922
|
+
* What the signed-in member may do in a workspace, as the server resolves
|
|
1923
|
+
* it: the platform's permissions and the organization's own. A backend asks
|
|
1924
|
+
* this rather than trusting a flag the browser sent.
|
|
1925
|
+
*/
|
|
1926
|
+
getMyPermissions(workspaceId: string, signal?: AbortSignal): Promise<WorkspaceMemberPermissions>;
|
|
1884
1927
|
getFeatures(signal?: AbortSignal): Promise<IWorkspaceFeature[]>;
|
|
1885
1928
|
updateFeature(workspaceId: string, key: string, value: boolean, signal?: AbortSignal): Promise<IWorkspace>;
|
|
1886
1929
|
getWorkspace(workspaceId: string, signal?: AbortSignal): Promise<IWorkspace>;
|
|
@@ -2738,17 +2781,45 @@ declare const Permission: {
|
|
|
2738
2781
|
readonly WORKSPACE_BILLING_VIEW: "workspace:billing:view";
|
|
2739
2782
|
readonly WORKSPACE_BILLING_MANAGE: "workspace:billing:manage";
|
|
2740
2783
|
readonly WORKSPACE_USAGE_VIEW: "workspace:usage:view";
|
|
2784
|
+
/** Record usage and spend the workspace's credits. Withheld from viewers. */
|
|
2785
|
+
readonly WORKSPACE_USAGE_RECORD: "workspace:usage:record";
|
|
2741
2786
|
};
|
|
2742
2787
|
type PermissionKey = (typeof Permission)[keyof typeof Permission];
|
|
2743
2788
|
type RolePermissionMap = Record<string, string[]>;
|
|
2789
|
+
/**
|
|
2790
|
+
* Defaults for the three roles every org is seeded with, the same lists the
|
|
2791
|
+
* server enforces. Servers now send each role's effective permissions in the
|
|
2792
|
+
* public settings, so these apply only to a server that does not. There is no
|
|
2793
|
+
* `member` entry: no one can hold that role, and `editor` had none, so an
|
|
2794
|
+
* editor was shown nothing the server let them do.
|
|
2795
|
+
*/
|
|
2744
2796
|
declare const DEFAULT_ROLE_PERMISSIONS: RolePermissionMap;
|
|
2797
|
+
/** The least privileged built-in role, used when no default is usable. */
|
|
2798
|
+
declare const FALLBACK_WORKSPACE_ROLE = "viewer";
|
|
2799
|
+
/**
|
|
2800
|
+
* The role to preselect for someone joining: the org's default role when it
|
|
2801
|
+
* is on the list, but never `admin`, which must be a deliberate choice. Then
|
|
2802
|
+
* viewer, then any role other than admin.
|
|
2803
|
+
*/
|
|
2804
|
+
declare function pickDefaultRole(roles: readonly string[], defaultRole?: string | null): string;
|
|
2745
2805
|
interface WorkspaceLike extends WorkspaceLike$1 {
|
|
2746
2806
|
permissions?: Record<string, string[]>;
|
|
2747
2807
|
}
|
|
2808
|
+
/**
|
|
2809
|
+
* A permission the organization defined for its own application, in the
|
|
2810
|
+
* BuildBase console. The server stores and resolves it exactly like a platform
|
|
2811
|
+
* permission; what it means is the application's business.
|
|
2812
|
+
*/
|
|
2813
|
+
interface WorkspacePermissionDefinition {
|
|
2814
|
+
key: string;
|
|
2815
|
+
label: string;
|
|
2816
|
+
group?: string;
|
|
2817
|
+
}
|
|
2748
2818
|
interface SettingsLike {
|
|
2749
2819
|
workspace?: {
|
|
2750
2820
|
defaultRole?: string;
|
|
2751
2821
|
permissions?: Record<string, string[]>;
|
|
2822
|
+
customPermissions?: WorkspacePermissionDefinition[];
|
|
2752
2823
|
canInviteMembers?: boolean | 'admin-only';
|
|
2753
2824
|
canCreateWorkspace?: boolean | 'owner-only';
|
|
2754
2825
|
};
|
|
@@ -2778,12 +2849,31 @@ interface PermissionContext {
|
|
|
2778
2849
|
* 7. Apply setting restrictions (canInviteMembers)
|
|
2779
2850
|
*/
|
|
2780
2851
|
declare function resolvePermissions(ctx: PermissionContext): Set<string>;
|
|
2852
|
+
/**
|
|
2853
|
+
* What one role may do in a workspace, by the same tiers the server uses.
|
|
2854
|
+
* `resolvePermissions` answers for a user; this answers for a role, which is
|
|
2855
|
+
* what a screen editing the matrix needs. `applyRestrictions: false` leaves
|
|
2856
|
+
* out the org's live switches (who may invite), so a screen does not write a
|
|
2857
|
+
* switch's current effect into a saved override.
|
|
2858
|
+
*/
|
|
2859
|
+
declare function resolveRolePermissions(role: string, ctx: Pick<PermissionContext, 'workspace' | 'settings' | 'appPermissions'>, options?: {
|
|
2860
|
+
applyRestrictions?: boolean;
|
|
2861
|
+
}): Set<string>;
|
|
2781
2862
|
/**
|
|
2782
2863
|
* Check if a user has a specific permission (or all of an array).
|
|
2783
2864
|
* Works with both platform permissions (Permission.WORKSPACE_*) and
|
|
2784
2865
|
* app permissions (any custom string).
|
|
2785
2866
|
*/
|
|
2786
2867
|
declare function hasPermission(permission: string | string[], ctx: PermissionContext): boolean;
|
|
2868
|
+
/** Where a permission the app checks was defined. */
|
|
2869
|
+
declare const APP_PERMISSION_FALLBACK_GROUP = "App";
|
|
2870
|
+
/**
|
|
2871
|
+
* Every permission this application defines, for a UI that lists them: the
|
|
2872
|
+
* organization's catalogue from the console, plus any key the app passed
|
|
2873
|
+
* through `defaultPermissions` that the catalogue does not name yet. Keys from
|
|
2874
|
+
* the prop keep working, so adopting the console costs nothing.
|
|
2875
|
+
*/
|
|
2876
|
+
declare function appPermissionCatalogue(settings?: SettingsLike | null, appPermissions?: Record<string, string[]> | null): WorkspacePermissionDefinition[];
|
|
2787
2877
|
|
|
2788
2878
|
/**
|
|
2789
2879
|
* Push notification service worker source code.
|
|
@@ -4005,6 +4095,27 @@ declare function useTranslation(): {
|
|
|
4005
4095
|
messages: SDKMessages;
|
|
4006
4096
|
};
|
|
4007
4097
|
|
|
4098
|
+
/** A consent default: what applies before the visitor has answered. */
|
|
4099
|
+
type ConsentDefault = 'granted' | 'denied';
|
|
4100
|
+
/**
|
|
4101
|
+
* A consent default that depends on where the visitor is.
|
|
4102
|
+
*
|
|
4103
|
+
* `default` covers everyone no region rule matches. Region entries are ISO
|
|
4104
|
+
* 3166-1 alpha-2 countries (`GB`), ISO 3166-2 subdivisions (`US-CA`), or `EEA`,
|
|
4105
|
+
* which expands to the current member states.
|
|
4106
|
+
*
|
|
4107
|
+
* @example The recommended setting
|
|
4108
|
+
* ```ts
|
|
4109
|
+
* { default: 'granted', regions: { denied: ['EEA', 'GB', 'CH'] } }
|
|
4110
|
+
* ```
|
|
4111
|
+
*/
|
|
4112
|
+
interface RegionalConsent {
|
|
4113
|
+
default: ConsentDefault;
|
|
4114
|
+
regions?: {
|
|
4115
|
+
denied?: string[];
|
|
4116
|
+
granted?: string[];
|
|
4117
|
+
};
|
|
4118
|
+
}
|
|
4008
4119
|
/**
|
|
4009
4120
|
* The events the SDK fires on the app's behalf.
|
|
4010
4121
|
*
|
|
@@ -4033,12 +4144,21 @@ interface TrackingOptions {
|
|
|
4033
4144
|
/** Set false to fetch nothing and render nothing. */
|
|
4034
4145
|
enabled?: boolean;
|
|
4035
4146
|
/**
|
|
4036
|
-
*
|
|
4037
|
-
*
|
|
4038
|
-
*
|
|
4039
|
-
*
|
|
4147
|
+
* The consent default, before the visitor answers.
|
|
4148
|
+
*
|
|
4149
|
+
* - `auto` (default): the client's regional default from the console, when
|
|
4150
|
+
* one is set; otherwise Consent Mode v2 denied everywhere until
|
|
4151
|
+
* `consent.set()`.
|
|
4152
|
+
* - `{ default, regions }`: a regional default set in code, which wins over
|
|
4153
|
+
* the console's. Resolved against the country the server saw.
|
|
4154
|
+
* - `granted`: the app asserting it already has a lawful basis everywhere -
|
|
4155
|
+
* their assertion, not ours.
|
|
4156
|
+
* - `denied`: nothing loads at all, not even a Consent Mode tag.
|
|
4157
|
+
*
|
|
4158
|
+
* Whichever default applies, `consent.set()` replaces it. The choice of
|
|
4159
|
+
* default, and its lawful basis, belong to the app.
|
|
4040
4160
|
*/
|
|
4041
|
-
consent?: 'auto' | 'granted' | 'denied';
|
|
4161
|
+
consent?: 'auto' | 'granted' | 'denied' | RegionalConsent;
|
|
4042
4162
|
/**
|
|
4043
4163
|
* Fire a `page_view` on SPA navigation. Turn it off when the app's GTM
|
|
4044
4164
|
* container already does it - double-counted pageviews is the single most
|
|
@@ -4698,6 +4818,7 @@ declare function usePermissions(workspace?: WorkspaceLike | null): {
|
|
|
4698
4818
|
permissions: Set<string>;
|
|
4699
4819
|
isOwner: boolean;
|
|
4700
4820
|
role: string | null;
|
|
4821
|
+
appPermissionDefinitions: WorkspacePermissionDefinition[];
|
|
4701
4822
|
};
|
|
4702
4823
|
|
|
4703
4824
|
/** Memoized ConnectedAgentsApi instance. Recreates only when serverUrl/version change. */
|
|
@@ -7153,7 +7274,8 @@ interface SeatStatus {
|
|
|
7153
7274
|
* Must be used within SubscriptionContextProvider.
|
|
7154
7275
|
*
|
|
7155
7276
|
* @param workspace - The current workspace (needs users array, limits, billingCurrency)
|
|
7156
|
-
* @param options - Optional overrides
|
|
7277
|
+
* @param options - Optional overrides. `settingsMaxUsers` defaults to the org's
|
|
7278
|
+
* `maxWorkspaceUsers` from the SDK settings, the ceiling the server enforces.
|
|
7157
7279
|
* @returns SeatStatus — computed seat and invite information
|
|
7158
7280
|
*
|
|
7159
7281
|
* @example
|
|
@@ -7494,5 +7616,5 @@ declare class WorkspaceSettingsManager {
|
|
|
7494
7616
|
}
|
|
7495
7617
|
declare const workspaceSettingsManager: WorkspaceSettingsManager;
|
|
7496
7618
|
|
|
7497
|
-
export { ApiVersion, AuthApi, AuthStatus, BBAction, BBScreen, BBStatus, BB_PARAM, BaseApi, BetaForm, BillingIntervals, BuildBaseBadge, SaaSOSProvider as BuildBaseProvider, CURRENCY_DISPLAY, CURRENCY_FLAG, ConnectMcpGuide, ConnectedAgents, ConnectedAgentsApi, CreditActionsProvider, CreditBalance, CreditBalanceContextProvider, CreditBucketSource, CreditBucketStatus, CreditStorePage, CreditTransactionType, DEFAULT_ROLE_PERMISSIONS, Devices, DevicesApi, DunningState, EmptyState, EventEmitter, FullScreenLoader, INVITATION_ERROR_CODE, InvoiceStatuses, LoadingState, NotificationBell, NotificationInbox, NotificationsApi, PLAN_CURRENCY_CODES, PLAN_CURRENCY_OPTIONS, PUSH_SERVICE_WORKER_SCRIPT, PendingInvitations, Permission, PricingPage, PushApi, PushNotificationProvider, QuotaUsageContextProvider, SDKEvent, SETTINGS_SCREENS, SUPPORTED_LOCALES, SaaSOSProvider, SectionHeader, Sessions, SessionsApi, SettingsApi, SettingsScreen, SidebarNavItem, SidebarNavSection, StatusBanner, SubscriptionContextProvider, SubscriptionItemType, SubscriptionStatus, UserApi, WhenAuthenticated, WhenCreditsAvailable, WhenCreditsExhausted, WhenCreditsLow, WhenNoSubscription, WhenNotTrialing, WhenPendingInvitations, WhenPermission, WhenQuotaAvailable, WhenQuotaExhausted, WhenQuotaOverage, WhenQuotaThreshold, WhenRoles, WhenSubscription, WhenSubscriptionToPlans, WhenTrialEnding, WhenTrialing, WhenUnauthenticated, WhenUserFeatureDisabled, WhenUserFeatureEnabled, WhenWorkspaceFeatureDisabled, WhenWorkspaceFeatureEnabled, WhenWorkspaceRoles, WorkspaceApi, WorkspaceSwitcher, actionableInvitations, calculateBillableSeats, calculateSeatOverageCents, calculateTotalSubscriptionCents, cleanBBParams, clearAuthIntent, clearPendingInvite, coerceBadgeRef, consumeAuthIntent, createBBUrl, createCheckoutRedirectUrls, createCreditPurchaseRedirectUrls, eventEmitter, fillMcpTemplate, formatCents, formatMinorAmountIntl, formatOverageRate, formatOverageRateWithLabel, formatQuotaIncludedOverage, formatQuotaWithPrice, getAvailableCurrenciesFromPlans, getBasePriceCents, getBillingIntervalAndCurrencyFromPriceId, getCurrencyDecimals, getCurrencyFlag, getCurrencySymbol, getDisplayCurrency, getPerSeatPriceCents, getPricingVariant, getQuotaDisplayValue, getQuotaDisplayWithVariant, getQuotaOverageCents, getQuotaUnitLabelFromName, getSeatPricing, getStripePriceIdForInterval, hasPermission, invalidateCreditBalance, invalidateQuotaUsage, invalidateSubscription, inviterNameOf, isInvitationActionable, isInvitationError, isInvitationLapsed, isZeroDecimalCurrency, mcpServerKey, mergeUIConfig, minorAmountToDisplay, parkPendingInvite, readBBParams, readPendingInvite, resendCooldownSeconds, resolveMaxUsers, resolvePermissions, safeRedirect, saveAuthIntent, sortInvitations, useAllQuotaUsage, useBillingPortal, useCancelSubscription, useConnectedAgents, useConnectedAgentsApi, useConsumeCredits, useCreateCheckoutSession, useCreditBalance, useCreditBalanceContext, useCreditPackages, useCreditTransactions, useDevices, useDevicesApi, useExpiringCredits, useFullScreenLoader, useInvoice, useInvoices, useMcpConnection, useMyInvitations, useNotifications, useNotificationsApi, usePermissions, usePlanGroup, usePlanGroupVersions, usePublicCreditPackages, usePublicPlanGroupVersion, usePublicPlans, usePurchaseCredits, usePushNotifications, useQuotaUsageContext, useQuotaUsageStatus, useRecordUsage, useResumeSubscription, useSaaSAuth, useSaaSOs, useSaaSSettings, useSaaSWorkspaces, useSeatStatus, useSessions, useSessionsApi, useSubscription, useSubscriptionContext, useSubscriptionManagement, useTranslation, useTrialStatus, useUIConfig, useUIVisibility, useUpdateSubscription, useUsageLogs, useUserAttributes, useUserFeatures, useWorkspaceInvitations, validateInvite, validateRedirectUrl, workspaceIdOf, workspaceNameOf, workspaceSettingsManager };
|
|
7498
|
-
export type { BBActionType, BBScreenType, BBStatusType, BadgeHrefOptions, BetaFormData, BetaFormResponse, BillingInterval, BuildBaseBadgeProps, BuildBaseBadgeSize, BuildBaseBadgeTheme, BuildBaseBadgeVariant, SaaSOSProviderProps as BuildBaseProviderProps, CheckoutResult, ConnectMcpGuideProps, ConnectedAgentsProps, CreditActionsDetails, CreditBalanceContextValue, CreditBalanceDetails, CreditBucketSourceType, CreditBucketStatusType, CreditStorePageDetails, CreditTransactionTypeValue, DevicesProps, DunningStateType, EmptyStateProps, EventData, EventType, FormatQuotaWithPriceOptions, FullScreenLoaderProps, GetCheckoutStripeParams, IAllQuotaUsageResponse, IBaseApiConfig, IBasePricing, IBetaConfig, ICheckoutSessionRequest, ICheckoutSessionResponse, ICheckoutStripeOptions, IConnectedAgent, IConsumeCreditsRequest, IConsumeCreditsResponse, ICreditBalance, ICreditBucket, ICreditBucketsQuery, ICreditBucketsResponse, ICreditPackage, ICreditPackagePricingVariant, ICreditPurchaseRequest, ICreditPurchaseResponse, ICreditTransaction, ICreditTransactionsQuery, ICreditTransactionsResponse, IDeviceView, IEventCallbacks, IExpiringCreditsResponse, IInvoice, IInvoiceListResponse, IInvoiceResponse, IIpInfoLite, INotificationItem, IOsConfig, IOsState, IPlan, IPlanGroup, IPlanGroupInfo, IPlanGroupLatestVersion, IPlanGroupResponse, IPlanGroupVersion, IPlanGroupVersionWithPlans, IPlanGroupVersionsResponse, IPlanVersion, IPlanVersionSummary, IPlanVersionWithPlan, IPricingVariant, IPublicCreditPackage, IPublicCreditPackagesResponse, IPublicPlanItem, IPublicPlanItemCategory, IPublicPlanVersion, IPublicPlansResponse, IQuotaByInterval, IQuotaIntervalValue, IQuotaOveragePriceIdsByInterval, IQuotaOveragesByInterval, IQuotaUsageStatus, IQuotaUsageStatusResponse, IRecordUsageRequest, IRecordUsageResponse, ISessionView, ISettings, IStripePricesByInterval, ISubscription, ISubscriptionItem, ISubscriptionResponse, ISubscriptionUpdateRequest, ISubscriptionUpdateResponse, IUsageLogEntry, IUsageLogsQuery, IUsageLogsResponse, IUser, IWorkspace, IWorkspaceInvitation, IWorkspaceInvitationPreview, IWorkspaceInvitationStatus, InvitationError, InvitationErrorCode, InvitationErrorFields, InviteBlockReason, InviteValidation, InvoiceStatus, InvoiceStatusType, LoadingProps, LoadingStateProps, MaxUsersConfig, McpClientGuide, McpConnectionConfig, MyNotificationPreferences, NotificationBellProps, NotificationChannelPreference, NotificationCounts, NotificationData, NotificationEvent, NotificationInboxProps, NotificationListParams, NotificationPage, NotificationResult, NotificationScope, OnWorkspaceChangeParams, PartialSDKMessages, PendingInvitationsProps, PermissionContext, PermissionKey, PlanVersionWithPricingVariants, PricingPageDetails, PricingPageProps, QuotaDisplayValue, QuotaDisplayWithOverage, QuotaUsageContextValue, RedirectValidationOptions, RolePermissionMap, SDKLocale, SDKMessages, SDKUIConfig, SaaSOSProviderProps, SeatStatus, SectionHeaderProps, SessionsProps, SettingsManagerState, SidebarNavItemProps, SidebarNavSectionProps, SignOutOptions, StatusBannerProps, StatusBannerVariant, SubscriptionContextValue, SubscriptionItemTypeValue, SubscriptionStatusType, TranslationKey, TrialStatus, UseConnectedAgents, UseDevices, UseMyInvitations, UseNotifications, UseNotificationsOptions, UseSessions, UseWorkspaceInvitations, UserCreatedEventData, UserUpdatedEventData, WorkspaceChangedEventData, WorkspaceCreatedEventData, WorkspaceDeletedEventData, WorkspaceInvitationAcceptedEventData, WorkspaceInvitationDeclinedEventData, WorkspaceInvitationRevokedEventData, WorkspaceInvitationSentEventData, WorkspaceNotificationDefault, WorkspaceSettingsSection, WorkspaceUpdatedEventData, WorkspaceUserAddedEventData, WorkspaceUserRemovedEventData, WorkspaceUserRoleChangedEventData };
|
|
7619
|
+
export { APP_PERMISSION_FALLBACK_GROUP, ApiVersion, AuthApi, AuthStatus, BBAction, BBScreen, BBStatus, BB_PARAM, BaseApi, BetaForm, BillingIntervals, BuildBaseBadge, SaaSOSProvider as BuildBaseProvider, CURRENCY_DISPLAY, CURRENCY_FLAG, ConnectMcpGuide, ConnectedAgents, ConnectedAgentsApi, CreditActionsProvider, CreditBalance, CreditBalanceContextProvider, CreditBucketSource, CreditBucketStatus, CreditStorePage, CreditTransactionType, DEFAULT_ROLE_PERMISSIONS, Devices, DevicesApi, DunningState, EmptyState, EventEmitter, FALLBACK_WORKSPACE_ROLE, FullScreenLoader, INVITATION_ERROR_CODE, InvoiceStatuses, LoadingState, NotificationBell, NotificationInbox, NotificationsApi, PLAN_CURRENCY_CODES, PLAN_CURRENCY_OPTIONS, PUSH_SERVICE_WORKER_SCRIPT, PendingInvitations, Permission, PricingPage, PushApi, PushNotificationProvider, QuotaUsageContextProvider, SDKEvent, SETTINGS_SCREENS, SUPPORTED_LOCALES, SaaSOSProvider, SectionHeader, Sessions, SessionsApi, SettingsApi, SettingsScreen, SidebarNavItem, SidebarNavSection, StatusBanner, SubscriptionContextProvider, SubscriptionItemType, SubscriptionStatus, UserApi, WhenAuthenticated, WhenCreditsAvailable, WhenCreditsExhausted, WhenCreditsLow, WhenNoSubscription, WhenNotTrialing, WhenPendingInvitations, WhenPermission, WhenQuotaAvailable, WhenQuotaExhausted, WhenQuotaOverage, WhenQuotaThreshold, WhenRoles, WhenSubscription, WhenSubscriptionToPlans, WhenTrialEnding, WhenTrialing, WhenUnauthenticated, WhenUserFeatureDisabled, WhenUserFeatureEnabled, WhenWorkspaceFeatureDisabled, WhenWorkspaceFeatureEnabled, WhenWorkspaceRoles, WorkspaceApi, WorkspaceSwitcher, actionableInvitations, appPermissionCatalogue, calculateBillableSeats, calculateSeatOverageCents, calculateTotalSubscriptionCents, cleanBBParams, clearAuthIntent, clearPendingInvite, coerceBadgeRef, consumeAuthIntent, createBBUrl, createCheckoutRedirectUrls, createCreditPurchaseRedirectUrls, eventEmitter, fillMcpTemplate, formatCents, formatMinorAmountIntl, formatOverageRate, formatOverageRateWithLabel, formatQuotaIncludedOverage, formatQuotaWithPrice, getAvailableCurrenciesFromPlans, getBasePriceCents, getBillingIntervalAndCurrencyFromPriceId, getCurrencyDecimals, getCurrencyFlag, getCurrencySymbol, getDisplayCurrency, getPerSeatPriceCents, getPricingVariant, getQuotaDisplayValue, getQuotaDisplayWithVariant, getQuotaOverageCents, getQuotaUnitLabelFromName, getSeatPricing, getStripePriceIdForInterval, hasPermission, invalidateCreditBalance, invalidateQuotaUsage, invalidateSubscription, inviterNameOf, isInvitationActionable, isInvitationError, isInvitationLapsed, isZeroDecimalCurrency, mcpServerKey, mergeUIConfig, minorAmountToDisplay, parkPendingInvite, pickDefaultRole, readBBParams, readPendingInvite, resendCooldownSeconds, resolveMaxUsers, resolvePermissions, resolveRolePermissions, safeRedirect, saveAuthIntent, sortInvitations, useAllQuotaUsage, useBillingPortal, useCancelSubscription, useConnectedAgents, useConnectedAgentsApi, useConsumeCredits, useCreateCheckoutSession, useCreditBalance, useCreditBalanceContext, useCreditPackages, useCreditTransactions, useDevices, useDevicesApi, useExpiringCredits, useFullScreenLoader, useInvoice, useInvoices, useMcpConnection, useMyInvitations, useNotifications, useNotificationsApi, usePermissions, usePlanGroup, usePlanGroupVersions, usePublicCreditPackages, usePublicPlanGroupVersion, usePublicPlans, usePurchaseCredits, usePushNotifications, useQuotaUsageContext, useQuotaUsageStatus, useRecordUsage, useResumeSubscription, useSaaSAuth, useSaaSOs, useSaaSSettings, useSaaSWorkspaces, useSeatStatus, useSessions, useSessionsApi, useSubscription, useSubscriptionContext, useSubscriptionManagement, useTranslation, useTrialStatus, useUIConfig, useUIVisibility, useUpdateSubscription, useUsageLogs, useUserAttributes, useUserFeatures, useWorkspaceInvitations, validateInvite, validateRedirectUrl, workspaceIdOf, workspaceNameOf, workspaceSettingsManager };
|
|
7620
|
+
export type { BBActionType, BBScreenType, BBStatusType, BadgeHrefOptions, BetaFormData, BetaFormResponse, BillingInterval, BuildBaseBadgeProps, BuildBaseBadgeSize, BuildBaseBadgeTheme, BuildBaseBadgeVariant, SaaSOSProviderProps as BuildBaseProviderProps, CheckoutResult, ConnectMcpGuideProps, ConnectedAgentsProps, CreditActionsDetails, CreditBalanceContextValue, CreditBalanceDetails, CreditBucketSourceType, CreditBucketStatusType, CreditStorePageDetails, CreditTransactionTypeValue, DevicesProps, DunningStateType, EmptyStateProps, EventData, EventType, FormatQuotaWithPriceOptions, FullScreenLoaderProps, GetCheckoutStripeParams, IAllQuotaUsageResponse, IBaseApiConfig, IBasePricing, IBetaConfig, ICheckoutSessionRequest, ICheckoutSessionResponse, ICheckoutStripeOptions, IConnectedAgent, IConsumeCreditsRequest, IConsumeCreditsResponse, ICreditBalance, ICreditBucket, ICreditBucketsQuery, ICreditBucketsResponse, ICreditPackage, ICreditPackagePricingVariant, ICreditPurchaseRequest, ICreditPurchaseResponse, ICreditTransaction, ICreditTransactionsQuery, ICreditTransactionsResponse, IDeviceView, IEventCallbacks, IExpiringCreditsResponse, IInvoice, IInvoiceListResponse, IInvoiceResponse, IIpInfoLite, INotificationItem, IOsConfig, IOsState, IPlan, IPlanGroup, IPlanGroupInfo, IPlanGroupLatestVersion, IPlanGroupResponse, IPlanGroupVersion, IPlanGroupVersionWithPlans, IPlanGroupVersionsResponse, IPlanVersion, IPlanVersionSummary, IPlanVersionWithPlan, IPricingVariant, IPublicCreditPackage, IPublicCreditPackagesResponse, IPublicPlanItem, IPublicPlanItemCategory, IPublicPlanVersion, IPublicPlansResponse, IQuotaByInterval, IQuotaIntervalValue, IQuotaOveragePriceIdsByInterval, IQuotaOveragesByInterval, IQuotaUsageStatus, IQuotaUsageStatusResponse, IRecordUsageRequest, IRecordUsageResponse, ISessionView, ISettings, IStripePricesByInterval, ISubscription, ISubscriptionItem, ISubscriptionResponse, ISubscriptionUpdateRequest, ISubscriptionUpdateResponse, IUsageLogEntry, IUsageLogsQuery, IUsageLogsResponse, IUser, IWorkspace, IWorkspaceInvitation, IWorkspaceInvitationPreview, IWorkspaceInvitationStatus, InvitationError, InvitationErrorCode, InvitationErrorFields, InviteBlockReason, InviteValidation, InvoiceStatus, InvoiceStatusType, LoadingProps, LoadingStateProps, MaxUsersConfig, McpClientGuide, McpConnectionConfig, MyNotificationPreferences, NotificationBellProps, NotificationChannelPreference, NotificationCounts, NotificationData, NotificationEvent, NotificationInboxProps, NotificationListParams, NotificationPage, NotificationResult, NotificationScope, OnWorkspaceChangeParams, PartialSDKMessages, PendingInvitationsProps, PermissionContext, PermissionKey, PlanVersionWithPricingVariants, PricingPageDetails, PricingPageProps, QuotaDisplayValue, QuotaDisplayWithOverage, QuotaUsageContextValue, RedirectValidationOptions, RolePermissionMap, SDKLocale, SDKMessages, SDKUIConfig, SaaSOSProviderProps, SeatStatus, SectionHeaderProps, SessionsProps, SettingsManagerState, SidebarNavItemProps, SidebarNavSectionProps, SignOutOptions, StatusBannerProps, StatusBannerVariant, SubscriptionContextValue, SubscriptionItemTypeValue, SubscriptionStatusType, TranslationKey, TrialStatus, UseConnectedAgents, UseDevices, UseMyInvitations, UseNotifications, UseNotificationsOptions, UseSessions, UseWorkspaceInvitations, UserCreatedEventData, UserUpdatedEventData, WorkspaceChangedEventData, WorkspaceCreatedEventData, WorkspaceDeletedEventData, WorkspaceInvitationAcceptedEventData, WorkspaceInvitationDeclinedEventData, WorkspaceInvitationRevokedEventData, WorkspaceInvitationSentEventData, WorkspaceMemberPermissions, WorkspaceNotificationDefault, WorkspacePermissionDefinition, WorkspaceSettingsSection, WorkspaceUpdatedEventData, WorkspaceUserAddedEventData, WorkspaceUserRemovedEventData, WorkspaceUserRoleChangedEventData };
|
package/dist/react/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{
|
|
2
|
+
export{b2 as APP_PERMISSION_FALLBACK_GROUP,b3 as ApiVersion,b4 as AuthApi,b5 as AuthStatus,o as BBAction,b6 as BBScreen,p as BBStatus,b7 as BB_PARAM,b8 as BaseApi,b9 as BetaForm,ak as BillingIntervals,ba as BuildBaseBadge,bb as BuildBaseProvider,bc as CURRENCY_DISPLAY,bd as CURRENCY_FLAG,be as ConnectMcpGuide,C as ConnectedAgents,bf as ConnectedAgentsApi,bg as CreditActionsProvider,bh as CreditBalance,bi as CreditBalanceContextProvider,bj as CreditBucketSource,bk as CreditBucketStatus,bl as CreditStorePage,y as CreditTransactionType,bm as DEFAULT_ROLE_PERMISSIONS,R as Devices,bn as DevicesApi,aB as DunningState,E as EmptyState,bo as EventEmitter,bp as FALLBACK_WORKSPACE_ROLE,bq as FullScreenLoader,br as INVITATION_ERROR_CODE,ai as InvoiceStatuses,L as LoadingState,bs as NotificationBell,bt as NotificationInbox,bu as NotificationsApi,bv as PLAN_CURRENCY_CODES,bw as PLAN_CURRENCY_OPTIONS,bx as PUSH_SERVICE_WORKER_SCRIPT,by as PendingInvitations,P as Permission,bz as PricingPage,bA as PushApi,bB as PushNotificationProvider,bC as QuotaUsageContextProvider,bD as SDKEvent,a_ as SETTINGS_SCREENS,bE as SUPPORTED_LOCALES,bb as SaaSOSProvider,s as SectionHeader,T as Sessions,bF as SessionsApi,bG as SettingsApi,aU as SettingsScreen,aW as SidebarNavItem,aV as SidebarNavSection,r as StatusBanner,bH as SubscriptionContextProvider,al as SubscriptionItemType,ao as SubscriptionStatus,bI as UserApi,bJ as WhenAuthenticated,bK as WhenCreditsAvailable,bL as WhenCreditsExhausted,bM as WhenCreditsLow,bN as WhenNoSubscription,bO as WhenNotTrialing,bP as WhenPendingInvitations,bQ as WhenPermission,bR as WhenQuotaAvailable,bS as WhenQuotaExhausted,bT as WhenQuotaOverage,bU as WhenQuotaThreshold,bV as WhenRoles,bW as WhenSubscription,bX as WhenSubscriptionToPlans,bY as WhenTrialEnding,bZ as WhenTrialing,b_ as WhenUnauthenticated,b$ as WhenUserFeatureDisabled,c0 as WhenUserFeatureEnabled,c1 as WhenWorkspaceFeatureDisabled,c2 as WhenWorkspaceFeatureEnabled,c3 as WhenWorkspaceRoles,c4 as WorkspaceApi,c5 as WorkspaceSwitcher,c6 as actionableInvitations,aa as appPermissionCatalogue,c7 as calculateBillableSeats,c8 as calculateSeatOverageCents,c9 as calculateTotalSubscriptionCents,ca as cleanBBParams,cb as clearAuthIntent,cc as clearPendingInvite,cd as coerceBadgeRef,ce as consumeAuthIntent,cf as createBBUrl,aD as createCheckoutRedirectUrls,v as createCreditPurchaseRedirectUrls,cg as eventEmitter,ch as fillMcpTemplate,ci as formatCents,f as formatMinorAmountIntl,cj as formatOverageRate,ck as formatOverageRateWithLabel,cl as formatQuotaIncludedOverage,cm as formatQuotaWithPrice,b0 as getAvailableCurrenciesFromPlans,ay as getBasePriceCents,ax as getBillingIntervalAndCurrencyFromPriceId,e as getCurrencyDecimals,a0 as getCurrencyFlag,g as getCurrencySymbol,cn as getDisplayCurrency,aA as getPerSeatPriceCents,a$ as getPricingVariant,an as getQuotaDisplayValue,am as getQuotaDisplayWithVariant,aH as getQuotaOverageCents,co as getQuotaUnitLabelFromName,az as getSeatPricing,aC as getStripePriceIdForInterval,cp as hasPermission,q as invalidateCreditBalance,cq as invalidateQuotaUsage,aE as invalidateSubscription,cr as inviterNameOf,cs as isInvitationActionable,ct as isInvitationError,aR as isInvitationLapsed,cu as isZeroDecimalCurrency,cv as mcpServerKey,aX as mergeUIConfig,cw as minorAmountToDisplay,cx as parkPendingInvite,aO as pickDefaultRole,cy as readBBParams,cz as readPendingInvite,aQ as resendCooldownSeconds,cA as resolveMaxUsers,cB as resolvePermissions,ab as resolveRolePermissions,x as safeRedirect,cC as saveAuthIntent,cD as sortInvitations,cE as useAllQuotaUsage,au as useBillingPortal,as as useCancelSubscription,cF as useConnectedAgents,cG as useConnectedAgentsApi,cH as useConsumeCredits,ar as useCreateCheckoutSession,cI as useCreditBalance,j as useCreditBalanceContext,k as useCreditPackages,m as useCreditTransactions,cJ as useDevices,cK as useDevicesApi,l as useExpiringCredits,cL as useFullScreenLoader,cM as useInvoice,ag as useInvoices,cN as useMcpConnection,cO as useMyInvitations,cP as useNotifications,cQ as useNotificationsApi,h as usePermissions,cR as usePlanGroup,av as usePlanGroupVersions,cS as usePublicCreditPackages,cT as usePublicPlanGroupVersion,cU as usePublicPlans,n as usePurchaseCredits,a7 as usePushNotifications,aF as useQuotaUsageContext,cV as useQuotaUsageStatus,cW as useRecordUsage,at as useResumeSubscription,aJ as useSaaSAuth,cX as useSaaSOs,A as useSaaSSettings,z as useSaaSWorkspaces,aN as useSeatStatus,cY as useSessions,cZ as useSessionsApi,c_ as useSubscription,aG as useSubscriptionContext,aq as useSubscriptionManagement,u as useTranslation,c$ as useTrialStatus,aP as useUIConfig,i as useUIVisibility,d0 as useUpdateSubscription,d1 as useUsageLogs,d2 as useUserAttributes,d3 as useUserFeatures,aL as useWorkspaceInvitations,d4 as validateInvite,d5 as validateRedirectUrl,d6 as workspaceIdOf,d7 as workspaceNameOf,w as workspaceSettingsManager}from"./chunks/react-BSHCN-ZU.mjs";import"react/jsx-runtime";import"react";import"clsx";import"tailwind-merge";import"intl-messageformat";import"@radix-ui/react-slot";import"class-variance-authority";import"lucide-react";import"@radix-ui/react-dialog";import"@radix-ui/react-icons";import"@hookform/resolvers/zod";import"react-hook-form";import"@radix-ui/react-label";import"zod";import"@radix-ui/react-avatar";import"@radix-ui/react-radio-group";import"@radix-ui/react-scroll-area";import"@radix-ui/react-separator";import"@radix-ui/react-accordion";import"@radix-ui/react-alert-dialog";import"@radix-ui/react-popover";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";throw new Error("@buildbase/sdk/server holds your org API token and must only run on a server. Import it from server code (an API route, a server component, a build script), never from code that ships to the browser.");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
throw new Error("@buildbase/sdk/server holds your org API token and must only run on a server. Import it from server code (an API route, a server component, a build script), never from code that ships to the browser.");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function t(t={}){const e=Math.max(1,t.maxEntries??1e3),n=new Map,o=new Map,s=t=>{const e=n.get(t);e&&(n.delete(t),((t,e)=>{for(const n of e.tags){const e=o.get(n);e&&(e.delete(t),0===e.size&&o.delete(n))}})(t,e.entry))};return{async get(t){const e=n.get(t);if(e){if(!(e.expiresAt<=Date.now()))return n.delete(t),n.set(t,e),e.entry;s(t)}},async set(t,a,r){s(t),n.set(t,{entry:a,expiresAt:Date.now()+1e3*r});for(const e of a.tags){let n=o.get(e);n||o.set(e,n=new Set),n.add(t)}for(;n.size>e;){const t=n.keys().next().value;if(void 0===t)break;s(t)}},async delete(t){s(t)},async deleteByTag(t){const e=o.get(t);if(e)for(const t of[...e])s(t)}}}function e(t,n,o){if(null!=o)if(Array.isArray(o))o.forEach((o,s)=>e(t,`${n}[${s}]`,o));else if("object"!=typeof o)t.append(n,String(o));else for(const[s,a]of Object.entries(o))e(t,`${n}[${s}]`,a)}function n(t){if(!t)return"";const n=new URLSearchParams;for(const o of Object.keys(t).sort())e(n,o,t[o]);n.sort();const o=n.toString();return o?`?${o}`:""}const o=["blog","doc","faq","faq_collection","testimonial","rich_content","collection"],s="buildbase:all",a={module:t=>`buildbase:${t}`,slug:(t,e)=>`buildbase:${t}:${e}`,id:(t,e)=>`buildbase:${t}:id:${e}`,collection:t=>`buildbase:collection:${t}`,all:s},r=["blog.published","blog.updated","blog.unpublished","blog.deleted","doc.published","doc.updated","doc.unpublished","doc.deleted","faq.updated","faq_collection.updated","testimonial.updated","testimonial.deleted","rich_content.updated","rich_content.deleted","collection.version_published","collection.record_created","collection.record_updated","collection.record_deleted"],i=new Set(r);function c(t){return i.has(t)}function l(t,e){if(e&&Array.isArray(e.tags)&&e.tags.length>0)return[...new Set(e.tags.filter(t=>"string"==typeof t))];const n=e?.module??t.split(".")[0];if(!o.includes(n))return[];const s=[a.module(n)];return e?.slug&&s.push(a.slug(n,e.slug)),e?.id&&s.push(a.id(n,e.id)),"faq.updated"===t&&s.push(a.module("faq_collection")),s}const d="@buildbase/sdk/server holds your org API token and must only run on a server. Import it from server code (an API route, a server component, a build script), never from code that ships to the browser.";class u extends Error{constructor(t,e,n,o){super(t),this.status=e,this.url=n,this.body=o,this.name="BuildBaseContentError"}}const f=/^[0-9a-f]{24}$/i,p=new WeakMap;function h(t){return Array.isArray(t)?t:t&&"object"==typeof t&&Array.isArray(t.docs)?t.docs:[]}function g(t){const e=t.split("/").filter(Boolean);return e[e.length-1]??t}function y(t={},e={}){const n={...e,...t.filter};return{$page:t.page,$limit:t.limit,filter:Object.keys(n).length>0?n:void 0,sort:t.sort}}const w=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),m=(t,e)=>t>>>e|t<<32-e;function b(t){let e=1779033703,n=3144134277,o=1013904242,s=2773480762,a=1359893119,r=2600822924,i=528734635,c=1541459225;const l=t.length,d=l+1,u=d+(56-d%64+64)%64+8,f=new Uint8Array(u);f.set(t,0),f[l]=128;const p=8*l,h=Math.floor(p/4294967296),g=p>>>0;f[u-8]=h>>>24&255,f[u-7]=h>>>16&255,f[u-6]=h>>>8&255,f[u-5]=255&h,f[u-4]=g>>>24&255,f[u-3]=g>>>16&255,f[u-2]=g>>>8&255,f[u-1]=255&g;const y=new Uint32Array(64);for(let t=0;t<u;t+=64){for(let e=0;e<16;e++){const n=t+4*e;y[e]=f[n]<<24|f[n+1]<<16|f[n+2]<<8|f[n+3]}for(let t=16;t<64;t++){const e=m(y[t-15],7)^m(y[t-15],18)^y[t-15]>>>3,n=m(y[t-2],17)^m(y[t-2],19)^y[t-2]>>>10;y[t]=y[t-16]+e+y[t-7]+n>>>0}let l=e,d=n,u=o,p=s,h=a,g=r,b=i,v=c;for(let t=0;t<64;t++){const e=v+(m(h,6)^m(h,11)^m(h,25))+(h&g^~h&b)+w[t]+y[t]>>>0,n=l&d^l&u^d&u;v=b,b=g,g=h,h=p+e>>>0,p=u,u=d,d=l,l=e+((m(l,2)^m(l,13)^m(l,22))+n>>>0)>>>0}e=e+l>>>0,n=n+d>>>0,o=o+u>>>0,s=s+p>>>0,a=a+h>>>0,r=r+g>>>0,i=i+b>>>0,c=c+v>>>0}const b=new Uint8Array(32),v=[e,n,o,s,a,r,i,c];for(let t=0;t<8;t++)b[4*t]=v[t]>>>24&255,b[4*t+1]=v[t]>>>16&255,b[4*t+2]=v[t]>>>8&255,b[4*t+3]=255&v[t];return b}function v(t){return(new TextEncoder).encode(t)}function $(t,e){const n=new Uint8Array(t.length+e.length);return n.set(t,0),n.set(e,t.length),n}function x(t){const{body:e,signature:n,timestamp:o,secret:s,maxAgeSeconds:a=300}=t;if(!(n&&o&&s&&e))return!1;const r="sha256=";if(!n.startsWith(r))return!1;const i=n.slice(7);if(a>0){const t=parseInt(o,10);if(isNaN(t))return!1;if(Math.abs(Math.floor(Date.now()/1e3)-t)>a)return!1}const c=function(t){if(t.length%2!=0)return null;const e=new Uint8Array(t.length/2);for(let n=0;n<e.length;n++){const o=parseInt(t.slice(2*n,2*n+2),16);if(Number.isNaN(o))return null;e[n]=o}return e}(i);if(!c)return!1;const l=function(t,e){let n=t;n.length>64&&(n=b(n));const o=new Uint8Array(64),s=new Uint8Array(64);for(let t=0;t<64;t++){const e=t<n.length?n[t]:0;o[t]=54^e,s[t]=92^e}const a=b($(o,e));return b($(s,a))}(v(s),v(`${o}.${e}`));return c.length===l.length&&function(t,e){if(t.length!==e.length)return!1;let n=0;for(let o=0;o<t.length;o++)n|=t[o]^e[o];return 0===n}(c,l)}const q=(t,e)=>new Response(JSON.stringify(e),{status:t,headers:{"Content-Type":"application/json"}});async function A(t,e){if("POST"!==t.method)return q(405,{error:"method_not_allowed"});const n=function(t){if(!x(t))return null;try{return JSON.parse(t.body)}catch{return null}}({body:await t.text(),signature:t.headers.get("x-buildbase-signature"),timestamp:t.headers.get("x-buildbase-timestamp"),secret:e.secret,maxAgeSeconds:e.maxAgeSeconds??300});if(!n)return q(401,{error:"invalid_signature"});if(!c(n.event))return q(200,{ignored:!0,event:n.event});const o=l(n.event,n.data);return e.cache&&await Promise.all(o.map(t=>e.cache.deleteByTag(t))),e.revalidate&&await e.revalidate(o),e.onEvent&&await e.onEvent(n,o),q(200,{revalidated:o})}function E(t){return t instanceof Uint8Array}const S=["blogs","docs","faqs","testimonials","richContent","collections"];async function C(t){const e=[];for(let n=1;n<=1e4;n++){const o=await t(n);e.push(...o.docs);if(!(o.hasNextPage??(void 0!==o.totalPages&&n<o.totalPages))||0===o.docs.length)break}return e}exports.ALL_TAG=s,exports.BuildBaseContentError=u,exports.CONTENT_MODULES=o,exports.CONTENT_WEBHOOK_EVENTS=r,exports.PULL_MODULES=S,exports.SERVER_ONLY_MESSAGE=d,exports.contentTags=a,exports.createContentWebhookHandler=function(t){return e=>A(e,t)},exports.createServerClient=function(e){if("undefined"!=typeof window&&"undefined"!=typeof document)throw new Error(d);if(!e||"string"!=typeof e.serverUrl||!e.serverUrl)throw new Error("createServerClient: `serverUrl` is required");if("string"!=typeof e.apiToken||!e.apiToken.includes(":"))throw new Error("createServerClient: `apiToken` must be an org API token of the form <orgId>:<secret> (console, Settings, API tokens)");const o=e.serverUrl.replace(/\/+$/,""),r=e.apiToken,i=r.slice(0,r.indexOf(":")),c=!1===e.cache?null:e.cache??t(),l=e.fetch??((t,e)=>globalThis.fetch(t,e)),w=e.timeoutMs??1e4,m=e.defaultTtlSeconds??60,b=Math.max(e.retainSeconds??86400,1),v=e.staleOnError??!0,$=new Map,x=(t,e)=>(t&&"object"==typeof t&&p.set(t,e),t);async function q(t,n,s){const a="function"==typeof e.requestInit?e.requestInit({path:t,tags:n}):e.requestInit??{},i=new Headers(a.headers);i.set("Authorization",`Bearer ${r}`),i.set("Accept","application/json"),s&&i.set("If-None-Match",s);const c=new AbortController,d=setTimeout(()=>c.abort(),w);try{return await l(`${o}${t}`,{...a,method:"GET",headers:i,signal:a.signal??c.signal})}finally{clearTimeout(d)}}async function A(t){const e=`${t.path}${n(t.query)}`,a=`${i}:${e}`,r=c?await c.get(a):void 0,l=Date.now();if(r&&r.freshUntil>l)return x(r.data,r.tags);const d=()=>{const n=async function(){let n;try{n=await q(e,t.tags,r?.etag),304!==n.status||r||(n=await q(e,t.tags))}catch(t){if(v&&r)return x(r.data,r.tags);throw new u(`BuildBase request failed: ${t instanceof Error?t.message:String(t)}`,0,`${o}${e}`)}const i=function(t,e){const n=t.headers.get("cache-control");if(!n)return e;const o=n.toLowerCase().split(",").map(t=>t.trim());if(o.includes("no-store"))return null;if(o.includes("no-cache"))return 0;const s=o.find(t=>t.startsWith("max-age="));if(s){const t=Number(s.slice(8));if(Number.isFinite(t)&&t>=0)return t}return e}(n,m),l=function(t){const e=t.headers.get("cache-control");if(!e)return 0;const n=e.toLowerCase().split(",").map(t=>t.trim()).find(t=>t.startsWith("stale-while-revalidate=")),o=n?Number(n.slice(23)):0;return Number.isFinite(o)&&o>0?o:0}(n);if(304===n.status&&r){const t={...r,etag:n.headers.get("etag")??r.etag,freshUntil:Date.now()+1e3*(i??0),staleUntil:l>0?Date.now()+1e3*((i??0)+l):void 0};return c&&await c.set(a,t,b),x(r.data,r.tags)}if(404===n.status&&t.nullOnNotFound)return null;if(!n.ok){const s=await n.text().catch(()=>"");let a=s;try{a=s?JSON.parse(s):void 0}catch{}if(v&&r&&401!==n.status&&403!==n.status)return x(r.data,r.tags);const i=a?.message??`BuildBase responded ${n.status} for ${t.path}`;throw new u(i,n.status,`${o}${e}`,a)}const d=(f=await n.json().catch(()=>null),f&&"object"==typeof f&&!Array.isArray(f)&&"data"in f&&"success"in f&&!("docs"in f)?f.data:f);var f;if(null==d&&t.nullOnNotFound)return null;const p=t.transform?t.transform(d):d,h=[...new Set([...t.tags,...t.tagsFrom?t.tagsFrom(p):[],s])];c&&null!==i&&await c.set(a,{data:p,etag:n.headers.get("etag")??void 0,freshUntil:Date.now()+1e3*i,staleUntil:l>0?Date.now()+1e3*(i+l):void 0,tags:h},Math.max(b,i));return x(p,h)}();return $.set(a,n),n.then(()=>$.delete(a),()=>$.delete(a)),n};if(r&&void 0!==r.staleUntil&&r.staleUntil>l)return $.has(a)||d().catch(()=>{}),x(r.data,r.tags);const f=$.get(a);return f||d()}const E=t=>e=>{const n=[];return e?._id&&n.push(a.id(t,e._id)),e?.slug&&n.push(a.slug(t,e.slug)),n};function S(t,e){const n=a.module(e);return{list:(e={})=>A({path:`/api/${t}`,query:y(e,e.includeDrafts?{}:{published:!0}),tags:[n]}),get:n=>A({path:`/api/${t}/${encodeURIComponent(n)}`,tags:[a.id(e,n)],tagsFrom:E(e),nullOnNotFound:!0}),byPath:(n,o={})=>A({path:`/api/${t}/path`,query:{path:n,draftPreview:!!o.draftPreview||void 0},tags:[a.slug(e,g(n))],tagsFrom:E(e),nullOnNotFound:!0}),tree:(e={})=>A({path:`/api/${t}/folders/tree`,query:{folder:e.folder},tags:[n]}),tags:(e={})=>A({path:`/api/${t}/tags`,query:y(e),tags:[n]}),authors:(e={})=>A({path:`/api/${t}/authors`,query:y(e),tags:[n]})}}const C=a.module("faq_collection");async function N(t){const e=f.test(t);return A({path:e?`/api/faqs/collections/${encodeURIComponent(t)}`:`/api/faqs/collections/slug/${encodeURIComponent(t)}`,tags:[e?a.id("faq_collection",t):a.slug("faq_collection",t)],tagsFrom:E("faq_collection"),nullOnNotFound:!0})}return{blogs:S("blogs","blog"),docs:S("docs","doc"),faqs:{collections:(t={})=>A({path:"/api/faqs/collections",query:y(t,{archived:!1}),tags:[C]}),collection:N,async questions(t){const e=f.test(t);if(e&&!await N(t))return[];return await A({path:e?`/api/faqs/collections/${encodeURIComponent(t)}/faqs`:`/api/faqs/collections/slug/${encodeURIComponent(t)}/faqs`,query:{pagination:!1},tags:[a.module("faq"),e?a.id("faq_collection",t):a.slug("faq_collection",t)],transform:t=>h(t).filter(t=>!t.archived),nullOnNotFound:!0})??[]}},testimonials:{list:(t={})=>A({path:"/api/testimonials",query:y(t,t.includeUnpublished?{archived:!1}:{published:!0,archived:!1}),tags:[a.module("testimonial")]}),get:t=>A({path:`/api/testimonials/${encodeURIComponent(t)}`,tags:[a.id("testimonial",t)],nullOnNotFound:!0})},richContent:{get:t=>A({path:`/api/rich-content/slug/${encodeURIComponent(t)}`,tags:[a.slug("rich_content",t)],tagsFrom:E("rich_content"),nullOnNotFound:!0}),list:(t={})=>A({path:"/api/rich-content",query:y(t,{archived:!1}),tags:[a.module("rich_content")]})},collections:{list:(t={})=>A({path:"/api/collections",query:y(t,{archived:!1}),tags:[a.module("collection")]}),data(t,e={}){const n=void 0===e.version;return A({path:`/api/collections/data/${encodeURIComponent(t)}`,query:n?{latest:!0}:{version:e.version},tags:[a.collection(t)],transform:t=>h(t).filter(t=>!t.archived)})}},async revalidate(t){c&&await c.deleteByTag(t)},async revalidateAll(){c&&await c.deleteByTag(s)},cache:c}},exports.encodeQuery=n,exports.getContentTags=function(t){return t&&"object"==typeof t?p.get(t)??[]:[]},exports.handleContentWebhook=A,exports.isContentWebhookEvent=c,exports.kvCache=function(t,e={}){const n=e.prefix??"buildbase:sdk:",o=t=>`${n}e:${t}`,s=t=>`${n}t:${t}`,a=t=>Math.max(60,Math.ceil(t)),r=async e=>{const n=await t.get(e);if(null!=n){if("string"==typeof n)try{return JSON.parse(n)}catch{return}return n}},i=async(e,n,o)=>{const s=JSON.stringify(n);if("function"==typeof t.put)await t.put(e,s,{expirationTtl:a(o)});else{if("function"!=typeof t.set)throw new Error("kvCache: the binding needs put() or set()");await t.set(e,s,{ex:a(o)})}},c=async e=>{"function"==typeof t.delete?await t.delete(e):"function"==typeof t.del&&await t.del(e)};return{get:async t=>r(o(t)),async set(t,e,n){await i(o(t),e,n);for(const o of e.tags){const e=await r(s(o))??[];e.includes(t)||e.push(t),await i(s(o),e,n)}},async delete(t){await c(o(t))},async deleteByTag(t){const e=await r(s(t))??[];await Promise.all(e.map(t=>c(o(t)))),await c(s(t))}}},exports.memoryCache=t,exports.pullContent=async function(t,e={}){const n=new Set(e.modules??S),o=e.pageSize??100,s={generatedAt:(new Date).toISOString()};if(n.has("blogs")&&(s.blogs=await C(e=>t.blogs.list({page:e,limit:o}))),n.has("docs")&&(s.docs=await C(e=>t.docs.list({page:e,limit:o}))),n.has("faqs")){const e=await C(e=>t.faqs.collections({page:e,limit:o}));s.faqs=[];for(const n of e)s.faqs.push({...n,questions:await t.faqs.questions(n._id)})}if(n.has("testimonials")&&(s.testimonials=await C(e=>t.testimonials.list({page:e,limit:o}))),n.has("richContent")&&(s.richContent=await C(e=>t.richContent.list({page:e,limit:o}))),n.has("collections")){const n=e.collections??(await C(e=>t.collections.list({page:e,limit:o}))).map(t=>t.slug);s.collections={};for(const e of n)s.collections[e]=await t.collections.data(e)}return s},exports.redisCache=function(t,e={}){const n=e.prefix??"buildbase:sdk:",o="function"==typeof t.sAdd&&"function"==typeof t.sMembers,s=t=>`${n}e:${t}`,a=t=>`${n}t:${t}`,r=(e,n)=>o?t.sAdd(e,n):t.sadd(e,n),i=e=>0===e.length?Promise.resolve():o?t.del(e):t.del(...e);if(!o&&("function"!=typeof t.sadd||"function"!=typeof t.smembers))throw new Error("redisCache: the client needs set commands (sadd/smembers or sAdd/sMembers)");return{async get(e){const n=await t.get(s(e));if(n)try{return JSON.parse(n)}catch{return}},async set(e,n,i){const c=Math.max(1,Math.ceil(i));await((e,n,s)=>o?t.set(e,n,{EX:s}):t.set(e,n,"EX",s))(s(e),JSON.stringify(n),c);for(const o of n.tags)await r(a(o),e),"function"==typeof t.expire&&await t.expire(a(o),c)},async delete(t){await i([s(t)])},async deleteByTag(e){const n=await(r=a(e),o?t.sMembers(r):t.smembers(r));var r;await i([...n.map(s),a(e)])}}},exports.tagsForContentEvent=l,exports.toNodeHandler=function(t){return async(e,n)=>{let o;try{const n=await async function(t){for(const e of[t.rawBody,t.body]){if("string"==typeof e)return e;if(E(e))return(new TextDecoder).decode(e)}if(t.body&&"object"==typeof t.body)throw new Error("toNodeHandler: the body was already parsed as JSON. Mount the webhook route with a raw body (Express: express.raw({ type: 'application/json' }); Fastify: a raw-body content-type parser).");return!t.on||t.readableEnded?"":new Promise((e,n)=>{const o=[];t.on("data",t=>o.push("string"==typeof t?(new TextEncoder).encode(t):t)),t.on("end",()=>{const t=o.reduce((t,e)=>t+e.length,0),n=new Uint8Array(t);let s=0;for(const t of o)n.set(t,s),s+=t.length;e((new TextDecoder).decode(n))}),t.on("error",n)})}(e),s=new Headers;for(const[t,n]of Object.entries(e.headers))void 0!==n&&s.set(t,Array.isArray(n)?n.join(", "):n);const a=s.get("host")??"localhost",r=e.method??"POST";o=await t(new Request(`http://${a}${e.originalUrl??e.url??"/"}`,{method:r,headers:s,body:"GET"===r||"HEAD"===r?void 0:n}))}catch(t){o=new Response(JSON.stringify({error:t instanceof Error?t.message:String(t)}),{status:400,headers:{"Content-Type":"application/json"}})}n.statusCode=o.status,o.headers.forEach((t,e)=>n.setHeader(e,t)),n.end(new Uint8Array(await o.arrayBuffer()))}};
|