@carlonicora/nextjs-jsonapi 6.1.0 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{BlockNoteEditor-FZNU4YQT.mjs → BlockNoteEditor-D6VMXRZH.mjs} +4 -4
- package/dist/{BlockNoteEditor-SAU3G6H7.js → BlockNoteEditor-Q757ZLCO.js} +19 -19
- package/dist/{BlockNoteEditor-SAU3G6H7.js.map → BlockNoteEditor-Q757ZLCO.js.map} +1 -1
- package/dist/{BlockNoteViewer-6XDDVTN6.mjs → BlockNoteViewer-GI5LVQHZ.mjs} +2 -2
- package/dist/{BlockNoteViewer-7BTV7QQA.js → BlockNoteViewer-KG4CIJC5.js} +3 -3
- package/dist/{BlockNoteViewer-7BTV7QQA.js.map → BlockNoteViewer-KG4CIJC5.js.map} +1 -1
- package/dist/billing/index.js +491 -491
- package/dist/billing/index.mjs +3 -3
- package/dist/{chunk-F4JB7YAP.js → chunk-3P3IYUWQ.js} +8 -8
- package/dist/{chunk-F4JB7YAP.js.map → chunk-3P3IYUWQ.js.map} +1 -1
- package/dist/{chunk-U7DR5VDT.mjs → chunk-6PW3562E.mjs} +5 -5
- package/dist/{chunk-JVJS5RHB.mjs → chunk-CUNSPLOD.mjs} +2 -2
- package/dist/{chunk-T3YQ47EF.js → chunk-GSHMGL6N.js} +2 -1
- package/dist/chunk-GSHMGL6N.js.map +1 -0
- package/dist/{chunk-GFGKMUPZ.mjs → chunk-HLW3SUMD.mjs} +2 -2
- package/dist/{chunk-RYZYKG6W.mjs → chunk-MHBE4KQR.mjs} +2 -2
- package/dist/{chunk-USYZNWKS.mjs → chunk-QKDPCZ3G.mjs} +2 -1
- package/dist/{chunk-USYZNWKS.mjs.map → chunk-QKDPCZ3G.mjs.map} +1 -1
- package/dist/{chunk-TPZS46IM.js → chunk-S332ZCIE.js} +3 -3
- package/dist/{chunk-TPZS46IM.js.map → chunk-S332ZCIE.js.map} +1 -1
- package/dist/{chunk-MTI2UXDA.js → chunk-UEWDYVLW.js} +4 -4
- package/dist/{chunk-MTI2UXDA.js.map → chunk-UEWDYVLW.js.map} +1 -1
- package/dist/{chunk-IPYXT7MH.js → chunk-XQEYBESH.js} +868 -868
- package/dist/{chunk-IPYXT7MH.js.map → chunk-XQEYBESH.js.map} +1 -1
- package/dist/client/index.js +4 -4
- package/dist/client/index.mjs +3 -3
- package/dist/components/index.js +4 -4
- package/dist/components/index.mjs +3 -3
- package/dist/contexts/index.js +4 -4
- package/dist/contexts/index.mjs +3 -3
- package/dist/core/index.js +2 -2
- package/dist/core/index.mjs +1 -1
- package/dist/email-automations/index.js +92 -92
- package/dist/email-automations/index.mjs +3 -3
- package/dist/features/analytics/index.d.mts +9 -1
- package/dist/features/analytics/index.d.ts +9 -1
- package/dist/features/analytics/index.js +129 -127
- package/dist/features/analytics/index.js.map +1 -1
- package/dist/features/analytics/index.mjs +12 -10
- package/dist/features/analytics/index.mjs.map +1 -1
- package/dist/features/analytics/server.js +4 -4
- package/dist/features/analytics/server.mjs +2 -2
- package/dist/features/blog/index.js +150 -150
- package/dist/features/blog/index.mjs +3 -3
- package/dist/features/blog/server.js +16 -16
- package/dist/features/blog/server.mjs +1 -1
- package/dist/features/help/index.js +37 -37
- package/dist/features/help/index.mjs +3 -3
- package/dist/features/tokenusage/index.js +127 -127
- package/dist/features/tokenusage/index.mjs +4 -4
- package/dist/index.js +3 -3
- package/dist/index.mjs +2 -2
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +2 -2
- package/package.json +1 -1
- package/src/features/analytics/components/AnalyticsTracker.tsx +22 -9
- package/src/features/analytics/components/__tests__/AnalyticsTracker.spec.tsx +67 -0
- package/src/features/analytics/data/__tests__/models.spec.ts +13 -0
- package/src/features/analytics/data/analytics-event.ts +1 -0
- package/src/features/analytics/data/analytics.types.ts +2 -0
- package/dist/chunk-T3YQ47EF.js.map +0 -1
- /package/dist/{BlockNoteEditor-FZNU4YQT.mjs.map → BlockNoteEditor-D6VMXRZH.mjs.map} +0 -0
- /package/dist/{BlockNoteViewer-6XDDVTN6.mjs.map → BlockNoteViewer-GI5LVQHZ.mjs.map} +0 -0
- /package/dist/{chunk-U7DR5VDT.mjs.map → chunk-6PW3562E.mjs.map} +0 -0
- /package/dist/{chunk-JVJS5RHB.mjs.map → chunk-CUNSPLOD.mjs.map} +0 -0
- /package/dist/{chunk-GFGKMUPZ.mjs.map → chunk-HLW3SUMD.mjs.map} +0 -0
- /package/dist/{chunk-RYZYKG6W.mjs.map → chunk-MHBE4KQR.mjs.map} +0 -0
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
percentageDelta,
|
|
10
10
|
seriesColor,
|
|
11
11
|
useUsageFormatters
|
|
12
|
-
} from "../../chunk-
|
|
12
|
+
} from "../../chunk-MHBE4KQR.mjs";
|
|
13
13
|
import {
|
|
14
14
|
Button,
|
|
15
15
|
Card,
|
|
@@ -40,8 +40,8 @@ import {
|
|
|
40
40
|
TooltipContent,
|
|
41
41
|
TooltipTrigger,
|
|
42
42
|
usePageUrlGenerator
|
|
43
|
-
} from "../../chunk-
|
|
44
|
-
import "../../chunk-
|
|
43
|
+
} from "../../chunk-6PW3562E.mjs";
|
|
44
|
+
import "../../chunk-CUNSPLOD.mjs";
|
|
45
45
|
import "../../chunk-PW42LRSL.mjs";
|
|
46
46
|
import {
|
|
47
47
|
AbstractService,
|
|
@@ -60,7 +60,7 @@ import {
|
|
|
60
60
|
configureTokenUsage,
|
|
61
61
|
getTokenUsageCurrency,
|
|
62
62
|
tokenUsageModules
|
|
63
|
-
} from "../../chunk-
|
|
63
|
+
} from "../../chunk-QKDPCZ3G.mjs";
|
|
64
64
|
import "../../chunk-V5MI7RNB.mjs";
|
|
65
65
|
import "../../chunk-AUXK7QSA.mjs";
|
|
66
66
|
import "../../chunk-PI56A4DG.mjs";
|
package/dist/index.js
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _chunk3P3IYUWQjs = require('./chunk-3P3IYUWQ.js');
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
|
|
@@ -306,7 +306,7 @@ var _chunkG4JR3SFVjs = require('./chunk-G4JR3SFV.js');
|
|
|
306
306
|
|
|
307
307
|
|
|
308
308
|
|
|
309
|
-
var
|
|
309
|
+
var _chunkGSHMGL6Njs = require('./chunk-GSHMGL6N.js');
|
|
310
310
|
|
|
311
311
|
|
|
312
312
|
|
|
@@ -637,5 +637,5 @@ require('./chunk-7QVYU63E.js');
|
|
|
637
637
|
|
|
638
638
|
|
|
639
639
|
|
|
640
|
-
exports.ACTION_TYPES = _chunkF4JB7YAPjs.ACTION_TYPES; exports.AVAILABLE_OAUTH_SCOPES = _chunkT3YQ47EFjs.AVAILABLE_OAUTH_SCOPES; exports.AbstractApiData = _chunkT3YQ47EFjs.AbstractApiData; exports.AbstractService = _chunkT3YQ47EFjs.AbstractService; exports.Action = _chunkT3YQ47EFjs.Action; exports.AiConnection = _chunkT3YQ47EFjs.AiConnection; exports.AiConnectionFields = _chunkT3YQ47EFjs.AiConnectionFields; exports.AiConnectionModule = _chunkT3YQ47EFjs.AiConnectionModule; exports.AiConnectionService = _chunkT3YQ47EFjs.AiConnectionService; exports.Assistant = _chunkT3YQ47EFjs.Assistant; exports.AssistantAction = _chunkT3YQ47EFjs.AssistantAction; exports.AssistantActionModule = _chunkT3YQ47EFjs.AssistantActionModule; exports.AssistantActionService = _chunkT3YQ47EFjs.AssistantActionService; exports.AssistantMessage = _chunkT3YQ47EFjs.AssistantMessage; exports.AssistantMessageModule = _chunkT3YQ47EFjs.AssistantMessageModule; exports.AssistantMessageService = _chunkT3YQ47EFjs.AssistantMessageService; exports.AssistantModule = _chunkT3YQ47EFjs.AssistantModule; exports.AssistantService = _chunkT3YQ47EFjs.AssistantService; exports.AuditLog = _chunkT3YQ47EFjs.AuditLog; exports.AuditLogModule = _chunkT3YQ47EFjs.AuditLogModule; exports.AuditLogService = _chunkT3YQ47EFjs.AuditLogService; exports.Auth = _chunkT3YQ47EFjs.Auth; exports.AuthComponent = _chunkT3YQ47EFjs.AuthComponent; exports.AuthModule = _chunkT3YQ47EFjs.AuthModule; exports.AuthService = _chunkT3YQ47EFjs.AuthService; exports.AuthorModule = _chunkT3YQ47EFjs.AuthorModule; exports.BackupCodeVerify = _chunkT3YQ47EFjs.BackupCodeVerify; exports.BackupCodeVerifyModule = _chunkT3YQ47EFjs.BackupCodeVerifyModule; exports.Billing = _chunkT3YQ47EFjs.Billing; exports.BillingModule = _chunkT3YQ47EFjs.BillingModule; exports.BillingService = _chunkT3YQ47EFjs.BillingService; exports.BlockNoteDiffUtil = _chunkT3YQ47EFjs.BlockNoteDiffUtil; exports.BlockNoteWordDiffRendererUtil = _chunkT3YQ47EFjs.BlockNoteWordDiffRendererUtil; exports.BlogCategory = _chunkT3YQ47EFjs.BlogCategory; exports.BlogCategoryFields = _chunkT3YQ47EFjs.BlogCategoryFields; exports.BlogCategoryModule = _chunkT3YQ47EFjs.BlogCategoryModule; exports.BlogCategoryService = _chunkT3YQ47EFjs.BlogCategoryService; exports.BlogCategoryTranslation = _chunkT3YQ47EFjs.BlogCategoryTranslation; exports.BlogCategoryTranslationModule = _chunkT3YQ47EFjs.BlogCategoryTranslationModule; exports.BlogCategoryTranslationService = _chunkT3YQ47EFjs.BlogCategoryTranslationService; exports.BlogPost = _chunkT3YQ47EFjs.BlogPost; exports.BlogPostFields = _chunkT3YQ47EFjs.BlogPostFields; exports.BlogPostModule = _chunkT3YQ47EFjs.BlogPostModule; exports.BlogPostService = _chunkT3YQ47EFjs.BlogPostService; exports.BlogPostTranslation = _chunkT3YQ47EFjs.BlogPostTranslation; exports.BlogPostTranslationModule = _chunkT3YQ47EFjs.BlogPostTranslationModule; exports.BlogPostTranslationService = _chunkT3YQ47EFjs.BlogPostTranslationService; exports.BlogSettings = _chunkT3YQ47EFjs.BlogSettings; exports.BlogSettingsModule = _chunkT3YQ47EFjs.BlogSettingsModule; exports.BlogSettingsService = _chunkT3YQ47EFjs.BlogSettingsService; exports.COMPANY_ADMINISTRATOR_ROLE_ID = _chunkF4JB7YAPjs.COMPANY_ADMINISTRATOR_ROLE_ID; exports.CURRENT_USER_STORAGE_KEY = _chunkT3YQ47EFjs.CURRENT_USER_STORAGE_KEY; exports.Chunk = _chunkT3YQ47EFjs.Chunk; exports.ChunkModule = _chunkT3YQ47EFjs.ChunkModule; exports.ClientAbstractService = _chunkT3YQ47EFjs.ClientAbstractService; exports.ClientHttpMethod = _chunkT3YQ47EFjs.ClientHttpMethod; exports.Company = _chunkT3YQ47EFjs.Company; exports.CompanyFields = _chunkT3YQ47EFjs.CompanyFields; exports.CompanyModule = _chunkT3YQ47EFjs.CompanyModule; exports.CompanyService = _chunkT3YQ47EFjs.CompanyService; exports.Content = _chunkT3YQ47EFjs.Content; exports.ContentFields = _chunkT3YQ47EFjs.ContentFields; exports.ContentModule = _chunkT3YQ47EFjs.ContentModule; exports.ContentService = _chunkT3YQ47EFjs.ContentService; exports.DEFAULT_GRANT_TYPES = _chunkT3YQ47EFjs.DEFAULT_GRANT_TYPES; exports.DataClass = _chunkGHE4VT2Rjs.DataClassRegistry; exports.DataClassRegistry = _chunkGHE4VT2Rjs.DataClassRegistry; exports.EMAIL_AUTOMATION_UNSUBSCRIBE_TYPE = _chunkT3YQ47EFjs.EMAIL_AUTOMATION_UNSUBSCRIBE_TYPE; exports.ENV = _chunkGHE4VT2Rjs.ENV; exports.EmailAutomation = _chunkT3YQ47EFjs.EmailAutomation; exports.EmailAutomationEnrollment = _chunkT3YQ47EFjs.EmailAutomationEnrollment; exports.EmailAutomationEnrollmentFields = _chunkT3YQ47EFjs.EmailAutomationEnrollmentFields; exports.EmailAutomationEnrollmentModule = _chunkT3YQ47EFjs.EmailAutomationEnrollmentModule; exports.EmailAutomationEnrollmentService = _chunkT3YQ47EFjs.EmailAutomationEnrollmentService; exports.EmailAutomationFields = _chunkT3YQ47EFjs.EmailAutomationFields; exports.EmailAutomationModule = _chunkT3YQ47EFjs.EmailAutomationModule; exports.EmailAutomationService = _chunkT3YQ47EFjs.EmailAutomationService; exports.EmailAutomationStep = _chunkT3YQ47EFjs.EmailAutomationStep; exports.EmailAutomationStepModule = _chunkT3YQ47EFjs.EmailAutomationStepModule; exports.EmailAutomationStepService = _chunkT3YQ47EFjs.EmailAutomationStepService; exports.EmailAutomationTrigger = _chunkT3YQ47EFjs.EmailAutomationTrigger; exports.EmailAutomationTriggerModule = _chunkT3YQ47EFjs.EmailAutomationTriggerModule; exports.EndpointCreator = _chunkT3YQ47EFjs.EndpointCreator; exports.EntityAiStatus = _chunkT3YQ47EFjs.EntityAiStatus; exports.Feature = _chunkT3YQ47EFjs.Feature; exports.FeatureModule = _chunkT3YQ47EFjs.FeatureModule; exports.FeatureService = _chunkT3YQ47EFjs.FeatureService; exports.HandbookPage = _chunkT3YQ47EFjs.HandbookPage; exports.HandbookPageFields = _chunkT3YQ47EFjs.HandbookPageFields; exports.HandbookPageModule = _chunkT3YQ47EFjs.HandbookPageModule; exports.HandbookPageService = _chunkT3YQ47EFjs.HandbookPageService; exports.HandbookSection = _chunkT3YQ47EFjs.HandbookSection; exports.HandbookSectionModule = _chunkT3YQ47EFjs.HandbookSectionModule; exports.HandbookSectionService = _chunkT3YQ47EFjs.HandbookSectionService; exports.HandbookThread = _chunkT3YQ47EFjs.HandbookThread; exports.HandbookThreadMessage = _chunkT3YQ47EFjs.HandbookThreadMessage; exports.HandbookThreadMessageModule = _chunkT3YQ47EFjs.HandbookThreadMessageModule; exports.HandbookThreadMessageService = _chunkT3YQ47EFjs.HandbookThreadMessageService; exports.HandbookThreadModule = _chunkT3YQ47EFjs.HandbookThreadModule; exports.HandbookThreadService = _chunkT3YQ47EFjs.HandbookThreadService; exports.HowTo = _chunkT3YQ47EFjs.HowTo; exports.HowToFields = _chunkT3YQ47EFjs.HowToFields; exports.HowToModule = _chunkT3YQ47EFjs.HowToModule; exports.HowToService = _chunkT3YQ47EFjs.HowToService; exports.HttpMethod = _chunkT3YQ47EFjs.HttpMethod; exports.InvoiceStatus = _chunkT3YQ47EFjs.InvoiceStatus; exports.JsonApiDataFactory = _chunkGHE4VT2Rjs.JsonApiDataFactory; exports.MOBILE_BREAKPOINT = _chunkT3YQ47EFjs.MOBILE_BREAKPOINT; exports.Module = _chunkT3YQ47EFjs.Module; exports.ModuleModule = _chunkT3YQ47EFjs.ModuleModule; exports.ModulePaths = _chunkT3YQ47EFjs.ModulePaths; exports.ModulePathsModule = _chunkT3YQ47EFjs.ModulePathsModule; exports.ModuleRegistrar = _chunkT3YQ47EFjs.ModuleRegistrar; exports.ModuleRegistry = _chunkT3YQ47EFjs.ModuleRegistry; exports.Modules = _chunkT3YQ47EFjs.Modules; exports.Notification = _chunkT3YQ47EFjs.Notification; exports.NotificationFields = _chunkT3YQ47EFjs.NotificationFields; exports.NotificationModule = _chunkT3YQ47EFjs.NotificationModule; exports.NotificationService = _chunkT3YQ47EFjs.NotificationService; exports.OAUTH_SCOPE_DISPLAY = _chunkT3YQ47EFjs.OAUTH_SCOPE_DISPLAY; exports.OAuthClient = _chunkT3YQ47EFjs.OAuthClient; exports.OAuthModule = _chunkT3YQ47EFjs.OAuthModule; exports.OAuthService = _chunkT3YQ47EFjs.OAuthService; exports.Passkey = _chunkT3YQ47EFjs.Passkey; exports.PasskeyAuthenticationOptions = _chunkT3YQ47EFjs.PasskeyAuthenticationOptions; exports.PasskeyAuthenticationOptionsModule = _chunkT3YQ47EFjs.PasskeyAuthenticationOptionsModule; exports.PasskeyModule = _chunkT3YQ47EFjs.PasskeyModule; exports.PasskeyRegistrationOptions = _chunkT3YQ47EFjs.PasskeyRegistrationOptions; exports.PasskeyRegistrationOptionsModule = _chunkT3YQ47EFjs.PasskeyRegistrationOptionsModule; exports.PasskeyRegistrationVerify = _chunkT3YQ47EFjs.PasskeyRegistrationVerify; exports.PasskeyRegistrationVerifyModule = _chunkT3YQ47EFjs.PasskeyRegistrationVerifyModule; exports.PasskeyRename = _chunkT3YQ47EFjs.PasskeyRename; exports.PasskeyRenameModule = _chunkT3YQ47EFjs.PasskeyRenameModule; exports.PasskeyVerifyLogin = _chunkT3YQ47EFjs.PasskeyVerifyLogin; exports.PasskeyVerifyLoginModule = _chunkT3YQ47EFjs.PasskeyVerifyLoginModule; exports.PaymentMethod = _chunkT3YQ47EFjs.PaymentMethod; exports.PermissionMapping = _chunkT3YQ47EFjs.PermissionMapping; exports.PermissionMappingModule = _chunkT3YQ47EFjs.PermissionMappingModule; exports.Push = _chunkT3YQ47EFjs.Push; exports.PushModule = _chunkT3YQ47EFjs.PushModule; exports.PushService = _chunkT3YQ47EFjs.PushService; exports.RbacMatrixModel = _chunkT3YQ47EFjs.RbacMatrixModel; exports.RbacMatrixModule = _chunkT3YQ47EFjs.RbacMatrixModule; exports.RbacService = _chunkF4JB7YAPjs.RbacService; exports.ReferralModule = _chunkT3YQ47EFjs.ReferralModule; exports.ReferralService = _chunkT3YQ47EFjs.ReferralService; exports.ReferralStats = _chunkT3YQ47EFjs.ReferralStats; exports.ReferralStatsModule = _chunkT3YQ47EFjs.ReferralStatsModule; exports.RehydrationFactory = _chunkT3YQ47EFjs.RehydrationFactory; exports.Role = _chunkT3YQ47EFjs.Role; exports.RoleFields = _chunkT3YQ47EFjs.RoleFields; exports.RoleModule = _chunkT3YQ47EFjs.RoleModule; exports.RoleService = _chunkT3YQ47EFjs.RoleService; exports.S3 = _chunkT3YQ47EFjs.S3; exports.S3Module = _chunkT3YQ47EFjs.S3Module; exports.S3Service = _chunkT3YQ47EFjs.S3Service; exports.SIGNUP_SOURCE_COOKIE = _chunkF4JB7YAPjs.SIGNUP_SOURCE_COOKIE; exports.SIGNUP_SOURCE_COOKIE_MAX_AGE = _chunkF4JB7YAPjs.SIGNUP_SOURCE_COOKIE_MAX_AGE; exports.STRIPE_COUPON_CODE_AUTOMATIC_SEGMENT = _chunkT3YQ47EFjs.STRIPE_COUPON_CODE_AUTOMATIC_SEGMENT; exports.STRIPE_COUPON_DETAIL_PAGE_URL = _chunkT3YQ47EFjs.STRIPE_COUPON_DETAIL_PAGE_URL; exports.STRIPE_COUPON_REFRESH_SEGMENT = _chunkT3YQ47EFjs.STRIPE_COUPON_REFRESH_SEGMENT; exports.StripeCoupon = _chunkT3YQ47EFjs.StripeCoupon; exports.StripeCouponCode = _chunkT3YQ47EFjs.StripeCouponCode; exports.StripeCouponCodeFields = _chunkT3YQ47EFjs.StripeCouponCodeFields; exports.StripeCouponCodeModule = _chunkT3YQ47EFjs.StripeCouponCodeModule; exports.StripeCouponCodeService = _chunkT3YQ47EFjs.StripeCouponCodeService; exports.StripeCouponFields = _chunkT3YQ47EFjs.StripeCouponFields; exports.StripeCouponModule = _chunkT3YQ47EFjs.StripeCouponModule; exports.StripeCouponOffer = _chunkT3YQ47EFjs.StripeCouponOffer; exports.StripeCouponOfferModule = _chunkT3YQ47EFjs.StripeCouponOfferModule; exports.StripeCouponService = _chunkT3YQ47EFjs.StripeCouponService; exports.StripeCustomer = _chunkT3YQ47EFjs.StripeCustomer; exports.StripeCustomerModule = _chunkT3YQ47EFjs.StripeCustomerModule; exports.StripeCustomerService = _chunkT3YQ47EFjs.StripeCustomerService; exports.StripeInvoice = _chunkT3YQ47EFjs.StripeInvoice; exports.StripeInvoiceModule = _chunkT3YQ47EFjs.StripeInvoiceModule; exports.StripeInvoiceService = _chunkT3YQ47EFjs.StripeInvoiceService; exports.StripePaymentMethodModule = _chunkT3YQ47EFjs.StripePaymentMethodModule; exports.StripePrice = _chunkT3YQ47EFjs.StripePrice; exports.StripePriceFields = _chunkT3YQ47EFjs.StripePriceFields; exports.StripePriceModule = _chunkT3YQ47EFjs.StripePriceModule; exports.StripePriceService = _chunkT3YQ47EFjs.StripePriceService; exports.StripeProduct = _chunkT3YQ47EFjs.StripeProduct; exports.StripeProductFields = _chunkT3YQ47EFjs.StripeProductFields; exports.StripeProductModule = _chunkT3YQ47EFjs.StripeProductModule; exports.StripeProductService = _chunkT3YQ47EFjs.StripeProductService; exports.StripePromotionCode = _chunkT3YQ47EFjs.StripePromotionCode; exports.StripePromotionCodeModule = _chunkT3YQ47EFjs.StripePromotionCodeModule; exports.StripePromotionCodeService = _chunkT3YQ47EFjs.StripePromotionCodeService; exports.StripeSubscription = _chunkT3YQ47EFjs.StripeSubscription; exports.StripeSubscriptionModule = _chunkT3YQ47EFjs.StripeSubscriptionModule; exports.StripeSubscriptionService = _chunkT3YQ47EFjs.StripeSubscriptionService; exports.StripeUsage = _chunkT3YQ47EFjs.StripeUsage; exports.StripeUsageModule = _chunkT3YQ47EFjs.StripeUsageModule; exports.StripeUsageService = _chunkT3YQ47EFjs.StripeUsageService; exports.SubscriptionStatus = _chunkT3YQ47EFjs.SubscriptionStatus; exports.TableOptions = _chunkT3YQ47EFjs.TableOptions; exports.TokenUsageAdminBreakdownModule = _chunkT3YQ47EFjs.TokenUsageAdminBreakdownModule; exports.TokenUsageAdminSummaryModule = _chunkT3YQ47EFjs.TokenUsageAdminSummaryModule; exports.TokenUsageAdminTimelineModule = _chunkT3YQ47EFjs.TokenUsageAdminTimelineModule; exports.TotpAuthenticator = _chunkT3YQ47EFjs.TotpAuthenticator; exports.TotpAuthenticatorModule = _chunkT3YQ47EFjs.TotpAuthenticatorModule; exports.TotpSetup = _chunkT3YQ47EFjs.TotpSetup; exports.TotpSetupModule = _chunkT3YQ47EFjs.TotpSetupModule; exports.TotpVerify = _chunkT3YQ47EFjs.TotpVerify; exports.TotpVerifyLogin = _chunkT3YQ47EFjs.TotpVerifyLogin; exports.TotpVerifyLoginModule = _chunkT3YQ47EFjs.TotpVerifyLoginModule; exports.TotpVerifyModule = _chunkT3YQ47EFjs.TotpVerifyModule; exports.TwoFactorChallenge = _chunkT3YQ47EFjs.TwoFactorChallenge; exports.TwoFactorChallengeModule = _chunkT3YQ47EFjs.TwoFactorChallengeModule; exports.TwoFactorEnable = _chunkT3YQ47EFjs.TwoFactorEnable; exports.TwoFactorEnableModule = _chunkT3YQ47EFjs.TwoFactorEnableModule; exports.TwoFactorService = _chunkT3YQ47EFjs.TwoFactorService; exports.TwoFactorStatus = _chunkT3YQ47EFjs.TwoFactorStatus; exports.TwoFactorStatusModule = _chunkT3YQ47EFjs.TwoFactorStatusModule; exports.User = _chunkT3YQ47EFjs.User; exports.UserFields = _chunkT3YQ47EFjs.UserFields; exports.UserModule = _chunkT3YQ47EFjs.UserModule; exports.UserService = _chunkT3YQ47EFjs.UserService; exports.VIEWPORT_COOKIE_NAME = _chunkT3YQ47EFjs.VIEWPORT_COOKIE_NAME; exports.Waitlist = _chunkT3YQ47EFjs.Waitlist; exports.WaitlistFields = _chunkT3YQ47EFjs.WaitlistFields; exports.WaitlistModule = _chunkT3YQ47EFjs.WaitlistModule; exports.WaitlistService = _chunkT3YQ47EFjs.WaitlistService; exports.WaitlistStats = _chunkT3YQ47EFjs.WaitlistStats; exports.WaitlistStatsModule = _chunkT3YQ47EFjs.WaitlistStatsModule; exports.analyticsModules = _chunkT3YQ47EFjs.analyticsModules; exports.captureSignupSource = _chunkF4JB7YAPjs.captureSignupSource; exports.checkPermissions = _chunkT3YQ47EFjs.checkPermissions; exports.checkPermissionsFromServer = _chunkT3YQ47EFjs.checkPermissionsFromServer; exports.clearLastApiMeta = _chunkT3YQ47EFjs.clearLastApiMeta; exports.clearLastApiTotal = _chunkT3YQ47EFjs.clearLastApiTotal; exports.cn = _chunkT3YQ47EFjs.cn; exports.composeRefs = _chunkT3YQ47EFjs.composeRefs; exports.configureAuth = _chunkT3YQ47EFjs.configureAuth; exports.configureI18n = _chunkT3YQ47EFjs.configureI18n; exports.configureJsonApi = _chunkF4JB7YAPjs.configureJsonApi; exports.configureLogin = _chunkF4JB7YAPjs.configureLogin; exports.configureReferral = _chunkF4JB7YAPjs.configureReferral; exports.configureRoles = _chunkG4JR3SFVjs.configureRoles; exports.configureTokenUsage = _chunkT3YQ47EFjs.configureTokenUsage; exports.configureWaitlist = _chunkF4JB7YAPjs.configureWaitlist; exports.couponPlacesLeft = _chunkT3YQ47EFjs.couponPlacesLeft; exports.couponPlacesTotal = _chunkT3YQ47EFjs.couponPlacesTotal; exports.createJsonApiInclusion = _chunkT3YQ47EFjs.createJsonApiInclusion; exports.dateFormatLocale = _chunkT3YQ47EFjs.dateFormatLocale; exports.dismissToast = _chunkT3YQ47EFjs.dismissToast; exports.entityObjectSchema = _chunkT3YQ47EFjs.entityObjectSchema; exports.exists = _chunkT3YQ47EFjs.exists; exports.formatCodiceFiscale = _chunkT3YQ47EFjs.formatCodiceFiscale; exports.formatCouponDiscount = _chunkT3YQ47EFjs.formatCouponDiscount; exports.formatCurrency = _chunkT3YQ47EFjs.formatCurrency; exports.formatDate = _chunkT3YQ47EFjs.formatDate; exports.formatFixed = _chunkT3YQ47EFjs.formatFixed; exports.formatInterval = _chunkT3YQ47EFjs.formatInterval; exports.formatLocalDate = _chunkT3YQ47EFjs.formatLocalDate; exports.formatPartitaIva = _chunkT3YQ47EFjs.formatPartitaIva; exports.getApiUrl = _chunkF4JB7YAPjs.getApiUrl; exports.getAppUrl = _chunkF4JB7YAPjs.getAppUrl; exports.getBootstrapper = _chunkGHE4VT2Rjs.getBootstrapper; exports.getClientGlobalErrorHandler = _chunkT3YQ47EFjs.getClientGlobalErrorHandler; exports.getGlobalErrorHandler = _chunkT3YQ47EFjs.getGlobalErrorHandler; exports.getIcon = _chunkT3YQ47EFjs.getIcon; exports.getIconByModule = _chunkT3YQ47EFjs.getIconByModule; exports.getIconByModuleName = _chunkT3YQ47EFjs.getIconByModuleName; exports.getInitials = _chunkT3YQ47EFjs.getInitials; exports.getLastApiMeta = _chunkT3YQ47EFjs.getLastApiMeta; exports.getLastApiTotal = _chunkT3YQ47EFjs.getLastApiTotal; exports.getLucideIcon = _chunkT3YQ47EFjs.getLucideIcon; exports.getLucideIconByModule = _chunkT3YQ47EFjs.getLucideIconByModule; exports.getLucideIconByModuleName = _chunkT3YQ47EFjs.getLucideIconByModuleName; exports.getPublicApiUrl = _chunkF4JB7YAPjs.getPublicApiUrl; exports.getReferralConfig = _chunkF4JB7YAPjs.getReferralConfig; exports.getRoleId = _chunkG4JR3SFVjs.getRoleId; exports.getSignupSource = _chunkF4JB7YAPjs.getSignupSource; exports.getStripePublishableKey = _chunkF4JB7YAPjs.getStripePublishableKey; exports.getTableComponents = _chunkT3YQ47EFjs.getTableComponents; exports.getTableOptions = _chunkT3YQ47EFjs.getTableOptions; exports.getTokenHandler = _chunkT3YQ47EFjs.getTokenHandler; exports.getTokenUsageCurrency = _chunkT3YQ47EFjs.getTokenUsageCurrency; exports.getTrackablePages = _chunkF4JB7YAPjs.getTrackablePages; exports.getValueFromPath = _chunkT3YQ47EFjs.getValueFromPath; exports.getWaitlistConfig = _chunkF4JB7YAPjs.getWaitlistConfig; exports.handbookPageContent = _chunkT3YQ47EFjs.handbookPageContent; exports.handbookPageSummary = _chunkT3YQ47EFjs.handbookPageSummary; exports.handbookPageTitle = _chunkT3YQ47EFjs.handbookPageTitle; exports.handbookSectionSummary = _chunkT3YQ47EFjs.handbookSectionSummary; exports.handbookSectionTitle = _chunkT3YQ47EFjs.handbookSectionTitle; exports.hasBootstrapper = _chunkGHE4VT2Rjs.hasBootstrapper; exports.isReferralEnabled = _chunkF4JB7YAPjs.isReferralEnabled; exports.isRemoteImageSrc = _chunkT3YQ47EFjs.isRemoteImageSrc; exports.isRolesConfigured = _chunkG4JR3SFVjs.isRolesConfigured; exports.mergeMessages = _chunkT3YQ47EFjs.mergeMessages; exports.readSignupSourceFromLocation = _chunkF4JB7YAPjs.readSignupSourceFromLocation; exports.rehydrate = _chunkT3YQ47EFjs.rehydrate; exports.rehydrateList = _chunkT3YQ47EFjs.rehydrateList; exports.resetBootstrapStore = _chunkGHE4VT2Rjs.resetBootstrapStore; exports.setBootstrapper = _chunkGHE4VT2Rjs.setBootstrapper; exports.setClientGlobalErrorHandler = _chunkT3YQ47EFjs.setClientGlobalErrorHandler; exports.setGlobalErrorHandler = _chunkT3YQ47EFjs.setGlobalErrorHandler; exports.showCustomToast = _chunkT3YQ47EFjs.showCustomToast; exports.showError = _chunkT3YQ47EFjs.showError; exports.showToast = _chunkT3YQ47EFjs.showToast; exports.toPromotionCodeResult = _chunkT3YQ47EFjs.toPromotionCodeResult; exports.tokenUsageModules = _chunkT3YQ47EFjs.tokenUsageModules; exports.translateData = _chunkGHE4VT2Rjs.translateData; exports.translateResponse = _chunkGHE4VT2Rjs.translateResponse; exports.tryBootstrap = _chunkGHE4VT2Rjs.tryBootstrap; exports.useComposedRefs = _chunkT3YQ47EFjs.useComposedRefs; exports.useIsMobile = _chunkT3YQ47EFjs.useIsMobile; exports.userObjectSchema = _chunkT3YQ47EFjs.userObjectSchema; exports.validateCodiceFiscale = _chunkT3YQ47EFjs.validateCodiceFiscale; exports.validateItalianTaxCode = _chunkT3YQ47EFjs.validateItalianTaxCode; exports.validatePartitaIva = _chunkT3YQ47EFjs.validatePartitaIva;
|
|
640
|
+
exports.ACTION_TYPES = _chunk3P3IYUWQjs.ACTION_TYPES; exports.AVAILABLE_OAUTH_SCOPES = _chunkGSHMGL6Njs.AVAILABLE_OAUTH_SCOPES; exports.AbstractApiData = _chunkGSHMGL6Njs.AbstractApiData; exports.AbstractService = _chunkGSHMGL6Njs.AbstractService; exports.Action = _chunkGSHMGL6Njs.Action; exports.AiConnection = _chunkGSHMGL6Njs.AiConnection; exports.AiConnectionFields = _chunkGSHMGL6Njs.AiConnectionFields; exports.AiConnectionModule = _chunkGSHMGL6Njs.AiConnectionModule; exports.AiConnectionService = _chunkGSHMGL6Njs.AiConnectionService; exports.Assistant = _chunkGSHMGL6Njs.Assistant; exports.AssistantAction = _chunkGSHMGL6Njs.AssistantAction; exports.AssistantActionModule = _chunkGSHMGL6Njs.AssistantActionModule; exports.AssistantActionService = _chunkGSHMGL6Njs.AssistantActionService; exports.AssistantMessage = _chunkGSHMGL6Njs.AssistantMessage; exports.AssistantMessageModule = _chunkGSHMGL6Njs.AssistantMessageModule; exports.AssistantMessageService = _chunkGSHMGL6Njs.AssistantMessageService; exports.AssistantModule = _chunkGSHMGL6Njs.AssistantModule; exports.AssistantService = _chunkGSHMGL6Njs.AssistantService; exports.AuditLog = _chunkGSHMGL6Njs.AuditLog; exports.AuditLogModule = _chunkGSHMGL6Njs.AuditLogModule; exports.AuditLogService = _chunkGSHMGL6Njs.AuditLogService; exports.Auth = _chunkGSHMGL6Njs.Auth; exports.AuthComponent = _chunkGSHMGL6Njs.AuthComponent; exports.AuthModule = _chunkGSHMGL6Njs.AuthModule; exports.AuthService = _chunkGSHMGL6Njs.AuthService; exports.AuthorModule = _chunkGSHMGL6Njs.AuthorModule; exports.BackupCodeVerify = _chunkGSHMGL6Njs.BackupCodeVerify; exports.BackupCodeVerifyModule = _chunkGSHMGL6Njs.BackupCodeVerifyModule; exports.Billing = _chunkGSHMGL6Njs.Billing; exports.BillingModule = _chunkGSHMGL6Njs.BillingModule; exports.BillingService = _chunkGSHMGL6Njs.BillingService; exports.BlockNoteDiffUtil = _chunkGSHMGL6Njs.BlockNoteDiffUtil; exports.BlockNoteWordDiffRendererUtil = _chunkGSHMGL6Njs.BlockNoteWordDiffRendererUtil; exports.BlogCategory = _chunkGSHMGL6Njs.BlogCategory; exports.BlogCategoryFields = _chunkGSHMGL6Njs.BlogCategoryFields; exports.BlogCategoryModule = _chunkGSHMGL6Njs.BlogCategoryModule; exports.BlogCategoryService = _chunkGSHMGL6Njs.BlogCategoryService; exports.BlogCategoryTranslation = _chunkGSHMGL6Njs.BlogCategoryTranslation; exports.BlogCategoryTranslationModule = _chunkGSHMGL6Njs.BlogCategoryTranslationModule; exports.BlogCategoryTranslationService = _chunkGSHMGL6Njs.BlogCategoryTranslationService; exports.BlogPost = _chunkGSHMGL6Njs.BlogPost; exports.BlogPostFields = _chunkGSHMGL6Njs.BlogPostFields; exports.BlogPostModule = _chunkGSHMGL6Njs.BlogPostModule; exports.BlogPostService = _chunkGSHMGL6Njs.BlogPostService; exports.BlogPostTranslation = _chunkGSHMGL6Njs.BlogPostTranslation; exports.BlogPostTranslationModule = _chunkGSHMGL6Njs.BlogPostTranslationModule; exports.BlogPostTranslationService = _chunkGSHMGL6Njs.BlogPostTranslationService; exports.BlogSettings = _chunkGSHMGL6Njs.BlogSettings; exports.BlogSettingsModule = _chunkGSHMGL6Njs.BlogSettingsModule; exports.BlogSettingsService = _chunkGSHMGL6Njs.BlogSettingsService; exports.COMPANY_ADMINISTRATOR_ROLE_ID = _chunk3P3IYUWQjs.COMPANY_ADMINISTRATOR_ROLE_ID; exports.CURRENT_USER_STORAGE_KEY = _chunkGSHMGL6Njs.CURRENT_USER_STORAGE_KEY; exports.Chunk = _chunkGSHMGL6Njs.Chunk; exports.ChunkModule = _chunkGSHMGL6Njs.ChunkModule; exports.ClientAbstractService = _chunkGSHMGL6Njs.ClientAbstractService; exports.ClientHttpMethod = _chunkGSHMGL6Njs.ClientHttpMethod; exports.Company = _chunkGSHMGL6Njs.Company; exports.CompanyFields = _chunkGSHMGL6Njs.CompanyFields; exports.CompanyModule = _chunkGSHMGL6Njs.CompanyModule; exports.CompanyService = _chunkGSHMGL6Njs.CompanyService; exports.Content = _chunkGSHMGL6Njs.Content; exports.ContentFields = _chunkGSHMGL6Njs.ContentFields; exports.ContentModule = _chunkGSHMGL6Njs.ContentModule; exports.ContentService = _chunkGSHMGL6Njs.ContentService; exports.DEFAULT_GRANT_TYPES = _chunkGSHMGL6Njs.DEFAULT_GRANT_TYPES; exports.DataClass = _chunkGHE4VT2Rjs.DataClassRegistry; exports.DataClassRegistry = _chunkGHE4VT2Rjs.DataClassRegistry; exports.EMAIL_AUTOMATION_UNSUBSCRIBE_TYPE = _chunkGSHMGL6Njs.EMAIL_AUTOMATION_UNSUBSCRIBE_TYPE; exports.ENV = _chunkGHE4VT2Rjs.ENV; exports.EmailAutomation = _chunkGSHMGL6Njs.EmailAutomation; exports.EmailAutomationEnrollment = _chunkGSHMGL6Njs.EmailAutomationEnrollment; exports.EmailAutomationEnrollmentFields = _chunkGSHMGL6Njs.EmailAutomationEnrollmentFields; exports.EmailAutomationEnrollmentModule = _chunkGSHMGL6Njs.EmailAutomationEnrollmentModule; exports.EmailAutomationEnrollmentService = _chunkGSHMGL6Njs.EmailAutomationEnrollmentService; exports.EmailAutomationFields = _chunkGSHMGL6Njs.EmailAutomationFields; exports.EmailAutomationModule = _chunkGSHMGL6Njs.EmailAutomationModule; exports.EmailAutomationService = _chunkGSHMGL6Njs.EmailAutomationService; exports.EmailAutomationStep = _chunkGSHMGL6Njs.EmailAutomationStep; exports.EmailAutomationStepModule = _chunkGSHMGL6Njs.EmailAutomationStepModule; exports.EmailAutomationStepService = _chunkGSHMGL6Njs.EmailAutomationStepService; exports.EmailAutomationTrigger = _chunkGSHMGL6Njs.EmailAutomationTrigger; exports.EmailAutomationTriggerModule = _chunkGSHMGL6Njs.EmailAutomationTriggerModule; exports.EndpointCreator = _chunkGSHMGL6Njs.EndpointCreator; exports.EntityAiStatus = _chunkGSHMGL6Njs.EntityAiStatus; exports.Feature = _chunkGSHMGL6Njs.Feature; exports.FeatureModule = _chunkGSHMGL6Njs.FeatureModule; exports.FeatureService = _chunkGSHMGL6Njs.FeatureService; exports.HandbookPage = _chunkGSHMGL6Njs.HandbookPage; exports.HandbookPageFields = _chunkGSHMGL6Njs.HandbookPageFields; exports.HandbookPageModule = _chunkGSHMGL6Njs.HandbookPageModule; exports.HandbookPageService = _chunkGSHMGL6Njs.HandbookPageService; exports.HandbookSection = _chunkGSHMGL6Njs.HandbookSection; exports.HandbookSectionModule = _chunkGSHMGL6Njs.HandbookSectionModule; exports.HandbookSectionService = _chunkGSHMGL6Njs.HandbookSectionService; exports.HandbookThread = _chunkGSHMGL6Njs.HandbookThread; exports.HandbookThreadMessage = _chunkGSHMGL6Njs.HandbookThreadMessage; exports.HandbookThreadMessageModule = _chunkGSHMGL6Njs.HandbookThreadMessageModule; exports.HandbookThreadMessageService = _chunkGSHMGL6Njs.HandbookThreadMessageService; exports.HandbookThreadModule = _chunkGSHMGL6Njs.HandbookThreadModule; exports.HandbookThreadService = _chunkGSHMGL6Njs.HandbookThreadService; exports.HowTo = _chunkGSHMGL6Njs.HowTo; exports.HowToFields = _chunkGSHMGL6Njs.HowToFields; exports.HowToModule = _chunkGSHMGL6Njs.HowToModule; exports.HowToService = _chunkGSHMGL6Njs.HowToService; exports.HttpMethod = _chunkGSHMGL6Njs.HttpMethod; exports.InvoiceStatus = _chunkGSHMGL6Njs.InvoiceStatus; exports.JsonApiDataFactory = _chunkGHE4VT2Rjs.JsonApiDataFactory; exports.MOBILE_BREAKPOINT = _chunkGSHMGL6Njs.MOBILE_BREAKPOINT; exports.Module = _chunkGSHMGL6Njs.Module; exports.ModuleModule = _chunkGSHMGL6Njs.ModuleModule; exports.ModulePaths = _chunkGSHMGL6Njs.ModulePaths; exports.ModulePathsModule = _chunkGSHMGL6Njs.ModulePathsModule; exports.ModuleRegistrar = _chunkGSHMGL6Njs.ModuleRegistrar; exports.ModuleRegistry = _chunkGSHMGL6Njs.ModuleRegistry; exports.Modules = _chunkGSHMGL6Njs.Modules; exports.Notification = _chunkGSHMGL6Njs.Notification; exports.NotificationFields = _chunkGSHMGL6Njs.NotificationFields; exports.NotificationModule = _chunkGSHMGL6Njs.NotificationModule; exports.NotificationService = _chunkGSHMGL6Njs.NotificationService; exports.OAUTH_SCOPE_DISPLAY = _chunkGSHMGL6Njs.OAUTH_SCOPE_DISPLAY; exports.OAuthClient = _chunkGSHMGL6Njs.OAuthClient; exports.OAuthModule = _chunkGSHMGL6Njs.OAuthModule; exports.OAuthService = _chunkGSHMGL6Njs.OAuthService; exports.Passkey = _chunkGSHMGL6Njs.Passkey; exports.PasskeyAuthenticationOptions = _chunkGSHMGL6Njs.PasskeyAuthenticationOptions; exports.PasskeyAuthenticationOptionsModule = _chunkGSHMGL6Njs.PasskeyAuthenticationOptionsModule; exports.PasskeyModule = _chunkGSHMGL6Njs.PasskeyModule; exports.PasskeyRegistrationOptions = _chunkGSHMGL6Njs.PasskeyRegistrationOptions; exports.PasskeyRegistrationOptionsModule = _chunkGSHMGL6Njs.PasskeyRegistrationOptionsModule; exports.PasskeyRegistrationVerify = _chunkGSHMGL6Njs.PasskeyRegistrationVerify; exports.PasskeyRegistrationVerifyModule = _chunkGSHMGL6Njs.PasskeyRegistrationVerifyModule; exports.PasskeyRename = _chunkGSHMGL6Njs.PasskeyRename; exports.PasskeyRenameModule = _chunkGSHMGL6Njs.PasskeyRenameModule; exports.PasskeyVerifyLogin = _chunkGSHMGL6Njs.PasskeyVerifyLogin; exports.PasskeyVerifyLoginModule = _chunkGSHMGL6Njs.PasskeyVerifyLoginModule; exports.PaymentMethod = _chunkGSHMGL6Njs.PaymentMethod; exports.PermissionMapping = _chunkGSHMGL6Njs.PermissionMapping; exports.PermissionMappingModule = _chunkGSHMGL6Njs.PermissionMappingModule; exports.Push = _chunkGSHMGL6Njs.Push; exports.PushModule = _chunkGSHMGL6Njs.PushModule; exports.PushService = _chunkGSHMGL6Njs.PushService; exports.RbacMatrixModel = _chunkGSHMGL6Njs.RbacMatrixModel; exports.RbacMatrixModule = _chunkGSHMGL6Njs.RbacMatrixModule; exports.RbacService = _chunk3P3IYUWQjs.RbacService; exports.ReferralModule = _chunkGSHMGL6Njs.ReferralModule; exports.ReferralService = _chunkGSHMGL6Njs.ReferralService; exports.ReferralStats = _chunkGSHMGL6Njs.ReferralStats; exports.ReferralStatsModule = _chunkGSHMGL6Njs.ReferralStatsModule; exports.RehydrationFactory = _chunkGSHMGL6Njs.RehydrationFactory; exports.Role = _chunkGSHMGL6Njs.Role; exports.RoleFields = _chunkGSHMGL6Njs.RoleFields; exports.RoleModule = _chunkGSHMGL6Njs.RoleModule; exports.RoleService = _chunkGSHMGL6Njs.RoleService; exports.S3 = _chunkGSHMGL6Njs.S3; exports.S3Module = _chunkGSHMGL6Njs.S3Module; exports.S3Service = _chunkGSHMGL6Njs.S3Service; exports.SIGNUP_SOURCE_COOKIE = _chunk3P3IYUWQjs.SIGNUP_SOURCE_COOKIE; exports.SIGNUP_SOURCE_COOKIE_MAX_AGE = _chunk3P3IYUWQjs.SIGNUP_SOURCE_COOKIE_MAX_AGE; exports.STRIPE_COUPON_CODE_AUTOMATIC_SEGMENT = _chunkGSHMGL6Njs.STRIPE_COUPON_CODE_AUTOMATIC_SEGMENT; exports.STRIPE_COUPON_DETAIL_PAGE_URL = _chunkGSHMGL6Njs.STRIPE_COUPON_DETAIL_PAGE_URL; exports.STRIPE_COUPON_REFRESH_SEGMENT = _chunkGSHMGL6Njs.STRIPE_COUPON_REFRESH_SEGMENT; exports.StripeCoupon = _chunkGSHMGL6Njs.StripeCoupon; exports.StripeCouponCode = _chunkGSHMGL6Njs.StripeCouponCode; exports.StripeCouponCodeFields = _chunkGSHMGL6Njs.StripeCouponCodeFields; exports.StripeCouponCodeModule = _chunkGSHMGL6Njs.StripeCouponCodeModule; exports.StripeCouponCodeService = _chunkGSHMGL6Njs.StripeCouponCodeService; exports.StripeCouponFields = _chunkGSHMGL6Njs.StripeCouponFields; exports.StripeCouponModule = _chunkGSHMGL6Njs.StripeCouponModule; exports.StripeCouponOffer = _chunkGSHMGL6Njs.StripeCouponOffer; exports.StripeCouponOfferModule = _chunkGSHMGL6Njs.StripeCouponOfferModule; exports.StripeCouponService = _chunkGSHMGL6Njs.StripeCouponService; exports.StripeCustomer = _chunkGSHMGL6Njs.StripeCustomer; exports.StripeCustomerModule = _chunkGSHMGL6Njs.StripeCustomerModule; exports.StripeCustomerService = _chunkGSHMGL6Njs.StripeCustomerService; exports.StripeInvoice = _chunkGSHMGL6Njs.StripeInvoice; exports.StripeInvoiceModule = _chunkGSHMGL6Njs.StripeInvoiceModule; exports.StripeInvoiceService = _chunkGSHMGL6Njs.StripeInvoiceService; exports.StripePaymentMethodModule = _chunkGSHMGL6Njs.StripePaymentMethodModule; exports.StripePrice = _chunkGSHMGL6Njs.StripePrice; exports.StripePriceFields = _chunkGSHMGL6Njs.StripePriceFields; exports.StripePriceModule = _chunkGSHMGL6Njs.StripePriceModule; exports.StripePriceService = _chunkGSHMGL6Njs.StripePriceService; exports.StripeProduct = _chunkGSHMGL6Njs.StripeProduct; exports.StripeProductFields = _chunkGSHMGL6Njs.StripeProductFields; exports.StripeProductModule = _chunkGSHMGL6Njs.StripeProductModule; exports.StripeProductService = _chunkGSHMGL6Njs.StripeProductService; exports.StripePromotionCode = _chunkGSHMGL6Njs.StripePromotionCode; exports.StripePromotionCodeModule = _chunkGSHMGL6Njs.StripePromotionCodeModule; exports.StripePromotionCodeService = _chunkGSHMGL6Njs.StripePromotionCodeService; exports.StripeSubscription = _chunkGSHMGL6Njs.StripeSubscription; exports.StripeSubscriptionModule = _chunkGSHMGL6Njs.StripeSubscriptionModule; exports.StripeSubscriptionService = _chunkGSHMGL6Njs.StripeSubscriptionService; exports.StripeUsage = _chunkGSHMGL6Njs.StripeUsage; exports.StripeUsageModule = _chunkGSHMGL6Njs.StripeUsageModule; exports.StripeUsageService = _chunkGSHMGL6Njs.StripeUsageService; exports.SubscriptionStatus = _chunkGSHMGL6Njs.SubscriptionStatus; exports.TableOptions = _chunkGSHMGL6Njs.TableOptions; exports.TokenUsageAdminBreakdownModule = _chunkGSHMGL6Njs.TokenUsageAdminBreakdownModule; exports.TokenUsageAdminSummaryModule = _chunkGSHMGL6Njs.TokenUsageAdminSummaryModule; exports.TokenUsageAdminTimelineModule = _chunkGSHMGL6Njs.TokenUsageAdminTimelineModule; exports.TotpAuthenticator = _chunkGSHMGL6Njs.TotpAuthenticator; exports.TotpAuthenticatorModule = _chunkGSHMGL6Njs.TotpAuthenticatorModule; exports.TotpSetup = _chunkGSHMGL6Njs.TotpSetup; exports.TotpSetupModule = _chunkGSHMGL6Njs.TotpSetupModule; exports.TotpVerify = _chunkGSHMGL6Njs.TotpVerify; exports.TotpVerifyLogin = _chunkGSHMGL6Njs.TotpVerifyLogin; exports.TotpVerifyLoginModule = _chunkGSHMGL6Njs.TotpVerifyLoginModule; exports.TotpVerifyModule = _chunkGSHMGL6Njs.TotpVerifyModule; exports.TwoFactorChallenge = _chunkGSHMGL6Njs.TwoFactorChallenge; exports.TwoFactorChallengeModule = _chunkGSHMGL6Njs.TwoFactorChallengeModule; exports.TwoFactorEnable = _chunkGSHMGL6Njs.TwoFactorEnable; exports.TwoFactorEnableModule = _chunkGSHMGL6Njs.TwoFactorEnableModule; exports.TwoFactorService = _chunkGSHMGL6Njs.TwoFactorService; exports.TwoFactorStatus = _chunkGSHMGL6Njs.TwoFactorStatus; exports.TwoFactorStatusModule = _chunkGSHMGL6Njs.TwoFactorStatusModule; exports.User = _chunkGSHMGL6Njs.User; exports.UserFields = _chunkGSHMGL6Njs.UserFields; exports.UserModule = _chunkGSHMGL6Njs.UserModule; exports.UserService = _chunkGSHMGL6Njs.UserService; exports.VIEWPORT_COOKIE_NAME = _chunkGSHMGL6Njs.VIEWPORT_COOKIE_NAME; exports.Waitlist = _chunkGSHMGL6Njs.Waitlist; exports.WaitlistFields = _chunkGSHMGL6Njs.WaitlistFields; exports.WaitlistModule = _chunkGSHMGL6Njs.WaitlistModule; exports.WaitlistService = _chunkGSHMGL6Njs.WaitlistService; exports.WaitlistStats = _chunkGSHMGL6Njs.WaitlistStats; exports.WaitlistStatsModule = _chunkGSHMGL6Njs.WaitlistStatsModule; exports.analyticsModules = _chunkGSHMGL6Njs.analyticsModules; exports.captureSignupSource = _chunk3P3IYUWQjs.captureSignupSource; exports.checkPermissions = _chunkGSHMGL6Njs.checkPermissions; exports.checkPermissionsFromServer = _chunkGSHMGL6Njs.checkPermissionsFromServer; exports.clearLastApiMeta = _chunkGSHMGL6Njs.clearLastApiMeta; exports.clearLastApiTotal = _chunkGSHMGL6Njs.clearLastApiTotal; exports.cn = _chunkGSHMGL6Njs.cn; exports.composeRefs = _chunkGSHMGL6Njs.composeRefs; exports.configureAuth = _chunkGSHMGL6Njs.configureAuth; exports.configureI18n = _chunkGSHMGL6Njs.configureI18n; exports.configureJsonApi = _chunk3P3IYUWQjs.configureJsonApi; exports.configureLogin = _chunk3P3IYUWQjs.configureLogin; exports.configureReferral = _chunk3P3IYUWQjs.configureReferral; exports.configureRoles = _chunkG4JR3SFVjs.configureRoles; exports.configureTokenUsage = _chunkGSHMGL6Njs.configureTokenUsage; exports.configureWaitlist = _chunk3P3IYUWQjs.configureWaitlist; exports.couponPlacesLeft = _chunkGSHMGL6Njs.couponPlacesLeft; exports.couponPlacesTotal = _chunkGSHMGL6Njs.couponPlacesTotal; exports.createJsonApiInclusion = _chunkGSHMGL6Njs.createJsonApiInclusion; exports.dateFormatLocale = _chunkGSHMGL6Njs.dateFormatLocale; exports.dismissToast = _chunkGSHMGL6Njs.dismissToast; exports.entityObjectSchema = _chunkGSHMGL6Njs.entityObjectSchema; exports.exists = _chunkGSHMGL6Njs.exists; exports.formatCodiceFiscale = _chunkGSHMGL6Njs.formatCodiceFiscale; exports.formatCouponDiscount = _chunkGSHMGL6Njs.formatCouponDiscount; exports.formatCurrency = _chunkGSHMGL6Njs.formatCurrency; exports.formatDate = _chunkGSHMGL6Njs.formatDate; exports.formatFixed = _chunkGSHMGL6Njs.formatFixed; exports.formatInterval = _chunkGSHMGL6Njs.formatInterval; exports.formatLocalDate = _chunkGSHMGL6Njs.formatLocalDate; exports.formatPartitaIva = _chunkGSHMGL6Njs.formatPartitaIva; exports.getApiUrl = _chunk3P3IYUWQjs.getApiUrl; exports.getAppUrl = _chunk3P3IYUWQjs.getAppUrl; exports.getBootstrapper = _chunkGHE4VT2Rjs.getBootstrapper; exports.getClientGlobalErrorHandler = _chunkGSHMGL6Njs.getClientGlobalErrorHandler; exports.getGlobalErrorHandler = _chunkGSHMGL6Njs.getGlobalErrorHandler; exports.getIcon = _chunkGSHMGL6Njs.getIcon; exports.getIconByModule = _chunkGSHMGL6Njs.getIconByModule; exports.getIconByModuleName = _chunkGSHMGL6Njs.getIconByModuleName; exports.getInitials = _chunkGSHMGL6Njs.getInitials; exports.getLastApiMeta = _chunkGSHMGL6Njs.getLastApiMeta; exports.getLastApiTotal = _chunkGSHMGL6Njs.getLastApiTotal; exports.getLucideIcon = _chunkGSHMGL6Njs.getLucideIcon; exports.getLucideIconByModule = _chunkGSHMGL6Njs.getLucideIconByModule; exports.getLucideIconByModuleName = _chunkGSHMGL6Njs.getLucideIconByModuleName; exports.getPublicApiUrl = _chunk3P3IYUWQjs.getPublicApiUrl; exports.getReferralConfig = _chunk3P3IYUWQjs.getReferralConfig; exports.getRoleId = _chunkG4JR3SFVjs.getRoleId; exports.getSignupSource = _chunk3P3IYUWQjs.getSignupSource; exports.getStripePublishableKey = _chunk3P3IYUWQjs.getStripePublishableKey; exports.getTableComponents = _chunkGSHMGL6Njs.getTableComponents; exports.getTableOptions = _chunkGSHMGL6Njs.getTableOptions; exports.getTokenHandler = _chunkGSHMGL6Njs.getTokenHandler; exports.getTokenUsageCurrency = _chunkGSHMGL6Njs.getTokenUsageCurrency; exports.getTrackablePages = _chunk3P3IYUWQjs.getTrackablePages; exports.getValueFromPath = _chunkGSHMGL6Njs.getValueFromPath; exports.getWaitlistConfig = _chunk3P3IYUWQjs.getWaitlistConfig; exports.handbookPageContent = _chunkGSHMGL6Njs.handbookPageContent; exports.handbookPageSummary = _chunkGSHMGL6Njs.handbookPageSummary; exports.handbookPageTitle = _chunkGSHMGL6Njs.handbookPageTitle; exports.handbookSectionSummary = _chunkGSHMGL6Njs.handbookSectionSummary; exports.handbookSectionTitle = _chunkGSHMGL6Njs.handbookSectionTitle; exports.hasBootstrapper = _chunkGHE4VT2Rjs.hasBootstrapper; exports.isReferralEnabled = _chunk3P3IYUWQjs.isReferralEnabled; exports.isRemoteImageSrc = _chunkGSHMGL6Njs.isRemoteImageSrc; exports.isRolesConfigured = _chunkG4JR3SFVjs.isRolesConfigured; exports.mergeMessages = _chunkGSHMGL6Njs.mergeMessages; exports.readSignupSourceFromLocation = _chunk3P3IYUWQjs.readSignupSourceFromLocation; exports.rehydrate = _chunkGSHMGL6Njs.rehydrate; exports.rehydrateList = _chunkGSHMGL6Njs.rehydrateList; exports.resetBootstrapStore = _chunkGHE4VT2Rjs.resetBootstrapStore; exports.setBootstrapper = _chunkGHE4VT2Rjs.setBootstrapper; exports.setClientGlobalErrorHandler = _chunkGSHMGL6Njs.setClientGlobalErrorHandler; exports.setGlobalErrorHandler = _chunkGSHMGL6Njs.setGlobalErrorHandler; exports.showCustomToast = _chunkGSHMGL6Njs.showCustomToast; exports.showError = _chunkGSHMGL6Njs.showError; exports.showToast = _chunkGSHMGL6Njs.showToast; exports.toPromotionCodeResult = _chunkGSHMGL6Njs.toPromotionCodeResult; exports.tokenUsageModules = _chunkGSHMGL6Njs.tokenUsageModules; exports.translateData = _chunkGHE4VT2Rjs.translateData; exports.translateResponse = _chunkGHE4VT2Rjs.translateResponse; exports.tryBootstrap = _chunkGHE4VT2Rjs.tryBootstrap; exports.useComposedRefs = _chunkGSHMGL6Njs.useComposedRefs; exports.useIsMobile = _chunkGSHMGL6Njs.useIsMobile; exports.userObjectSchema = _chunkGSHMGL6Njs.userObjectSchema; exports.validateCodiceFiscale = _chunkGSHMGL6Njs.validateCodiceFiscale; exports.validateItalianTaxCode = _chunkGSHMGL6Njs.validateItalianTaxCode; exports.validatePartitaIva = _chunkGSHMGL6Njs.validatePartitaIva;
|
|
641
641
|
//# sourceMappingURL=index.js.map
|
package/dist/index.mjs
CHANGED
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
getWaitlistConfig,
|
|
20
20
|
isReferralEnabled,
|
|
21
21
|
readSignupSourceFromLocation
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-CUNSPLOD.mjs";
|
|
23
23
|
import {
|
|
24
24
|
configureRoles,
|
|
25
25
|
getRoleId,
|
|
@@ -306,7 +306,7 @@ import {
|
|
|
306
306
|
validateCodiceFiscale,
|
|
307
307
|
validateItalianTaxCode,
|
|
308
308
|
validatePartitaIva
|
|
309
|
-
} from "./chunk-
|
|
309
|
+
} from "./chunk-QKDPCZ3G.mjs";
|
|
310
310
|
import {
|
|
311
311
|
DataClassRegistry,
|
|
312
312
|
ENV,
|
package/dist/server/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkUEWDYVLWjs = require('../chunk-UEWDYVLW.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
var _chunkIK65TDQHjs = require('../chunk-IK65TDQH.js');
|
|
@@ -35,7 +35,7 @@ require('../chunk-G4JR3SFV.js');
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
var
|
|
38
|
+
var _chunkGSHMGL6Njs = require('../chunk-GSHMGL6N.js');
|
|
39
39
|
require('../chunk-GHE4VT2R.js');
|
|
40
40
|
require('../chunk-LXKSUWAV.js');
|
|
41
41
|
require('../chunk-JTPRJNT2.js');
|
|
@@ -66,5 +66,5 @@ require('../chunk-7QVYU63E.js');
|
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
exports.CACHE_PROFILES = _chunkIK65TDQHjs.CACHE_PROFILES; exports.ServerAuthService =
|
|
69
|
+
exports.CACHE_PROFILES = _chunkIK65TDQHjs.CACHE_PROFILES; exports.ServerAuthService = _chunkGSHMGL6Njs.AuthService; exports.ServerCompanyService = _chunkGSHMGL6Njs.CompanyService; exports.ServerContentService = _chunkGSHMGL6Njs.ContentService; exports.ServerFeatureService = _chunkGSHMGL6Njs.FeatureService; exports.ServerJsonApiDelete = _chunkKSYQEKJXjs.ServerJsonApiDelete; exports.ServerJsonApiGet = _chunkKSYQEKJXjs.ServerJsonApiGet; exports.ServerJsonApiPatch = _chunkKSYQEKJXjs.ServerJsonApiPatch; exports.ServerJsonApiPost = _chunkKSYQEKJXjs.ServerJsonApiPost; exports.ServerJsonApiPut = _chunkKSYQEKJXjs.ServerJsonApiPut; exports.ServerNotificationService = _chunkGSHMGL6Njs.NotificationService; exports.ServerPushService = _chunkGSHMGL6Njs.PushService; exports.ServerRoleService = _chunkGSHMGL6Njs.RoleService; exports.ServerS3Service = _chunkGSHMGL6Njs.S3Service; exports.ServerSession = _chunkUEWDYVLWjs.ServerSession; exports.ServerUserService = _chunkGSHMGL6Njs.UserService; exports.configureServerJsonApi = _chunkKSYQEKJXjs.configureServerJsonApi; exports.getServerApiUrl = _chunkKSYQEKJXjs.getServerApiUrl; exports.getServerAppUrl = _chunkKSYQEKJXjs.getServerAppUrl; exports.getServerToken = _chunkYUO55Q5Ajs.getServerToken; exports.getServerTrackablePages = _chunkKSYQEKJXjs.getServerTrackablePages; exports.invalidateCacheTag = _chunkUEWDYVLWjs.invalidateCacheTag; exports.invalidateCacheTags = _chunkUEWDYVLWjs.invalidateCacheTags; exports.serverRequest = _chunk6TUB7Y6Tjs.serverRequest; exports.updateCacheTag = _chunkUEWDYVLWjs.updateCacheTag;
|
|
70
70
|
//# sourceMappingURL=index.js.map
|
package/dist/server/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
invalidateCacheTag,
|
|
4
4
|
invalidateCacheTags,
|
|
5
5
|
updateCacheTag
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-HLW3SUMD.mjs";
|
|
7
7
|
import {
|
|
8
8
|
CACHE_PROFILES
|
|
9
9
|
} from "../chunk-T7SAW3UW.mjs";
|
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
RoleService,
|
|
36
36
|
S3Service,
|
|
37
37
|
UserService
|
|
38
|
-
} from "../chunk-
|
|
38
|
+
} from "../chunk-QKDPCZ3G.mjs";
|
|
39
39
|
import "../chunk-V5MI7RNB.mjs";
|
|
40
40
|
import "../chunk-AUXK7QSA.mjs";
|
|
41
41
|
import "../chunk-PI56A4DG.mjs";
|
package/package.json
CHANGED
|
@@ -20,7 +20,13 @@ type Attribution = Pick<
|
|
|
20
20
|
>;
|
|
21
21
|
|
|
22
22
|
type AnalyticsTrackerProps = {
|
|
23
|
-
|
|
23
|
+
/**
|
|
24
|
+
* `undefined` while the app has not read its consent store yet: the tracker sends
|
|
25
|
+
* nothing and leaves the visitor cookie alone. `false` when there is no consent
|
|
26
|
+
* (refused or not chosen yet): the cookie is cleared and page views go out without
|
|
27
|
+
* an id. Never pass `false` as a placeholder for "not read yet".
|
|
28
|
+
*/
|
|
29
|
+
hasConsent?: boolean;
|
|
24
30
|
resolveSection: (pathname: string) => "public" | "app";
|
|
25
31
|
sensitivePrefixes?: string[];
|
|
26
32
|
};
|
|
@@ -63,11 +69,16 @@ function maskSensitivePath(path: string, sensitivePrefixes: string[] | undefined
|
|
|
63
69
|
export function AnalyticsTracker({ hasConsent, resolveSection, sensitivePrefixes }: AnalyticsTrackerProps): null {
|
|
64
70
|
const pathname = usePathname();
|
|
65
71
|
const lastPath = useRef<string | null>(null);
|
|
66
|
-
|
|
72
|
+
// The last consent value the app actually read. `undefined` until then, so a page
|
|
73
|
+
// load with consent already stored is never mistaken for the Accept click.
|
|
74
|
+
const lastKnownConsent = useRef<boolean | undefined>(undefined);
|
|
67
75
|
const attribution = useRef<Attribution | null>(null);
|
|
68
76
|
|
|
69
77
|
useEffect(() => {
|
|
70
|
-
|
|
78
|
+
// Consent not read yet: send nothing and keep the cookie, or a visitor who
|
|
79
|
+
// already accepted would lose their id on every tracker mount.
|
|
80
|
+
if (hasConsent === undefined) return;
|
|
81
|
+
if (hasConsent === false) clearVisitorCookie();
|
|
71
82
|
|
|
72
83
|
if (!pathname) return;
|
|
73
84
|
if (typeof navigator !== "undefined" && navigator.webdriver) return;
|
|
@@ -75,12 +86,13 @@ export function AnalyticsTracker({ hasConsent, resolveSection, sensitivePrefixes
|
|
|
75
86
|
const path = pathname.split(/[?#]/)[0] || "/";
|
|
76
87
|
if (path.startsWith(EXCLUDED_PREFIX)) return;
|
|
77
88
|
|
|
78
|
-
// One event per distinct path. The same path is sent again only when
|
|
79
|
-
//
|
|
89
|
+
// One event per distinct path. The same path is sent again only when the
|
|
90
|
+
// visitor clicks Accept (a known `false` turning `true`), flagged so the API
|
|
91
|
+
// moves the open cookieless session onto the cookie id.
|
|
80
92
|
const isNewPath = lastPath.current !== path;
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
if (!isNewPath && !
|
|
93
|
+
const consentGranted = hasConsent === true && lastKnownConsent.current === false;
|
|
94
|
+
lastKnownConsent.current = hasConsent;
|
|
95
|
+
if (!isNewPath && !consentGranted) return;
|
|
84
96
|
lastPath.current = path;
|
|
85
97
|
|
|
86
98
|
const sentPath = maskSensitivePath(path, sensitivePrefixes);
|
|
@@ -93,6 +105,7 @@ export function AnalyticsTracker({ hasConsent, resolveSection, sensitivePrefixes
|
|
|
93
105
|
};
|
|
94
106
|
|
|
95
107
|
if (hasConsent) input.visitorId = ensureVisitorCookie();
|
|
108
|
+
if (consentGranted) input.consentGranted = true;
|
|
96
109
|
|
|
97
110
|
// The first event of the page load carries the attribution. The event sent
|
|
98
111
|
// because consent was just granted carries it again, so the session opened
|
|
@@ -102,7 +115,7 @@ export function AnalyticsTracker({ hasConsent, resolveSection, sensitivePrefixes
|
|
|
102
115
|
const referrer = readExternalReferrer();
|
|
103
116
|
attribution.current = { ...(referrer ? { referrer } : {}), ...readUtm(window.location.search) };
|
|
104
117
|
}
|
|
105
|
-
if (isFirstEvent ||
|
|
118
|
+
if (isFirstEvent || consentGranted) Object.assign(input, attribution.current);
|
|
106
119
|
|
|
107
120
|
// AnalyticsService.track never rejects: it logs and swallows its own failures.
|
|
108
121
|
void AnalyticsService.track(input);
|
|
@@ -215,6 +215,73 @@ describe("AnalyticsTracker", () => {
|
|
|
215
215
|
expect(eventAt(1)).toEqual(expect.objectContaining({ path: "/pricing", visitorId: expect.stringMatching(UUID) }));
|
|
216
216
|
});
|
|
217
217
|
|
|
218
|
+
it("sends nothing and keeps the cookie while consent is unknown", () => {
|
|
219
|
+
document.cookie = "analytics_visitor=keep-me; path=/";
|
|
220
|
+
mocks.pathname = "/";
|
|
221
|
+
const { rerender } = render(<AnalyticsTracker hasConsent={undefined} resolveSection={publicSection} />);
|
|
222
|
+
|
|
223
|
+
mocks.pathname = "/pricing";
|
|
224
|
+
rerender(<AnalyticsTracker hasConsent={undefined} resolveSection={publicSection} />);
|
|
225
|
+
|
|
226
|
+
expect(mocks.track).not.toHaveBeenCalled();
|
|
227
|
+
expect(document.cookie).toContain("analytics_visitor=keep-me");
|
|
228
|
+
|
|
229
|
+
rerender(<AnalyticsTracker hasConsent={true} resolveSection={publicSection} />);
|
|
230
|
+
|
|
231
|
+
expect(mocks.track).toHaveBeenCalledTimes(1);
|
|
232
|
+
expect(eventAt(0).path).toBe("/pricing");
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
it("keeps the existing cookie id when unknown consent resolves to accepted", () => {
|
|
236
|
+
document.cookie = "analytics_visitor=keep-me; path=/";
|
|
237
|
+
mocks.pathname = "/pricing";
|
|
238
|
+
const { rerender } = render(<AnalyticsTracker hasConsent={undefined} resolveSection={publicSection} />);
|
|
239
|
+
rerender(<AnalyticsTracker hasConsent={true} resolveSection={publicSection} />);
|
|
240
|
+
|
|
241
|
+
expect(mocks.track).toHaveBeenCalledTimes(1);
|
|
242
|
+
expect(eventAt(0)).toEqual(expect.objectContaining({ visitorId: "keep-me" }));
|
|
243
|
+
expect(eventAt(0)).not.toHaveProperty("consentGranted");
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
it("clears the cookie once unknown consent resolves to refused", () => {
|
|
247
|
+
document.cookie = "analytics_visitor=keep-me; path=/";
|
|
248
|
+
mocks.pathname = "/pricing";
|
|
249
|
+
const { rerender } = render(<AnalyticsTracker hasConsent={undefined} resolveSection={publicSection} />);
|
|
250
|
+
|
|
251
|
+
expect(mocks.track).not.toHaveBeenCalled();
|
|
252
|
+
expect(document.cookie).toContain("analytics_visitor=keep-me");
|
|
253
|
+
|
|
254
|
+
rerender(<AnalyticsTracker hasConsent={false} resolveSection={publicSection} />);
|
|
255
|
+
|
|
256
|
+
expect(mocks.track).toHaveBeenCalledTimes(1);
|
|
257
|
+
expect(eventAt(0).visitorId).toBeUndefined();
|
|
258
|
+
expect(document.cookie).not.toContain("analytics_visitor");
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
it("carries attribution on the first known event", () => {
|
|
262
|
+
setReferrer("https://elsewhere.example/");
|
|
263
|
+
mocks.pathname = "/pricing";
|
|
264
|
+
const { rerender } = render(<AnalyticsTracker hasConsent={undefined} resolveSection={publicSection} />);
|
|
265
|
+
rerender(<AnalyticsTracker hasConsent={true} resolveSection={publicSection} />);
|
|
266
|
+
|
|
267
|
+
expect(mocks.track).toHaveBeenCalledTimes(1);
|
|
268
|
+
expect(eventAt(0)).toEqual(
|
|
269
|
+
expect.objectContaining({ referrer: "https://elsewhere.example/", visitorId: expect.stringMatching(UUID) }),
|
|
270
|
+
);
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
it("flags the accept click", () => {
|
|
274
|
+
mocks.pathname = "/pricing";
|
|
275
|
+
const { rerender } = render(<AnalyticsTracker hasConsent={false} resolveSection={publicSection} />);
|
|
276
|
+
rerender(<AnalyticsTracker hasConsent={true} resolveSection={publicSection} />);
|
|
277
|
+
|
|
278
|
+
expect(mocks.track).toHaveBeenCalledTimes(2);
|
|
279
|
+
expect(eventAt(0)).not.toHaveProperty("consentGranted");
|
|
280
|
+
expect(eventAt(1)).toEqual(
|
|
281
|
+
expect.objectContaining({ consentGranted: true, visitorId: expect.stringMatching(UUID) }),
|
|
282
|
+
);
|
|
283
|
+
});
|
|
284
|
+
|
|
218
285
|
it("skips automated browsers and the analytics admin pages", () => {
|
|
219
286
|
setWebdriver(true);
|
|
220
287
|
mocks.pathname = "/pricing";
|
|
@@ -212,6 +212,19 @@ describe("analytics models — createJsonApi", () => {
|
|
|
212
212
|
expect(Object.keys(doc.data.relationships ?? {})).toHaveLength(0);
|
|
213
213
|
});
|
|
214
214
|
|
|
215
|
+
it("serialises consentGranted only when given", () => {
|
|
216
|
+
const flagged = new AnalyticsEvent().createJsonApi({
|
|
217
|
+
id: "e2",
|
|
218
|
+
path: "/",
|
|
219
|
+
section: "public",
|
|
220
|
+
consentGranted: true,
|
|
221
|
+
});
|
|
222
|
+
const plain = new AnalyticsEvent().createJsonApi({ id: "e3", path: "/", section: "public" });
|
|
223
|
+
|
|
224
|
+
expect(flagged.data.attributes.consentGranted).toBe(true);
|
|
225
|
+
expect(plain.data.attributes).not.toHaveProperty("consentGranted");
|
|
226
|
+
});
|
|
227
|
+
|
|
215
228
|
it("serialises a summary back to a JSON:API resource object", () => {
|
|
216
229
|
const doc = new AnalyticsSummary().createJsonApi({
|
|
217
230
|
id: "all|current",
|
|
@@ -57,6 +57,7 @@ export class AnalyticsEvent extends AbstractApiData implements AnalyticsEventInt
|
|
|
57
57
|
if (data.utmContent !== undefined) response.data.attributes.utmContent = data.utmContent;
|
|
58
58
|
if (data.visitorId !== undefined) response.data.attributes.visitorId = data.visitorId;
|
|
59
59
|
if (data.screenWidth !== undefined) response.data.attributes.screenWidth = data.screenWidth;
|
|
60
|
+
if (data.consentGranted !== undefined) response.data.attributes.consentGranted = data.consentGranted;
|
|
60
61
|
|
|
61
62
|
return response;
|
|
62
63
|
}
|
|
@@ -31,6 +31,8 @@ export type AnalyticsEventInput = {
|
|
|
31
31
|
utmContent?: string;
|
|
32
32
|
visitorId?: string;
|
|
33
33
|
screenWidth?: number;
|
|
34
|
+
/** True only on the event sent by the Accept click: the API adopts the open cookieless session. */
|
|
35
|
+
consentGranted?: boolean;
|
|
34
36
|
};
|
|
35
37
|
|
|
36
38
|
// Input types for the read-only models' createJsonApi(). `id` is always
|