@carlonicora/nextjs-jsonapi 6.2.0 → 6.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AssistantMessageInterface-S7oyERTT.d.mts → AssistantMessageInterface-0ZQ1EJKO.d.mts} +1 -1
- package/dist/{AssistantMessageInterface-DHJJO_Z_.d.ts → AssistantMessageInterface-CA-hZ5Wj.d.ts} +1 -1
- package/dist/{BlockNoteEditor-Q757ZLCO.js → BlockNoteEditor-CT4XUXPC.js} +19 -19
- package/dist/{BlockNoteEditor-Q757ZLCO.js.map → BlockNoteEditor-CT4XUXPC.js.map} +1 -1
- package/dist/{BlockNoteEditor-D6VMXRZH.mjs → BlockNoteEditor-M6UQRVRK.mjs} +4 -4
- package/dist/{BlockNoteViewer-KG4CIJC5.js → BlockNoteViewer-MFLWF3Y2.js} +3 -3
- package/dist/{BlockNoteViewer-KG4CIJC5.js.map → BlockNoteViewer-MFLWF3Y2.js.map} +1 -1
- package/dist/{BlockNoteViewer-GI5LVQHZ.mjs → BlockNoteViewer-XZJ5Y7WN.mjs} +2 -2
- package/dist/{BlogPostInterface-BB_4wcDR.d.mts → BlogPostInterface-BN2mXc46.d.mts} +1 -1
- package/dist/{BlogPostInterface-bWAT1rfR.d.ts → BlogPostInterface-CTGfsR1I.d.ts} +1 -1
- package/dist/{auth.interface-CSzJ1oP1.d.ts → auth.interface-D5606g19.d.ts} +1 -1
- package/dist/{auth.interface-DD4uQv2K.d.mts → auth.interface-tsOuc0Fi.d.mts} +1 -1
- package/dist/billing/index.d.mts +3 -3
- package/dist/billing/index.d.ts +3 -3
- package/dist/billing/index.js +501 -493
- package/dist/billing/index.js.map +1 -1
- package/dist/billing/index.mjs +13 -5
- package/dist/billing/index.mjs.map +1 -1
- package/dist/{chunk-QKDPCZ3G.mjs → chunk-3FD6Y734.mjs} +73 -15
- package/dist/chunk-3FD6Y734.mjs.map +1 -0
- package/dist/{chunk-3P3IYUWQ.js → chunk-DSGP6GC3.js} +8 -8
- package/dist/{chunk-3P3IYUWQ.js.map → chunk-DSGP6GC3.js.map} +1 -1
- package/dist/{chunk-HLW3SUMD.mjs → chunk-O2TEUH5S.mjs} +2 -2
- package/dist/{chunk-UEWDYVLW.js → chunk-QJIDORHM.js} +4 -4
- package/dist/{chunk-UEWDYVLW.js.map → chunk-QJIDORHM.js.map} +1 -1
- package/dist/{chunk-CUNSPLOD.mjs → chunk-RUJCWOJE.mjs} +2 -2
- package/dist/{chunk-6PW3562E.mjs → chunk-TIT4CJYQ.mjs} +1233 -1181
- package/dist/chunk-TIT4CJYQ.mjs.map +1 -0
- package/dist/{chunk-S332ZCIE.js → chunk-V4I3XKOM.js} +3 -3
- package/dist/{chunk-S332ZCIE.js.map → chunk-V4I3XKOM.js.map} +1 -1
- package/dist/{chunk-GSHMGL6N.js → chunk-XZCCIKX3.js} +151 -93
- package/dist/chunk-XZCCIKX3.js.map +1 -0
- package/dist/{chunk-XQEYBESH.js → chunk-Y7JIQNM6.js} +922 -870
- package/dist/chunk-Y7JIQNM6.js.map +1 -0
- package/dist/{chunk-MHBE4KQR.mjs → chunk-ZDUT5JPT.mjs} +2 -2
- package/dist/client/index.d.mts +4 -4
- package/dist/client/index.d.ts +4 -4
- package/dist/client/index.js +4 -4
- package/dist/client/index.mjs +3 -3
- package/dist/components/index.d.mts +22 -6
- package/dist/components/index.d.ts +22 -6
- package/dist/components/index.js +10 -4
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +10 -4
- package/dist/contexts/index.d.mts +5 -5
- package/dist/contexts/index.d.ts +5 -5
- package/dist/contexts/index.js +4 -4
- package/dist/contexts/index.mjs +3 -3
- package/dist/core/index.d.mts +23 -13
- package/dist/core/index.d.ts +23 -13
- package/dist/core/index.js +8 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +7 -1
- package/dist/{currency-DrEVd_Xs.d.mts → currency-BhuEoBOn.d.mts} +2 -115
- package/dist/{currency-8ErEC39n.d.ts → currency-CBgZkS0u.d.ts} +2 -115
- package/dist/email-automations/index.js +92 -92
- package/dist/email-automations/index.mjs +3 -3
- package/dist/features/analytics/index.d.mts +2 -2
- package/dist/features/analytics/index.d.ts +2 -2
- package/dist/features/analytics/index.js +121 -121
- package/dist/features/analytics/index.mjs +4 -4
- package/dist/features/analytics/server.js +4 -4
- package/dist/features/analytics/server.mjs +2 -2
- package/dist/features/blog/index.d.mts +4 -4
- package/dist/features/blog/index.d.ts +4 -4
- package/dist/features/blog/index.js +150 -150
- package/dist/features/blog/index.mjs +3 -3
- package/dist/features/blog/server.d.mts +4 -4
- package/dist/features/blog/server.d.ts +4 -4
- package/dist/features/blog/server.js +16 -16
- package/dist/features/blog/server.mjs +1 -1
- package/dist/features/help/index.js +37 -37
- package/dist/features/help/index.mjs +3 -3
- package/dist/features/tokenusage/index.js +127 -127
- package/dist/features/tokenusage/index.mjs +4 -4
- package/dist/index.d.mts +8 -8
- package/dist/index.d.ts +8 -8
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -2
- package/dist/{notification.interface-BB6GPpZY.d.mts → notification.interface-CF5h90U2.d.mts} +1 -1
- package/dist/{notification.interface-CmAGrijJ.d.ts → notification.interface-DQReXAD7.d.ts} +1 -1
- package/dist/{s3.service-Bz_K-tjz.d.ts → s3.service-BTCpmp5g.d.ts} +11 -4
- package/dist/{s3.service-D5zNCEW3.d.mts → s3.service-CzFBDEuQ.d.mts} +11 -4
- package/dist/server/index.d.mts +5 -5
- package/dist/server/index.d.ts +5 -5
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +2 -2
- package/dist/stripe-price.interface-D6mKjAdr.d.mts +132 -0
- package/dist/stripe-price.interface-DGqcklFJ.d.ts +132 -0
- package/dist/{useSocket-B0H9pmmH.d.ts → useSocket-BM3q9A0C.d.ts} +1 -1
- package/dist/{useSocket-B5RQb6v2.d.mts → useSocket-CwSoq6VS.d.mts} +1 -1
- package/dist/{user.interface-CIWGlbqM.d.mts → user.interface-BYnGJ7ss.d.mts} +37 -2
- package/dist/{user.interface-C0ZdsBZj.d.ts → user.interface-BqPjVyJI.d.ts} +37 -2
- package/messages/en.json +8 -0
- package/messages/it.json +8 -0
- package/package.json +1 -1
- package/src/components/containers/RoundPageContainer.tsx +7 -2
- package/src/components/index.ts +5 -0
- package/src/features/billing/components/containers/BillingDashboardContainer.tsx +20 -3
- package/src/features/billing/components/widgets/CreditWarningBanner.tsx +93 -0
- package/src/features/billing/data/credit-warning.spec.ts +96 -0
- package/src/features/billing/data/credit-warning.ts +57 -0
- package/src/features/billing/data/index.ts +3 -0
- package/src/features/billing/i18n-keys.ts +6 -0
- package/src/features/company/data/company.interface.ts +11 -0
- package/src/features/company/data/company.service.ts +17 -0
- package/src/features/company/data/company.spec.ts +29 -0
- package/src/features/company/data/company.ts +31 -0
- package/dist/chunk-6PW3562E.mjs.map +0 -1
- package/dist/chunk-GSHMGL6N.js.map +0 -1
- package/dist/chunk-QKDPCZ3G.mjs.map +0 -1
- package/dist/chunk-XQEYBESH.js.map +0 -1
- package/dist/feature.interface-BO25VLlx.d.ts +0 -19
- package/dist/feature.interface-CXb1-vNq.d.mts +0 -19
- /package/dist/{BlockNoteEditor-D6VMXRZH.mjs.map → BlockNoteEditor-M6UQRVRK.mjs.map} +0 -0
- /package/dist/{BlockNoteViewer-GI5LVQHZ.mjs.map → BlockNoteViewer-XZJ5Y7WN.mjs.map} +0 -0
- /package/dist/{chunk-HLW3SUMD.mjs.map → chunk-O2TEUH5S.mjs.map} +0 -0
- /package/dist/{chunk-CUNSPLOD.mjs.map → chunk-RUJCWOJE.mjs.map} +0 -0
- /package/dist/{chunk-MHBE4KQR.mjs.map → chunk-ZDUT5JPT.mjs.map} +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ApiDataInterface } from "../../../core";
|
|
2
2
|
import { FeatureInterface } from "../../feature/data/feature.interface";
|
|
3
3
|
import { ModuleInterface } from "../../module/data/module.interface";
|
|
4
|
+
import type { CreditWarningOffer } from "../../billing/data/credit-warning";
|
|
4
5
|
|
|
5
6
|
export type CompanyInput = {
|
|
6
7
|
id: string;
|
|
@@ -45,6 +46,16 @@ export interface CompanyInterface extends ApiDataInterface {
|
|
|
45
46
|
*/
|
|
46
47
|
get aiEnabled(): boolean;
|
|
47
48
|
|
|
49
|
+
/**
|
|
50
|
+
* Credit-warning state, written by the server only (never sent by
|
|
51
|
+
* `createJsonApi()`). All four are absent until the feature is on and the
|
|
52
|
+
* company has received a monthly grant.
|
|
53
|
+
*/
|
|
54
|
+
get creditsGrantedThisPeriod(): number | undefined;
|
|
55
|
+
get creditWarningSentAt(): Date | undefined;
|
|
56
|
+
get creditWarningDismissedAt(): Date | undefined;
|
|
57
|
+
get creditWarningOffer(): CreditWarningOffer | undefined;
|
|
58
|
+
|
|
48
59
|
get features(): FeatureInterface[];
|
|
49
60
|
get modules(): ModuleInterface[];
|
|
50
61
|
get legal_address(): string | undefined;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AbstractService, EndpointCreator, HttpMethod, Modules, NextRef } from "../../../core";
|
|
2
|
+
import { CREDIT_WARNING_DISMISS_SEGMENT } from "../../billing/data/credit-warning";
|
|
2
3
|
import { CompanyInput, CompanyInterface } from "./company.interface";
|
|
3
4
|
|
|
4
5
|
export class CompanyService extends AbstractService {
|
|
@@ -82,4 +83,20 @@ export class CompanyService extends AbstractService {
|
|
|
82
83
|
input: params,
|
|
83
84
|
});
|
|
84
85
|
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Dismisses this period's credit warning for the company. The request has no
|
|
89
|
+
* body: the server stamps the dismissal itself and answers 204.
|
|
90
|
+
*/
|
|
91
|
+
static async dismissCreditWarning(params: { companyId: string }): Promise<void> {
|
|
92
|
+
await this.callApi({
|
|
93
|
+
type: Modules.Company,
|
|
94
|
+
method: HttpMethod.POST,
|
|
95
|
+
endpoint: new EndpointCreator({
|
|
96
|
+
endpoint: Modules.Company,
|
|
97
|
+
id: params.companyId,
|
|
98
|
+
childEndpoint: CREDIT_WARNING_DISMISS_SEGMENT,
|
|
99
|
+
}).generate(),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
85
102
|
}
|
|
@@ -38,3 +38,32 @@ describe("Company.aiEnabled", () => {
|
|
|
38
38
|
expect(company.aiEnabled).toBe(true);
|
|
39
39
|
});
|
|
40
40
|
});
|
|
41
|
+
|
|
42
|
+
describe("Company credit-warning fields", () => {
|
|
43
|
+
it("rehydrates credit-warning fields", () => {
|
|
44
|
+
const company = new Company().rehydrate({
|
|
45
|
+
jsonApi: {
|
|
46
|
+
attributes: {
|
|
47
|
+
creditsGrantedThisPeriod: 200,
|
|
48
|
+
creditWarningSentAt: "2026-10-25T10:00:00.000Z",
|
|
49
|
+
creditWarningOffer: "pack",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
} as any);
|
|
53
|
+
|
|
54
|
+
expect(company.creditsGrantedThisPeriod).toBe(200);
|
|
55
|
+
expect(company.creditWarningSentAt).toBeInstanceOf(Date);
|
|
56
|
+
expect(company.creditWarningSentAt?.toISOString()).toBe("2026-10-25T10:00:00.000Z");
|
|
57
|
+
expect(company.creditWarningDismissedAt).toBeUndefined();
|
|
58
|
+
expect(company.creditWarningOffer).toBe("pack");
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it("leaves every credit-warning getter undefined when the attributes are absent", () => {
|
|
62
|
+
const company = new Company().rehydrate({ jsonApi: { attributes: {} } } as any);
|
|
63
|
+
|
|
64
|
+
expect(company.creditsGrantedThisPeriod).toBeUndefined();
|
|
65
|
+
expect(company.creditWarningSentAt).toBeUndefined();
|
|
66
|
+
expect(company.creditWarningDismissedAt).toBeUndefined();
|
|
67
|
+
expect(company.creditWarningOffer).toBeUndefined();
|
|
68
|
+
});
|
|
69
|
+
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AbstractApiData, JsonApiHydratedDataInterface, Modules } from "../../../core";
|
|
2
2
|
import { FeatureInterface } from "../../feature";
|
|
3
3
|
import { ModuleInterface } from "../../module";
|
|
4
|
+
import type { CreditWarningOffer } from "../../billing/data/credit-warning";
|
|
4
5
|
import { CompanyInput, CompanyInterface } from "./company.interface";
|
|
5
6
|
|
|
6
7
|
export class Company extends AbstractApiData implements CompanyInterface {
|
|
@@ -16,6 +17,11 @@ export class Company extends AbstractApiData implements CompanyInterface {
|
|
|
16
17
|
private _availableExtraCredits: number = 0;
|
|
17
18
|
private _aiEnabled?: boolean;
|
|
18
19
|
|
|
20
|
+
private _creditsGrantedThisPeriod?: number;
|
|
21
|
+
private _creditWarningSentAt?: Date;
|
|
22
|
+
private _creditWarningDismissedAt?: Date;
|
|
23
|
+
private _creditWarningOffer?: CreditWarningOffer;
|
|
24
|
+
|
|
19
25
|
private _features?: FeatureInterface[];
|
|
20
26
|
private _modules?: ModuleInterface[];
|
|
21
27
|
|
|
@@ -63,6 +69,22 @@ export class Company extends AbstractApiData implements CompanyInterface {
|
|
|
63
69
|
return this._aiEnabled ?? true;
|
|
64
70
|
}
|
|
65
71
|
|
|
72
|
+
get creditsGrantedThisPeriod(): number | undefined {
|
|
73
|
+
return this._creditsGrantedThisPeriod;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
get creditWarningSentAt(): Date | undefined {
|
|
77
|
+
return this._creditWarningSentAt;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
get creditWarningDismissedAt(): Date | undefined {
|
|
81
|
+
return this._creditWarningDismissedAt;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
get creditWarningOffer(): CreditWarningOffer | undefined {
|
|
85
|
+
return this._creditWarningOffer;
|
|
86
|
+
}
|
|
87
|
+
|
|
66
88
|
get features(): FeatureInterface[] {
|
|
67
89
|
return this._features ?? [];
|
|
68
90
|
}
|
|
@@ -130,6 +152,15 @@ export class Company extends AbstractApiData implements CompanyInterface {
|
|
|
130
152
|
this._availableExtraCredits = data.jsonApi.attributes.availableExtraCredits ?? 0;
|
|
131
153
|
this._aiEnabled = data.jsonApi.attributes.aiEnabled ?? true;
|
|
132
154
|
|
|
155
|
+
this._creditsGrantedThisPeriod = data.jsonApi.attributes.creditsGrantedThisPeriod ?? undefined;
|
|
156
|
+
this._creditWarningSentAt = data.jsonApi.attributes.creditWarningSentAt
|
|
157
|
+
? new Date(data.jsonApi.attributes.creditWarningSentAt)
|
|
158
|
+
: undefined;
|
|
159
|
+
this._creditWarningDismissedAt = data.jsonApi.attributes.creditWarningDismissedAt
|
|
160
|
+
? new Date(data.jsonApi.attributes.creditWarningDismissedAt)
|
|
161
|
+
: undefined;
|
|
162
|
+
this._creditWarningOffer = data.jsonApi.attributes.creditWarningOffer ?? undefined;
|
|
163
|
+
|
|
133
164
|
this._legal_address = data.jsonApi.attributes.legal_address;
|
|
134
165
|
this._street_number = data.jsonApi.attributes.street_number;
|
|
135
166
|
this._street = data.jsonApi.attributes.street;
|