@mohasinac/appkit 4.3.2 → 4.4.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/_internal/client/features/maintenance/views/AnalysisRunnerView.js +1 -1
- package/dist/_internal/client/features/maintenance/views/CloudLogsListView.js +1 -1
- package/dist/_internal/client/features/maintenance/views/MaintenanceDashboardView.js +1 -1
- package/dist/_internal/client/features/maintenance/views/ServerErrorDetailView.js +1 -1
- package/dist/_internal/client/features/maintenance/views/ServerErrorsListView.js +1 -1
- package/dist/_internal/server/jobs/core/assignSpinPrize.d.ts +14 -3
- package/dist/_internal/server/jobs/core/assignSpinPrize.js +95 -56
- package/dist/_internal/server/jobs/handlers/assignSpinPrize.js +8 -2
- package/dist/_internal/shared/actions/action-registry.js +15 -0
- package/dist/_internal/shared/features/brands/schema.d.ts +4 -4
- package/dist/_internal/shared/features/categories/bundle-schemas.d.ts +4 -4
- package/dist/_internal/shared/features/orders/schema.d.ts +8 -8
- package/dist/_internal/shared/features/reviews/schema.d.ts +2 -2
- package/dist/client.d.ts +36 -0
- package/dist/client.js +30 -0
- package/dist/constants/api-endpoints.d.ts +6 -0
- package/dist/constants/api-endpoints.js +2 -0
- package/dist/constants/field-names.d.ts +3 -0
- package/dist/constants/field-names.js +4 -0
- package/dist/features/about/components/DeveloperView.d.ts +16 -0
- package/dist/features/about/components/DeveloperView.js +29 -0
- package/dist/features/about/index.d.ts +2 -0
- package/dist/features/about/index.js +1 -0
- package/dist/features/account/schemas/index.d.ts +16 -16
- package/dist/features/addresses/schemas/index.d.ts +8 -8
- package/dist/features/admin/components/AdminAddressesView.js +1 -1
- package/dist/features/admin/components/AdminAllEventEntriesView.js +2 -2
- package/dist/features/admin/components/AdminArtView.js +1 -1
- package/dist/features/admin/components/AdminBidsView.js +2 -2
- package/dist/features/admin/components/AdminBlogView.js +2 -2
- package/dist/features/admin/components/AdminBrandsView.js +2 -2
- package/dist/features/admin/components/AdminBundlesView.js +2 -2
- package/dist/features/admin/components/AdminCartsView.js +2 -2
- package/dist/features/admin/components/AdminCategoriesView.js +2 -2
- package/dist/features/admin/components/AdminClassifiedView.js +1 -1
- package/dist/features/admin/components/AdminContactView.js +2 -2
- package/dist/features/admin/components/AdminCouponsView.js +2 -2
- package/dist/features/admin/components/AdminDigitalCodesView.js +1 -1
- package/dist/features/admin/components/AdminFaqsView.js +2 -2
- package/dist/features/admin/components/AdminFeaturesView.js +1 -1
- package/dist/features/admin/components/AdminGroupedListingsView.js +1 -1
- package/dist/features/admin/components/AdminHistoryView.js +1 -1
- package/dist/features/admin/components/AdminLiveView.js +1 -1
- package/dist/features/admin/components/AdminNewsletterView.js +2 -2
- package/dist/features/admin/components/AdminNotificationsView.js +2 -2
- package/dist/features/admin/components/AdminOrdersView.js +2 -2
- package/dist/features/admin/components/AdminPaymentMethodsView.js +1 -1
- package/dist/features/admin/components/AdminPayoutsView.js +2 -2
- package/dist/features/admin/components/AdminPrizeDrawsView.js +2 -2
- package/dist/features/admin/components/AdminProductsView.js +2 -2
- package/dist/features/admin/components/AdminReturnRequestsView.js +1 -1
- package/dist/features/admin/components/AdminReviewsView.js +2 -2
- package/dist/features/admin/components/AdminScammersView.js +2 -2
- package/dist/features/admin/components/AdminSessionsView.js +2 -2
- package/dist/features/admin/components/AdminStickersView.js +1 -1
- package/dist/features/admin/components/AdminStoreAddressesView.js +1 -1
- package/dist/features/admin/components/AdminStoresView.js +2 -2
- package/dist/features/admin/components/AdminSublistingCategoriesView.js +1 -1
- package/dist/features/admin/components/AdminSupportTicketsView.js +2 -2
- package/dist/features/admin/components/AdminTeamView.js +2 -2
- package/dist/features/admin/components/AdminTesterChecklistView.js +2 -2
- package/dist/features/admin/components/AdminUsersView.js +2 -2
- package/dist/features/admin/components/AdminWishlistsView.js +1 -1
- package/dist/features/admin/hooks/useAdminListing.d.ts +1 -1
- package/dist/features/auth/hooks/useAuth.d.ts +1 -1
- package/dist/features/blog/actions/blog-actions.d.ts +14 -14
- package/dist/features/blog/schemas/index.d.ts +14 -14
- package/dist/features/cart/hooks/useAddToCart.d.ts +6 -2
- package/dist/features/cart/hooks/useAddToCart.js +20 -3
- package/dist/features/cart/schemas/index.d.ts +3 -3
- package/dist/features/cart/utils/pending-ops.d.ts +20 -0
- package/dist/features/cart/utils/pending-ops.js +22 -0
- package/dist/features/catalogue/components/AdminCatalogueApprovalsView.js +1 -1
- package/dist/features/categories/components/CategoryBundlesListing.js +1 -1
- package/dist/features/categories/components/CategoryFilters.js +1 -1
- package/dist/features/categories/components/CategoryTree.js +1 -1
- package/dist/features/categories/schemas/index.d.ts +16 -16
- package/dist/features/events/actions/event-actions.d.ts +21 -1
- package/dist/features/events/actions/event-actions.js +85 -3
- package/dist/features/events/components/AdminEventEditorView.js +11 -2
- package/dist/features/events/components/AdminEventEntriesView.js +37 -4
- package/dist/features/events/components/AdminEventsView.js +2 -2
- package/dist/features/events/components/EventLeaderboard.d.ts +12 -2
- package/dist/features/events/components/EventLeaderboard.js +4 -1
- package/dist/features/events/components/EventRafflesSection.js +2 -2
- package/dist/features/events/repository/event-entry.repository.d.ts +39 -0
- package/dist/features/events/repository/event-entry.repository.js +153 -0
- package/dist/features/events/schemas/firestore.d.ts +28 -1
- package/dist/features/events/schemas/firestore.js +9 -0
- package/dist/features/events/schemas/index.d.ts +13 -13
- package/dist/features/events/types/index.d.ts +26 -0
- package/dist/features/faq/actions/faq-actions.d.ts +8 -8
- package/dist/features/faq/schemas/index.d.ts +22 -22
- package/dist/features/grouped/schemas/index.d.ts +2 -2
- package/dist/features/homepage/components/AnnouncementBar.d.ts +9 -1
- package/dist/features/homepage/components/AnnouncementBar.js +6 -3
- package/dist/features/homepage/components/MarketplaceHomepageView.js +2 -2
- package/dist/features/homepage/components/SectionCarousel.js +5 -1
- package/dist/features/homepage/components/WelcomeSection.js +2 -2
- package/dist/features/homepage/schemas/index.d.ts +2 -2
- package/dist/features/layout/BottomNavbar.js +8 -6
- package/dist/features/lottery/schemas/zod.d.ts +10 -10
- package/dist/features/media/MediaVideo.js +11 -3
- package/dist/features/orders/schemas/index.d.ts +52 -52
- package/dist/features/products/components/CompareOverlay.d.ts +9 -0
- package/dist/features/products/components/CompareOverlay.js +28 -3
- package/dist/features/products/components/InteractiveProductCard.js +9 -3
- package/dist/features/products/components/MakeOfferForm.js +1 -1
- package/dist/features/products/components/PlaceBidForm.js +1 -1
- package/dist/features/products/components/PrizeDrawCollage.js +1 -1
- package/dist/features/products/components/PrizeDrawsSection.js +2 -2
- package/dist/features/products/components/ProductDetailActions.js +3 -1
- package/dist/features/products/components/ProductGrid.js +1 -1
- package/dist/features/products/components/ProductInfo.js +1 -1
- package/dist/features/products/components/ProductsIndexListing.js +12 -2
- package/dist/features/products/hooks/useRelatedProducts.js +1 -1
- package/dist/features/products/schemas/index.d.ts +10 -10
- package/dist/features/promotions/schemas/index.d.ts +8 -8
- package/dist/features/reviews/schemas/index.d.ts +12 -12
- package/dist/features/scams/schemas/index.d.ts +6 -6
- package/dist/features/seller/components/CouponInlineSelect.js +1 -1
- package/dist/features/seller/components/SellerArtView.js +2 -2
- package/dist/features/seller/components/SellerAuctionsView.js +2 -2
- package/dist/features/seller/components/SellerBidsView.js +2 -2
- package/dist/features/seller/components/SellerBundlesView.js +1 -1
- package/dist/features/seller/components/SellerClassifiedView.js +2 -2
- package/dist/features/seller/components/SellerCouponsView.js +2 -2
- package/dist/features/seller/components/SellerDigitalCodesView.js +2 -2
- package/dist/features/seller/components/SellerGroupedListingsView.js +1 -1
- package/dist/features/seller/components/SellerLiveView.js +2 -2
- package/dist/features/seller/components/SellerOffersView.js +2 -2
- package/dist/features/seller/components/SellerOrdersView.js +2 -2
- package/dist/features/seller/components/SellerPayoutMethodsView.js +2 -2
- package/dist/features/seller/components/SellerPayoutsView.js +2 -2
- package/dist/features/seller/components/SellerPreOrdersView.js +2 -2
- package/dist/features/seller/components/SellerPrizeDrawsView.js +2 -2
- package/dist/features/seller/components/SellerProductsView.js +2 -2
- package/dist/features/seller/components/SellerShippingConfigsView.js +2 -2
- package/dist/features/seller/components/SellerStickersView.js +2 -2
- package/dist/features/seller/components/SellerStoreCategoriesView.js +1 -1
- package/dist/features/seller/components/SublistingInlineSelect.js +1 -1
- package/dist/features/seller/hooks/useSellerListingData.d.ts +1 -1
- package/dist/features/seller/schemas/index.d.ts +16 -16
- package/dist/features/server-errors/schemas/index.d.ts +4 -4
- package/dist/features/shell/StepForm.d.ts +1 -1
- package/dist/features/shipments/components/AdminShipmentsView.js +2 -2
- package/dist/features/stores/components/StoreProductsView.js +1 -1
- package/dist/features/stores/components/StoresIndexListing.js +1 -1
- package/dist/features/stores/schemas/index.d.ts +30 -30
- package/dist/features/support/schemas/index.d.ts +2 -2
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +68 -1
- package/dist/features/whatsapp-bot/helpers/payment-proof-message.d.ts +14 -0
- package/dist/features/whatsapp-bot/helpers/payment-proof-message.js +17 -0
- package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +2 -8
- package/dist/features/whatsapp-bot/helpers/whatsapp.js +4 -11
- package/dist/features/wishlist/repository/user-wishlist.repository.d.ts +11 -0
- package/dist/features/wishlist/repository/user-wishlist.repository.js +33 -0
- package/dist/index.d.ts +7 -12
- package/dist/index.js +16 -28
- package/dist/next/components/ErrorView.js +1 -1
- package/dist/next/components/NotFoundView.js +1 -1
- package/dist/next/components/UnauthorizedView.js +1 -1
- package/dist/next/routing/route-map.d.ts +4 -0
- package/dist/next/routing/route-map.js +2 -0
- package/dist/react/contexts/SessionContext.d.ts +1 -1
- package/dist/react/hooks/use-action-dispatch.d.ts +1 -1
- package/dist/react/hooks/useFormStatePreservation.d.ts +1 -1
- package/dist/schemas/registry.d.ts +236 -236
- package/dist/schemas/webhooks/razorpay.d.ts +100 -100
- package/dist/security/index.d.ts +1 -1
- package/dist/security/index.js +1 -1
- package/dist/security/rate-limit.d.ts +10 -0
- package/dist/security/rate-limit.js +13 -1
- package/dist/seed/events-seed-data.js +52 -1
- package/dist/server.d.ts +6 -0
- package/dist/server.js +8 -0
- package/dist/styles.css +25 -1
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/HorizontalScroller.d.ts +7 -1
- package/dist/ui/components/HorizontalScroller.js +2 -2
- package/dist/ui/components/HorizontalScroller.style.css +24 -0
- package/dist/validation/schemas.d.ts +12 -12
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { sortBy } from "@mohasinac/appkit";
|
|
3
|
+
import { sortBy } from "@mohasinac/appkit/client";
|
|
4
4
|
import { ADMIN_ENDPOINTS } from "../../../constants/api-endpoints";
|
|
5
5
|
import { ACTIONS } from "../../../_internal/shared/actions/action-registry";
|
|
6
6
|
import { buildBulkAction } from "../../../_internal/shared/actions/bulk-helpers";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { SIEVE_OP, Stack, sieveFilter } from "@mohasinac/appkit";
|
|
4
|
-
import { sortBy } from "@mohasinac/appkit";
|
|
3
|
+
import { SIEVE_OP, Stack, sieveFilter } from "@mohasinac/appkit/client";
|
|
4
|
+
import { sortBy } from "@mohasinac/appkit/client";
|
|
5
5
|
import React, { useState } from "react";
|
|
6
6
|
import { useRouter } from "next/navigation";
|
|
7
7
|
import { FilterChipGroup, ListingLayout, RowActionMenu, Span, Text } from "../../../ui";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { sieveFilter, SIEVE_OP } from "@mohasinac/appkit";
|
|
4
|
-
import { sortBy } from "@mohasinac/appkit";
|
|
3
|
+
import { sieveFilter, SIEVE_OP } from "@mohasinac/appkit/client";
|
|
4
|
+
import { sortBy } from "@mohasinac/appkit/client";
|
|
5
5
|
import React, { useState, useCallback } from "react";
|
|
6
6
|
import { UserPlus } from "lucide-react";
|
|
7
7
|
import { Button, FilterChipGroup, ListingLayout, RowActionMenu } from "../../../ui";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { SIEVE_OP, Stack, sieveFilter } from "@mohasinac/appkit";
|
|
4
|
-
import { sortBy } from "@mohasinac/appkit";
|
|
3
|
+
import { SIEVE_OP, Stack, sieveFilter } from "@mohasinac/appkit/client";
|
|
4
|
+
import { sortBy } from "@mohasinac/appkit/client";
|
|
5
5
|
import React, { useMemo } from "react";
|
|
6
6
|
import { useQueryClient } from "@tanstack/react-query";
|
|
7
7
|
import { FilterChipGroup, Heading, ListingLayout, RowActionMenu, Span, Text } from "../../../ui";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useApiMutation } from "@mohasinac/appkit/client";
|
|
4
|
-
import { sieveFilter, SIEVE_OP } from "@mohasinac/appkit";
|
|
5
|
-
import { sortBy } from "@mohasinac/appkit";
|
|
4
|
+
import { sieveFilter, SIEVE_OP } from "@mohasinac/appkit/client";
|
|
5
|
+
import { sortBy } from "@mohasinac/appkit/client";
|
|
6
6
|
import React, { useEffect, useState } from "react";
|
|
7
7
|
import { useQueryClient } from "@tanstack/react-query";
|
|
8
8
|
import { Button, FilterChipGroup, Form, FormActions, Input, ListingLayout, Modal, RowActionMenu, Text as AppText, useToast, } from "../../../ui";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { sortBy } from "@mohasinac/appkit";
|
|
3
|
+
import { sortBy } from "@mohasinac/appkit/client";
|
|
4
4
|
import React from "react";
|
|
5
5
|
import { ListingLayout } from "../../../ui";
|
|
6
6
|
import { ADMIN_ENDPOINTS } from "../../../constants/api-endpoints";
|
|
@@ -54,7 +54,7 @@ export declare function useAdminListing<TResponse, TRow extends {
|
|
|
54
54
|
refetch: () => void;
|
|
55
55
|
currentPage: number;
|
|
56
56
|
totalPages: number;
|
|
57
|
-
selection: import("../../../
|
|
57
|
+
selection: import("../../../client").UseBulkSelectionReturn;
|
|
58
58
|
defaultSort: string;
|
|
59
59
|
pageSize: number;
|
|
60
60
|
setPageSize: (next: number) => void;
|
|
@@ -78,13 +78,13 @@ export declare const createBlogPostSchema: z.ZodObject<{
|
|
|
78
78
|
isFeatured: boolean;
|
|
79
79
|
excerpt: string;
|
|
80
80
|
readTimeMinutes: number;
|
|
81
|
-
|
|
81
|
+
additionalImages: {
|
|
82
82
|
type: "video" | "image" | "file";
|
|
83
83
|
url: string;
|
|
84
84
|
alt?: string | undefined;
|
|
85
85
|
thumbnailUrl?: string | undefined;
|
|
86
86
|
}[];
|
|
87
|
-
|
|
87
|
+
contentImages: {
|
|
88
88
|
type: "video" | "image" | "file";
|
|
89
89
|
url: string;
|
|
90
90
|
alt?: string | undefined;
|
|
@@ -124,15 +124,15 @@ export declare const createBlogPostSchema: z.ZodObject<{
|
|
|
124
124
|
authorId?: string | undefined;
|
|
125
125
|
authorName?: string | undefined;
|
|
126
126
|
readTimeMinutes?: number | undefined;
|
|
127
|
-
|
|
128
|
-
metaDescription?: string | undefined;
|
|
129
|
-
contentImages?: {
|
|
127
|
+
additionalImages?: {
|
|
130
128
|
type: "video" | "image" | "file";
|
|
131
129
|
url: string;
|
|
132
130
|
alt?: string | undefined;
|
|
133
131
|
thumbnailUrl?: string | undefined;
|
|
134
132
|
}[] | undefined;
|
|
135
|
-
|
|
133
|
+
metaTitle?: string | undefined;
|
|
134
|
+
metaDescription?: string | undefined;
|
|
135
|
+
contentImages?: {
|
|
136
136
|
type: "video" | "image" | "file";
|
|
137
137
|
url: string;
|
|
138
138
|
alt?: string | undefined;
|
|
@@ -229,15 +229,15 @@ export declare const updateBlogPostSchema: z.ZodObject<{
|
|
|
229
229
|
authorId?: string | undefined;
|
|
230
230
|
authorName?: string | undefined;
|
|
231
231
|
readTimeMinutes?: number | undefined;
|
|
232
|
-
|
|
233
|
-
metaDescription?: string | undefined;
|
|
234
|
-
contentImages?: {
|
|
232
|
+
additionalImages?: {
|
|
235
233
|
type: "video" | "image" | "file";
|
|
236
234
|
url: string;
|
|
237
235
|
alt?: string | undefined;
|
|
238
236
|
thumbnailUrl?: string | undefined;
|
|
239
237
|
}[] | undefined;
|
|
240
|
-
|
|
238
|
+
metaTitle?: string | undefined;
|
|
239
|
+
metaDescription?: string | undefined;
|
|
240
|
+
contentImages?: {
|
|
241
241
|
type: "video" | "image" | "file";
|
|
242
242
|
url: string;
|
|
243
243
|
alt?: string | undefined;
|
|
@@ -263,15 +263,15 @@ export declare const updateBlogPostSchema: z.ZodObject<{
|
|
|
263
263
|
authorId?: string | undefined;
|
|
264
264
|
authorName?: string | undefined;
|
|
265
265
|
readTimeMinutes?: number | undefined;
|
|
266
|
-
|
|
267
|
-
metaDescription?: string | undefined;
|
|
268
|
-
contentImages?: {
|
|
266
|
+
additionalImages?: {
|
|
269
267
|
type: "video" | "image" | "file";
|
|
270
268
|
url: string;
|
|
271
269
|
alt?: string | undefined;
|
|
272
270
|
thumbnailUrl?: string | undefined;
|
|
273
271
|
}[] | undefined;
|
|
274
|
-
|
|
272
|
+
metaTitle?: string | undefined;
|
|
273
|
+
metaDescription?: string | undefined;
|
|
274
|
+
contentImages?: {
|
|
275
275
|
type: "video" | "image" | "file";
|
|
276
276
|
url: string;
|
|
277
277
|
alt?: string | undefined;
|
|
@@ -136,9 +136,7 @@ export declare const blogPostFirestoreSchema: z.ZodObject<{
|
|
|
136
136
|
thumbnailUrl?: string | undefined;
|
|
137
137
|
youtubeId?: string | undefined;
|
|
138
138
|
} | undefined;
|
|
139
|
-
|
|
140
|
-
metaDescription?: string | undefined;
|
|
141
|
-
contentImages?: {
|
|
139
|
+
additionalImages?: {
|
|
142
140
|
type: "video" | "image" | "file";
|
|
143
141
|
url: string;
|
|
144
142
|
source?: "upload" | "youtube" | "external" | undefined;
|
|
@@ -146,7 +144,9 @@ export declare const blogPostFirestoreSchema: z.ZodObject<{
|
|
|
146
144
|
thumbnailUrl?: string | undefined;
|
|
147
145
|
youtubeId?: string | undefined;
|
|
148
146
|
}[] | undefined;
|
|
149
|
-
|
|
147
|
+
metaTitle?: string | undefined;
|
|
148
|
+
metaDescription?: string | undefined;
|
|
149
|
+
contentImages?: {
|
|
150
150
|
type: "video" | "image" | "file";
|
|
151
151
|
url: string;
|
|
152
152
|
source?: "upload" | "youtube" | "external" | undefined;
|
|
@@ -186,9 +186,7 @@ export declare const blogPostFirestoreSchema: z.ZodObject<{
|
|
|
186
186
|
thumbnailUrl?: string | undefined;
|
|
187
187
|
youtubeId?: string | undefined;
|
|
188
188
|
} | undefined;
|
|
189
|
-
|
|
190
|
-
metaDescription?: string | undefined;
|
|
191
|
-
contentImages?: {
|
|
189
|
+
additionalImages?: {
|
|
192
190
|
type: "video" | "image" | "file";
|
|
193
191
|
url: string;
|
|
194
192
|
source?: "upload" | "youtube" | "external" | undefined;
|
|
@@ -196,7 +194,9 @@ export declare const blogPostFirestoreSchema: z.ZodObject<{
|
|
|
196
194
|
thumbnailUrl?: string | undefined;
|
|
197
195
|
youtubeId?: string | undefined;
|
|
198
196
|
}[] | undefined;
|
|
199
|
-
|
|
197
|
+
metaTitle?: string | undefined;
|
|
198
|
+
metaDescription?: string | undefined;
|
|
199
|
+
contentImages?: {
|
|
200
200
|
type: "video" | "image" | "file";
|
|
201
201
|
url: string;
|
|
202
202
|
source?: "upload" | "youtube" | "external" | undefined;
|
|
@@ -345,7 +345,7 @@ export declare const blogPostSchema: z.ZodObject<{
|
|
|
345
345
|
url: string;
|
|
346
346
|
type: "image";
|
|
347
347
|
} | null;
|
|
348
|
-
|
|
348
|
+
additionalImages: {
|
|
349
349
|
type: "video" | "image" | "file";
|
|
350
350
|
url: string;
|
|
351
351
|
source?: "upload" | "youtube" | "external" | undefined;
|
|
@@ -353,7 +353,7 @@ export declare const blogPostSchema: z.ZodObject<{
|
|
|
353
353
|
thumbnailUrl?: string | undefined;
|
|
354
354
|
youtubeId?: string | undefined;
|
|
355
355
|
}[];
|
|
356
|
-
|
|
356
|
+
contentImages: {
|
|
357
357
|
type: "video" | "image" | "file";
|
|
358
358
|
url: string;
|
|
359
359
|
source?: "upload" | "youtube" | "external" | undefined;
|
|
@@ -400,9 +400,7 @@ export declare const blogPostSchema: z.ZodObject<{
|
|
|
400
400
|
authorName?: string | undefined;
|
|
401
401
|
readTimeMinutes?: number | undefined;
|
|
402
402
|
views?: number | undefined;
|
|
403
|
-
|
|
404
|
-
metaDescription?: string | undefined;
|
|
405
|
-
contentImages?: {
|
|
403
|
+
additionalImages?: {
|
|
406
404
|
type: "video" | "image" | "file";
|
|
407
405
|
url: string;
|
|
408
406
|
source?: "upload" | "youtube" | "external" | undefined;
|
|
@@ -410,7 +408,9 @@ export declare const blogPostSchema: z.ZodObject<{
|
|
|
410
408
|
thumbnailUrl?: string | undefined;
|
|
411
409
|
youtubeId?: string | undefined;
|
|
412
410
|
}[] | undefined;
|
|
413
|
-
|
|
411
|
+
metaTitle?: string | undefined;
|
|
412
|
+
metaDescription?: string | undefined;
|
|
413
|
+
contentImages?: {
|
|
414
414
|
type: "video" | "image" | "file";
|
|
415
415
|
url: string;
|
|
416
416
|
source?: "upload" | "youtube" | "external" | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ApiClientError } from "../../../http";
|
|
2
|
-
import type { JsonValue } from "@mohasinac/appkit";
|
|
2
|
+
import type { JsonValue } from "@mohasinac/appkit/client";
|
|
3
3
|
interface AddToCartPayload {
|
|
4
4
|
productId: string;
|
|
5
5
|
quantity: number;
|
|
@@ -10,6 +10,10 @@ interface AddToCartPayload {
|
|
|
10
10
|
storeName?: string;
|
|
11
11
|
[key: string]: JsonValue | undefined;
|
|
12
12
|
}
|
|
13
|
+
interface AddToCartServerResponse {
|
|
14
|
+
itemCount?: number;
|
|
15
|
+
subtotal?: number;
|
|
16
|
+
}
|
|
13
17
|
interface UseAddToCartOptions {
|
|
14
18
|
endpoint?: string;
|
|
15
19
|
onSuccess?: () => void;
|
|
@@ -24,7 +28,7 @@ export declare function useAddToCart(options?: UseAddToCartOptions): {
|
|
|
24
28
|
mutate: (data: AddToCartPayload) => Promise<unknown>;
|
|
25
29
|
isLoading: boolean;
|
|
26
30
|
error: ApiClientError | null;
|
|
27
|
-
data:
|
|
31
|
+
data: AddToCartServerResponse | undefined;
|
|
28
32
|
reset: () => void;
|
|
29
33
|
};
|
|
30
34
|
export {};
|
|
@@ -3,8 +3,15 @@ import { normalizeError } from "../../../errors/normalize";
|
|
|
3
3
|
import { useCallback, useEffect, useRef } from "react";
|
|
4
4
|
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
|
5
5
|
import { apiClient } from "../../../http";
|
|
6
|
-
import { addToGuestCart } from "../utils/guest-cart";
|
|
6
|
+
import { addToGuestCart, getGuestCartItems } from "../utils/guest-cart";
|
|
7
7
|
import { CART_ENDPOINTS } from "../../../constants/api-endpoints";
|
|
8
|
+
import { dispatchCartUpdated, formatCartAddedMessage } from "../utils/pending-ops";
|
|
9
|
+
import { useToast } from "../../../ui/components/Toast";
|
|
10
|
+
import { formatCurrency } from "../../../utils/number.formatter";
|
|
11
|
+
import { getDefaultCurrency } from "../../../core/baseline-resolver";
|
|
12
|
+
function showAddedToast(showToast, detail) {
|
|
13
|
+
showToast(formatCartAddedMessage(detail, (amount) => formatCurrency(amount, getDefaultCurrency())), "success");
|
|
14
|
+
}
|
|
8
15
|
/**
|
|
9
16
|
* useAddToCart
|
|
10
17
|
*
|
|
@@ -13,14 +20,19 @@ import { CART_ENDPOINTS } from "../../../constants/api-endpoints";
|
|
|
13
20
|
export function useAddToCart(options) {
|
|
14
21
|
const queryClient = useQueryClient();
|
|
15
22
|
const endpoint = options?.endpoint ?? CART_ENDPOINTS.GET;
|
|
23
|
+
const { showToast } = useToast();
|
|
16
24
|
const optionsRef = useRef(options);
|
|
17
25
|
useEffect(() => {
|
|
18
26
|
optionsRef.current = options;
|
|
19
27
|
}, [options]);
|
|
20
28
|
const serverMutation = useMutation({
|
|
21
29
|
mutationFn: (data) => apiClient.post(endpoint, data),
|
|
22
|
-
onSuccess: () => {
|
|
30
|
+
onSuccess: (data, variables) => {
|
|
23
31
|
queryClient.invalidateQueries({ queryKey: ["cart"] });
|
|
32
|
+
const itemCount = data?.itemCount ?? 0;
|
|
33
|
+
const totalValue = data?.subtotal ?? 0;
|
|
34
|
+
showAddedToast(showToast, { productTitle: variables.productTitle, itemCount, totalValue });
|
|
35
|
+
dispatchCartUpdated({ itemCount, totalValue, productTitle: variables.productTitle });
|
|
24
36
|
optionsRef.current?.onSuccess?.();
|
|
25
37
|
},
|
|
26
38
|
onError: (err) => optionsRef.current?.onError?.(err),
|
|
@@ -40,12 +52,17 @@ export function useAddToCart(options) {
|
|
|
40
52
|
storeId: data.storeId,
|
|
41
53
|
storeName: data.storeName,
|
|
42
54
|
});
|
|
55
|
+
const guestItems = getGuestCartItems();
|
|
56
|
+
const itemCount = guestItems.reduce((sum, it) => sum + it.quantity, 0);
|
|
57
|
+
const totalValue = guestItems.reduce((sum, it) => sum + (it.price ?? 0) * it.quantity, 0);
|
|
58
|
+
showAddedToast(showToast, { productTitle: data.productTitle, itemCount, totalValue });
|
|
59
|
+
dispatchCartUpdated({ itemCount, totalValue, productTitle: data.productTitle });
|
|
43
60
|
optionsRef.current?.onSuccess?.();
|
|
44
61
|
return undefined;
|
|
45
62
|
}
|
|
46
63
|
throw err;
|
|
47
64
|
}
|
|
48
|
-
}, [serverMutation]);
|
|
65
|
+
}, [serverMutation, showToast]);
|
|
49
66
|
return {
|
|
50
67
|
mutate,
|
|
51
68
|
isLoading: serverMutation.isPending,
|
|
@@ -80,8 +80,8 @@ export declare const cartItemSchema: z.ZodObject<{
|
|
|
80
80
|
attributes?: Record<string, string> | undefined;
|
|
81
81
|
} | undefined;
|
|
82
82
|
userId?: string | undefined;
|
|
83
|
-
sessionId?: string | undefined;
|
|
84
83
|
quantity?: number | undefined;
|
|
84
|
+
sessionId?: string | undefined;
|
|
85
85
|
addedAt?: string | undefined;
|
|
86
86
|
}>;
|
|
87
87
|
export declare const cartSummarySchema: z.ZodObject<{
|
|
@@ -136,8 +136,8 @@ export declare const cartSummarySchema: z.ZodObject<{
|
|
|
136
136
|
attributes?: Record<string, string> | undefined;
|
|
137
137
|
} | undefined;
|
|
138
138
|
userId?: string | undefined;
|
|
139
|
-
sessionId?: string | undefined;
|
|
140
139
|
quantity?: number | undefined;
|
|
140
|
+
sessionId?: string | undefined;
|
|
141
141
|
addedAt?: string | undefined;
|
|
142
142
|
}>, "many">;
|
|
143
143
|
subtotal: z.ZodNumber;
|
|
@@ -174,8 +174,8 @@ export declare const cartSummarySchema: z.ZodObject<{
|
|
|
174
174
|
attributes?: Record<string, string> | undefined;
|
|
175
175
|
} | undefined;
|
|
176
176
|
userId?: string | undefined;
|
|
177
|
-
sessionId?: string | undefined;
|
|
178
177
|
quantity?: number | undefined;
|
|
178
|
+
sessionId?: string | undefined;
|
|
179
179
|
addedAt?: string | undefined;
|
|
180
180
|
}[];
|
|
181
181
|
subtotal: number;
|
|
@@ -11,6 +11,26 @@
|
|
|
11
11
|
* useSyncManager interval (up to 30s) to reflect a just-added item. */
|
|
12
12
|
export declare const CART_OPS_CHANGE_EVENT = "appkit/cart/ops-changed";
|
|
13
13
|
export declare const WISHLIST_OPS_CHANGE_EVENT = "appkit/wishlist/ops-changed";
|
|
14
|
+
/** Fired whenever an item is successfully added to the cart (server or guest
|
|
15
|
+
* path), carrying the resulting totals — so any layout chrome (header cart
|
|
16
|
+
* badge, a UPI-quick-pay widget, etc.) can react to the exact new
|
|
17
|
+
* itemCount/totalValue without re-fetching, instead of just knowing "the
|
|
18
|
+
* cart changed" like `CART_OPS_CHANGE_EVENT` (which carries no payload). */
|
|
19
|
+
export declare const CART_UPDATED_EVENT = "appkit/cart/updated";
|
|
20
|
+
export interface CartUpdatedEventDetail {
|
|
21
|
+
itemCount: number;
|
|
22
|
+
totalValue: number;
|
|
23
|
+
productTitle?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function dispatchCartUpdated(detail: CartUpdatedEventDetail): void;
|
|
26
|
+
/**
|
|
27
|
+
* Shared "added to cart" toast copy — every add-to-cart entry point (the
|
|
28
|
+
* server-backed `useAddToCart` hook, and the local-first quick-add actions
|
|
29
|
+
* on listing grids) shows the same item + updated count/total message
|
|
30
|
+
* instead of a bare "Added to cart", so callers only need to format
|
|
31
|
+
* currency, not compose the sentence twice.
|
|
32
|
+
*/
|
|
33
|
+
export declare function formatCartAddedMessage(detail: CartUpdatedEventDetail, formatCurrency: (amount: number) => string): string;
|
|
14
34
|
export type CartOpKind = "add" | "remove";
|
|
15
35
|
export type WishlistOpKind = "add" | "remove";
|
|
16
36
|
export interface CartOp {
|
|
@@ -17,6 +17,28 @@ const WL_OPS_KEY = () => `${APP_ID()}_wl_ops`;
|
|
|
17
17
|
* useSyncManager interval (up to 30s) to reflect a just-added item. */
|
|
18
18
|
export const CART_OPS_CHANGE_EVENT = "appkit/cart/ops-changed";
|
|
19
19
|
export const WISHLIST_OPS_CHANGE_EVENT = "appkit/wishlist/ops-changed";
|
|
20
|
+
/** Fired whenever an item is successfully added to the cart (server or guest
|
|
21
|
+
* path), carrying the resulting totals — so any layout chrome (header cart
|
|
22
|
+
* badge, a UPI-quick-pay widget, etc.) can react to the exact new
|
|
23
|
+
* itemCount/totalValue without re-fetching, instead of just knowing "the
|
|
24
|
+
* cart changed" like `CART_OPS_CHANGE_EVENT` (which carries no payload). */
|
|
25
|
+
export const CART_UPDATED_EVENT = "appkit/cart/updated";
|
|
26
|
+
export function dispatchCartUpdated(detail) {
|
|
27
|
+
if (typeof window === "undefined")
|
|
28
|
+
return;
|
|
29
|
+
window.dispatchEvent(new CustomEvent(CART_UPDATED_EVENT, { detail }));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Shared "added to cart" toast copy — every add-to-cart entry point (the
|
|
33
|
+
* server-backed `useAddToCart` hook, and the local-first quick-add actions
|
|
34
|
+
* on listing grids) shows the same item + updated count/total message
|
|
35
|
+
* instead of a bare "Added to cart", so callers only need to format
|
|
36
|
+
* currency, not compose the sentence twice.
|
|
37
|
+
*/
|
|
38
|
+
export function formatCartAddedMessage(detail, formatCurrency) {
|
|
39
|
+
const itemLabel = detail.productTitle ? `"${detail.productTitle}"` : "Item";
|
|
40
|
+
return `${itemLabel} added to cart — ${detail.itemCount} item${detail.itemCount !== 1 ? "s" : ""}, ${formatCurrency(detail.totalValue)} total`;
|
|
41
|
+
}
|
|
20
42
|
function dispatchCartOpsChange() {
|
|
21
43
|
if (typeof window === "undefined")
|
|
22
44
|
return;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import React from "react";
|
|
4
|
-
import { sortBy } from "@mohasinac/appkit";
|
|
4
|
+
import { sortBy } from "@mohasinac/appkit/client";
|
|
5
5
|
import { useQueryClient } from "@tanstack/react-query";
|
|
6
6
|
import { useApiMutation } from "@mohasinac/appkit/client";
|
|
7
7
|
import { Button, Modal, Row, Stack, Text, Textarea } from "../../../ui";
|
|
@@ -8,7 +8,7 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
|
8
8
|
* All data is server-fetched; this component owns URL-state driven
|
|
9
9
|
* sort/search/filter/pagination on top of the initial snapshot.
|
|
10
10
|
*/
|
|
11
|
-
import { Row, Stack, sortBy } from "@mohasinac/appkit";
|
|
11
|
+
import { Row, Stack, sortBy } from "@mohasinac/appkit/client";
|
|
12
12
|
import { useMemo, useCallback, useState } from "react";
|
|
13
13
|
import { Div, Label, Span, Text, Toggle, StickyToolbar } from "../../../ui";
|
|
14
14
|
import { ListingToolbar, Pagination, FilterDrawer } from "../../../ui";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { sortBy } from "@mohasinac/appkit";
|
|
3
|
+
import { sortBy } from "@mohasinac/appkit/client";
|
|
4
4
|
import { useTranslations } from "next-intl";
|
|
5
5
|
import { FilterFacetSection } from "../../filters/FilterFacetSection";
|
|
6
6
|
import { RangeFilter } from "../../filters/RangeFilter";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Row } from "@mohasinac/appkit";
|
|
3
|
+
import { Row } from "@mohasinac/appkit/client";
|
|
4
4
|
import { useState } from "react";
|
|
5
5
|
import { Div, Span, Text } from "../../../ui";
|
|
6
6
|
function CategoryTreeNode({ item, children = [], activeId, onSelect, depth = 0, }) {
|
|
@@ -385,8 +385,12 @@ export declare const categoryFirestoreSchema: z.ZodObject<{
|
|
|
385
385
|
slug: string;
|
|
386
386
|
order: number;
|
|
387
387
|
position: number;
|
|
388
|
-
isActive: boolean;
|
|
389
388
|
isFeatured: boolean;
|
|
389
|
+
isActive: boolean;
|
|
390
|
+
createdBy: string;
|
|
391
|
+
rootId: string;
|
|
392
|
+
tier: number;
|
|
393
|
+
isLeaf: boolean;
|
|
390
394
|
seo: {
|
|
391
395
|
title: string;
|
|
392
396
|
description: string;
|
|
@@ -394,10 +398,6 @@ export declare const categoryFirestoreSchema: z.ZodObject<{
|
|
|
394
398
|
ogImage?: string | undefined;
|
|
395
399
|
canonicalUrl?: string | undefined;
|
|
396
400
|
};
|
|
397
|
-
createdBy: string;
|
|
398
|
-
rootId: string;
|
|
399
|
-
tier: number;
|
|
400
|
-
isLeaf: boolean;
|
|
401
401
|
parentIds: string[];
|
|
402
402
|
isSearchable: boolean;
|
|
403
403
|
childrenIds: string[];
|
|
@@ -420,10 +420,10 @@ export declare const categoryFirestoreSchema: z.ZodObject<{
|
|
|
420
420
|
tier: number;
|
|
421
421
|
}[];
|
|
422
422
|
description?: string | undefined;
|
|
423
|
-
bundleProductIds?: string[] | undefined;
|
|
424
423
|
showOnHomepage?: boolean | undefined;
|
|
425
424
|
categoryType?: "brand" | "category" | "sublisting" | "bundle" | undefined;
|
|
426
425
|
bundleKind?: "brand" | "special" | undefined;
|
|
426
|
+
bundleProductIds?: string[] | undefined;
|
|
427
427
|
bundleItemDetails?: {
|
|
428
428
|
productId: string;
|
|
429
429
|
title?: string | undefined;
|
|
@@ -479,8 +479,12 @@ export declare const categoryFirestoreSchema: z.ZodObject<{
|
|
|
479
479
|
slug: string;
|
|
480
480
|
order: number;
|
|
481
481
|
position: number;
|
|
482
|
-
isActive: boolean;
|
|
483
482
|
isFeatured: boolean;
|
|
483
|
+
isActive: boolean;
|
|
484
|
+
createdBy: string;
|
|
485
|
+
rootId: string;
|
|
486
|
+
tier: number;
|
|
487
|
+
isLeaf: boolean;
|
|
484
488
|
seo: {
|
|
485
489
|
title: string;
|
|
486
490
|
description: string;
|
|
@@ -488,10 +492,6 @@ export declare const categoryFirestoreSchema: z.ZodObject<{
|
|
|
488
492
|
ogImage?: string | undefined;
|
|
489
493
|
canonicalUrl?: string | undefined;
|
|
490
494
|
};
|
|
491
|
-
createdBy: string;
|
|
492
|
-
rootId: string;
|
|
493
|
-
tier: number;
|
|
494
|
-
isLeaf: boolean;
|
|
495
495
|
parentIds: string[];
|
|
496
496
|
isSearchable: boolean;
|
|
497
497
|
childrenIds: string[];
|
|
@@ -514,10 +514,10 @@ export declare const categoryFirestoreSchema: z.ZodObject<{
|
|
|
514
514
|
tier: number;
|
|
515
515
|
}[];
|
|
516
516
|
description?: string | undefined;
|
|
517
|
-
bundleProductIds?: string[] | undefined;
|
|
518
517
|
showOnHomepage?: boolean | undefined;
|
|
519
518
|
categoryType?: "brand" | "category" | "sublisting" | "bundle" | undefined;
|
|
520
519
|
bundleKind?: "brand" | "special" | undefined;
|
|
520
|
+
bundleProductIds?: string[] | undefined;
|
|
521
521
|
bundleItemDetails?: {
|
|
522
522
|
productId: string;
|
|
523
523
|
title?: string | undefined;
|
|
@@ -685,14 +685,14 @@ export declare const categoryItemSchema: z.ZodObject<{
|
|
|
685
685
|
description?: string | undefined;
|
|
686
686
|
order?: number | undefined;
|
|
687
687
|
isFeatured?: boolean | undefined;
|
|
688
|
+
rootId?: string | undefined;
|
|
689
|
+
isLeaf?: boolean | undefined;
|
|
688
690
|
seo?: {
|
|
689
691
|
title?: string | undefined;
|
|
690
692
|
description?: string | undefined;
|
|
691
693
|
keywords?: string[] | undefined;
|
|
692
694
|
ogImage?: string | undefined;
|
|
693
695
|
} | undefined;
|
|
694
|
-
rootId?: string | undefined;
|
|
695
|
-
isLeaf?: boolean | undefined;
|
|
696
696
|
parentIds?: string[] | undefined;
|
|
697
697
|
featuredPriority?: number | undefined;
|
|
698
698
|
childrenIds?: string[] | undefined;
|
|
@@ -718,14 +718,14 @@ export declare const categoryItemSchema: z.ZodObject<{
|
|
|
718
718
|
description?: string | undefined;
|
|
719
719
|
order?: number | undefined;
|
|
720
720
|
isFeatured?: boolean | undefined;
|
|
721
|
+
rootId?: string | undefined;
|
|
722
|
+
isLeaf?: boolean | undefined;
|
|
721
723
|
seo?: {
|
|
722
724
|
title?: string | undefined;
|
|
723
725
|
description?: string | undefined;
|
|
724
726
|
keywords?: string[] | undefined;
|
|
725
727
|
ogImage?: string | undefined;
|
|
726
728
|
} | undefined;
|
|
727
|
-
rootId?: string | undefined;
|
|
728
|
-
isLeaf?: boolean | undefined;
|
|
729
729
|
parentIds?: string[] | undefined;
|
|
730
730
|
featuredPriority?: number | undefined;
|
|
731
731
|
childrenIds?: string[] | undefined;
|
|
@@ -66,6 +66,26 @@ export declare function listPublicEvents(params?: string | {
|
|
|
66
66
|
}): Promise<FirebaseSieveResult<EventDocument>>;
|
|
67
67
|
export declare function getPublicEventById(id: string): Promise<EventDocument | null>;
|
|
68
68
|
export declare function getEventLeaderboard(eventId: string): Promise<import("../types").LeaderboardEntry[]>;
|
|
69
|
+
/**
|
|
70
|
+
* Last N spins that actually won a prize, most recent first — powers the
|
|
71
|
+
* public "Last 10 Spin Results" tab on spin_wheel events. Joins each entry's
|
|
72
|
+
* `spinPrizeId` against the event's `spinPrizes` config for a human label
|
|
73
|
+
* (the entries repository has no access to the events collection, mirroring
|
|
74
|
+
* `getEventPollResults`' join pattern above) and marks guest spins so the
|
|
75
|
+
* caller can render a generic "Guest" label instead of a raw hash.
|
|
76
|
+
*/
|
|
77
|
+
export declare function getEventSpinResults(eventId: string, limit?: number): Promise<import("../types").SpinResultEntry[]>;
|
|
78
|
+
/**
|
|
79
|
+
* Per-option vote tally for a poll event — replaces the voter-ranked
|
|
80
|
+
* leaderboard for event.type === "poll", where ranking "who happened to
|
|
81
|
+
* vote" is meaningless. Mirrors the resultsVisibility gating already used by
|
|
82
|
+
* the /api/events/[id] live-tally response: results are only surfaced when
|
|
83
|
+
* pollConfig.resultsVisibility is "always", or "after_end" once the event
|
|
84
|
+
* has actually ended. ("after_vote" visibility needs per-viewer vote state,
|
|
85
|
+
* which this public/cached read path has no user context for, so it's
|
|
86
|
+
* treated as not-yet-visible here.)
|
|
87
|
+
*/
|
|
88
|
+
export declare function getEventPollResults(eventId: string): Promise<import("../types").PollResultEntry[]>;
|
|
69
89
|
/** Related events — other active events sharing at least one tag, excluding this one. */
|
|
70
90
|
export declare function getRelatedEvents(tags: string[], excludeId: string, limit?: number): Promise<EventDocument[]>;
|
|
71
91
|
export declare function adminListEvents(params?: {
|
|
@@ -89,6 +109,6 @@ export declare function enterEvent(eventId: string, input: EnterEventInput, user
|
|
|
89
109
|
uid: string;
|
|
90
110
|
displayName?: string;
|
|
91
111
|
email?: string;
|
|
92
|
-
}): Promise<{
|
|
112
|
+
}, request?: Request): Promise<{
|
|
93
113
|
entryId: string;
|
|
94
114
|
}>;
|