@carlonicora/nextjs-jsonapi 6.10.2 → 6.12.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.
Files changed (113) hide show
  1. package/dist/{BlockNoteEditor-LX7NMBV6.js → BlockNoteEditor-R2SLOYS6.js} +84 -43
  2. package/dist/BlockNoteEditor-R2SLOYS6.js.map +1 -0
  3. package/dist/{BlockNoteEditor-7GQWHXBC.mjs → BlockNoteEditor-ZJPGGUQQ.mjs} +61 -20
  4. package/dist/BlockNoteEditor-ZJPGGUQQ.mjs.map +1 -0
  5. package/dist/{BlockNoteViewer-NXV5PKR4.js → BlockNoteViewer-FLUHEXE6.js} +3 -3
  6. package/dist/{BlockNoteViewer-NXV5PKR4.js.map → BlockNoteViewer-FLUHEXE6.js.map} +1 -1
  7. package/dist/{BlockNoteViewer-D3Y4FUST.mjs → BlockNoteViewer-UCA3LV3N.mjs} +2 -2
  8. package/dist/billing/index.js +491 -491
  9. package/dist/billing/index.mjs +3 -3
  10. package/dist/{chunk-QB2XU64X.mjs → chunk-6RLATJ2L.mjs} +2 -2
  11. package/dist/{chunk-62P4KIR2.mjs → chunk-BGLOFZ3K.mjs} +282 -2
  12. package/dist/chunk-BGLOFZ3K.mjs.map +1 -0
  13. package/dist/{chunk-3I5JCFPY.js → chunk-BXR36J25.js} +1647 -969
  14. package/dist/chunk-BXR36J25.js.map +1 -0
  15. package/dist/{chunk-62VVBUIL.js → chunk-FNPXCYHO.js} +8 -8
  16. package/dist/{chunk-62VVBUIL.js.map → chunk-FNPXCYHO.js.map} +1 -1
  17. package/dist/{chunk-TOPGUZSX.js → chunk-OHJSI6L2.js} +4 -4
  18. package/dist/{chunk-TOPGUZSX.js.map → chunk-OHJSI6L2.js.map} +1 -1
  19. package/dist/{chunk-LDUTS7SJ.mjs → chunk-SQUMPLNN.mjs} +1281 -603
  20. package/dist/chunk-SQUMPLNN.mjs.map +1 -0
  21. package/dist/{chunk-Z4OVEA3N.js → chunk-YGEOX2XX.js} +283 -3
  22. package/dist/chunk-YGEOX2XX.js.map +1 -0
  23. package/dist/{chunk-GHAZOQTT.mjs → chunk-YP6W4AB5.mjs} +2 -2
  24. package/dist/client/index.js +4 -4
  25. package/dist/client/index.mjs +3 -3
  26. package/dist/components/index.d.mts +88 -29
  27. package/dist/components/index.d.ts +88 -29
  28. package/dist/components/index.js +10 -4
  29. package/dist/components/index.js.map +1 -1
  30. package/dist/components/index.mjs +9 -3
  31. package/dist/contexts/index.js +4 -4
  32. package/dist/contexts/index.mjs +3 -3
  33. package/dist/core/index.d.mts +159 -3
  34. package/dist/core/index.d.ts +159 -3
  35. package/dist/core/index.js +14 -2
  36. package/dist/core/index.js.map +1 -1
  37. package/dist/core/index.mjs +13 -1
  38. package/dist/email-automations/index.js +93 -93
  39. package/dist/email-automations/index.mjs +3 -3
  40. package/dist/features/analytics/index.js +120 -122
  41. package/dist/features/analytics/index.js.map +1 -1
  42. package/dist/features/analytics/index.mjs +7 -9
  43. package/dist/features/analytics/index.mjs.map +1 -1
  44. package/dist/features/analytics/server.js +4 -4
  45. package/dist/features/analytics/server.mjs +2 -2
  46. package/dist/features/blog/index.js +150 -150
  47. package/dist/features/blog/index.mjs +3 -3
  48. package/dist/features/blog/server.js +16 -16
  49. package/dist/features/blog/server.mjs +1 -1
  50. package/dist/features/help/index.js +37 -37
  51. package/dist/features/help/index.mjs +3 -3
  52. package/dist/features/tokenusage/index.js +126 -128
  53. package/dist/features/tokenusage/index.js.map +1 -1
  54. package/dist/features/tokenusage/index.mjs +14 -16
  55. package/dist/features/tokenusage/index.mjs.map +1 -1
  56. package/dist/index.d.mts +2 -2
  57. package/dist/index.d.ts +2 -2
  58. package/dist/index.js +15 -3
  59. package/dist/index.js.map +1 -1
  60. package/dist/index.mjs +14 -2
  61. package/dist/{HandbookSectionInterface-5I57rC1b.d.mts → referral-admin.interface-C87ApGMR.d.mts} +41 -1
  62. package/dist/{HandbookSectionInterface-IDYEzQMi.d.ts → referral-admin.interface-CMwl5NiV.d.ts} +41 -1
  63. package/dist/server/index.js +3 -3
  64. package/dist/server/index.mjs +2 -2
  65. package/messages/en.json +78 -1
  66. package/messages/it.json +78 -1
  67. package/package.json +8 -3
  68. package/src/components/editors/BlockNoteEditor.tsx +52 -20
  69. package/src/components/editors/__tests__/blocknote-editor-options.spec.ts +81 -0
  70. package/src/components/editors/blockNoteEditorOptions.ts +58 -0
  71. package/src/core/index.ts +2 -0
  72. package/src/core/registry/ModuleRegistry.ts +5 -0
  73. package/src/features/referral/__tests__/referral-admin-models.spec.ts +122 -0
  74. package/src/features/referral/__tests__/referral-admin-service.spec.ts +70 -0
  75. package/src/features/referral/__tests__/referral-code-capture.spec.tsx +105 -0
  76. package/src/features/referral/__tests__/referral-invite-errors.spec.tsx +82 -0
  77. package/src/features/referral/__tests__/referral-visit-service.spec.ts +47 -0
  78. package/src/features/referral/__tests__/referrals-admin-container.spec.tsx +230 -0
  79. package/src/features/referral/components/ReferralCodeCapture.tsx +3 -0
  80. package/src/features/referral/components/ReferralDialog.tsx +9 -13
  81. package/src/features/referral/components/ReferralWidget.tsx +75 -45
  82. package/src/features/referral/components/ReferralsAdminFunnel.tsx +74 -0
  83. package/src/features/referral/components/ReferralsAdminTiles.tsx +128 -0
  84. package/src/features/referral/components/containers/ReferralsAdminContainer.tsx +205 -0
  85. package/src/features/referral/components/index.ts +3 -0
  86. package/src/features/referral/data/ReferralAdminReferral.ts +65 -0
  87. package/src/features/referral/data/ReferralAdminReferrer.ts +65 -0
  88. package/src/features/referral/data/ReferralAdminService.ts +51 -0
  89. package/src/features/referral/data/ReferralAdminSummary.ts +60 -0
  90. package/src/features/referral/data/ReferralService.ts +20 -0
  91. package/src/features/referral/data/ReferralVisit.ts +23 -0
  92. package/src/features/referral/data/index.ts +5 -0
  93. package/src/features/referral/hooks/index.ts +2 -0
  94. package/src/features/referral/hooks/useReferralAdminReferralTableStructure.tsx +127 -0
  95. package/src/features/referral/hooks/useReferralAdminReferrerTableStructure.tsx +229 -0
  96. package/src/features/referral/hooks/useReferralInvite.ts +2 -0
  97. package/src/features/referral/index.ts +1 -0
  98. package/src/features/referral/interfaces/index.ts +1 -0
  99. package/src/features/referral/interfaces/referral-admin.interface.ts +45 -0
  100. package/src/features/referral/referral-admin.modules.ts +32 -0
  101. package/dist/BlockNoteEditor-7GQWHXBC.mjs.map +0 -1
  102. package/dist/BlockNoteEditor-LX7NMBV6.js.map +0 -1
  103. package/dist/chunk-3I5JCFPY.js.map +0 -1
  104. package/dist/chunk-62P4KIR2.mjs.map +0 -1
  105. package/dist/chunk-D6UX37IA.mjs +0 -115
  106. package/dist/chunk-D6UX37IA.mjs.map +0 -1
  107. package/dist/chunk-KEHP2OBQ.js +0 -115
  108. package/dist/chunk-KEHP2OBQ.js.map +0 -1
  109. package/dist/chunk-LDUTS7SJ.mjs.map +0 -1
  110. package/dist/chunk-Z4OVEA3N.js.map +0 -1
  111. /package/dist/{BlockNoteViewer-D3Y4FUST.mjs.map → BlockNoteViewer-UCA3LV3N.mjs.map} +0 -0
  112. /package/dist/{chunk-QB2XU64X.mjs.map → chunk-6RLATJ2L.mjs.map} +0 -0
  113. /package/dist/{chunk-GHAZOQTT.mjs.map → chunk-YP6W4AB5.mjs.map} +0 -0
@@ -81,10 +81,10 @@ import {
81
81
  useCurrentUserContext,
82
82
  useDataListRetriever,
83
83
  usePageUrlGenerator
84
- } from "../chunk-LDUTS7SJ.mjs";
84
+ } from "../chunk-SQUMPLNN.mjs";
85
85
  import {
86
86
  getStripePublishableKey
87
- } from "../chunk-QB2XU64X.mjs";
87
+ } from "../chunk-6RLATJ2L.mjs";
88
88
  import {
89
89
  getRoleId
90
90
  } from "../chunk-PW42LRSL.mjs";
@@ -114,7 +114,7 @@ import {
114
114
  toPromotionCodeResult,
115
115
  useI18nLocale,
116
116
  useI18nRouter
117
- } from "../chunk-62P4KIR2.mjs";
117
+ } from "../chunk-BGLOFZ3K.mjs";
118
118
  import "../chunk-V5MI7RNB.mjs";
119
119
  import "../chunk-AUXK7QSA.mjs";
120
120
  import "../chunk-PI56A4DG.mjs";
@@ -3,7 +3,7 @@ import {
3
3
  EndpointCreator,
4
4
  Modules,
5
5
  useI18nTranslations
6
- } from "./chunk-62P4KIR2.mjs";
6
+ } from "./chunk-BGLOFZ3K.mjs";
7
7
  import {
8
8
  ENV,
9
9
  setBootstrapper
@@ -340,4 +340,4 @@ export {
340
340
  ACTION_TYPES,
341
341
  RbacService
342
342
  };
343
- //# sourceMappingURL=chunk-QB2XU64X.mjs.map
343
+ //# sourceMappingURL=chunk-6RLATJ2L.mjs.map
@@ -11653,7 +11653,260 @@ var ReferralService = class extends AbstractService {
11653
11653
  method: "POST" /* POST */,
11654
11654
  endpoint: endpoint.generate(),
11655
11655
  input: { email },
11656
- overridesJsonApiCreation: true
11656
+ overridesJsonApiCreation: true,
11657
+ // The widget turns the error code into a translated message; the global
11658
+ // handler would show the API's English text and swallow the failure.
11659
+ suppressGlobalError: true
11660
+ });
11661
+ }
11662
+ /**
11663
+ * Count one visit to a referral link. Answers 204 whatever the code.
11664
+ */
11665
+ static async recordVisit(params) {
11666
+ const endpoint = new EndpointCreator({ endpoint: Modules.ReferralVisit });
11667
+ await this.callApi({
11668
+ type: Modules.ReferralVisit,
11669
+ method: "POST" /* POST */,
11670
+ endpoint: endpoint.generate(),
11671
+ // The request layer builds the body through ReferralVisit.createJsonApi().
11672
+ input: { referralCode: params.referralCode },
11673
+ // A failed beacon must never show an error to a visitor.
11674
+ suppressGlobalError: true
11675
+ });
11676
+ }
11677
+ };
11678
+
11679
+ // src/features/referral/data/ReferralVisit.ts
11680
+ var ReferralVisit = class extends AbstractApiData {
11681
+ static {
11682
+ __name(this, "ReferralVisit");
11683
+ }
11684
+ rehydrate(data) {
11685
+ super.rehydrate(data);
11686
+ return this;
11687
+ }
11688
+ createJsonApi(data) {
11689
+ return {
11690
+ data: {
11691
+ type: Modules.ReferralVisit.name,
11692
+ attributes: { referralCode: data.referralCode }
11693
+ }
11694
+ };
11695
+ }
11696
+ };
11697
+
11698
+ // src/features/referral/data/ReferralAdminSummary.ts
11699
+ var ReferralAdminSummary = class extends AbstractApiData {
11700
+ static {
11701
+ __name(this, "ReferralAdminSummary");
11702
+ }
11703
+ _window;
11704
+ _visits;
11705
+ _invitesSent;
11706
+ _signups;
11707
+ _paying;
11708
+ _creditsGiven;
11709
+ _sharingCompanies;
11710
+ _eligibleCompanies;
11711
+ get window() {
11712
+ return this._window ?? "";
11713
+ }
11714
+ get visits() {
11715
+ return this._visits ?? 0;
11716
+ }
11717
+ get invitesSent() {
11718
+ return this._invitesSent ?? 0;
11719
+ }
11720
+ get signups() {
11721
+ return this._signups ?? 0;
11722
+ }
11723
+ get paying() {
11724
+ return this._paying ?? 0;
11725
+ }
11726
+ get creditsGiven() {
11727
+ return this._creditsGiven ?? 0;
11728
+ }
11729
+ get sharingCompanies() {
11730
+ return this._sharingCompanies ?? 0;
11731
+ }
11732
+ get eligibleCompanies() {
11733
+ return this._eligibleCompanies ?? 0;
11734
+ }
11735
+ rehydrate(data) {
11736
+ super.rehydrate(data);
11737
+ const attrs = data.jsonApi.attributes;
11738
+ this._window = attrs.window;
11739
+ this._visits = attrs.visits;
11740
+ this._invitesSent = attrs.invitesSent;
11741
+ this._signups = attrs.signups;
11742
+ this._paying = attrs.paying;
11743
+ this._creditsGiven = attrs.creditsGiven;
11744
+ this._sharingCompanies = attrs.sharingCompanies;
11745
+ this._eligibleCompanies = attrs.eligibleCompanies;
11746
+ return this;
11747
+ }
11748
+ /** The resource is read-only: there are no attributes to send. */
11749
+ createJsonApi(data) {
11750
+ return { data: { type: Modules.ReferralAdminSummary.name, id: data.id, attributes: {} } };
11751
+ }
11752
+ };
11753
+
11754
+ // src/features/referral/data/ReferralAdminReferrer.ts
11755
+ var ReferralAdminReferrer = class extends AbstractApiData {
11756
+ static {
11757
+ __name(this, "ReferralAdminReferrer");
11758
+ }
11759
+ _name;
11760
+ _email;
11761
+ _visits;
11762
+ _invitesSent;
11763
+ _signupsLink;
11764
+ _signupsDirect;
11765
+ _paying;
11766
+ _creditsEarned;
11767
+ _lastInviteAt;
11768
+ get name() {
11769
+ return this._name ?? "";
11770
+ }
11771
+ get email() {
11772
+ return this._email ?? "";
11773
+ }
11774
+ get visits() {
11775
+ return this._visits ?? 0;
11776
+ }
11777
+ get invitesSent() {
11778
+ return this._invitesSent ?? 0;
11779
+ }
11780
+ get signupsLink() {
11781
+ return this._signupsLink ?? 0;
11782
+ }
11783
+ get signupsDirect() {
11784
+ return this._signupsDirect ?? 0;
11785
+ }
11786
+ get paying() {
11787
+ return this._paying ?? 0;
11788
+ }
11789
+ get creditsEarned() {
11790
+ return this._creditsEarned ?? 0;
11791
+ }
11792
+ get lastInviteAt() {
11793
+ return this._lastInviteAt;
11794
+ }
11795
+ rehydrate(data) {
11796
+ super.rehydrate(data);
11797
+ const attrs = data.jsonApi.attributes;
11798
+ this._name = attrs.name;
11799
+ this._email = attrs.email;
11800
+ this._visits = attrs.visits;
11801
+ this._invitesSent = attrs.invitesSent;
11802
+ this._signupsLink = attrs.signupsLink;
11803
+ this._signupsDirect = attrs.signupsDirect;
11804
+ this._paying = attrs.paying;
11805
+ this._creditsEarned = attrs.creditsEarned;
11806
+ this._lastInviteAt = attrs.lastInviteAt ? new Date(attrs.lastInviteAt) : void 0;
11807
+ return this;
11808
+ }
11809
+ /** The resource is read-only: there are no attributes to send. */
11810
+ createJsonApi(data) {
11811
+ return { data: { type: Modules.ReferralAdminReferrer.name, id: data.id, attributes: {} } };
11812
+ }
11813
+ };
11814
+
11815
+ // src/features/referral/data/ReferralAdminReferral.ts
11816
+ var ReferralAdminReferral = class extends AbstractApiData {
11817
+ static {
11818
+ __name(this, "ReferralAdminReferral");
11819
+ }
11820
+ _name;
11821
+ _email;
11822
+ _referrerName;
11823
+ _referrerEmail;
11824
+ _source;
11825
+ _status;
11826
+ _referredAt;
11827
+ _completedAt;
11828
+ _tokensAwarded;
11829
+ get name() {
11830
+ return this._name ?? "";
11831
+ }
11832
+ get email() {
11833
+ return this._email ?? "";
11834
+ }
11835
+ get referrerName() {
11836
+ return this._referrerName ?? "";
11837
+ }
11838
+ get referrerEmail() {
11839
+ return this._referrerEmail ?? "";
11840
+ }
11841
+ get source() {
11842
+ return this._source ?? "";
11843
+ }
11844
+ get status() {
11845
+ return this._status ?? "";
11846
+ }
11847
+ get referredAt() {
11848
+ return this._referredAt ?? /* @__PURE__ */ new Date(0);
11849
+ }
11850
+ get completedAt() {
11851
+ return this._completedAt;
11852
+ }
11853
+ get tokensAwarded() {
11854
+ return this._tokensAwarded;
11855
+ }
11856
+ rehydrate(data) {
11857
+ super.rehydrate(data);
11858
+ const attrs = data.jsonApi.attributes;
11859
+ this._name = attrs.name;
11860
+ this._email = attrs.email;
11861
+ this._referrerName = attrs.referrerName;
11862
+ this._referrerEmail = attrs.referrerEmail;
11863
+ this._source = attrs.source;
11864
+ this._status = attrs.status;
11865
+ this._referredAt = attrs.referredAt ? new Date(attrs.referredAt) : void 0;
11866
+ this._completedAt = attrs.completedAt ? new Date(attrs.completedAt) : void 0;
11867
+ this._tokensAwarded = attrs.tokensAwarded ?? void 0;
11868
+ return this;
11869
+ }
11870
+ /** The resource is read-only: there are no attributes to send. */
11871
+ createJsonApi(data) {
11872
+ return { data: { type: Modules.ReferralAdminReferral.name, id: data.id, attributes: {} } };
11873
+ }
11874
+ };
11875
+
11876
+ // src/features/referral/data/ReferralAdminService.ts
11877
+ var ReferralAdminService = class extends AbstractService {
11878
+ static {
11879
+ __name(this, "ReferralAdminService");
11880
+ }
11881
+ /** Headline tiles: one row per window (`current`, plus `previous` unless the period is `all`). */
11882
+ static async getSummary(params) {
11883
+ const endpoint = new EndpointCreator({ endpoint: Modules.ReferralAdminSummary });
11884
+ endpoint.addAdditionalParam("period", params.period);
11885
+ return this.callApi({
11886
+ type: Modules.ReferralAdminSummary,
11887
+ method: "GET" /* GET */,
11888
+ endpoint: endpoint.generate()
11889
+ });
11890
+ }
11891
+ /** The referrers ranking, ordered by the allowlisted sort. */
11892
+ static async getReferrers(params) {
11893
+ const endpoint = new EndpointCreator({ endpoint: Modules.ReferralAdminReferrer });
11894
+ endpoint.addAdditionalParam("period", params.period);
11895
+ endpoint.addAdditionalParam("sort", params.sort);
11896
+ return this.callApi({
11897
+ type: Modules.ReferralAdminReferrer,
11898
+ method: "GET" /* GET */,
11899
+ endpoint: endpoint.generate()
11900
+ });
11901
+ }
11902
+ /** Every referral in the period, newest first. */
11903
+ static async getReferrals(params) {
11904
+ const endpoint = new EndpointCreator({ endpoint: Modules.ReferralAdminReferral });
11905
+ endpoint.addAdditionalParam("period", params.period);
11906
+ return this.callApi({
11907
+ type: Modules.ReferralAdminReferral,
11908
+ method: "GET" /* GET */,
11909
+ endpoint: endpoint.generate()
11657
11910
  });
11658
11911
  }
11659
11912
  };
@@ -11672,6 +11925,27 @@ var ReferralStatsModule = /* @__PURE__ */ __name((factory) => factory({
11672
11925
  model: ReferralStats
11673
11926
  }), "ReferralStatsModule");
11674
11927
 
11928
+ // src/features/referral/referral-admin.modules.ts
11929
+ import { GiftIcon } from "lucide-react";
11930
+ var referralAdminModules = /* @__PURE__ */ __name((factory) => ({
11931
+ ReferralVisit: factory({ name: "referrals/visits", model: ReferralVisit }),
11932
+ ReferralAdminSummary: factory({
11933
+ name: "referrals/administration/summary",
11934
+ model: ReferralAdminSummary,
11935
+ icon: GiftIcon
11936
+ }),
11937
+ ReferralAdminReferrer: factory({
11938
+ name: "referrals/administration/referrers",
11939
+ model: ReferralAdminReferrer,
11940
+ icon: GiftIcon
11941
+ }),
11942
+ ReferralAdminReferral: factory({
11943
+ name: "referrals/administration/referrals",
11944
+ model: ReferralAdminReferral,
11945
+ icon: GiftIcon
11946
+ })
11947
+ }), "referralAdminModules");
11948
+
11675
11949
  // src/features/tokenusage/tokenusage-admin.module.ts
11676
11950
  import { CoinsIcon } from "lucide-react";
11677
11951
 
@@ -12976,8 +13250,14 @@ export {
12976
13250
  RbacMatrixModule,
12977
13251
  ReferralStats,
12978
13252
  ReferralService,
13253
+ ReferralVisit,
13254
+ ReferralAdminSummary,
13255
+ ReferralAdminReferrer,
13256
+ ReferralAdminReferral,
13257
+ ReferralAdminService,
12979
13258
  ReferralModule,
12980
13259
  ReferralStatsModule,
13260
+ referralAdminModules,
12981
13261
  TokenUsageAdminBreakdown,
12982
13262
  TokenUsageAdminSummary,
12983
13263
  TokenUsageAdminTimeline,
@@ -13001,4 +13281,4 @@ export {
13001
13281
  AuditLogService,
13002
13282
  AuditLogModule
13003
13283
  };
13004
- //# sourceMappingURL=chunk-62P4KIR2.mjs.map
13284
+ //# sourceMappingURL=chunk-BGLOFZ3K.mjs.map