@carlonicora/nextjs-jsonapi 6.31.0 → 6.32.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/{BlockNoteEditor-ICGGCW6N.js → BlockNoteEditor-RD3JNEV5.js} +24 -24
  2. package/dist/{BlockNoteEditor-ICGGCW6N.js.map → BlockNoteEditor-RD3JNEV5.js.map} +1 -1
  3. package/dist/{BlockNoteEditor-O4E67ECL.mjs → BlockNoteEditor-XIEMUQCO.mjs} +4 -4
  4. package/dist/{BlockNoteViewer-BNZEXGVT.mjs → BlockNoteViewer-NVSR67X5.mjs} +2 -2
  5. package/dist/{BlockNoteViewer-YONLBNXW.js → BlockNoteViewer-RQBYHBQL.js} +3 -3
  6. package/dist/{BlockNoteViewer-YONLBNXW.js.map → BlockNoteViewer-RQBYHBQL.js.map} +1 -1
  7. package/dist/billing/index.js +465 -465
  8. package/dist/billing/index.mjs +3 -3
  9. package/dist/{chunk-HNK2O6YE.mjs → chunk-4JVLLBRS.mjs} +4 -16
  10. package/dist/chunk-4JVLLBRS.mjs.map +1 -0
  11. package/dist/{chunk-NQL2NDKH.js → chunk-5H25LM2Z.js} +10 -10
  12. package/dist/chunk-5H25LM2Z.js.map +1 -0
  13. package/dist/{chunk-FDKAVSZ6.mjs → chunk-AEBZ67JJ.mjs} +8 -8
  14. package/dist/chunk-AEBZ67JJ.mjs.map +1 -0
  15. package/dist/{chunk-JL6XL5NK.mjs → chunk-AMQFKCAX.mjs} +2 -2
  16. package/dist/{chunk-BT3VFB3I.mjs → chunk-F25BVBEH.mjs} +9 -16
  17. package/dist/chunk-F25BVBEH.mjs.map +1 -0
  18. package/dist/{chunk-5XP5G45B.js → chunk-NPGX2GJD.js} +4 -16
  19. package/dist/chunk-NPGX2GJD.js.map +1 -0
  20. package/dist/{chunk-Q5SMFSE4.js → chunk-PNCO3HMJ.js} +3 -3
  21. package/dist/{chunk-Q5SMFSE4.js.map → chunk-PNCO3HMJ.js.map} +1 -1
  22. package/dist/{chunk-M7FA63QE.js → chunk-SQNFYMYE.js} +732 -739
  23. package/dist/chunk-SQNFYMYE.js.map +1 -0
  24. package/dist/client/index.js +4 -4
  25. package/dist/client/index.mjs +3 -3
  26. package/dist/components/index.js +4 -4
  27. package/dist/components/index.mjs +3 -3
  28. package/dist/contexts/index.js +4 -4
  29. package/dist/contexts/index.mjs +3 -3
  30. package/dist/core/index.js +2 -2
  31. package/dist/core/index.mjs +1 -1
  32. package/dist/email-automations/index.js +105 -105
  33. package/dist/email-automations/index.mjs +3 -3
  34. package/dist/features/analytics/index.js +114 -114
  35. package/dist/features/analytics/index.mjs +3 -3
  36. package/dist/features/analytics/server.js +4 -4
  37. package/dist/features/analytics/server.mjs +2 -2
  38. package/dist/features/auth/components/forms/Logout.d.ts +7 -1
  39. package/dist/features/auth/components/forms/Logout.d.ts.map +1 -1
  40. package/dist/features/auth/components/forms/RefreshUser.d.ts.map +1 -1
  41. package/dist/features/auth/config.d.ts +0 -9
  42. package/dist/features/auth/config.d.ts.map +1 -1
  43. package/dist/features/auth/data/auth.service.d.ts.map +1 -1
  44. package/dist/features/auth/data/two-factor.service.d.ts.map +1 -1
  45. package/dist/features/auth/utils/AuthCookies.d.ts +0 -9
  46. package/dist/features/auth/utils/AuthCookies.d.ts.map +1 -1
  47. package/dist/features/blog/index.js +129 -129
  48. package/dist/features/blog/index.mjs +3 -3
  49. package/dist/features/blog/server.js +7 -7
  50. package/dist/features/blog/server.mjs +1 -1
  51. package/dist/features/help/index.js +37 -37
  52. package/dist/features/help/index.mjs +3 -3
  53. package/dist/features/tokenusage/index.js +114 -114
  54. package/dist/features/tokenusage/index.mjs +3 -3
  55. package/dist/features/user/contexts/CurrentUserContext.d.ts.map +1 -1
  56. package/dist/index.js +3 -3
  57. package/dist/index.mjs +2 -2
  58. package/dist/server/ServerSession.d.ts.map +1 -1
  59. package/dist/server/index.js +3 -3
  60. package/dist/server/index.mjs +2 -2
  61. package/package.json +1 -1
  62. package/src/features/auth/components/forms/Logout.tsx +8 -2
  63. package/src/features/auth/components/forms/RefreshUser.tsx +0 -3
  64. package/src/features/auth/config.ts +0 -9
  65. package/src/features/auth/data/auth.service.ts +0 -8
  66. package/src/features/auth/data/two-factor.service.ts +0 -4
  67. package/src/features/auth/utils/AuthCookies.ts +1 -23
  68. package/src/features/user/contexts/CurrentUserContext.tsx +0 -4
  69. package/src/features/user/contexts/__tests__/CurrentUserContext.spec.tsx +2 -0
  70. package/src/server/ServerSession.ts +10 -26
  71. package/src/server/__tests__/ServerSession.hasPermissionToModule.spec.ts +78 -0
  72. package/dist/chunk-5XP5G45B.js.map +0 -1
  73. package/dist/chunk-BT3VFB3I.mjs.map +0 -1
  74. package/dist/chunk-FDKAVSZ6.mjs.map +0 -1
  75. package/dist/chunk-HNK2O6YE.mjs.map +0 -1
  76. package/dist/chunk-M7FA63QE.js.map +0 -1
  77. package/dist/chunk-NQL2NDKH.js.map +0 -1
  78. /package/dist/{BlockNoteEditor-O4E67ECL.mjs.map → BlockNoteEditor-XIEMUQCO.mjs.map} +0 -0
  79. /package/dist/{BlockNoteViewer-BNZEXGVT.mjs.map → BlockNoteViewer-NVSR67X5.mjs.map} +0 -0
  80. /package/dist/{chunk-JL6XL5NK.mjs.map → chunk-AMQFKCAX.mjs.map} +0 -0
@@ -39,10 +39,10 @@ import {
39
39
  seriesTheme,
40
40
  usePageUrlGenerator,
41
41
  useUsageFormatters
42
- } from "../../chunk-BT3VFB3I.mjs";
42
+ } from "../../chunk-F25BVBEH.mjs";
43
43
  import "../../chunk-5T2AQMQ2.mjs";
44
44
  import "../../chunk-VOXD3ZLY.mjs";
45
- import "../../chunk-JL6XL5NK.mjs";
45
+ import "../../chunk-AMQFKCAX.mjs";
46
46
  import "../../chunk-PW42LRSL.mjs";
47
47
  import {
48
48
  AbstractService,
@@ -59,7 +59,7 @@ import {
59
59
  configureTokenUsage,
60
60
  getTokenUsageCurrency,
61
61
  tokenUsageModules
62
- } from "../../chunk-HNK2O6YE.mjs";
62
+ } from "../../chunk-4JVLLBRS.mjs";
63
63
  import "../../chunk-RW6XZGZG.mjs";
64
64
  import "../../chunk-OY65RYD3.mjs";
65
65
  import {
@@ -1 +1 @@
1
- {"version":3,"file":"CurrentUserContext.d.ts","sourceRoot":"","sources":["../../../../src/features/user/contexts/CurrentUserContext.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAuF,MAAM,OAAO,CAAC;AAG5G,OAAO,EAAE,MAAM,EAAoB,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,EAAE,aAAa,EAAe,MAAM,SAAS,CAAC;AAGrD,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IAC7E,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,qBAAqB,EAAE,CAAC,CAAC,SAAS,qBAAqB,EAAE,MAAM,EAAE;QAC/D,MAAM,EAAE,CAAC,CAAC;QACV,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,KAAK,OAAO,CAAC;IACd,sBAAsB,EAAE,CAAC,CAAC,SAAS,qBAAqB,EAAE,MAAM,EAAE;QAChE,OAAO,EAAE,CAAC,EAAE,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,KAAK,OAAO,CAAC;IACd,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,iBAAiB,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1D,gBAAgB,EAAE,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,qBAAqB,GAAG,SAAS,CAAC;IACnF,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IACrC,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,YAAY,EAAE,OAAO,CAAC;CACvB;AAMD,eAAO,MAAM,mBAAmB,GAAI,cAAc;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,sBA6Q9E,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAM1G;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,KACnF,sBAAsB,CAAC,CAAC,CAAC,GAAG,SAAS,CAEtC"}
1
+ {"version":3,"file":"CurrentUserContext.d.ts","sourceRoot":"","sources":["../../../../src/features/user/contexts/CurrentUserContext.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAuF,MAAM,OAAO,CAAC;AAG5G,OAAO,EAAE,MAAM,EAAoB,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,EAAE,aAAa,EAAe,MAAM,SAAS,CAAC;AAGrD,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IAC7E,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,qBAAqB,EAAE,CAAC,CAAC,SAAS,qBAAqB,EAAE,MAAM,EAAE;QAC/D,MAAM,EAAE,CAAC,CAAC;QACV,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,KAAK,OAAO,CAAC;IACd,sBAAsB,EAAE,CAAC,CAAC,SAAS,qBAAqB,EAAE,MAAM,EAAE;QAChE,OAAO,EAAE,CAAC,EAAE,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,KAAK,OAAO,CAAC;IACd,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,iBAAiB,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1D,gBAAgB,EAAE,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,qBAAqB,GAAG,SAAS,CAAC;IACnF,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IACrC,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,YAAY,EAAE,OAAO,CAAC;CACvB;AAMD,eAAO,MAAM,mBAAmB,GAAI,cAAc;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,sBAyQ9E,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAM1G;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,KACnF,sBAAsB,CAAC,CAAC,CAAC,GAAG,SAAS,CAEtC"}
package/dist/index.js CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- var _chunkQ5SMFSE4js = require('./chunk-Q5SMFSE4.js');
23
+ var _chunkPNCO3HMJjs = require('./chunk-PNCO3HMJ.js');
24
24
 
25
25
 
26
26
 
@@ -338,7 +338,7 @@ var _chunkG4JR3SFVjs = require('./chunk-G4JR3SFV.js');
338
338
 
339
339
 
340
340
 
341
- var _chunk5XP5G45Bjs = require('./chunk-5XP5G45B.js');
341
+ var _chunkNPGX2GJDjs = require('./chunk-NPGX2GJD.js');
342
342
 
343
343
 
344
344
 
@@ -742,5 +742,5 @@ require('./chunk-7QVYU63E.js');
742
742
 
743
743
 
744
744
 
745
- exports.ACCOUNT_DELETION_CANCELLED_KEY = _chunk5XP5G45Bjs.ACCOUNT_DELETION_CANCELLED_KEY; exports.ACTION_TYPES = _chunkQ5SMFSE4js.ACTION_TYPES; exports.AVAILABLE_OAUTH_SCOPES = _chunk5XP5G45Bjs.AVAILABLE_OAUTH_SCOPES; exports.AbstractApiData = _chunkZ6T2575Ajs.AbstractApiData; exports.AbstractService = _chunk5XP5G45Bjs.AbstractService; exports.AccountDeletion = _chunk5XP5G45Bjs.AccountDeletion; exports.AccountDeletionModule = _chunk5XP5G45Bjs.AccountDeletionModule; exports.AccountDeletionService = _chunk5XP5G45Bjs.AccountDeletionService; exports.Action = _chunk5XP5G45Bjs.Action; exports.AiConnection = _chunk5XP5G45Bjs.AiConnection; exports.AiConnectionFields = _chunk5XP5G45Bjs.AiConnectionFields; exports.AiConnectionModule = _chunk5XP5G45Bjs.AiConnectionModule; exports.AiConnectionService = _chunk5XP5G45Bjs.AiConnectionService; exports.Assistant = _chunk5XP5G45Bjs.Assistant; exports.AssistantAction = _chunk5XP5G45Bjs.AssistantAction; exports.AssistantActionModule = _chunk5XP5G45Bjs.AssistantActionModule; exports.AssistantActionService = _chunk5XP5G45Bjs.AssistantActionService; exports.AssistantMessage = _chunk5XP5G45Bjs.AssistantMessage; exports.AssistantMessageModule = _chunk5XP5G45Bjs.AssistantMessageModule; exports.AssistantMessageService = _chunk5XP5G45Bjs.AssistantMessageService; exports.AssistantModule = _chunk5XP5G45Bjs.AssistantModule; exports.AssistantService = _chunk5XP5G45Bjs.AssistantService; exports.AuditLog = _chunk5XP5G45Bjs.AuditLog; exports.AuditLogModule = _chunk5XP5G45Bjs.AuditLogModule; exports.AuditLogService = _chunk5XP5G45Bjs.AuditLogService; exports.Auth = _chunk5XP5G45Bjs.Auth; exports.AuthComponent = _chunk5XP5G45Bjs.AuthComponent; exports.AuthModule = _chunk5XP5G45Bjs.AuthModule; exports.AuthService = _chunk5XP5G45Bjs.AuthService; exports.AuthorModule = _chunk5XP5G45Bjs.AuthorModule; exports.BackupCodeVerify = _chunk5XP5G45Bjs.BackupCodeVerify; exports.BackupCodeVerifyModule = _chunk5XP5G45Bjs.BackupCodeVerifyModule; exports.Billing = _chunk5XP5G45Bjs.Billing; exports.BillingModule = _chunk5XP5G45Bjs.BillingModule; exports.BillingService = _chunk5XP5G45Bjs.BillingService; exports.BlockNoteDiffUtil = _chunk5XP5G45Bjs.BlockNoteDiffUtil; exports.BlockNoteWordDiffRendererUtil = _chunk5XP5G45Bjs.BlockNoteWordDiffRendererUtil; exports.BlogCategory = _chunk5XP5G45Bjs.BlogCategory; exports.BlogCategoryFields = _chunk5XP5G45Bjs.BlogCategoryFields; exports.BlogCategoryModule = _chunk5XP5G45Bjs.BlogCategoryModule; exports.BlogCategoryService = _chunk5XP5G45Bjs.BlogCategoryService; exports.BlogCategoryTranslation = _chunk5XP5G45Bjs.BlogCategoryTranslation; exports.BlogCategoryTranslationModule = _chunk5XP5G45Bjs.BlogCategoryTranslationModule; exports.BlogCategoryTranslationService = _chunk5XP5G45Bjs.BlogCategoryTranslationService; exports.BlogPost = _chunk5XP5G45Bjs.BlogPost; exports.BlogPostFields = _chunk5XP5G45Bjs.BlogPostFields; exports.BlogPostModule = _chunk5XP5G45Bjs.BlogPostModule; exports.BlogPostService = _chunk5XP5G45Bjs.BlogPostService; exports.BlogPostTranslation = _chunk5XP5G45Bjs.BlogPostTranslation; exports.BlogPostTranslationModule = _chunk5XP5G45Bjs.BlogPostTranslationModule; exports.BlogPostTranslationService = _chunk5XP5G45Bjs.BlogPostTranslationService; exports.BlogSettings = _chunk5XP5G45Bjs.BlogSettings; exports.BlogSettingsModule = _chunk5XP5G45Bjs.BlogSettingsModule; exports.BlogSettingsService = _chunk5XP5G45Bjs.BlogSettingsService; exports.COMPANY_ADMINISTRATOR_ROLE_ID = _chunkQ5SMFSE4js.COMPANY_ADMINISTRATOR_ROLE_ID; exports.CREDIT_WARNING_DISMISS_SEGMENT = _chunk5XP5G45Bjs.CREDIT_WARNING_DISMISS_SEGMENT; exports.CURRENT_USER_STORAGE_KEY = _chunk3VNDFKT7js.CURRENT_USER_STORAGE_KEY; exports.Chunk = _chunk5XP5G45Bjs.Chunk; exports.ChunkModule = _chunk5XP5G45Bjs.ChunkModule; exports.ClientAbstractService = _chunk5XP5G45Bjs.ClientAbstractService; exports.ClientHttpMethod = _chunk5XP5G45Bjs.ClientHttpMethod; exports.Company = _chunk5XP5G45Bjs.Company; exports.CompanyFields = _chunk5XP5G45Bjs.CompanyFields; exports.CompanyModule = _chunk5XP5G45Bjs.CompanyModule; exports.CompanyService = _chunk5XP5G45Bjs.CompanyService; exports.Content = _chunk5XP5G45Bjs.Content; exports.ContentFields = _chunk5XP5G45Bjs.ContentFields; exports.ContentModule = _chunk5XP5G45Bjs.ContentModule; exports.ContentService = _chunk5XP5G45Bjs.ContentService; exports.DEFAULT_GRANT_TYPES = _chunk5XP5G45Bjs.DEFAULT_GRANT_TYPES; exports.DataClass = _chunkLNO2JLU3js.DataClassRegistry; exports.DataClassRegistry = _chunkLNO2JLU3js.DataClassRegistry; exports.DiscordConnectConfirmation = _chunk5XP5G45Bjs.DiscordConnectConfirmation; exports.DiscordConnectConfirmationModule = _chunk5XP5G45Bjs.DiscordConnectConfirmationModule; exports.DiscordConnectConfirmationService = _chunk5XP5G45Bjs.DiscordConnectConfirmationService; exports.DiscordConnectIntent = _chunk5XP5G45Bjs.DiscordConnectIntent; exports.DiscordConnectIntentModule = _chunk5XP5G45Bjs.DiscordConnectIntentModule; exports.DiscordConnectIntentService = _chunk5XP5G45Bjs.DiscordConnectIntentService; exports.DiscordConnection = _chunk5XP5G45Bjs.DiscordConnection; exports.DiscordConnectionModule = _chunk5XP5G45Bjs.DiscordConnectionModule; exports.DiscordConnectionService = _chunk5XP5G45Bjs.DiscordConnectionService; exports.EMAIL_AUTOMATION_UNSUBSCRIBE_TYPE = _chunk5XP5G45Bjs.EMAIL_AUTOMATION_UNSUBSCRIBE_TYPE; exports.EMAIL_BLAST_SEGMENTS = _chunk5XP5G45Bjs.EMAIL_BLAST_SEGMENTS; exports.EMAIL_BLAST_UNSUBSCRIBE_TYPE = _chunk5XP5G45Bjs.EMAIL_BLAST_UNSUBSCRIBE_TYPE; exports.ENV = _chunkLNO2JLU3js.ENV; exports.EmailAutomation = _chunk5XP5G45Bjs.EmailAutomation; exports.EmailAutomationCandidate = _chunk5XP5G45Bjs.EmailAutomationCandidate; exports.EmailAutomationCandidateModule = _chunk5XP5G45Bjs.EmailAutomationCandidateModule; exports.EmailAutomationEnrollment = _chunk5XP5G45Bjs.EmailAutomationEnrollment; exports.EmailAutomationEnrollmentFields = _chunk5XP5G45Bjs.EmailAutomationEnrollmentFields; exports.EmailAutomationEnrollmentModule = _chunk5XP5G45Bjs.EmailAutomationEnrollmentModule; exports.EmailAutomationEnrollmentService = _chunk5XP5G45Bjs.EmailAutomationEnrollmentService; exports.EmailAutomationFields = _chunk5XP5G45Bjs.EmailAutomationFields; exports.EmailAutomationModule = _chunk5XP5G45Bjs.EmailAutomationModule; exports.EmailAutomationService = _chunk5XP5G45Bjs.EmailAutomationService; exports.EmailAutomationStep = _chunk5XP5G45Bjs.EmailAutomationStep; exports.EmailAutomationStepModule = _chunk5XP5G45Bjs.EmailAutomationStepModule; exports.EmailAutomationStepService = _chunk5XP5G45Bjs.EmailAutomationStepService; exports.EmailAutomationTrigger = _chunk5XP5G45Bjs.EmailAutomationTrigger; exports.EmailAutomationTriggerModule = _chunk5XP5G45Bjs.EmailAutomationTriggerModule; exports.EmailBlast = _chunk5XP5G45Bjs.EmailBlast; exports.EmailBlastAudience = _chunk5XP5G45Bjs.EmailBlastAudience; exports.EmailBlastAudienceModule = _chunk5XP5G45Bjs.EmailBlastAudienceModule; exports.EmailBlastDelivery = _chunk5XP5G45Bjs.EmailBlastDelivery; exports.EmailBlastDeliveryModule = _chunk5XP5G45Bjs.EmailBlastDeliveryModule; exports.EmailBlastDeliveryService = _chunk5XP5G45Bjs.EmailBlastDeliveryService; exports.EmailBlastFields = _chunk5XP5G45Bjs.EmailBlastFields; exports.EmailBlastModule = _chunk5XP5G45Bjs.EmailBlastModule; exports.EmailBlastService = _chunk5XP5G45Bjs.EmailBlastService; exports.EndpointCreator = _chunkZ6T2575Ajs.EndpointCreator; exports.EntityAiStatus = _chunk5XP5G45Bjs.EntityAiStatus; exports.Feature = _chunk5XP5G45Bjs.Feature; exports.FeatureModule = _chunk5XP5G45Bjs.FeatureModule; exports.FeatureService = _chunk5XP5G45Bjs.FeatureService; exports.HandbookPage = _chunk5XP5G45Bjs.HandbookPage; exports.HandbookPageFields = _chunk5XP5G45Bjs.HandbookPageFields; exports.HandbookPageModule = _chunk5XP5G45Bjs.HandbookPageModule; exports.HandbookPageService = _chunk5XP5G45Bjs.HandbookPageService; exports.HandbookSection = _chunk5XP5G45Bjs.HandbookSection; exports.HandbookSectionModule = _chunk5XP5G45Bjs.HandbookSectionModule; exports.HandbookSectionService = _chunk5XP5G45Bjs.HandbookSectionService; exports.HandbookThread = _chunk5XP5G45Bjs.HandbookThread; exports.HandbookThreadMessage = _chunk5XP5G45Bjs.HandbookThreadMessage; exports.HandbookThreadMessageModule = _chunk5XP5G45Bjs.HandbookThreadMessageModule; exports.HandbookThreadMessageService = _chunk5XP5G45Bjs.HandbookThreadMessageService; exports.HandbookThreadModule = _chunk5XP5G45Bjs.HandbookThreadModule; exports.HandbookThreadService = _chunk5XP5G45Bjs.HandbookThreadService; exports.HowTo = _chunk5XP5G45Bjs.HowTo; exports.HowToFields = _chunk5XP5G45Bjs.HowToFields; exports.HowToModule = _chunk5XP5G45Bjs.HowToModule; exports.HowToService = _chunk5XP5G45Bjs.HowToService; exports.HttpMethod = _chunk5XP5G45Bjs.HttpMethod; exports.InvoiceStatus = _chunk5XP5G45Bjs.InvoiceStatus; exports.JsonApiDataFactory = _chunkLNO2JLU3js.JsonApiDataFactory; exports.MOBILE_BREAKPOINT = _chunk5XP5G45Bjs.MOBILE_BREAKPOINT; exports.Module = _chunk5XP5G45Bjs.Module; exports.ModuleModule = _chunk5XP5G45Bjs.ModuleModule; exports.ModulePaths = _chunk5XP5G45Bjs.ModulePaths; exports.ModulePathsModule = _chunk5XP5G45Bjs.ModulePathsModule; exports.ModuleRegistrar = _chunk5XP5G45Bjs.ModuleRegistrar; exports.ModuleRegistry = _chunkZ6T2575Ajs.ModuleRegistry; exports.Modules = _chunkZ6T2575Ajs.Modules; exports.Notification = _chunk5XP5G45Bjs.Notification; exports.NotificationFields = _chunk5XP5G45Bjs.NotificationFields; exports.NotificationModule = _chunk5XP5G45Bjs.NotificationModule; exports.NotificationService = _chunk5XP5G45Bjs.NotificationService; exports.OAUTH_SCOPE_DISPLAY = _chunk5XP5G45Bjs.OAUTH_SCOPE_DISPLAY; exports.OAuthClient = _chunk5XP5G45Bjs.OAuthClient; exports.OAuthModule = _chunk5XP5G45Bjs.OAuthModule; exports.OAuthService = _chunk5XP5G45Bjs.OAuthService; exports.OfflineChangeSet = _chunk5XP5G45Bjs.OfflineChangeSet; exports.Passkey = _chunk5XP5G45Bjs.Passkey; exports.PasskeyAuthenticationOptions = _chunk5XP5G45Bjs.PasskeyAuthenticationOptions; exports.PasskeyAuthenticationOptionsModule = _chunk5XP5G45Bjs.PasskeyAuthenticationOptionsModule; exports.PasskeyModule = _chunk5XP5G45Bjs.PasskeyModule; exports.PasskeyRegistrationOptions = _chunk5XP5G45Bjs.PasskeyRegistrationOptions; exports.PasskeyRegistrationOptionsModule = _chunk5XP5G45Bjs.PasskeyRegistrationOptionsModule; exports.PasskeyRegistrationVerify = _chunk5XP5G45Bjs.PasskeyRegistrationVerify; exports.PasskeyRegistrationVerifyModule = _chunk5XP5G45Bjs.PasskeyRegistrationVerifyModule; exports.PasskeyRename = _chunk5XP5G45Bjs.PasskeyRename; exports.PasskeyRenameModule = _chunk5XP5G45Bjs.PasskeyRenameModule; exports.PasskeyVerifyLogin = _chunk5XP5G45Bjs.PasskeyVerifyLogin; exports.PasskeyVerifyLoginModule = _chunk5XP5G45Bjs.PasskeyVerifyLoginModule; exports.PaymentMethod = _chunk5XP5G45Bjs.PaymentMethod; exports.PendingRegistration = _chunk5XP5G45Bjs.PendingRegistration; exports.PendingRegistrationModule = _chunk5XP5G45Bjs.PendingRegistrationModule; exports.PermissionMapping = _chunk5XP5G45Bjs.PermissionMapping; exports.PermissionMappingModule = _chunk5XP5G45Bjs.PermissionMappingModule; exports.Push = _chunk5XP5G45Bjs.Push; exports.PushModule = _chunk5XP5G45Bjs.PushModule; exports.PushService = _chunk5XP5G45Bjs.PushService; exports.ROOT_SYNC_ENDPOINT = _chunkZ6T2575Ajs.ROOT_SYNC_ENDPOINT; exports.RbacMatrixModel = _chunk5XP5G45Bjs.RbacMatrixModel; exports.RbacMatrixModule = _chunk5XP5G45Bjs.RbacMatrixModule; exports.RbacService = _chunkQ5SMFSE4js.RbacService; exports.ReferralAdminReferral = _chunk5XP5G45Bjs.ReferralAdminReferral; exports.ReferralAdminReferrer = _chunk5XP5G45Bjs.ReferralAdminReferrer; exports.ReferralAdminService = _chunk5XP5G45Bjs.ReferralAdminService; exports.ReferralAdminSummary = _chunk5XP5G45Bjs.ReferralAdminSummary; exports.ReferralModule = _chunk5XP5G45Bjs.ReferralModule; exports.ReferralService = _chunk5XP5G45Bjs.ReferralService; exports.ReferralStats = _chunk5XP5G45Bjs.ReferralStats; exports.ReferralStatsModule = _chunk5XP5G45Bjs.ReferralStatsModule; exports.ReferralVisit = _chunk5XP5G45Bjs.ReferralVisit; exports.RehydrationFactory = _chunkZ6T2575Ajs.RehydrationFactory; exports.Role = _chunk5XP5G45Bjs.Role; exports.RoleFields = _chunk5XP5G45Bjs.RoleFields; exports.RoleModule = _chunk5XP5G45Bjs.RoleModule; exports.RoleService = _chunk5XP5G45Bjs.RoleService; exports.RootSync = _chunkZ6T2575Ajs.RootSync; exports.S3 = _chunk5XP5G45Bjs.S3; exports.S3Module = _chunk5XP5G45Bjs.S3Module; exports.S3Service = _chunk5XP5G45Bjs.S3Service; exports.SIGNUP_SOURCE_COOKIE = _chunkQ5SMFSE4js.SIGNUP_SOURCE_COOKIE; exports.SIGNUP_SOURCE_COOKIE_MAX_AGE = _chunkQ5SMFSE4js.SIGNUP_SOURCE_COOKIE_MAX_AGE; exports.STRIPE_COUPON_CODE_AUTOMATIC_SEGMENT = _chunk5XP5G45Bjs.STRIPE_COUPON_CODE_AUTOMATIC_SEGMENT; exports.STRIPE_COUPON_DETAIL_PAGE_URL = _chunk5XP5G45Bjs.STRIPE_COUPON_DETAIL_PAGE_URL; exports.STRIPE_COUPON_REFRESH_SEGMENT = _chunk5XP5G45Bjs.STRIPE_COUPON_REFRESH_SEGMENT; exports.StripeCoupon = _chunk5XP5G45Bjs.StripeCoupon; exports.StripeCouponCode = _chunk5XP5G45Bjs.StripeCouponCode; exports.StripeCouponCodeFields = _chunk5XP5G45Bjs.StripeCouponCodeFields; exports.StripeCouponCodeModule = _chunk5XP5G45Bjs.StripeCouponCodeModule; exports.StripeCouponCodeService = _chunk5XP5G45Bjs.StripeCouponCodeService; exports.StripeCouponFields = _chunk5XP5G45Bjs.StripeCouponFields; exports.StripeCouponModule = _chunk5XP5G45Bjs.StripeCouponModule; exports.StripeCouponOffer = _chunk5XP5G45Bjs.StripeCouponOffer; exports.StripeCouponOfferModule = _chunk5XP5G45Bjs.StripeCouponOfferModule; exports.StripeCouponService = _chunk5XP5G45Bjs.StripeCouponService; exports.StripeCustomer = _chunk5XP5G45Bjs.StripeCustomer; exports.StripeCustomerModule = _chunk5XP5G45Bjs.StripeCustomerModule; exports.StripeCustomerService = _chunk5XP5G45Bjs.StripeCustomerService; exports.StripeInvoice = _chunk5XP5G45Bjs.StripeInvoice; exports.StripeInvoiceModule = _chunk5XP5G45Bjs.StripeInvoiceModule; exports.StripeInvoiceService = _chunk5XP5G45Bjs.StripeInvoiceService; exports.StripePaymentMethodModule = _chunk5XP5G45Bjs.StripePaymentMethodModule; exports.StripePrice = _chunk5XP5G45Bjs.StripePrice; exports.StripePriceFields = _chunk5XP5G45Bjs.StripePriceFields; exports.StripePriceModule = _chunk5XP5G45Bjs.StripePriceModule; exports.StripePriceService = _chunk5XP5G45Bjs.StripePriceService; exports.StripeProduct = _chunk5XP5G45Bjs.StripeProduct; exports.StripeProductFields = _chunk5XP5G45Bjs.StripeProductFields; exports.StripeProductModule = _chunk5XP5G45Bjs.StripeProductModule; exports.StripeProductService = _chunk5XP5G45Bjs.StripeProductService; exports.StripePromotionCode = _chunk5XP5G45Bjs.StripePromotionCode; exports.StripePromotionCodeModule = _chunk5XP5G45Bjs.StripePromotionCodeModule; exports.StripePromotionCodeService = _chunk5XP5G45Bjs.StripePromotionCodeService; exports.StripeSubscription = _chunk5XP5G45Bjs.StripeSubscription; exports.StripeSubscriptionModule = _chunk5XP5G45Bjs.StripeSubscriptionModule; exports.StripeSubscriptionService = _chunk5XP5G45Bjs.StripeSubscriptionService; exports.StripeUsage = _chunk5XP5G45Bjs.StripeUsage; exports.StripeUsageModule = _chunk5XP5G45Bjs.StripeUsageModule; exports.StripeUsageService = _chunk5XP5G45Bjs.StripeUsageService; exports.SubscriptionStatus = _chunk5XP5G45Bjs.SubscriptionStatus; exports.TableOptions = _chunk5XP5G45Bjs.TableOptions; exports.TokenUsageAdminBreakdownModule = _chunk5XP5G45Bjs.TokenUsageAdminBreakdownModule; exports.TokenUsageAdminSummaryModule = _chunk5XP5G45Bjs.TokenUsageAdminSummaryModule; exports.TokenUsageAdminTimelineModule = _chunk5XP5G45Bjs.TokenUsageAdminTimelineModule; exports.TotpAuthenticator = _chunk5XP5G45Bjs.TotpAuthenticator; exports.TotpAuthenticatorModule = _chunk5XP5G45Bjs.TotpAuthenticatorModule; exports.TotpSetup = _chunk5XP5G45Bjs.TotpSetup; exports.TotpSetupModule = _chunk5XP5G45Bjs.TotpSetupModule; exports.TotpVerify = _chunk5XP5G45Bjs.TotpVerify; exports.TotpVerifyLogin = _chunk5XP5G45Bjs.TotpVerifyLogin; exports.TotpVerifyLoginModule = _chunk5XP5G45Bjs.TotpVerifyLoginModule; exports.TotpVerifyModule = _chunk5XP5G45Bjs.TotpVerifyModule; exports.TwoFactorChallenge = _chunk5XP5G45Bjs.TwoFactorChallenge; exports.TwoFactorChallengeModule = _chunk5XP5G45Bjs.TwoFactorChallengeModule; exports.TwoFactorEnable = _chunk5XP5G45Bjs.TwoFactorEnable; exports.TwoFactorEnableModule = _chunk5XP5G45Bjs.TwoFactorEnableModule; exports.TwoFactorService = _chunk5XP5G45Bjs.TwoFactorService; exports.TwoFactorStatus = _chunk5XP5G45Bjs.TwoFactorStatus; exports.TwoFactorStatusModule = _chunk5XP5G45Bjs.TwoFactorStatusModule; exports.User = _chunk5XP5G45Bjs.User; exports.UserFields = _chunk5XP5G45Bjs.UserFields; exports.UserModule = _chunk5XP5G45Bjs.UserModule; exports.UserService = _chunk5XP5G45Bjs.UserService; exports.VIEWPORT_COOKIE_NAME = _chunk5XP5G45Bjs.VIEWPORT_COOKIE_NAME; exports.Waitlist = _chunk5XP5G45Bjs.Waitlist; exports.WaitlistFields = _chunk5XP5G45Bjs.WaitlistFields; exports.WaitlistModule = _chunk5XP5G45Bjs.WaitlistModule; exports.WaitlistService = _chunk5XP5G45Bjs.WaitlistService; exports.WaitlistStats = _chunk5XP5G45Bjs.WaitlistStats; exports.WaitlistStatsModule = _chunk5XP5G45Bjs.WaitlistStatsModule; exports.analyticsModules = _chunk5XP5G45Bjs.analyticsModules; exports.captureSignupSource = _chunkQ5SMFSE4js.captureSignupSource; exports.checkPermissions = _chunk5XP5G45Bjs.checkPermissions; exports.checkPermissionsFromServer = _chunk5XP5G45Bjs.checkPermissionsFromServer; exports.clearLastApiMeta = _chunk5XP5G45Bjs.clearLastApiMeta; exports.clearLastApiTotal = _chunk5XP5G45Bjs.clearLastApiTotal; exports.cn = _chunk5XP5G45Bjs.cn; exports.composeRefs = _chunk5XP5G45Bjs.composeRefs; exports.configureAuth = _chunk5XP5G45Bjs.configureAuth; exports.configureI18n = _chunkNP3AFULUjs.configureI18n; exports.configureJsonApi = _chunkQ5SMFSE4js.configureJsonApi; exports.configureLogin = _chunkQ5SMFSE4js.configureLogin; exports.configureReferral = _chunkQ5SMFSE4js.configureReferral; exports.configureRoles = _chunkG4JR3SFVjs.configureRoles; exports.configureTokenUsage = _chunk5XP5G45Bjs.configureTokenUsage; exports.configureWaitlist = _chunkQ5SMFSE4js.configureWaitlist; exports.consumeAccountDeletionCancelled = _chunk5XP5G45Bjs.consumeAccountDeletionCancelled; exports.couponPlacesLeft = _chunk5XP5G45Bjs.couponPlacesLeft; exports.couponPlacesTotal = _chunk5XP5G45Bjs.couponPlacesTotal; exports.createJsonApiInclusion = _chunk5XP5G45Bjs.createJsonApiInclusion; exports.dateFormatLocale = _chunkHROKKUBQjs.dateFormatLocale; exports.dismissToast = _chunk5XP5G45Bjs.dismissToast; exports.entityObjectSchema = _chunk5XP5G45Bjs.entityObjectSchema; exports.exists = _chunk5XP5G45Bjs.exists; exports.formatCodiceFiscale = _chunk5XP5G45Bjs.formatCodiceFiscale; exports.formatCouponDiscount = _chunk5XP5G45Bjs.formatCouponDiscount; exports.formatCurrency = _chunk5XP5G45Bjs.formatCurrency; exports.formatDate = _chunkHROKKUBQjs.formatDate; exports.formatDateStyle = _chunkHROKKUBQjs.formatDateStyle; exports.formatFixed = _chunk5XP5G45Bjs.formatFixed; exports.formatInterval = _chunk5XP5G45Bjs.formatInterval; exports.formatLocalDate = _chunkHROKKUBQjs.formatLocalDate; exports.formatPartitaIva = _chunk5XP5G45Bjs.formatPartitaIva; exports.formatRelativeDate = _chunkHROKKUBQjs.formatRelativeDate; exports.getApiUrl = _chunkQ5SMFSE4js.getApiUrl; exports.getAppUrl = _chunkQ5SMFSE4js.getAppUrl; exports.getBootstrapper = _chunkLNO2JLU3js.getBootstrapper; exports.getClientGlobalErrorHandler = _chunk5XP5G45Bjs.getClientGlobalErrorHandler; exports.getGlobalErrorHandler = _chunk5XP5G45Bjs.getGlobalErrorHandler; exports.getIcon = _chunk5XP5G45Bjs.getIcon; exports.getIconByModule = _chunk5XP5G45Bjs.getIconByModule; exports.getIconByModuleName = _chunk5XP5G45Bjs.getIconByModuleName; exports.getInitials = _chunk5XP5G45Bjs.getInitials; exports.getLastApiMeta = _chunk5XP5G45Bjs.getLastApiMeta; exports.getLastApiTotal = _chunk5XP5G45Bjs.getLastApiTotal; exports.getLucideIcon = _chunk5XP5G45Bjs.getLucideIcon; exports.getLucideIconByModule = _chunk5XP5G45Bjs.getLucideIconByModule; exports.getLucideIconByModuleName = _chunk5XP5G45Bjs.getLucideIconByModuleName; exports.getPublicApiUrl = _chunkQ5SMFSE4js.getPublicApiUrl; exports.getReferralConfig = _chunkQ5SMFSE4js.getReferralConfig; exports.getRoleId = _chunkG4JR3SFVjs.getRoleId; exports.getSignupSource = _chunkQ5SMFSE4js.getSignupSource; exports.getStripePublishableKey = _chunkQ5SMFSE4js.getStripePublishableKey; exports.getTableComponents = _chunk5XP5G45Bjs.getTableComponents; exports.getTableOptions = _chunk5XP5G45Bjs.getTableOptions; exports.getTokenHandler = _chunk5XP5G45Bjs.getTokenHandler; exports.getTokenUsageCurrency = _chunk5XP5G45Bjs.getTokenUsageCurrency; exports.getTrackablePages = _chunkQ5SMFSE4js.getTrackablePages; exports.getValueFromPath = _chunk5XP5G45Bjs.getValueFromPath; exports.getWaitlistConfig = _chunkQ5SMFSE4js.getWaitlistConfig; exports.handbookPageContent = _chunk5XP5G45Bjs.handbookPageContent; exports.handbookPageSummary = _chunk5XP5G45Bjs.handbookPageSummary; exports.handbookPageTitle = _chunk5XP5G45Bjs.handbookPageTitle; exports.handbookSectionSummary = _chunk5XP5G45Bjs.handbookSectionSummary; exports.handbookSectionTitle = _chunk5XP5G45Bjs.handbookSectionTitle; exports.hasBootstrapper = _chunkLNO2JLU3js.hasBootstrapper; exports.isCreditWarningActive = _chunk5XP5G45Bjs.isCreditWarningActive; exports.isDiscordAuthEnabled = _chunkQ5SMFSE4js.isDiscordAuthEnabled; exports.isReferralEnabled = _chunkQ5SMFSE4js.isReferralEnabled; exports.isRemoteImageSrc = _chunk5XP5G45Bjs.isRemoteImageSrc; exports.isRolesConfigured = _chunkG4JR3SFVjs.isRolesConfigured; exports.markAccountDeletionCancelled = _chunk5XP5G45Bjs.markAccountDeletionCancelled; exports.mergeMessages = _chunk5XP5G45Bjs.mergeMessages; exports.offlineModules = _chunk5XP5G45Bjs.offlineModules; exports.readSignupSourceFromLocation = _chunkQ5SMFSE4js.readSignupSourceFromLocation; exports.referralAdminModules = _chunk5XP5G45Bjs.referralAdminModules; exports.rehydrate = _chunk5XP5G45Bjs.rehydrate; exports.rehydrateList = _chunk5XP5G45Bjs.rehydrateList; exports.resetBootstrapStore = _chunkLNO2JLU3js.resetBootstrapStore; exports.resolveChangePlanTarget = _chunk5XP5G45Bjs.resolveChangePlanTarget; exports.resolveDateLocale = _chunkHROKKUBQjs.resolveDateLocale; exports.setBootstrapper = _chunkLNO2JLU3js.setBootstrapper; exports.setClientGlobalErrorHandler = _chunk5XP5G45Bjs.setClientGlobalErrorHandler; exports.setGlobalErrorHandler = _chunk5XP5G45Bjs.setGlobalErrorHandler; exports.showCustomToast = _chunk5XP5G45Bjs.showCustomToast; exports.showError = _chunk5XP5G45Bjs.showError; exports.showToast = _chunk5XP5G45Bjs.showToast; exports.toPromotionCodeResult = _chunk5XP5G45Bjs.toPromotionCodeResult; exports.tokenUsageModules = _chunk5XP5G45Bjs.tokenUsageModules; exports.translateData = _chunkLNO2JLU3js.translateData; exports.translateResponse = _chunkLNO2JLU3js.translateResponse; exports.tryBootstrap = _chunkLNO2JLU3js.tryBootstrap; exports.useComposedRefs = _chunk5XP5G45Bjs.useComposedRefs; exports.useIsMobile = _chunk5XP5G45Bjs.useIsMobile; exports.userObjectSchema = _chunk5XP5G45Bjs.userObjectSchema; exports.usesTwelveHourClock = _chunkHROKKUBQjs.usesTwelveHourClock; exports.validateCodiceFiscale = _chunk5XP5G45Bjs.validateCodiceFiscale; exports.validateItalianTaxCode = _chunk5XP5G45Bjs.validateItalianTaxCode; exports.validatePartitaIva = _chunk5XP5G45Bjs.validatePartitaIva;
745
+ exports.ACCOUNT_DELETION_CANCELLED_KEY = _chunkNPGX2GJDjs.ACCOUNT_DELETION_CANCELLED_KEY; exports.ACTION_TYPES = _chunkPNCO3HMJjs.ACTION_TYPES; exports.AVAILABLE_OAUTH_SCOPES = _chunkNPGX2GJDjs.AVAILABLE_OAUTH_SCOPES; exports.AbstractApiData = _chunkZ6T2575Ajs.AbstractApiData; exports.AbstractService = _chunkNPGX2GJDjs.AbstractService; exports.AccountDeletion = _chunkNPGX2GJDjs.AccountDeletion; exports.AccountDeletionModule = _chunkNPGX2GJDjs.AccountDeletionModule; exports.AccountDeletionService = _chunkNPGX2GJDjs.AccountDeletionService; exports.Action = _chunkNPGX2GJDjs.Action; exports.AiConnection = _chunkNPGX2GJDjs.AiConnection; exports.AiConnectionFields = _chunkNPGX2GJDjs.AiConnectionFields; exports.AiConnectionModule = _chunkNPGX2GJDjs.AiConnectionModule; exports.AiConnectionService = _chunkNPGX2GJDjs.AiConnectionService; exports.Assistant = _chunkNPGX2GJDjs.Assistant; exports.AssistantAction = _chunkNPGX2GJDjs.AssistantAction; exports.AssistantActionModule = _chunkNPGX2GJDjs.AssistantActionModule; exports.AssistantActionService = _chunkNPGX2GJDjs.AssistantActionService; exports.AssistantMessage = _chunkNPGX2GJDjs.AssistantMessage; exports.AssistantMessageModule = _chunkNPGX2GJDjs.AssistantMessageModule; exports.AssistantMessageService = _chunkNPGX2GJDjs.AssistantMessageService; exports.AssistantModule = _chunkNPGX2GJDjs.AssistantModule; exports.AssistantService = _chunkNPGX2GJDjs.AssistantService; exports.AuditLog = _chunkNPGX2GJDjs.AuditLog; exports.AuditLogModule = _chunkNPGX2GJDjs.AuditLogModule; exports.AuditLogService = _chunkNPGX2GJDjs.AuditLogService; exports.Auth = _chunkNPGX2GJDjs.Auth; exports.AuthComponent = _chunkNPGX2GJDjs.AuthComponent; exports.AuthModule = _chunkNPGX2GJDjs.AuthModule; exports.AuthService = _chunkNPGX2GJDjs.AuthService; exports.AuthorModule = _chunkNPGX2GJDjs.AuthorModule; exports.BackupCodeVerify = _chunkNPGX2GJDjs.BackupCodeVerify; exports.BackupCodeVerifyModule = _chunkNPGX2GJDjs.BackupCodeVerifyModule; exports.Billing = _chunkNPGX2GJDjs.Billing; exports.BillingModule = _chunkNPGX2GJDjs.BillingModule; exports.BillingService = _chunkNPGX2GJDjs.BillingService; exports.BlockNoteDiffUtil = _chunkNPGX2GJDjs.BlockNoteDiffUtil; exports.BlockNoteWordDiffRendererUtil = _chunkNPGX2GJDjs.BlockNoteWordDiffRendererUtil; exports.BlogCategory = _chunkNPGX2GJDjs.BlogCategory; exports.BlogCategoryFields = _chunkNPGX2GJDjs.BlogCategoryFields; exports.BlogCategoryModule = _chunkNPGX2GJDjs.BlogCategoryModule; exports.BlogCategoryService = _chunkNPGX2GJDjs.BlogCategoryService; exports.BlogCategoryTranslation = _chunkNPGX2GJDjs.BlogCategoryTranslation; exports.BlogCategoryTranslationModule = _chunkNPGX2GJDjs.BlogCategoryTranslationModule; exports.BlogCategoryTranslationService = _chunkNPGX2GJDjs.BlogCategoryTranslationService; exports.BlogPost = _chunkNPGX2GJDjs.BlogPost; exports.BlogPostFields = _chunkNPGX2GJDjs.BlogPostFields; exports.BlogPostModule = _chunkNPGX2GJDjs.BlogPostModule; exports.BlogPostService = _chunkNPGX2GJDjs.BlogPostService; exports.BlogPostTranslation = _chunkNPGX2GJDjs.BlogPostTranslation; exports.BlogPostTranslationModule = _chunkNPGX2GJDjs.BlogPostTranslationModule; exports.BlogPostTranslationService = _chunkNPGX2GJDjs.BlogPostTranslationService; exports.BlogSettings = _chunkNPGX2GJDjs.BlogSettings; exports.BlogSettingsModule = _chunkNPGX2GJDjs.BlogSettingsModule; exports.BlogSettingsService = _chunkNPGX2GJDjs.BlogSettingsService; exports.COMPANY_ADMINISTRATOR_ROLE_ID = _chunkPNCO3HMJjs.COMPANY_ADMINISTRATOR_ROLE_ID; exports.CREDIT_WARNING_DISMISS_SEGMENT = _chunkNPGX2GJDjs.CREDIT_WARNING_DISMISS_SEGMENT; exports.CURRENT_USER_STORAGE_KEY = _chunk3VNDFKT7js.CURRENT_USER_STORAGE_KEY; exports.Chunk = _chunkNPGX2GJDjs.Chunk; exports.ChunkModule = _chunkNPGX2GJDjs.ChunkModule; exports.ClientAbstractService = _chunkNPGX2GJDjs.ClientAbstractService; exports.ClientHttpMethod = _chunkNPGX2GJDjs.ClientHttpMethod; exports.Company = _chunkNPGX2GJDjs.Company; exports.CompanyFields = _chunkNPGX2GJDjs.CompanyFields; exports.CompanyModule = _chunkNPGX2GJDjs.CompanyModule; exports.CompanyService = _chunkNPGX2GJDjs.CompanyService; exports.Content = _chunkNPGX2GJDjs.Content; exports.ContentFields = _chunkNPGX2GJDjs.ContentFields; exports.ContentModule = _chunkNPGX2GJDjs.ContentModule; exports.ContentService = _chunkNPGX2GJDjs.ContentService; exports.DEFAULT_GRANT_TYPES = _chunkNPGX2GJDjs.DEFAULT_GRANT_TYPES; exports.DataClass = _chunkLNO2JLU3js.DataClassRegistry; exports.DataClassRegistry = _chunkLNO2JLU3js.DataClassRegistry; exports.DiscordConnectConfirmation = _chunkNPGX2GJDjs.DiscordConnectConfirmation; exports.DiscordConnectConfirmationModule = _chunkNPGX2GJDjs.DiscordConnectConfirmationModule; exports.DiscordConnectConfirmationService = _chunkNPGX2GJDjs.DiscordConnectConfirmationService; exports.DiscordConnectIntent = _chunkNPGX2GJDjs.DiscordConnectIntent; exports.DiscordConnectIntentModule = _chunkNPGX2GJDjs.DiscordConnectIntentModule; exports.DiscordConnectIntentService = _chunkNPGX2GJDjs.DiscordConnectIntentService; exports.DiscordConnection = _chunkNPGX2GJDjs.DiscordConnection; exports.DiscordConnectionModule = _chunkNPGX2GJDjs.DiscordConnectionModule; exports.DiscordConnectionService = _chunkNPGX2GJDjs.DiscordConnectionService; exports.EMAIL_AUTOMATION_UNSUBSCRIBE_TYPE = _chunkNPGX2GJDjs.EMAIL_AUTOMATION_UNSUBSCRIBE_TYPE; exports.EMAIL_BLAST_SEGMENTS = _chunkNPGX2GJDjs.EMAIL_BLAST_SEGMENTS; exports.EMAIL_BLAST_UNSUBSCRIBE_TYPE = _chunkNPGX2GJDjs.EMAIL_BLAST_UNSUBSCRIBE_TYPE; exports.ENV = _chunkLNO2JLU3js.ENV; exports.EmailAutomation = _chunkNPGX2GJDjs.EmailAutomation; exports.EmailAutomationCandidate = _chunkNPGX2GJDjs.EmailAutomationCandidate; exports.EmailAutomationCandidateModule = _chunkNPGX2GJDjs.EmailAutomationCandidateModule; exports.EmailAutomationEnrollment = _chunkNPGX2GJDjs.EmailAutomationEnrollment; exports.EmailAutomationEnrollmentFields = _chunkNPGX2GJDjs.EmailAutomationEnrollmentFields; exports.EmailAutomationEnrollmentModule = _chunkNPGX2GJDjs.EmailAutomationEnrollmentModule; exports.EmailAutomationEnrollmentService = _chunkNPGX2GJDjs.EmailAutomationEnrollmentService; exports.EmailAutomationFields = _chunkNPGX2GJDjs.EmailAutomationFields; exports.EmailAutomationModule = _chunkNPGX2GJDjs.EmailAutomationModule; exports.EmailAutomationService = _chunkNPGX2GJDjs.EmailAutomationService; exports.EmailAutomationStep = _chunkNPGX2GJDjs.EmailAutomationStep; exports.EmailAutomationStepModule = _chunkNPGX2GJDjs.EmailAutomationStepModule; exports.EmailAutomationStepService = _chunkNPGX2GJDjs.EmailAutomationStepService; exports.EmailAutomationTrigger = _chunkNPGX2GJDjs.EmailAutomationTrigger; exports.EmailAutomationTriggerModule = _chunkNPGX2GJDjs.EmailAutomationTriggerModule; exports.EmailBlast = _chunkNPGX2GJDjs.EmailBlast; exports.EmailBlastAudience = _chunkNPGX2GJDjs.EmailBlastAudience; exports.EmailBlastAudienceModule = _chunkNPGX2GJDjs.EmailBlastAudienceModule; exports.EmailBlastDelivery = _chunkNPGX2GJDjs.EmailBlastDelivery; exports.EmailBlastDeliveryModule = _chunkNPGX2GJDjs.EmailBlastDeliveryModule; exports.EmailBlastDeliveryService = _chunkNPGX2GJDjs.EmailBlastDeliveryService; exports.EmailBlastFields = _chunkNPGX2GJDjs.EmailBlastFields; exports.EmailBlastModule = _chunkNPGX2GJDjs.EmailBlastModule; exports.EmailBlastService = _chunkNPGX2GJDjs.EmailBlastService; exports.EndpointCreator = _chunkZ6T2575Ajs.EndpointCreator; exports.EntityAiStatus = _chunkNPGX2GJDjs.EntityAiStatus; exports.Feature = _chunkNPGX2GJDjs.Feature; exports.FeatureModule = _chunkNPGX2GJDjs.FeatureModule; exports.FeatureService = _chunkNPGX2GJDjs.FeatureService; exports.HandbookPage = _chunkNPGX2GJDjs.HandbookPage; exports.HandbookPageFields = _chunkNPGX2GJDjs.HandbookPageFields; exports.HandbookPageModule = _chunkNPGX2GJDjs.HandbookPageModule; exports.HandbookPageService = _chunkNPGX2GJDjs.HandbookPageService; exports.HandbookSection = _chunkNPGX2GJDjs.HandbookSection; exports.HandbookSectionModule = _chunkNPGX2GJDjs.HandbookSectionModule; exports.HandbookSectionService = _chunkNPGX2GJDjs.HandbookSectionService; exports.HandbookThread = _chunkNPGX2GJDjs.HandbookThread; exports.HandbookThreadMessage = _chunkNPGX2GJDjs.HandbookThreadMessage; exports.HandbookThreadMessageModule = _chunkNPGX2GJDjs.HandbookThreadMessageModule; exports.HandbookThreadMessageService = _chunkNPGX2GJDjs.HandbookThreadMessageService; exports.HandbookThreadModule = _chunkNPGX2GJDjs.HandbookThreadModule; exports.HandbookThreadService = _chunkNPGX2GJDjs.HandbookThreadService; exports.HowTo = _chunkNPGX2GJDjs.HowTo; exports.HowToFields = _chunkNPGX2GJDjs.HowToFields; exports.HowToModule = _chunkNPGX2GJDjs.HowToModule; exports.HowToService = _chunkNPGX2GJDjs.HowToService; exports.HttpMethod = _chunkNPGX2GJDjs.HttpMethod; exports.InvoiceStatus = _chunkNPGX2GJDjs.InvoiceStatus; exports.JsonApiDataFactory = _chunkLNO2JLU3js.JsonApiDataFactory; exports.MOBILE_BREAKPOINT = _chunkNPGX2GJDjs.MOBILE_BREAKPOINT; exports.Module = _chunkNPGX2GJDjs.Module; exports.ModuleModule = _chunkNPGX2GJDjs.ModuleModule; exports.ModulePaths = _chunkNPGX2GJDjs.ModulePaths; exports.ModulePathsModule = _chunkNPGX2GJDjs.ModulePathsModule; exports.ModuleRegistrar = _chunkNPGX2GJDjs.ModuleRegistrar; exports.ModuleRegistry = _chunkZ6T2575Ajs.ModuleRegistry; exports.Modules = _chunkZ6T2575Ajs.Modules; exports.Notification = _chunkNPGX2GJDjs.Notification; exports.NotificationFields = _chunkNPGX2GJDjs.NotificationFields; exports.NotificationModule = _chunkNPGX2GJDjs.NotificationModule; exports.NotificationService = _chunkNPGX2GJDjs.NotificationService; exports.OAUTH_SCOPE_DISPLAY = _chunkNPGX2GJDjs.OAUTH_SCOPE_DISPLAY; exports.OAuthClient = _chunkNPGX2GJDjs.OAuthClient; exports.OAuthModule = _chunkNPGX2GJDjs.OAuthModule; exports.OAuthService = _chunkNPGX2GJDjs.OAuthService; exports.OfflineChangeSet = _chunkNPGX2GJDjs.OfflineChangeSet; exports.Passkey = _chunkNPGX2GJDjs.Passkey; exports.PasskeyAuthenticationOptions = _chunkNPGX2GJDjs.PasskeyAuthenticationOptions; exports.PasskeyAuthenticationOptionsModule = _chunkNPGX2GJDjs.PasskeyAuthenticationOptionsModule; exports.PasskeyModule = _chunkNPGX2GJDjs.PasskeyModule; exports.PasskeyRegistrationOptions = _chunkNPGX2GJDjs.PasskeyRegistrationOptions; exports.PasskeyRegistrationOptionsModule = _chunkNPGX2GJDjs.PasskeyRegistrationOptionsModule; exports.PasskeyRegistrationVerify = _chunkNPGX2GJDjs.PasskeyRegistrationVerify; exports.PasskeyRegistrationVerifyModule = _chunkNPGX2GJDjs.PasskeyRegistrationVerifyModule; exports.PasskeyRename = _chunkNPGX2GJDjs.PasskeyRename; exports.PasskeyRenameModule = _chunkNPGX2GJDjs.PasskeyRenameModule; exports.PasskeyVerifyLogin = _chunkNPGX2GJDjs.PasskeyVerifyLogin; exports.PasskeyVerifyLoginModule = _chunkNPGX2GJDjs.PasskeyVerifyLoginModule; exports.PaymentMethod = _chunkNPGX2GJDjs.PaymentMethod; exports.PendingRegistration = _chunkNPGX2GJDjs.PendingRegistration; exports.PendingRegistrationModule = _chunkNPGX2GJDjs.PendingRegistrationModule; exports.PermissionMapping = _chunkNPGX2GJDjs.PermissionMapping; exports.PermissionMappingModule = _chunkNPGX2GJDjs.PermissionMappingModule; exports.Push = _chunkNPGX2GJDjs.Push; exports.PushModule = _chunkNPGX2GJDjs.PushModule; exports.PushService = _chunkNPGX2GJDjs.PushService; exports.ROOT_SYNC_ENDPOINT = _chunkZ6T2575Ajs.ROOT_SYNC_ENDPOINT; exports.RbacMatrixModel = _chunkNPGX2GJDjs.RbacMatrixModel; exports.RbacMatrixModule = _chunkNPGX2GJDjs.RbacMatrixModule; exports.RbacService = _chunkPNCO3HMJjs.RbacService; exports.ReferralAdminReferral = _chunkNPGX2GJDjs.ReferralAdminReferral; exports.ReferralAdminReferrer = _chunkNPGX2GJDjs.ReferralAdminReferrer; exports.ReferralAdminService = _chunkNPGX2GJDjs.ReferralAdminService; exports.ReferralAdminSummary = _chunkNPGX2GJDjs.ReferralAdminSummary; exports.ReferralModule = _chunkNPGX2GJDjs.ReferralModule; exports.ReferralService = _chunkNPGX2GJDjs.ReferralService; exports.ReferralStats = _chunkNPGX2GJDjs.ReferralStats; exports.ReferralStatsModule = _chunkNPGX2GJDjs.ReferralStatsModule; exports.ReferralVisit = _chunkNPGX2GJDjs.ReferralVisit; exports.RehydrationFactory = _chunkZ6T2575Ajs.RehydrationFactory; exports.Role = _chunkNPGX2GJDjs.Role; exports.RoleFields = _chunkNPGX2GJDjs.RoleFields; exports.RoleModule = _chunkNPGX2GJDjs.RoleModule; exports.RoleService = _chunkNPGX2GJDjs.RoleService; exports.RootSync = _chunkZ6T2575Ajs.RootSync; exports.S3 = _chunkNPGX2GJDjs.S3; exports.S3Module = _chunkNPGX2GJDjs.S3Module; exports.S3Service = _chunkNPGX2GJDjs.S3Service; exports.SIGNUP_SOURCE_COOKIE = _chunkPNCO3HMJjs.SIGNUP_SOURCE_COOKIE; exports.SIGNUP_SOURCE_COOKIE_MAX_AGE = _chunkPNCO3HMJjs.SIGNUP_SOURCE_COOKIE_MAX_AGE; exports.STRIPE_COUPON_CODE_AUTOMATIC_SEGMENT = _chunkNPGX2GJDjs.STRIPE_COUPON_CODE_AUTOMATIC_SEGMENT; exports.STRIPE_COUPON_DETAIL_PAGE_URL = _chunkNPGX2GJDjs.STRIPE_COUPON_DETAIL_PAGE_URL; exports.STRIPE_COUPON_REFRESH_SEGMENT = _chunkNPGX2GJDjs.STRIPE_COUPON_REFRESH_SEGMENT; exports.StripeCoupon = _chunkNPGX2GJDjs.StripeCoupon; exports.StripeCouponCode = _chunkNPGX2GJDjs.StripeCouponCode; exports.StripeCouponCodeFields = _chunkNPGX2GJDjs.StripeCouponCodeFields; exports.StripeCouponCodeModule = _chunkNPGX2GJDjs.StripeCouponCodeModule; exports.StripeCouponCodeService = _chunkNPGX2GJDjs.StripeCouponCodeService; exports.StripeCouponFields = _chunkNPGX2GJDjs.StripeCouponFields; exports.StripeCouponModule = _chunkNPGX2GJDjs.StripeCouponModule; exports.StripeCouponOffer = _chunkNPGX2GJDjs.StripeCouponOffer; exports.StripeCouponOfferModule = _chunkNPGX2GJDjs.StripeCouponOfferModule; exports.StripeCouponService = _chunkNPGX2GJDjs.StripeCouponService; exports.StripeCustomer = _chunkNPGX2GJDjs.StripeCustomer; exports.StripeCustomerModule = _chunkNPGX2GJDjs.StripeCustomerModule; exports.StripeCustomerService = _chunkNPGX2GJDjs.StripeCustomerService; exports.StripeInvoice = _chunkNPGX2GJDjs.StripeInvoice; exports.StripeInvoiceModule = _chunkNPGX2GJDjs.StripeInvoiceModule; exports.StripeInvoiceService = _chunkNPGX2GJDjs.StripeInvoiceService; exports.StripePaymentMethodModule = _chunkNPGX2GJDjs.StripePaymentMethodModule; exports.StripePrice = _chunkNPGX2GJDjs.StripePrice; exports.StripePriceFields = _chunkNPGX2GJDjs.StripePriceFields; exports.StripePriceModule = _chunkNPGX2GJDjs.StripePriceModule; exports.StripePriceService = _chunkNPGX2GJDjs.StripePriceService; exports.StripeProduct = _chunkNPGX2GJDjs.StripeProduct; exports.StripeProductFields = _chunkNPGX2GJDjs.StripeProductFields; exports.StripeProductModule = _chunkNPGX2GJDjs.StripeProductModule; exports.StripeProductService = _chunkNPGX2GJDjs.StripeProductService; exports.StripePromotionCode = _chunkNPGX2GJDjs.StripePromotionCode; exports.StripePromotionCodeModule = _chunkNPGX2GJDjs.StripePromotionCodeModule; exports.StripePromotionCodeService = _chunkNPGX2GJDjs.StripePromotionCodeService; exports.StripeSubscription = _chunkNPGX2GJDjs.StripeSubscription; exports.StripeSubscriptionModule = _chunkNPGX2GJDjs.StripeSubscriptionModule; exports.StripeSubscriptionService = _chunkNPGX2GJDjs.StripeSubscriptionService; exports.StripeUsage = _chunkNPGX2GJDjs.StripeUsage; exports.StripeUsageModule = _chunkNPGX2GJDjs.StripeUsageModule; exports.StripeUsageService = _chunkNPGX2GJDjs.StripeUsageService; exports.SubscriptionStatus = _chunkNPGX2GJDjs.SubscriptionStatus; exports.TableOptions = _chunkNPGX2GJDjs.TableOptions; exports.TokenUsageAdminBreakdownModule = _chunkNPGX2GJDjs.TokenUsageAdminBreakdownModule; exports.TokenUsageAdminSummaryModule = _chunkNPGX2GJDjs.TokenUsageAdminSummaryModule; exports.TokenUsageAdminTimelineModule = _chunkNPGX2GJDjs.TokenUsageAdminTimelineModule; exports.TotpAuthenticator = _chunkNPGX2GJDjs.TotpAuthenticator; exports.TotpAuthenticatorModule = _chunkNPGX2GJDjs.TotpAuthenticatorModule; exports.TotpSetup = _chunkNPGX2GJDjs.TotpSetup; exports.TotpSetupModule = _chunkNPGX2GJDjs.TotpSetupModule; exports.TotpVerify = _chunkNPGX2GJDjs.TotpVerify; exports.TotpVerifyLogin = _chunkNPGX2GJDjs.TotpVerifyLogin; exports.TotpVerifyLoginModule = _chunkNPGX2GJDjs.TotpVerifyLoginModule; exports.TotpVerifyModule = _chunkNPGX2GJDjs.TotpVerifyModule; exports.TwoFactorChallenge = _chunkNPGX2GJDjs.TwoFactorChallenge; exports.TwoFactorChallengeModule = _chunkNPGX2GJDjs.TwoFactorChallengeModule; exports.TwoFactorEnable = _chunkNPGX2GJDjs.TwoFactorEnable; exports.TwoFactorEnableModule = _chunkNPGX2GJDjs.TwoFactorEnableModule; exports.TwoFactorService = _chunkNPGX2GJDjs.TwoFactorService; exports.TwoFactorStatus = _chunkNPGX2GJDjs.TwoFactorStatus; exports.TwoFactorStatusModule = _chunkNPGX2GJDjs.TwoFactorStatusModule; exports.User = _chunkNPGX2GJDjs.User; exports.UserFields = _chunkNPGX2GJDjs.UserFields; exports.UserModule = _chunkNPGX2GJDjs.UserModule; exports.UserService = _chunkNPGX2GJDjs.UserService; exports.VIEWPORT_COOKIE_NAME = _chunkNPGX2GJDjs.VIEWPORT_COOKIE_NAME; exports.Waitlist = _chunkNPGX2GJDjs.Waitlist; exports.WaitlistFields = _chunkNPGX2GJDjs.WaitlistFields; exports.WaitlistModule = _chunkNPGX2GJDjs.WaitlistModule; exports.WaitlistService = _chunkNPGX2GJDjs.WaitlistService; exports.WaitlistStats = _chunkNPGX2GJDjs.WaitlistStats; exports.WaitlistStatsModule = _chunkNPGX2GJDjs.WaitlistStatsModule; exports.analyticsModules = _chunkNPGX2GJDjs.analyticsModules; exports.captureSignupSource = _chunkPNCO3HMJjs.captureSignupSource; exports.checkPermissions = _chunkNPGX2GJDjs.checkPermissions; exports.checkPermissionsFromServer = _chunkNPGX2GJDjs.checkPermissionsFromServer; exports.clearLastApiMeta = _chunkNPGX2GJDjs.clearLastApiMeta; exports.clearLastApiTotal = _chunkNPGX2GJDjs.clearLastApiTotal; exports.cn = _chunkNPGX2GJDjs.cn; exports.composeRefs = _chunkNPGX2GJDjs.composeRefs; exports.configureAuth = _chunkNPGX2GJDjs.configureAuth; exports.configureI18n = _chunkNP3AFULUjs.configureI18n; exports.configureJsonApi = _chunkPNCO3HMJjs.configureJsonApi; exports.configureLogin = _chunkPNCO3HMJjs.configureLogin; exports.configureReferral = _chunkPNCO3HMJjs.configureReferral; exports.configureRoles = _chunkG4JR3SFVjs.configureRoles; exports.configureTokenUsage = _chunkNPGX2GJDjs.configureTokenUsage; exports.configureWaitlist = _chunkPNCO3HMJjs.configureWaitlist; exports.consumeAccountDeletionCancelled = _chunkNPGX2GJDjs.consumeAccountDeletionCancelled; exports.couponPlacesLeft = _chunkNPGX2GJDjs.couponPlacesLeft; exports.couponPlacesTotal = _chunkNPGX2GJDjs.couponPlacesTotal; exports.createJsonApiInclusion = _chunkNPGX2GJDjs.createJsonApiInclusion; exports.dateFormatLocale = _chunkHROKKUBQjs.dateFormatLocale; exports.dismissToast = _chunkNPGX2GJDjs.dismissToast; exports.entityObjectSchema = _chunkNPGX2GJDjs.entityObjectSchema; exports.exists = _chunkNPGX2GJDjs.exists; exports.formatCodiceFiscale = _chunkNPGX2GJDjs.formatCodiceFiscale; exports.formatCouponDiscount = _chunkNPGX2GJDjs.formatCouponDiscount; exports.formatCurrency = _chunkNPGX2GJDjs.formatCurrency; exports.formatDate = _chunkHROKKUBQjs.formatDate; exports.formatDateStyle = _chunkHROKKUBQjs.formatDateStyle; exports.formatFixed = _chunkNPGX2GJDjs.formatFixed; exports.formatInterval = _chunkNPGX2GJDjs.formatInterval; exports.formatLocalDate = _chunkHROKKUBQjs.formatLocalDate; exports.formatPartitaIva = _chunkNPGX2GJDjs.formatPartitaIva; exports.formatRelativeDate = _chunkHROKKUBQjs.formatRelativeDate; exports.getApiUrl = _chunkPNCO3HMJjs.getApiUrl; exports.getAppUrl = _chunkPNCO3HMJjs.getAppUrl; exports.getBootstrapper = _chunkLNO2JLU3js.getBootstrapper; exports.getClientGlobalErrorHandler = _chunkNPGX2GJDjs.getClientGlobalErrorHandler; exports.getGlobalErrorHandler = _chunkNPGX2GJDjs.getGlobalErrorHandler; exports.getIcon = _chunkNPGX2GJDjs.getIcon; exports.getIconByModule = _chunkNPGX2GJDjs.getIconByModule; exports.getIconByModuleName = _chunkNPGX2GJDjs.getIconByModuleName; exports.getInitials = _chunkNPGX2GJDjs.getInitials; exports.getLastApiMeta = _chunkNPGX2GJDjs.getLastApiMeta; exports.getLastApiTotal = _chunkNPGX2GJDjs.getLastApiTotal; exports.getLucideIcon = _chunkNPGX2GJDjs.getLucideIcon; exports.getLucideIconByModule = _chunkNPGX2GJDjs.getLucideIconByModule; exports.getLucideIconByModuleName = _chunkNPGX2GJDjs.getLucideIconByModuleName; exports.getPublicApiUrl = _chunkPNCO3HMJjs.getPublicApiUrl; exports.getReferralConfig = _chunkPNCO3HMJjs.getReferralConfig; exports.getRoleId = _chunkG4JR3SFVjs.getRoleId; exports.getSignupSource = _chunkPNCO3HMJjs.getSignupSource; exports.getStripePublishableKey = _chunkPNCO3HMJjs.getStripePublishableKey; exports.getTableComponents = _chunkNPGX2GJDjs.getTableComponents; exports.getTableOptions = _chunkNPGX2GJDjs.getTableOptions; exports.getTokenHandler = _chunkNPGX2GJDjs.getTokenHandler; exports.getTokenUsageCurrency = _chunkNPGX2GJDjs.getTokenUsageCurrency; exports.getTrackablePages = _chunkPNCO3HMJjs.getTrackablePages; exports.getValueFromPath = _chunkNPGX2GJDjs.getValueFromPath; exports.getWaitlistConfig = _chunkPNCO3HMJjs.getWaitlistConfig; exports.handbookPageContent = _chunkNPGX2GJDjs.handbookPageContent; exports.handbookPageSummary = _chunkNPGX2GJDjs.handbookPageSummary; exports.handbookPageTitle = _chunkNPGX2GJDjs.handbookPageTitle; exports.handbookSectionSummary = _chunkNPGX2GJDjs.handbookSectionSummary; exports.handbookSectionTitle = _chunkNPGX2GJDjs.handbookSectionTitle; exports.hasBootstrapper = _chunkLNO2JLU3js.hasBootstrapper; exports.isCreditWarningActive = _chunkNPGX2GJDjs.isCreditWarningActive; exports.isDiscordAuthEnabled = _chunkPNCO3HMJjs.isDiscordAuthEnabled; exports.isReferralEnabled = _chunkPNCO3HMJjs.isReferralEnabled; exports.isRemoteImageSrc = _chunkNPGX2GJDjs.isRemoteImageSrc; exports.isRolesConfigured = _chunkG4JR3SFVjs.isRolesConfigured; exports.markAccountDeletionCancelled = _chunkNPGX2GJDjs.markAccountDeletionCancelled; exports.mergeMessages = _chunkNPGX2GJDjs.mergeMessages; exports.offlineModules = _chunkNPGX2GJDjs.offlineModules; exports.readSignupSourceFromLocation = _chunkPNCO3HMJjs.readSignupSourceFromLocation; exports.referralAdminModules = _chunkNPGX2GJDjs.referralAdminModules; exports.rehydrate = _chunkNPGX2GJDjs.rehydrate; exports.rehydrateList = _chunkNPGX2GJDjs.rehydrateList; exports.resetBootstrapStore = _chunkLNO2JLU3js.resetBootstrapStore; exports.resolveChangePlanTarget = _chunkNPGX2GJDjs.resolveChangePlanTarget; exports.resolveDateLocale = _chunkHROKKUBQjs.resolveDateLocale; exports.setBootstrapper = _chunkLNO2JLU3js.setBootstrapper; exports.setClientGlobalErrorHandler = _chunkNPGX2GJDjs.setClientGlobalErrorHandler; exports.setGlobalErrorHandler = _chunkNPGX2GJDjs.setGlobalErrorHandler; exports.showCustomToast = _chunkNPGX2GJDjs.showCustomToast; exports.showError = _chunkNPGX2GJDjs.showError; exports.showToast = _chunkNPGX2GJDjs.showToast; exports.toPromotionCodeResult = _chunkNPGX2GJDjs.toPromotionCodeResult; exports.tokenUsageModules = _chunkNPGX2GJDjs.tokenUsageModules; exports.translateData = _chunkLNO2JLU3js.translateData; exports.translateResponse = _chunkLNO2JLU3js.translateResponse; exports.tryBootstrap = _chunkLNO2JLU3js.tryBootstrap; exports.useComposedRefs = _chunkNPGX2GJDjs.useComposedRefs; exports.useIsMobile = _chunkNPGX2GJDjs.useIsMobile; exports.userObjectSchema = _chunkNPGX2GJDjs.userObjectSchema; exports.usesTwelveHourClock = _chunkHROKKUBQjs.usesTwelveHourClock; exports.validateCodiceFiscale = _chunkNPGX2GJDjs.validateCodiceFiscale; exports.validateItalianTaxCode = _chunkNPGX2GJDjs.validateItalianTaxCode; exports.validatePartitaIva = _chunkNPGX2GJDjs.validatePartitaIva;
746
746
  //# sourceMappingURL=index.js.map
package/dist/index.mjs CHANGED
@@ -20,7 +20,7 @@ import {
20
20
  isDiscordAuthEnabled,
21
21
  isReferralEnabled,
22
22
  readSignupSourceFromLocation
23
- } from "./chunk-JL6XL5NK.mjs";
23
+ } from "./chunk-AMQFKCAX.mjs";
24
24
  import {
25
25
  configureRoles,
26
26
  getRoleId,
@@ -338,7 +338,7 @@ import {
338
338
  validateCodiceFiscale,
339
339
  validateItalianTaxCode,
340
340
  validatePartitaIva
341
- } from "./chunk-HNK2O6YE.mjs";
341
+ } from "./chunk-4JVLLBRS.mjs";
342
342
  import {
343
343
  dateFormatLocale,
344
344
  formatDate,
@@ -1 +1 @@
1
- {"version":3,"file":"ServerSession.d.ts","sourceRoot":"","sources":["../../src/server/ServerSession.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAA8B,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAI3F,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,qGAAqG;IACrG,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,aAAa;WACX,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;WAkBhC,QAAQ;WAQR,SAAS;WAKT,MAAM;WAKN,eAAe,CAAC,CAAC,SAAS,qBAAqB,EAAE,MAAM,EAAE;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE;WAIlG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WASzC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAS/C,qBAAqB,CAAC,CAAC,SAAS,qBAAqB,EAAE,MAAM,EAAE;QAC1E,MAAM,EAAE,CAAC,CAAC;QACV,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,GAAG,OAAO,CAAC,OAAO,CAAC;CA0CrB"}
1
+ {"version":3,"file":"ServerSession.d.ts","sourceRoot":"","sources":["../../src/server/ServerSession.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAA8B,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAS3F,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,qGAAqG;IACrG,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,aAAa;WACX,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;WAkBhC,QAAQ;WAQR,SAAS;WAKT,MAAM;WAKN,eAAe,CAAC,CAAC,SAAS,qBAAqB,EAAE,MAAM,EAAE;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE;WAIlG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WASzC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAS/C,qBAAqB,CAAC,CAAC,SAAS,qBAAqB,EAAE,MAAM,EAAE;QAC1E,MAAM,EAAE,CAAC,CAAC;QACV,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,GAAG,OAAO,CAAC,OAAO,CAAC;CAoBrB"}
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkNQL2NDKHjs = require('../chunk-NQL2NDKH.js');
7
+ var _chunk5H25LM2Zjs = require('../chunk-5H25LM2Z.js');
8
8
 
9
9
 
10
10
  var _chunkIK65TDQHjs = require('../chunk-IK65TDQH.js');
@@ -36,7 +36,7 @@ require('../chunk-G4JR3SFV.js');
36
36
 
37
37
 
38
38
 
39
- var _chunk5XP5G45Bjs = require('../chunk-5XP5G45B.js');
39
+ var _chunkNPGX2GJDjs = require('../chunk-NPGX2GJD.js');
40
40
  require('../chunk-HROKKUBQ.js');
41
41
  require('../chunk-Z6T2575A.js');
42
42
  require('../chunk-3VNDFKT7.js');
@@ -78,5 +78,5 @@ require('../chunk-7QVYU63E.js');
78
78
 
79
79
 
80
80
 
81
- exports.CACHE_PROFILES = _chunkIK65TDQHjs.CACHE_PROFILES; exports.DEFAULT_SQLITE_MODULE_URL = _chunkWUNSG3INjs.DEFAULT_SQLITE_MODULE_URL; exports.OFFLINE_SQLITE_FILES = _chunkWUNSG3INjs.OFFLINE_SQLITE_FILES; exports.ServerAuthService = _chunk5XP5G45Bjs.AuthService; exports.ServerCompanyService = _chunk5XP5G45Bjs.CompanyService; exports.ServerContentService = _chunk5XP5G45Bjs.ContentService; exports.ServerFeatureService = _chunk5XP5G45Bjs.FeatureService; exports.ServerJsonApiDelete = _chunkN3NQS7X6js.ServerJsonApiDelete; exports.ServerJsonApiGet = _chunkN3NQS7X6js.ServerJsonApiGet; exports.ServerJsonApiPatch = _chunkN3NQS7X6js.ServerJsonApiPatch; exports.ServerJsonApiPost = _chunkN3NQS7X6js.ServerJsonApiPost; exports.ServerJsonApiPut = _chunkN3NQS7X6js.ServerJsonApiPut; exports.ServerNotificationService = _chunk5XP5G45Bjs.NotificationService; exports.ServerPushService = _chunk5XP5G45Bjs.PushService; exports.ServerRoleService = _chunk5XP5G45Bjs.RoleService; exports.ServerS3Service = _chunk5XP5G45Bjs.S3Service; exports.ServerSession = _chunkNQL2NDKHjs.ServerSession; exports.ServerUserService = _chunk5XP5G45Bjs.UserService; exports.buildOfflineManifest = _chunkNQL2NDKHjs.buildOfflineManifest; exports.configureServerJsonApi = _chunkN3NQS7X6js.configureServerJsonApi; exports.getServerApiUrl = _chunkN3NQS7X6js.getServerApiUrl; exports.getServerAppUrl = _chunkN3NQS7X6js.getServerAppUrl; exports.getServerToken = _chunkYUO55Q5Ajs.getServerToken; exports.getServerTrackablePages = _chunkN3NQS7X6js.getServerTrackablePages; exports.invalidateCacheTag = _chunkNQL2NDKHjs.invalidateCacheTag; exports.invalidateCacheTags = _chunkNQL2NDKHjs.invalidateCacheTags; exports.serverRequest = _chunk6TUB7Y6Tjs.serverRequest; exports.updateCacheTag = _chunkNQL2NDKHjs.updateCacheTag;
81
+ exports.CACHE_PROFILES = _chunkIK65TDQHjs.CACHE_PROFILES; exports.DEFAULT_SQLITE_MODULE_URL = _chunkWUNSG3INjs.DEFAULT_SQLITE_MODULE_URL; exports.OFFLINE_SQLITE_FILES = _chunkWUNSG3INjs.OFFLINE_SQLITE_FILES; exports.ServerAuthService = _chunkNPGX2GJDjs.AuthService; exports.ServerCompanyService = _chunkNPGX2GJDjs.CompanyService; exports.ServerContentService = _chunkNPGX2GJDjs.ContentService; exports.ServerFeatureService = _chunkNPGX2GJDjs.FeatureService; exports.ServerJsonApiDelete = _chunkN3NQS7X6js.ServerJsonApiDelete; exports.ServerJsonApiGet = _chunkN3NQS7X6js.ServerJsonApiGet; exports.ServerJsonApiPatch = _chunkN3NQS7X6js.ServerJsonApiPatch; exports.ServerJsonApiPost = _chunkN3NQS7X6js.ServerJsonApiPost; exports.ServerJsonApiPut = _chunkN3NQS7X6js.ServerJsonApiPut; exports.ServerNotificationService = _chunkNPGX2GJDjs.NotificationService; exports.ServerPushService = _chunkNPGX2GJDjs.PushService; exports.ServerRoleService = _chunkNPGX2GJDjs.RoleService; exports.ServerS3Service = _chunkNPGX2GJDjs.S3Service; exports.ServerSession = _chunk5H25LM2Zjs.ServerSession; exports.ServerUserService = _chunkNPGX2GJDjs.UserService; exports.buildOfflineManifest = _chunk5H25LM2Zjs.buildOfflineManifest; exports.configureServerJsonApi = _chunkN3NQS7X6js.configureServerJsonApi; exports.getServerApiUrl = _chunkN3NQS7X6js.getServerApiUrl; exports.getServerAppUrl = _chunkN3NQS7X6js.getServerAppUrl; exports.getServerToken = _chunkYUO55Q5Ajs.getServerToken; exports.getServerTrackablePages = _chunkN3NQS7X6js.getServerTrackablePages; exports.invalidateCacheTag = _chunk5H25LM2Zjs.invalidateCacheTag; exports.invalidateCacheTags = _chunk5H25LM2Zjs.invalidateCacheTags; exports.serverRequest = _chunk6TUB7Y6Tjs.serverRequest; exports.updateCacheTag = _chunk5H25LM2Zjs.updateCacheTag;
82
82
  //# sourceMappingURL=index.js.map
@@ -4,7 +4,7 @@ import {
4
4
  invalidateCacheTag,
5
5
  invalidateCacheTags,
6
6
  updateCacheTag
7
- } from "../chunk-FDKAVSZ6.mjs";
7
+ } from "../chunk-AEBZ67JJ.mjs";
8
8
  import {
9
9
  CACHE_PROFILES
10
10
  } from "../chunk-T7SAW3UW.mjs";
@@ -36,7 +36,7 @@ import {
36
36
  RoleService,
37
37
  S3Service,
38
38
  UserService
39
- } from "../chunk-HNK2O6YE.mjs";
39
+ } from "../chunk-4JVLLBRS.mjs";
40
40
  import "../chunk-RW6XZGZG.mjs";
41
41
  import "../chunk-W7U6O3OE.mjs";
42
42
  import "../chunk-47HNJQ7U.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carlonicora/nextjs-jsonapi",
3
- "version": "6.31.0",
3
+ "version": "6.32.1",
4
4
  "description": "Next.js JSON:API client with server/client support and caching",
5
5
  "author": "Carlo Nicora",
6
6
  "license": "GPL-3.0-or-later",
@@ -18,9 +18,15 @@ interface LogoutProps {
18
18
  * logout: storage, cookies and the current page are left as they are.
19
19
  */
20
20
  beforeLogout?: () => Promise<boolean>;
21
+ /**
22
+ * Where to go once logged out: a path inside this app, already locale-resolved
23
+ * (the app's `getPathname` output), e.g. a link the user opened while logged in
24
+ * with another account. Omitted, the home page.
25
+ */
26
+ redirectTo?: string;
21
27
  }
22
28
 
23
- export function Logout({ storageKeys, beforeLogout }: LogoutProps) {
29
+ export function Logout({ storageKeys, beforeLogout, redirectTo }: LogoutProps) {
24
30
  const generateUrl = usePageUrlGenerator();
25
31
 
26
32
  useEffect(() => {
@@ -33,7 +39,7 @@ export function Logout({ storageKeys, beforeLogout }: LogoutProps) {
33
39
  // clearing it is this component's job — never the consuming app's.
34
40
  clearClientStorage([CURRENT_USER_STORAGE_KEY, ...(storageKeys ?? [])]);
35
41
  await AuthService.logout();
36
- window.location.href = generateUrl({ page: `/` });
42
+ window.location.href = redirectTo ?? generateUrl({ page: `/` });
37
43
  };
38
44
  logOut();
39
45
  }, []);
@@ -20,9 +20,6 @@ export function RefreshUser() {
20
20
  companyId: fullUser.company?.id,
21
21
  roles: fullUser.roles.map((role) => role.id),
22
22
  features: fullUser.company?.features?.map((feature) => feature.id) ?? [],
23
- modules: fullUser.modules.map((module) => {
24
- return { id: module.id, permissions: module.permissions };
25
- }),
26
23
  };
27
24
 
28
25
  await getTokenHandler()?.updateToken(token);
@@ -8,15 +8,6 @@ export interface TokenParams {
8
8
  companyId?: string;
9
9
  roles?: string[];
10
10
  features?: string[];
11
- modules?: {
12
- id: string;
13
- permissions: {
14
- create: boolean | string;
15
- read: boolean | string;
16
- update: boolean | string;
17
- delete: boolean | string;
18
- };
19
- }[];
20
11
  }
21
12
 
22
13
  /**
@@ -59,10 +59,6 @@ export class AuthService extends AbstractService {
59
59
  companyId: auth.user.company?.id,
60
60
  roles: auth.user.roles.map((role) => role.id),
61
61
  features: auth.user.company?.features?.map((feature) => feature.id) ?? [],
62
- modules: auth.user.modules.map((module) => ({
63
- id: module.id,
64
- permissions: module.permissions,
65
- })),
66
62
  });
67
63
  }
68
64
 
@@ -169,10 +165,6 @@ export class AuthService extends AbstractService {
169
165
  companyId: auth.user.company?.id,
170
166
  roles: auth.user.roles.map((role) => role.id),
171
167
  features: auth.user.company?.features?.map((feature) => feature.id) ?? [],
172
- modules: auth.user.modules.map((module) => ({
173
- id: module.id,
174
- permissions: module.permissions,
175
- })),
176
168
  });
177
169
  }
178
170
  }
@@ -229,10 +229,6 @@ export class TwoFactorService extends AbstractService {
229
229
  companyId: auth.user.company?.id,
230
230
  roles: auth.user.roles.map((role) => role.id),
231
231
  features: auth.user.company?.features?.map((feature) => feature.id) ?? [],
232
- modules: auth.user.modules.map((module) => ({
233
- id: module.id,
234
- permissions: module.permissions,
235
- })),
236
232
  });
237
233
  }
238
234
 
@@ -2,7 +2,6 @@
2
2
 
3
3
  import { ENV } from "../../../core/env";
4
4
  import { cookies } from "next/headers";
5
- import { gzip } from "pako";
6
5
 
7
6
  export async function updateToken(params: {
8
7
  token?: string;
@@ -11,15 +10,6 @@ export async function updateToken(params: {
11
10
  companyId?: string;
12
11
  roles?: string[];
13
12
  features?: string[];
14
- modules?: {
15
- id: string;
16
- permissions: {
17
- create: boolean | string;
18
- read: boolean | string;
19
- update: boolean | string;
20
- delete: boolean | string;
21
- };
22
- }[];
23
13
  }): Promise<void> {
24
14
  const isProduction = ENV.IS_PRODUCTION;
25
15
 
@@ -81,19 +71,6 @@ export async function updateToken(params: {
81
71
  secure: isProduction,
82
72
  expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 365),
83
73
  });
84
-
85
- if (params.modules) {
86
- const compressedValue = Buffer.from(gzip(JSON.stringify(params.modules))).toString("base64");
87
-
88
- (await cookies()).set({
89
- name: "modules",
90
- value: JSON.stringify(compressedValue),
91
- httpOnly: true,
92
- path: "/",
93
- secure: isProduction,
94
- expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 365),
95
- });
96
- }
97
74
  }
98
75
 
99
76
  export async function removeToken(): Promise<void> {
@@ -115,6 +92,7 @@ export async function removeToken(): Promise<void> {
115
92
  (await cookies()).delete({
116
93
  name: "features",
117
94
  });
95
+ // Clears the modules cookie that sessions from older versions still carry.
118
96
  (await cookies()).delete({
119
97
  name: "modules",
120
98
  });
@@ -173,10 +173,6 @@ export const CurrentUserProvider = ({ children }: { children: React.ReactNode })
173
173
  companyId: fullUser.company?.id,
174
174
  roles: fullUser.roles.map((role) => role.id),
175
175
  features: fullUser.company?.features?.map((feature) => feature.id) ?? [],
176
- modules: fullUser.modules.map((module) => ({
177
- id: module.id,
178
- permissions: module.permissions,
179
- })),
180
176
  });
181
177
  }
182
178
 
@@ -233,6 +233,8 @@ describe("CurrentUserProvider", () => {
233
233
  await new Promise((resolve) => setTimeout(resolve, 50));
234
234
 
235
235
  expect(updateToken).toHaveBeenCalledTimes(1);
236
+ // Modules no longer travel in a cookie: the server reads them from the api.
237
+ expect((updateToken.mock.calls[0] as unknown[])[0]).not.toHaveProperty("modules");
236
238
  expect(getByTestId("current-user-id").textContent).toBe("old");
237
239
 
238
240
  resolveUpdateToken();
@@ -1,11 +1,17 @@
1
1
  import { cookies, headers } from "next/headers";
2
2
  import { redirect } from "next/navigation";
3
3
  import { userAgent } from "next/server";
4
- import { ungzip } from "pako";
4
+ import { cache } from "react";
5
+ import { UserService } from "../features/user/data/user.service";
5
6
  import { Action, checkPermissionsFromServer, ModuleWithPermissions } from "../permissions";
6
7
  import { getRoleId } from "../roles/config";
7
8
  import { VIEWPORT_COOKIE_NAME } from "../utils/use-mobile";
8
9
 
10
+ // The user's modules come from the api once per request. They no longer travel in a
11
+ // cookie: a non-admin user's scoped permissions push it past the browser's 4096-byte limit.
12
+ // No `cache` option on the request: it carries the user's token.
13
+ const getCachedFullUser = cache(async () => UserService.findFullUser());
14
+
9
15
  export interface SessionSnapshot {
10
16
  isLogged: boolean;
11
17
  isAdministrator: boolean;
@@ -88,37 +94,15 @@ export class ServerSession {
88
94
  if (features && !features.includes(params.module.feature)) return false;
89
95
  }
90
96
 
91
- const rawModules = cookieStore.get("modules")?.value;
92
- if (!rawModules) return false;
93
-
94
- const modules: {
95
- id: string;
96
- permissions: {
97
- create: boolean | string;
98
- read: boolean | string;
99
- update: boolean | string;
100
- delete: boolean | string;
101
- };
102
- }[] = JSON.parse(ungzip(Buffer.from(rawModules, "base64"), { toText: true }));
103
-
104
- const selectedModule = modules.find((module) => module.id === params.module.moduleId);
97
+ const user = await getCachedFullUser();
98
+ const selectedModule = user.modules.find((module) => module.id === params.module.moduleId);
105
99
 
106
100
  return checkPermissionsFromServer({
107
101
  module: params.module,
108
102
  action: params.action,
109
103
  data: params.data,
110
104
  userId: await this.userId(),
111
- selectedModule: selectedModule,
105
+ selectedModule: selectedModule ? { id: selectedModule.id, permissions: selectedModule.permissions } : undefined,
112
106
  });
113
-
114
- // if (!selectedModule) return false;
115
-
116
- // if (!selectedModule.permissions[params.action]) return false;
117
- // if (typeof selectedModule.permissions[params.action] === "boolean")
118
- // return selectedModule.permissions[params.action] as boolean;
119
-
120
- // if (!params.data) return false;
121
-
122
- // return params.data[selectedModule.permissions[params.action] as string] === this.userId;
123
107
  }
124
108
  }
@@ -0,0 +1,78 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+
3
+ /**
4
+ * `hasPermissionToModule` reads the user's modules from `UserService.findFullUser()`,
5
+ * never from a `modules` cookie: a non-admin user's scoped permissions made that
6
+ * cookie larger than the browser's 4096-byte limit, so it was dropped and every
7
+ * check denied. No test here sets a `modules` cookie.
8
+ */
9
+ const mocks = vi.hoisted(() => ({
10
+ cookies: {} as Record<string, string>,
11
+ findFullUser: vi.fn(),
12
+ }));
13
+
14
+ vi.mock("next/headers", () => ({
15
+ cookies: async () => ({
16
+ get: (name: string) => (name in mocks.cookies ? { name, value: mocks.cookies[name] } : undefined),
17
+ }),
18
+ headers: async () => new Headers(),
19
+ }));
20
+ vi.mock("next/server", () => ({ userAgent: vi.fn(() => ({ device: {} })) }));
21
+ vi.mock("next/navigation", () => ({ redirect: vi.fn() }));
22
+ vi.mock("../../features/user/data/user.service", () => ({
23
+ UserService: { findFullUser: mocks.findFullUser },
24
+ }));
25
+
26
+ import { Action, type ModuleWithPermissions } from "../../permissions";
27
+ import { ServerSession } from "../ServerSession";
28
+
29
+ const MODULE = { name: "proceedings", model: class {}, moduleId: "module-proceeding" } as ModuleWithPermissions;
30
+
31
+ const userWith = (permissions: Record<string, boolean | string>) => ({
32
+ id: "user-1",
33
+ modules: [
34
+ {
35
+ id: "module-proceeding",
36
+ permissions: { create: false, read: false, update: false, delete: false, ...permissions },
37
+ },
38
+ ],
39
+ });
40
+
41
+ describe("ServerSession.hasPermissionToModule", () => {
42
+ beforeEach(() => {
43
+ mocks.cookies = { userId: "user-1" };
44
+ mocks.findFullUser.mockReset();
45
+ });
46
+
47
+ it("allows read when the full user's module grants read: true", async () => {
48
+ mocks.findFullUser.mockResolvedValue(userWith({ read: true }));
49
+
50
+ await expect(ServerSession.hasPermissionToModule({ module: MODULE, action: Action.Read })).resolves.toBe(true);
51
+ expect(mocks.findFullUser).toHaveBeenCalled();
52
+ });
53
+
54
+ it("allows read for a scoped permission when no data is passed", async () => {
55
+ mocks.findFullUser.mockResolvedValue(userWith({ read: "owner|proceeding.owner|proceeding.users" }));
56
+
57
+ await expect(ServerSession.hasPermissionToModule({ module: MODULE, action: Action.Read })).resolves.toBe(true);
58
+ });
59
+
60
+ it("denies when the full user lacks the module", async () => {
61
+ mocks.findFullUser.mockResolvedValue({ id: "user-1", modules: [] });
62
+
63
+ await expect(ServerSession.hasPermissionToModule({ module: MODULE, action: Action.Read })).resolves.toBe(false);
64
+ });
65
+
66
+ it("denies without loading the user when the features cookie lacks the module's feature", async () => {
67
+ mocks.cookies.features = JSON.stringify(["feature-other"]);
68
+ mocks.findFullUser.mockResolvedValue(userWith({ read: true }));
69
+
70
+ await expect(
71
+ ServerSession.hasPermissionToModule({
72
+ module: { ...MODULE, feature: "feature-proceedings" } as ModuleWithPermissions,
73
+ action: Action.Read,
74
+ }),
75
+ ).resolves.toBe(false);
76
+ expect(mocks.findFullUser).not.toHaveBeenCalled();
77
+ });
78
+ });