@carlonicora/nextjs-jsonapi 1.36.1 → 1.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{BlockNoteEditor-4MDHRUS2.js → BlockNoteEditor-3S2B36O3.js} +15 -15
- package/dist/{BlockNoteEditor-4MDHRUS2.js.map → BlockNoteEditor-3S2B36O3.js.map} +1 -1
- package/dist/{BlockNoteEditor-SZWO3MDO.mjs → BlockNoteEditor-WQUJTVJL.mjs} +5 -5
- package/dist/BlockNoteEditor-WQUJTVJL.mjs.map +1 -0
- package/dist/billing/index.d.mts +15 -5
- package/dist/billing/index.d.ts +15 -5
- package/dist/billing/index.js +750 -520
- package/dist/billing/index.js.map +1 -1
- package/dist/billing/index.mjs +665 -435
- package/dist/billing/index.mjs.map +1 -1
- package/dist/{chunk-53IPQJVH.js → chunk-3EZX4G2E.js} +147 -23
- package/dist/chunk-3EZX4G2E.js.map +1 -0
- package/dist/{chunk-I7DFEJFF.mjs → chunk-4PHADEKA.mjs} +738 -1418
- package/dist/chunk-4PHADEKA.mjs.map +1 -0
- package/dist/{chunk-E6PQQTWF.js → chunk-T2JCZYWK.js} +999 -1679
- package/dist/chunk-T2JCZYWK.js.map +1 -0
- package/dist/{chunk-P7R2DPD6.mjs → chunk-TQ5GRRTM.mjs} +125 -1
- package/dist/chunk-TQ5GRRTM.mjs.map +1 -0
- package/dist/client/index.js +3 -3
- package/dist/client/index.mjs +2 -2
- package/dist/components/index.d.mts +23 -8
- package/dist/components/index.d.ts +23 -8
- package/dist/components/index.js +3 -3
- package/dist/components/index.mjs +2 -2
- package/dist/contexts/index.d.mts +1 -1
- package/dist/contexts/index.d.ts +1 -1
- package/dist/contexts/index.js +3 -3
- package/dist/contexts/index.mjs +2 -2
- package/dist/core/index.d.mts +47 -3
- package/dist/core/index.d.ts +47 -3
- package/dist/core/index.js +8 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +7 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -1
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +1 -1
- package/dist/{stripe-subscription.interface-DK7BJaNd.d.ts → stripe-promotion-code.interface-BcJty0rv.d.ts} +18 -1
- package/dist/{stripe-subscription.interface-C8uhCYIZ.d.mts → stripe-promotion-code.interface-Dnm2DJKQ.d.mts} +18 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/billing/index.ts +1 -0
- package/src/client/context/JsonApiProvider.tsx +1 -5
- package/src/client/hooks/__tests__/useJsonApiGet.test.tsx +9 -9
- package/src/client/hooks/__tests__/useJsonApiMutation.test.tsx +11 -11
- package/src/client/hooks/__tests__/useRehydration.test.ts +13 -34
- package/src/components/editors/BlockNoteEditor.tsx +2 -2
- package/src/components/forms/CommonEditorTrigger.tsx +1 -1
- package/src/components/forms/FormCheckbox.tsx +2 -12
- package/src/components/forms/FormDate.tsx +1 -6
- package/src/components/forms/FormInput.tsx +1 -1
- package/src/components/forms/FormPassword.tsx +1 -7
- package/src/components/forms/FormSelect.tsx +2 -8
- package/src/components/forms/FormSlider.tsx +1 -5
- package/src/components/forms/FormSwitch.tsx +1 -5
- package/src/components/forms/GdprConsentCheckbox.tsx +2 -8
- package/src/components/forms/PasswordInput.tsx +28 -26
- package/src/components/forms/__tests__/FormCheckbox.test.tsx +16 -18
- package/src/components/forms/__tests__/FormDate.test.tsx +14 -30
- package/src/components/forms/__tests__/FormInput.test.tsx +21 -37
- package/src/components/forms/__tests__/FormSelect.test.tsx +15 -21
- package/src/components/tables/ContentListTable.tsx +1 -1
- package/src/components/tables/__tests__/ContentListTable.test.tsx +17 -89
- package/src/components/tables/cells/cell.component.tsx +1 -1
- package/src/contexts/HeaderChildrenContext.tsx +3 -1
- package/src/core/endpoint/__tests__/EndpointCreator.test.ts +2 -7
- package/src/core/factories/__tests__/JsonApiDataFactory.test.ts +3 -3
- package/src/core/factories/__tests__/RehydrationFactory.test.ts +4 -6
- package/src/core/index.ts +1 -0
- package/src/core/registry/ModuleRegistry.ts +1 -0
- package/src/core/registry/__tests__/DataClassRegistry.test.ts +5 -15
- package/src/core/registry/__tests__/ModuleRegistrar.test.ts +5 -15
- package/src/features/auth/components/GdprConsentSection.tsx +1 -6
- package/src/features/auth/components/details/LandingComponent.tsx +6 -1
- package/src/features/auth/components/forms/AcceptInvitation.tsx +1 -1
- package/src/features/auth/components/forms/ResetPassword.tsx +1 -1
- package/src/features/billing/components/cards/PaymentMethodSummaryCard.tsx +13 -18
- package/src/features/billing/components/cards/SubscriptionSummaryCard.tsx +12 -17
- package/src/features/billing/components/modals/BillingDetailModal.tsx +2 -13
- package/src/features/billing/stripe-customer/components/details/PaymentMethodCard.tsx +8 -1
- package/src/features/billing/stripe-customer/components/forms/PaymentMethodEditor.tsx +2 -13
- package/src/features/billing/stripe-customer/components/forms/PaymentMethodForm.tsx +2 -12
- package/src/features/billing/stripe-invoice/components/details/InvoiceDetails.tsx +6 -1
- package/src/features/billing/stripe-invoice/data/stripe-invoice.interface.ts +1 -0
- package/src/features/billing/stripe-price/components/lists/PricesList.tsx +13 -5
- package/src/features/billing/stripe-product/components/lists/ProductsList.tsx +5 -5
- package/src/features/billing/stripe-promotion-code/components/PromoCodeInput.tsx +108 -0
- package/src/features/billing/stripe-promotion-code/components/index.ts +1 -0
- package/src/features/billing/stripe-promotion-code/data/index.ts +3 -0
- package/src/features/billing/stripe-promotion-code/data/stripe-promotion-code.interface.ts +14 -0
- package/src/features/billing/stripe-promotion-code/data/stripe-promotion-code.service.ts +64 -0
- package/src/features/billing/stripe-promotion-code/data/stripe-promotion-code.ts +66 -0
- package/src/features/billing/stripe-promotion-code/index.ts +2 -0
- package/src/features/billing/stripe-promotion-code/stripe-promotion-code.module.ts +9 -0
- package/src/features/billing/stripe-subscription/components/containers/SubscriptionsContainer.tsx +1 -3
- package/src/features/billing/stripe-subscription/components/details/SubscriptionDetails.tsx +4 -1
- package/src/features/billing/stripe-subscription/components/forms/CancelSubscriptionDialog.tsx +1 -1
- package/src/features/billing/stripe-subscription/components/lists/SubscriptionsList.tsx +24 -4
- package/src/features/billing/stripe-subscription/components/widgets/PricingCard.tsx +9 -2
- package/src/features/billing/stripe-subscription/components/widgets/SubscriptionStatusBadge.tsx +3 -1
- package/src/features/billing/stripe-subscription/components/wizards/SubscriptionWizard.tsx +7 -7
- package/src/features/billing/stripe-subscription/components/wizards/WizardProgressIndicator.tsx +2 -10
- package/src/features/billing/stripe-subscription/components/wizards/WizardStepPaymentMethod.tsx +3 -13
- package/src/features/billing/stripe-subscription/components/wizards/WizardStepReview.tsx +134 -23
- package/src/features/billing/stripe-subscription/data/stripe-subscription.interface.ts +2 -0
- package/src/features/billing/stripe-subscription/data/stripe-subscription.ts +8 -0
- package/src/features/billing/stripe-subscription/hooks/useSubscriptionWizard.ts +93 -7
- package/src/features/billing/stripe-usage/components/details/UsageSummaryCard.tsx +1 -1
- package/src/features/billing/stripe-usage/components/lists/UsageHistoryTable.tsx +1 -1
- package/src/features/company/components/details/CompanyDetails.tsx +2 -2
- package/src/features/company/components/forms/CompanyConfigurationSecurityForm.tsx +1 -1
- package/src/features/index.ts +1 -0
- package/src/features/notification/components/containers/NotificationsListContainer.tsx +1 -1
- package/src/features/notification/components/modals/NotificationModal.tsx +6 -2
- package/src/features/notification/contexts/NotificationContext.tsx +1 -3
- package/src/features/oauth/components/OAuthClientCard.tsx +15 -17
- package/src/features/oauth/components/OAuthClientDetail.tsx +7 -19
- package/src/features/oauth/components/OAuthClientForm.tsx +4 -13
- package/src/features/oauth/components/OAuthClientSecretDisplay.tsx +4 -20
- package/src/features/oauth/components/OAuthRedirectUriInput.tsx +5 -12
- package/src/features/oauth/components/OAuthScopeSelector.tsx +17 -23
- package/src/features/oauth/components/consent/OAuthConsentActions.tsx +3 -16
- package/src/features/oauth/components/consent/OAuthConsentHeader.tsx +3 -12
- package/src/features/oauth/components/consent/OAuthConsentScreen.tsx +5 -20
- package/src/features/oauth/components/consent/OAuthScopeList.tsx +3 -18
- package/src/features/onboarding/contexts/OnboardingContext.tsx +3 -3
- package/src/features/role/components/forms/FormRoles.tsx +1 -7
- package/src/features/user/components/containers/UserContainer.tsx +1 -1
- package/src/features/user/components/details/UserDetails.tsx +1 -1
- package/src/features/user/components/forms/UserDeleter.tsx +1 -1
- package/src/features/user/components/forms/UserEditor.tsx +1 -1
- package/src/features/user/components/forms/UserMultiSelect.tsx +7 -7
- package/src/features/user/components/lists/UserListInAdd.tsx +2 -2
- package/src/features/user/components/lists/UsersList.tsx +7 -1
- package/src/features/user/contexts/CurrentUserContext.tsx +36 -33
- package/src/hooks/__tests__/useDataListRetriever.test.ts +15 -21
- package/src/hooks/__tests__/useDebounce.test.ts +2 -7
- package/src/hooks/useCustomD3Graph.tsx +2 -2
- package/src/shadcnui/custom/multi-select.tsx +28 -2
- package/src/shadcnui/ui/accordion.tsx +21 -23
- package/src/shadcnui/ui/alert-dialog.tsx +45 -62
- package/src/shadcnui/ui/alert.tsx +25 -41
- package/src/shadcnui/ui/avatar.tsx +23 -36
- package/src/shadcnui/ui/badge.tsx +13 -11
- package/src/shadcnui/ui/breadcrumb.tsx +21 -55
- package/src/shadcnui/ui/button.tsx +17 -18
- package/src/shadcnui/ui/calendar.tsx +44 -93
- package/src/shadcnui/ui/carousel.tsx +72 -100
- package/src/shadcnui/ui/chart.tsx +102 -161
- package/src/shadcnui/ui/checkbox.tsx +8 -9
- package/src/shadcnui/ui/combobox.tsx +52 -83
- package/src/shadcnui/ui/command.tsx +43 -77
- package/src/shadcnui/ui/context-menu.tsx +47 -86
- package/src/shadcnui/ui/dialog.tsx +34 -60
- package/src/shadcnui/ui/drawer.tsx +32 -53
- package/src/shadcnui/ui/dropdown-menu.tsx +48 -65
- package/src/shadcnui/ui/field.tsx +39 -48
- package/src/shadcnui/ui/hover-card.tsx +9 -14
- package/src/shadcnui/ui/input-group.tsx +44 -55
- package/src/shadcnui/ui/input-otp.tsx +22 -26
- package/src/shadcnui/ui/input.tsx +6 -6
- package/src/shadcnui/ui/label.tsx +6 -6
- package/src/shadcnui/ui/navigation-menu.tsx +36 -60
- package/src/shadcnui/ui/popover.tsx +15 -38
- package/src/shadcnui/ui/progress.tsx +12 -29
- package/src/shadcnui/ui/radio-group.tsx +9 -15
- package/src/shadcnui/ui/resizable.tsx +14 -24
- package/src/shadcnui/ui/scroll-area.tsx +12 -27
- package/src/shadcnui/ui/select.tsx +41 -65
- package/src/shadcnui/ui/separator.tsx +7 -11
- package/src/shadcnui/ui/sheet.tsx +30 -55
- package/src/shadcnui/ui/sidebar.tsx +141 -189
- package/src/shadcnui/ui/skeleton.tsx +3 -9
- package/src/shadcnui/ui/slider.tsx +11 -23
- package/src/shadcnui/ui/switch.tsx +8 -8
- package/src/shadcnui/ui/tabs.tsx +14 -21
- package/src/shadcnui/ui/textarea.tsx +5 -5
- package/src/shadcnui/ui/toggle.tsx +8 -14
- package/src/shadcnui/ui/tooltip.tsx +11 -23
- package/src/testing/providers/MockJsonApiProvider.tsx +1 -5
- package/src/testing/utils/renderWithProviders.tsx +6 -10
- package/dist/BlockNoteEditor-SZWO3MDO.mjs.map +0 -1
- package/dist/chunk-53IPQJVH.js.map +0 -1
- package/dist/chunk-E6PQQTWF.js.map +0 -1
- package/dist/chunk-I7DFEJFF.mjs.map +0 -1
- package/dist/chunk-P7R2DPD6.mjs.map +0 -1
|
@@ -3442,6 +3442,8 @@ var StripeSubscription = class extends AbstractApiData {
|
|
|
3442
3442
|
return this;
|
|
3443
3443
|
}
|
|
3444
3444
|
createJsonApi(data) {
|
|
3445
|
+
console.log("[StripeSubscription.createJsonApi] Input data:", JSON.stringify(data, null, 2));
|
|
3446
|
+
console.log("[StripeSubscription.createJsonApi] promotionCode in input:", data.promotionCode);
|
|
3445
3447
|
const response = {
|
|
3446
3448
|
data: {
|
|
3447
3449
|
type: Modules.StripeSubscription.name,
|
|
@@ -3477,6 +3479,10 @@ var StripeSubscription = class extends AbstractApiData {
|
|
|
3477
3479
|
if (data.metadata) {
|
|
3478
3480
|
response.data.attributes.metadata = data.metadata;
|
|
3479
3481
|
}
|
|
3482
|
+
if (data.promotionCode) {
|
|
3483
|
+
response.data.attributes.promotionCode = data.promotionCode;
|
|
3484
|
+
}
|
|
3485
|
+
console.log("[StripeSubscription.createJsonApi] Final response:", JSON.stringify(response, null, 2));
|
|
3480
3486
|
return response;
|
|
3481
3487
|
}
|
|
3482
3488
|
};
|
|
@@ -3823,6 +3829,121 @@ var StripeUsageModule = /* @__PURE__ */ __name((factory) => factory({
|
|
|
3823
3829
|
moduleId: "c2e9f4a6-1d7b-4e3a-8f5c-9b2d6a1e7f3c"
|
|
3824
3830
|
}), "StripeUsageModule");
|
|
3825
3831
|
|
|
3832
|
+
// src/features/billing/stripe-promotion-code/data/stripe-promotion-code.service.ts
|
|
3833
|
+
var STRIPE_PROMOTION_CODE_ENDPOINT = "stripe-promotion-codes";
|
|
3834
|
+
var StripePromotionCodeService = class {
|
|
3835
|
+
static {
|
|
3836
|
+
__name(this, "StripePromotionCodeService");
|
|
3837
|
+
}
|
|
3838
|
+
/**
|
|
3839
|
+
* Validate a promotion code against Stripe
|
|
3840
|
+
*
|
|
3841
|
+
* @param params.code - The promotion code to validate (e.g., "SAVE20")
|
|
3842
|
+
* @param params.stripePriceId - Optional price ID to check product restrictions
|
|
3843
|
+
* @param params.language - Language code for the request
|
|
3844
|
+
* @returns Validation result with discount details if valid
|
|
3845
|
+
*/
|
|
3846
|
+
static async validatePromotionCode(params) {
|
|
3847
|
+
const response = await JsonApiPost({
|
|
3848
|
+
classKey: Modules.StripePromotionCode,
|
|
3849
|
+
endpoint: `${STRIPE_PROMOTION_CODE_ENDPOINT}/validate`,
|
|
3850
|
+
body: {
|
|
3851
|
+
data: {
|
|
3852
|
+
type: STRIPE_PROMOTION_CODE_ENDPOINT,
|
|
3853
|
+
attributes: {
|
|
3854
|
+
code: params.code,
|
|
3855
|
+
stripePriceId: params.stripePriceId
|
|
3856
|
+
}
|
|
3857
|
+
}
|
|
3858
|
+
},
|
|
3859
|
+
overridesJsonApiCreation: true,
|
|
3860
|
+
language: params.language ?? "en"
|
|
3861
|
+
});
|
|
3862
|
+
if (!response.ok) {
|
|
3863
|
+
return {
|
|
3864
|
+
valid: false,
|
|
3865
|
+
code: params.code,
|
|
3866
|
+
errorMessage: response.error || "Failed to validate promotion code"
|
|
3867
|
+
};
|
|
3868
|
+
}
|
|
3869
|
+
const data = response.data;
|
|
3870
|
+
return {
|
|
3871
|
+
valid: data.valid,
|
|
3872
|
+
promotionCodeId: data.promotionCodeId,
|
|
3873
|
+
code: data.code,
|
|
3874
|
+
discountType: data.discountType,
|
|
3875
|
+
discountValue: data.discountValue,
|
|
3876
|
+
currency: data.currency,
|
|
3877
|
+
duration: data.duration,
|
|
3878
|
+
durationInMonths: data.durationInMonths,
|
|
3879
|
+
errorMessage: data.errorMessage
|
|
3880
|
+
};
|
|
3881
|
+
}
|
|
3882
|
+
};
|
|
3883
|
+
|
|
3884
|
+
// src/features/billing/stripe-promotion-code/data/stripe-promotion-code.ts
|
|
3885
|
+
var StripePromotionCode = class extends AbstractApiData {
|
|
3886
|
+
static {
|
|
3887
|
+
__name(this, "StripePromotionCode");
|
|
3888
|
+
}
|
|
3889
|
+
_valid = false;
|
|
3890
|
+
_promotionCodeId;
|
|
3891
|
+
_code = "";
|
|
3892
|
+
_discountType;
|
|
3893
|
+
_discountValue;
|
|
3894
|
+
_currency;
|
|
3895
|
+
_duration;
|
|
3896
|
+
_durationInMonths;
|
|
3897
|
+
_errorMessage;
|
|
3898
|
+
get valid() {
|
|
3899
|
+
return this._valid;
|
|
3900
|
+
}
|
|
3901
|
+
get promotionCodeId() {
|
|
3902
|
+
return this._promotionCodeId;
|
|
3903
|
+
}
|
|
3904
|
+
get code() {
|
|
3905
|
+
return this._code;
|
|
3906
|
+
}
|
|
3907
|
+
get discountType() {
|
|
3908
|
+
return this._discountType;
|
|
3909
|
+
}
|
|
3910
|
+
get discountValue() {
|
|
3911
|
+
return this._discountValue;
|
|
3912
|
+
}
|
|
3913
|
+
get currency() {
|
|
3914
|
+
return this._currency;
|
|
3915
|
+
}
|
|
3916
|
+
get duration() {
|
|
3917
|
+
return this._duration;
|
|
3918
|
+
}
|
|
3919
|
+
get durationInMonths() {
|
|
3920
|
+
return this._durationInMonths;
|
|
3921
|
+
}
|
|
3922
|
+
get errorMessage() {
|
|
3923
|
+
return this._errorMessage;
|
|
3924
|
+
}
|
|
3925
|
+
rehydrate(data) {
|
|
3926
|
+
super.rehydrate(data);
|
|
3927
|
+
this._valid = data.jsonApi.attributes.valid ?? false;
|
|
3928
|
+
this._promotionCodeId = data.jsonApi.attributes.promotionCodeId;
|
|
3929
|
+
this._code = data.jsonApi.attributes.code ?? "";
|
|
3930
|
+
this._discountType = data.jsonApi.attributes.discountType;
|
|
3931
|
+
this._discountValue = data.jsonApi.attributes.discountValue;
|
|
3932
|
+
this._currency = data.jsonApi.attributes.currency;
|
|
3933
|
+
this._duration = data.jsonApi.attributes.duration;
|
|
3934
|
+
this._durationInMonths = data.jsonApi.attributes.durationInMonths;
|
|
3935
|
+
this._errorMessage = data.jsonApi.attributes.errorMessage;
|
|
3936
|
+
return this;
|
|
3937
|
+
}
|
|
3938
|
+
};
|
|
3939
|
+
|
|
3940
|
+
// src/features/billing/stripe-promotion-code/stripe-promotion-code.module.ts
|
|
3941
|
+
var StripePromotionCodeModule = /* @__PURE__ */ __name((factory) => factory({
|
|
3942
|
+
name: "stripe-promotion-codes",
|
|
3943
|
+
model: StripePromotionCode,
|
|
3944
|
+
moduleId: "b8e4f6a2-9d0c-5b3f-c7e8-4g2d9f0a5c6e"
|
|
3945
|
+
}), "StripePromotionCodeModule");
|
|
3946
|
+
|
|
3826
3947
|
// src/features/company/data/company.ts
|
|
3827
3948
|
var Company = class extends AbstractApiData {
|
|
3828
3949
|
static {
|
|
@@ -5356,6 +5477,9 @@ export {
|
|
|
5356
5477
|
StripeUsage,
|
|
5357
5478
|
StripeUsageService,
|
|
5358
5479
|
StripeUsageModule,
|
|
5480
|
+
StripePromotionCodeService,
|
|
5481
|
+
StripePromotionCode,
|
|
5482
|
+
StripePromotionCodeModule,
|
|
5359
5483
|
Company,
|
|
5360
5484
|
CompanyFields,
|
|
5361
5485
|
CompanyService,
|
|
@@ -5395,4 +5519,4 @@ export {
|
|
|
5395
5519
|
AVAILABLE_OAUTH_SCOPES,
|
|
5396
5520
|
DEFAULT_GRANT_TYPES
|
|
5397
5521
|
};
|
|
5398
|
-
//# sourceMappingURL=chunk-
|
|
5522
|
+
//# sourceMappingURL=chunk-TQ5GRRTM.mjs.map
|