@mohasinac/appkit 4.43.0 → 4.44.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/server/features/categories/adapters.d.ts +47 -0
- package/dist/_internal/server/features/categories/adapters.js +235 -0
- package/dist/_internal/server/features/checkout/actions.js +161 -22
- package/dist/_internal/server/features/checkout/expand-order-items.js +34 -0
- package/dist/_internal/server/features/orders/adapters.js +21 -0
- package/dist/_internal/server/features/refunds/actions.js +1 -1
- package/dist/_internal/server/features/seo/sitemap.js +54 -15
- package/dist/_internal/server/features/stores/adapters.d.ts +1 -1
- package/dist/_internal/server/features/stores/adapters.js +6 -0
- package/dist/_internal/server/functions/scheduled.d.ts +4 -2
- package/dist/_internal/server/functions/scheduled.js +64 -6
- package/dist/_internal/server/jobs/core/adminAnalytics.d.ts +0 -1
- package/dist/_internal/server/jobs/core/adminAnalytics.js +9 -1
- package/dist/_internal/server/jobs/core/analyticsAlertEvaluate.d.ts +47 -0
- package/dist/_internal/server/jobs/core/analyticsAlertEvaluate.js +468 -0
- package/dist/_internal/server/jobs/core/autoPayoutEligibility.js +14 -1
- package/dist/_internal/server/jobs/core/countersReconcile.js +24 -8
- package/dist/_internal/server/jobs/core/onCategoryWrite.js +54 -0
- package/dist/_internal/server/jobs/core/priceIndexRollup.d.ts +47 -0
- package/dist/_internal/server/jobs/core/priceIndexRollup.js +234 -0
- package/dist/_internal/server/jobs/core/{testerSandboxCleanup.d.ts → testDataCleanup.d.ts} +3 -3
- package/dist/_internal/server/jobs/core/{testerSandboxCleanup.js → testDataCleanup.js} +3 -3
- package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +5 -1
- package/dist/_internal/server/jobs/handlers/analyticsAlertEvaluate.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/analyticsAlertEvaluate.js +2 -0
- package/dist/_internal/server/jobs/handlers/index.d.ts +3 -1
- package/dist/_internal/server/jobs/handlers/index.js +3 -1
- package/dist/_internal/server/jobs/handlers/messages.d.ts +5 -2
- package/dist/_internal/server/jobs/handlers/messages.js +5 -2
- package/dist/_internal/server/jobs/handlers/priceIndexRollup.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/priceIndexRollup.js +2 -0
- package/dist/_internal/server/jobs/handlers/testDataCleanup.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/testDataCleanup.js +2 -0
- package/dist/_internal/shared/actions/action-registry.js +34 -0
- package/dist/_internal/shared/checkout/order-math.d.ts +113 -3
- package/dist/_internal/shared/checkout/order-math.js +194 -7
- package/dist/_internal/shared/features/categories/price-guidance.d.ts +110 -0
- package/dist/_internal/shared/features/categories/price-guidance.js +136 -0
- package/dist/_internal/shared/features/site-settings/gst-registration.d.ts +90 -0
- package/dist/_internal/shared/features/site-settings/gst-registration.js +126 -0
- package/dist/_internal/shared/fees/calculator.d.ts +105 -0
- package/dist/_internal/shared/fees/calculator.js +143 -0
- package/dist/_internal/shared/listing-types/art/config.d.ts +0 -6
- package/dist/_internal/shared/listing-types/classified/config.d.ts +0 -6
- package/dist/_internal/shared/listing-types/digital-code/config.d.ts +0 -6
- package/dist/_internal/shared/listing-types/live/config.d.ts +0 -6
- package/dist/_internal/shared/listing-types/standard/config.d.ts +0 -6
- package/dist/_internal/shared/listing-types/stickers/config.d.ts +0 -6
- package/dist/_internal/shared/templating/placeholders.d.ts +70 -0
- package/dist/_internal/shared/templating/placeholders.js +73 -0
- package/dist/client.d.ts +2 -0
- package/dist/client.js +1 -0
- package/dist/constants/api-endpoints.d.ts +42 -0
- package/dist/constants/api-endpoints.js +14 -0
- package/dist/features/admin/actions/admin-actions.d.ts +1 -1
- package/dist/features/admin/actions/admin-actions.js +1 -1
- package/dist/features/admin/components/AdminCategoryEditorView.js +269 -3
- package/dist/features/admin/components/AdminProductEditorView.js +8 -1
- package/dist/features/admin/components/AdminProductsView.js +78 -7
- package/dist/features/admin/components/AdminSiteSettingsView.js +20 -1
- package/dist/features/admin/components/AdminTaxCodeEditorView.d.ts +10 -0
- package/dist/features/admin/components/AdminTaxCodeEditorView.js +160 -0
- package/dist/features/admin/components/AdminTaxCodesView.d.ts +13 -0
- package/dist/features/admin/components/AdminTaxCodesView.js +86 -0
- package/dist/features/admin/components/AdminTesterChecklistView.js +1 -1
- package/dist/features/admin/components/analytics/AdminTopProductsTable.js +1 -1
- package/dist/features/auth/schemas/firestore.d.ts +0 -1
- package/dist/features/blog/schemas/firestore.d.ts +2 -2
- package/dist/features/catalogue/components/CatalogueItemEditorView.js +14 -3
- package/dist/features/categories/api/[id]/description-template/route.d.ts +45 -0
- package/dist/features/categories/api/[id]/description-template/route.js +252 -0
- package/dist/features/categories/api/route.js +156 -11
- package/dist/features/categories/components/CategoryDetailPageView.js +43 -10
- package/dist/features/categories/components/CategoryTemplatePicker.d.ts +65 -0
- package/dist/features/categories/components/CategoryTemplatePicker.js +170 -0
- package/dist/features/categories/constants/listing-categories.d.ts +17 -0
- package/dist/features/categories/constants/listing-categories.js +53 -0
- package/dist/features/categories/hooks/useCategoryTree.js +28 -2
- package/dist/features/categories/repository/categories.repository.d.ts +62 -11
- package/dist/features/categories/repository/categories.repository.js +178 -35
- package/dist/features/categories/repository/price-index.repository.d.ts +115 -0
- package/dist/features/categories/repository/price-index.repository.js +85 -0
- package/dist/features/categories/schemas/category-content.d.ts +206 -0
- package/dist/features/categories/schemas/category-content.js +28 -0
- package/dist/features/categories/schemas/firestore.d.ts +74 -5
- package/dist/features/categories/schemas/firestore.js +74 -3
- package/dist/features/categories/schemas/index.d.ts +1047 -0
- package/dist/features/categories/schemas/index.js +96 -0
- package/dist/features/categories/server.d.ts +1 -0
- package/dist/features/categories/server.js +7 -0
- package/dist/features/categories/types/index.d.ts +9 -0
- package/dist/features/events/schemas/firestore.d.ts +2 -2
- package/dist/features/faq/schemas/firestore.d.ts +2 -1
- package/dist/features/faq/schemas/firestore.js +20 -8
- package/dist/features/orders/schemas/firestore.d.ts +70 -0
- package/dist/features/orders/types/index.d.ts +55 -0
- package/dist/features/products/columns/index.d.ts +0 -1
- package/dist/features/products/columns/index.js +5 -1
- package/dist/features/products/components/ProductFilters.d.ts +0 -9
- package/dist/features/products/components/ProductForm.d.ts +27 -1
- package/dist/features/products/components/ProductForm.js +26 -12
- package/dist/features/products/constants/sieve.d.ts +0 -6
- package/dist/features/products/constants/sieve.js +35 -2
- package/dist/features/products/repository/products.repository.d.ts +115 -1
- package/dist/features/products/repository/products.repository.js +491 -39
- package/dist/features/products/schemas/firestore.d.ts +65 -5
- package/dist/features/products/schemas/firestore.js +9 -0
- package/dist/features/products/schemas/product-features.d.ts +140 -2
- package/dist/features/products/schemas/product-features.js +62 -1
- package/dist/features/promotions/repository/coupons.repository.js +6 -1
- package/dist/features/promotions/schemas/firestore.d.ts +44 -1
- package/dist/features/promotions/schemas/firestore.js +76 -2
- package/dist/features/seller/actions/seller-actions.js +17 -2
- package/dist/features/seller/components/PrintCenterView.d.ts +3 -2
- package/dist/features/seller/components/PrintCenterView.js +3 -2
- package/dist/features/seller/components/SellerAnalyticsAlertsView.js +21 -11
- package/dist/features/seller/components/SellerOrdersView.js +6 -1
- package/dist/features/seller/components/SellerPayoutSettingsView.js +19 -3
- package/dist/features/seller/components/SellerProductShell.d.ts +50 -2
- package/dist/features/seller/components/SellerProductShell.js +101 -9
- package/dist/features/seller/components/SellerProductsFilterDrawer.d.ts +13 -1
- package/dist/features/seller/components/SellerProductsFilterDrawer.js +2 -2
- package/dist/features/seller/components/SellerProductsView.js +108 -3
- package/dist/features/seller/types/index.d.ts +17 -0
- package/dist/features/seller/utils/product-draft-mapping.d.ts +13 -0
- package/dist/features/seller/utils/product-draft-mapping.js +17 -0
- package/dist/features/store-extensions/constants/alert-metrics.d.ts +86 -0
- package/dist/features/store-extensions/constants/alert-metrics.js +142 -0
- package/dist/features/store-extensions/schemas/firestore.d.ts +19 -1
- package/dist/features/stores/schemas/firestore.d.ts +31 -2
- package/dist/features/tax-codes/repository/tax-codes.repository.d.ts +55 -0
- package/dist/features/tax-codes/repository/tax-codes.repository.js +131 -0
- package/dist/features/tax-codes/schemas/firestore.d.ts +125 -0
- package/dist/features/tax-codes/schemas/firestore.js +82 -0
- package/dist/features/tax-codes/schemas/tax-code-form.d.ts +63 -0
- package/dist/features/tax-codes/schemas/tax-code-form.js +152 -0
- package/dist/features/tax-codes/schemas/tax-codes.validators.d.ts +107 -0
- package/dist/features/tax-codes/schemas/tax-codes.validators.js +85 -0
- package/dist/features/tester/actions/index.d.ts +0 -1
- package/dist/features/tester/actions/index.js +0 -1
- package/dist/features/tester/components/AdminTesterFeedbackIssuesView.js +1 -1
- package/dist/features/tester/components/AdminTesterFeedbackListView.js +1 -1
- package/dist/features/tester/components/index.d.ts +0 -4
- package/dist/features/tester/components/index.js +0 -2
- package/dist/features/tester/repository/tester-checklist-item.repository.d.ts +1 -20
- package/dist/features/tester/repository/tester-checklist-item.repository.js +0 -52
- package/dist/features/tester/schemas/firestore.d.ts +0 -6
- package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.js +3 -3
- package/dist/features/tester/seed-data/authored/admin__site-system.js +4 -5
- package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.js +2 -2
- package/dist/features/tester/seed-data/authored/index.js +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__reachability.js +0 -19
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +8 -27
- package/dist/index.d.ts +21 -7
- package/dist/index.js +53 -7
- package/dist/next/routing/route-map.d.ts +2 -4
- package/dist/next/routing/route-map.js +1 -2
- package/dist/repositories/index.d.ts +1 -0
- package/dist/repositories/index.js +1 -0
- package/dist/schemas/registry.d.ts +506 -0
- package/dist/seed/_helpers/brand-rows.d.ts +35 -0
- package/dist/seed/_helpers/brand-rows.js +576 -0
- package/dist/seed/_helpers/category-content.d.ts +39 -0
- package/dist/seed/_helpers/category-content.js +634 -0
- package/dist/seed/_helpers/category-forest.d.ts +2 -0
- package/dist/seed/_helpers/category-forest.js +585 -243
- package/dist/seed/_helpers/category-models.d.ts +5 -0
- package/dist/seed/_helpers/category-models.js +1364 -0
- package/dist/seed/_helpers/category-tree.js +17 -1
- package/dist/seed/_helpers/character-features.d.ts +10 -0
- package/dist/seed/_helpers/character-features.js +118 -0
- package/dist/seed/_helpers/search-txt-wrappers.d.ts +10 -0
- package/dist/seed/_helpers/search-txt-wrappers.js +12 -1
- package/dist/seed/categories-seed-data.js +147 -169
- package/dist/seed/index.d.ts +1 -0
- package/dist/seed/index.js +1 -0
- package/dist/seed/manifest.d.ts +1 -1
- package/dist/seed/manifest.js +5 -0
- package/dist/seed/product-features-seed-data.d.ts +1 -8
- package/dist/seed/product-features-seed-data.js +358 -154
- package/dist/seed/products-art-seed-data.js +16 -4
- package/dist/seed/products-auctions-seed-data.js +6 -6
- package/dist/seed/products-classifieds-seed-data.js +17 -7
- package/dist/seed/products-digital-codes-seed-data.js +12 -12
- package/dist/seed/products-preorders-seed-data.js +8 -8
- package/dist/seed/products-prize-draws-seed-data.js +25 -8
- package/dist/seed/products-standard-seed-data.js +10 -60
- package/dist/seed/products-stickers-seed-data.js +6 -6
- package/dist/seed/site-settings-seed-data.js +24 -0
- package/dist/seed/store-extensions-seed-data.js +10 -4
- package/dist/seed/tax-codes-seed-data.d.ts +34 -0
- package/dist/seed/tax-codes-seed-data.js +100 -0
- package/dist/seed/test-data-ttl.d.ts +29 -0
- package/dist/seed/test-data-ttl.js +31 -0
- package/dist/server-entry.d.ts +1 -1
- package/dist/server-entry.js +6 -1
- package/dist/server.d.ts +2 -1
- package/dist/server.js +5 -2
- package/dist/styles.css +40 -0
- package/dist/ui/components/PaginatedSelect.d.ts +14 -0
- package/dist/ui/components/PaginatedSelect.js +0 -0
- package/dist/ui/components/PaginatedSelect.style.css +40 -0
- package/dist/utils/physical-location.d.ts +23 -0
- package/dist/utils/physical-location.js +52 -0
- package/dist/utils/search-txt-builders.d.ts +20 -0
- package/dist/utils/search-txt-builders.js +36 -0
- package/package.json +1 -1
- package/scripts/seed-cli.mjs +4 -1
- package/dist/_internal/server/jobs/handlers/testerSandboxCleanup.d.ts +0 -2
- package/dist/_internal/server/jobs/handlers/testerSandboxCleanup.js +0 -2
- package/dist/features/tester/actions/leaderboard-actions.d.ts +0 -3
- package/dist/features/tester/actions/leaderboard-actions.js +0 -5
- package/dist/features/tester/components/BugHunterLeaderboardView.d.ts +0 -23
- package/dist/features/tester/components/BugHunterLeaderboardView.js +0 -18
- package/dist/features/tester/components/TesterHubView.d.ts +0 -5
- package/dist/features/tester/components/TesterHubView.js +0 -110
- package/dist/features/tester/seed-data/authored/public-pages__bug-hunters.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__bug-hunters.js +0 -78
- package/dist/features/tester/seed-data/tester-ttl.d.ts +0 -4
- package/dist/features/tester/seed-data/tester-ttl.js +0 -6
|
@@ -20,6 +20,7 @@ export const CATEGORIES_INDEXED_FIELDS = [
|
|
|
20
20
|
"isActive",
|
|
21
21
|
"isSearchable",
|
|
22
22
|
"showOnHomepage",
|
|
23
|
+
"searchTxt",
|
|
23
24
|
"createdBy",
|
|
24
25
|
"createdByType",
|
|
25
26
|
"createdByStoreId",
|
|
@@ -76,6 +77,31 @@ export const CATEGORIES_PUBLIC_FIELDS = [
|
|
|
76
77
|
"display",
|
|
77
78
|
"isActive",
|
|
78
79
|
"ancestors",
|
|
80
|
+
/*
|
|
81
|
+
* B3. `highlights` and `faqs` were MISSING from both this list and the
|
|
82
|
+
* updatable one, which is the more interesting half: `CategoryUpdateInput`
|
|
83
|
+
* derives from UPDATABLE_FIELDS, so a field absent from it is not even
|
|
84
|
+
* TYPE-LEGAL to update — and both had shipped with no editor at all.
|
|
85
|
+
* Precedent-by-omission gets closed, not copied.
|
|
86
|
+
*
|
|
87
|
+
* `productDefaults` is public because its advisory half (priceGuidance,
|
|
88
|
+
* specifications, inTheBox) is rendered to buyers and sellers. Its
|
|
89
|
+
* `taxCodeId` is a reference to an admin-only row, not a secret.
|
|
90
|
+
*/
|
|
91
|
+
"highlights",
|
|
92
|
+
"faqs",
|
|
93
|
+
"contentBody",
|
|
94
|
+
"descriptionTemplates",
|
|
95
|
+
"productDefaults",
|
|
96
|
+
/*
|
|
97
|
+
* B5. `aliases` is public because it is already published in a form nobody
|
|
98
|
+
* can withhold: every alias is tokenised into `searchTxt`, which is what the
|
|
99
|
+
* search endpoint matches on, so the facts are inferable from search results
|
|
100
|
+
* whether or not the array is in the payload. Withholding it would hide a
|
|
101
|
+
* useful "also known as" line from the page while changing nothing about
|
|
102
|
+
* what is reachable.
|
|
103
|
+
*/
|
|
104
|
+
"aliases",
|
|
79
105
|
];
|
|
80
106
|
export const CATEGORIES_UPDATABLE_FIELDS = [
|
|
81
107
|
"name",
|
|
@@ -89,6 +115,14 @@ export const CATEGORIES_UPDATABLE_FIELDS = [
|
|
|
89
115
|
"display",
|
|
90
116
|
"isActive",
|
|
91
117
|
"isSearchable",
|
|
118
|
+
// B3 — see the note in CATEGORIES_PUBLIC_FIELDS. Without these five,
|
|
119
|
+
// CategoryUpdateInput cannot express them and no editor can save them.
|
|
120
|
+
"highlights",
|
|
121
|
+
"faqs",
|
|
122
|
+
"contentBody",
|
|
123
|
+
"descriptionTemplates",
|
|
124
|
+
"productDefaults",
|
|
125
|
+
"aliases",
|
|
92
126
|
];
|
|
93
127
|
export const categoryQueryHelpers = {
|
|
94
128
|
bySlug: (slug) => ["slug", "==", slug],
|
|
@@ -179,6 +213,12 @@ export const CATEGORY_FIELDS = {
|
|
|
179
213
|
VIEW_COUNT: "viewCount",
|
|
180
214
|
IS_ACTIVE: "isActive",
|
|
181
215
|
IS_SEARCHABLE: "isSearchable",
|
|
216
|
+
SEARCH_TXT: "searchTxt",
|
|
217
|
+
CONTENT_BODY: "contentBody",
|
|
218
|
+
DESCRIPTION_TEMPLATES: "descriptionTemplates",
|
|
219
|
+
PRODUCT_DEFAULTS: "productDefaults",
|
|
220
|
+
/* Dot-path, so a referrer query is one equality and needs no index. */
|
|
221
|
+
PRODUCT_DEFAULTS_TAX_CODE_ID: "productDefaults.taxCodeId",
|
|
182
222
|
CATEGORY_TYPE: "categoryType",
|
|
183
223
|
CREATED_BY: "createdBy",
|
|
184
224
|
CREATED_AT: "createdAt",
|
|
@@ -187,12 +227,43 @@ export const CATEGORY_FIELDS = {
|
|
|
187
227
|
};
|
|
188
228
|
/**
|
|
189
229
|
* Build a category tree from a flat list of CategoryDocument objects.
|
|
230
|
+
*
|
|
231
|
+
* 🛑 ONE INDEXING PASS, then recursion — not a `.filter()` per node.
|
|
232
|
+
* This used to scan the whole array once per category to find its children,
|
|
233
|
+
* which is O(n²): 2,209 comparisons at today's 47 nodes, ~109,000 at the ~330
|
|
234
|
+
* this plan seeds, and **2.25 million** at 1,500. It runs inside
|
|
235
|
+
* `categoriesRepository.buildTree()`, i.e. on a request path. Grouping by
|
|
236
|
+
* parent id first makes it O(n log n) (the sorts) and the output is
|
|
237
|
+
* byte-identical: same roots, same child order, same depths.
|
|
238
|
+
*
|
|
239
|
+
* 🛑 The `seen` set is not defensive padding. A root is picked by
|
|
240
|
+
* `tier === 0`, and nothing stops a corrupt row from being tier 0 *and* a
|
|
241
|
+
* descendant of its own child (`parentIds` is a denormalised chain that four
|
|
242
|
+
* different write paths maintain). The old code would recurse forever on that,
|
|
243
|
+
* and a hung SSR render is worse than a failed one — it holds a function open
|
|
244
|
+
* for its whole timeout and reports nothing. A revisited node is dropped from
|
|
245
|
+
* the second position it appears in rather than throwing: a malformed edge
|
|
246
|
+
* should cost one tile, not the category page.
|
|
190
247
|
*/
|
|
191
248
|
export function buildCategoryTree(categories, rootId) {
|
|
249
|
+
const byParent = new Map();
|
|
250
|
+
for (const cat of categories) {
|
|
251
|
+
const parentId = cat.parentIds[cat.parentIds.length - 1];
|
|
252
|
+
if (!parentId)
|
|
253
|
+
continue;
|
|
254
|
+
const bucket = byParent.get(parentId);
|
|
255
|
+
if (bucket)
|
|
256
|
+
bucket.push(cat);
|
|
257
|
+
else
|
|
258
|
+
byParent.set(parentId, [cat]);
|
|
259
|
+
}
|
|
260
|
+
for (const bucket of byParent.values())
|
|
261
|
+
bucket.sort((a, b) => a.order - b.order);
|
|
262
|
+
const seen = new Set();
|
|
192
263
|
function buildTree(category, depth) {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
.
|
|
264
|
+
seen.add(category.id);
|
|
265
|
+
const children = (byParent.get(category.id) ?? [])
|
|
266
|
+
.filter((child) => !seen.has(child.id))
|
|
196
267
|
.map((child) => buildTree(child, depth + 1));
|
|
197
268
|
return { category, children, depth };
|
|
198
269
|
}
|