@unchainedshop/core 4.8.0 → 4.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/lib/bulk-exporter/createBulkExporter.d.ts +2 -2
  2. package/lib/bulk-exporter/createBulkExporter.js +2 -2
  3. package/lib/bulk-exporter/handlers/exportAssortmentsHandler.d.ts +19 -19
  4. package/lib/bulk-exporter/handlers/exportAssortmentsHandler.js +9 -9
  5. package/lib/bulk-exporter/handlers/exportFiltersHandler.d.ts +11 -11
  6. package/lib/bulk-exporter/handlers/exportFiltersHandler.js +5 -5
  7. package/lib/bulk-exporter/handlers/exportProductsHandler.d.ts +19 -19
  8. package/lib/bulk-exporter/handlers/exportProductsHandler.js +9 -9
  9. package/lib/bulk-exporter/handlers/exportUsersHandler.d.ts +17 -17
  10. package/lib/bulk-exporter/handlers/exportUsersHandler.js +8 -8
  11. package/lib/bulk-importer/createBulkImporter.d.ts +2 -2
  12. package/lib/bulk-importer/createBulkImporter.js +7 -2
  13. package/lib/bulk-importer/handlers/assortment/create.d.ts +87 -87
  14. package/lib/bulk-importer/handlers/assortment/create.js +13 -15
  15. package/lib/bulk-importer/handlers/assortment/remove.d.ts +5 -5
  16. package/lib/bulk-importer/handlers/assortment/remove.js +1 -1
  17. package/lib/bulk-importer/handlers/assortment/update.d.ts +87 -87
  18. package/lib/bulk-importer/handlers/assortment/update.js +17 -21
  19. package/lib/bulk-importer/handlers/assortment/upsertAssortmentChildren.d.ts +7 -7
  20. package/lib/bulk-importer/handlers/assortment/upsertAssortmentChildren.js +5 -5
  21. package/lib/bulk-importer/handlers/assortment/upsertAssortmentFilters.d.ts +7 -7
  22. package/lib/bulk-importer/handlers/assortment/upsertAssortmentFilters.js +5 -5
  23. package/lib/bulk-importer/handlers/assortment/upsertAssortmentProducts.d.ts +7 -7
  24. package/lib/bulk-importer/handlers/assortment/upsertAssortmentProducts.js +5 -5
  25. package/lib/bulk-importer/handlers/assortment/upsertMedia.d.ts +14 -14
  26. package/lib/bulk-importer/handlers/assortment/upsertMedia.js +8 -10
  27. package/lib/bulk-importer/handlers/filter/create.d.ts +19 -19
  28. package/lib/bulk-importer/handlers/filter/create.js +8 -10
  29. package/lib/bulk-importer/handlers/filter/remove.d.ts +3 -3
  30. package/lib/bulk-importer/handlers/filter/remove.js +1 -1
  31. package/lib/bulk-importer/handlers/filter/update.d.ts +19 -19
  32. package/lib/bulk-importer/handlers/filter/update.js +8 -10
  33. package/lib/bulk-importer/handlers/product/create.d.ts +175 -175
  34. package/lib/bulk-importer/handlers/product/create.js +38 -47
  35. package/lib/bulk-importer/handlers/product/remove.d.ts +5 -5
  36. package/lib/bulk-importer/handlers/product/remove.js +1 -1
  37. package/lib/bulk-importer/handlers/product/update.d.ts +175 -175
  38. package/lib/bulk-importer/handlers/product/update.js +40 -52
  39. package/lib/bulk-importer/handlers/product/upsertMedia.d.ts +14 -14
  40. package/lib/bulk-importer/handlers/product/upsertMedia.js +8 -10
  41. package/lib/bulk-importer/handlers/product/upsertVariations.d.ts +13 -13
  42. package/lib/bulk-importer/handlers/product/upsertVariations.js +10 -14
  43. package/lib/bulk-importer/upsertAsset.d.ts +7 -7
  44. package/lib/bulk-importer/upsertAsset.js +4 -4
  45. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import exportProductsHandler from './handlers/exportProductsHandler.ts';
2
2
  import exportAssortmentsHandler from './handlers/exportAssortmentsHandler.ts';
3
3
  import exportFiltersHandler from './handlers/exportFiltersHandler.ts';
4
- import { z } from 'zod';
4
+ import { z } from 'zod/v4-mini';
5
5
  import type { CSVFileResult } from './handlers/generateCSVFileAndUrl.ts';
6
6
  export declare const EXPORTS_DIRECTORY = "exports";
7
7
  export type ExportFiles = Record<string, CSVFileResult | null>;
@@ -11,7 +11,7 @@ export interface BulkExportOperationResult {
11
11
  files: ExportFiles;
12
12
  }
13
13
  export interface BulkExportHandler<T = unknown> {
14
- payloadSchema?: z.ZodObject<z.ZodRawShape>;
14
+ payloadSchema?: z.ZodMiniObject;
15
15
  (params: Record<string, unknown>, locales: string[], unchainedAPI: T): Promise<ExportFiles>;
16
16
  }
17
17
  export interface BulkExporterOptions {
@@ -2,7 +2,7 @@ import exportProductsHandler from "./handlers/exportProductsHandler.js";
2
2
  import exportAssortmentsHandler from "./handlers/exportAssortmentsHandler.js";
3
3
  import exportFiltersHandler from "./handlers/exportFiltersHandler.js";
4
4
  import { createLogger } from '@unchainedshop/logger';
5
- import { z } from 'zod';
5
+ import { z } from 'zod/v4-mini';
6
6
  import exportUsersHandler from "./handlers/exportUsersHandler.js";
7
7
  const logger = createLogger('unchained:bulk-export');
8
8
  export const EXPORTS_DIRECTORY = 'exports';
@@ -30,7 +30,7 @@ export default function createBulkExporterFactory(bulkExporterOptions) {
30
30
  }
31
31
  }
32
32
  catch (e) {
33
- throw new Error(`${type}: ${e.message}`);
33
+ throw new Error(`${type}: ${e.message}`, { cause: e });
34
34
  }
35
35
  },
36
36
  execute: async (payload, locales, unchainedApi) => {
@@ -1,14 +1,14 @@
1
1
  import type { UnchainedCore } from '../../core-index.ts';
2
- import { z } from 'zod';
3
- export declare const AssortmentExportPayloadSchema: z.ZodObject<{
4
- exportAssortments: z.ZodOptional<z.ZodBoolean>;
5
- exportLinks: z.ZodOptional<z.ZodBoolean>;
6
- exportProducts: z.ZodOptional<z.ZodBoolean>;
7
- exportFilters: z.ZodOptional<z.ZodBoolean>;
8
- queryString: z.ZodOptional<z.ZodString>;
9
- includeInactive: z.ZodOptional<z.ZodBoolean>;
10
- includeLeaves: z.ZodOptional<z.ZodBoolean>;
11
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
2
+ import { z } from 'zod/v4-mini';
3
+ export declare const AssortmentExportPayloadSchema: z.ZodMiniObject<{
4
+ exportAssortments: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
5
+ exportLinks: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
6
+ exportProducts: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
7
+ exportFilters: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
8
+ queryString: z.ZodMiniOptional<z.ZodMiniString<string>>;
9
+ includeInactive: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
10
+ includeLeaves: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
11
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
12
12
  }, z.core.$strip>;
13
13
  export interface AssortmentExportParams {
14
14
  exportAssortments?: boolean;
@@ -24,15 +24,15 @@ declare const exportAssortmentsHandler: {
24
24
  products: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
25
25
  children: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
26
26
  }>;
27
- payloadSchema: z.ZodObject<{
28
- exportAssortments: z.ZodOptional<z.ZodBoolean>;
29
- exportLinks: z.ZodOptional<z.ZodBoolean>;
30
- exportProducts: z.ZodOptional<z.ZodBoolean>;
31
- exportFilters: z.ZodOptional<z.ZodBoolean>;
32
- queryString: z.ZodOptional<z.ZodString>;
33
- includeInactive: z.ZodOptional<z.ZodBoolean>;
34
- includeLeaves: z.ZodOptional<z.ZodBoolean>;
35
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
27
+ payloadSchema: z.ZodMiniObject<{
28
+ exportAssortments: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
29
+ exportLinks: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
30
+ exportProducts: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
31
+ exportFilters: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
32
+ queryString: z.ZodMiniOptional<z.ZodMiniString<string>>;
33
+ includeInactive: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
34
+ includeLeaves: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
35
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
36
36
  }, z.core.$strip>;
37
37
  };
38
38
  export default exportAssortmentsHandler;
@@ -1,15 +1,15 @@
1
1
  import generateCSVFileAndURL from "./generateCSVFileAndUrl.js";
2
- import { z } from 'zod';
2
+ import { z } from 'zod/v4-mini';
3
3
  import { EXPORTS_DIRECTORY } from "../createBulkExporter.js";
4
4
  export const AssortmentExportPayloadSchema = z.object({
5
- exportAssortments: z.boolean().optional(),
6
- exportLinks: z.boolean().optional(),
7
- exportProducts: z.boolean().optional(),
8
- exportFilters: z.boolean().optional(),
9
- queryString: z.string().optional(),
10
- includeInactive: z.boolean().optional(),
11
- includeLeaves: z.boolean().optional(),
12
- tags: z.array(z.string()).optional(),
5
+ exportAssortments: z.optional(z.boolean()),
6
+ exportLinks: z.optional(z.boolean()),
7
+ exportProducts: z.optional(z.boolean()),
8
+ exportFilters: z.optional(z.boolean()),
9
+ queryString: z.optional(z.string()),
10
+ includeInactive: z.optional(z.boolean()),
11
+ includeLeaves: z.optional(z.boolean()),
12
+ tags: z.optional(z.array(z.string())),
13
13
  });
14
14
  const ASSORTMENT_CSV_SCHEMA = {
15
15
  base: ['_id', 'isActive', 'isBase', 'isRoot', 'sequence', 'tags'],
@@ -1,10 +1,10 @@
1
1
  import type { UnchainedCore } from '../../core-index.ts';
2
- import { z } from 'zod';
3
- export declare const FilterExportPayloadSchema: z.ZodObject<{
4
- exportFilters: z.ZodOptional<z.ZodBoolean>;
5
- exportFilterOptions: z.ZodOptional<z.ZodBoolean>;
6
- queryString: z.ZodOptional<z.ZodString>;
7
- includeInactive: z.ZodOptional<z.ZodBoolean>;
2
+ import { z } from 'zod/v4-mini';
3
+ export declare const FilterExportPayloadSchema: z.ZodMiniObject<{
4
+ exportFilters: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
5
+ exportFilterOptions: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
6
+ queryString: z.ZodMiniOptional<z.ZodMiniString<string>>;
7
+ includeInactive: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
8
8
  }, z.core.$strip>;
9
9
  export interface FilterExportParams {
10
10
  exportFilters?: boolean;
@@ -16,11 +16,11 @@ declare const exportFiltersHandler: {
16
16
  filters: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
17
17
  filterOptions: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
18
18
  }>;
19
- payloadSchema: z.ZodObject<{
20
- exportFilters: z.ZodOptional<z.ZodBoolean>;
21
- exportFilterOptions: z.ZodOptional<z.ZodBoolean>;
22
- queryString: z.ZodOptional<z.ZodString>;
23
- includeInactive: z.ZodOptional<z.ZodBoolean>;
19
+ payloadSchema: z.ZodMiniObject<{
20
+ exportFilters: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
21
+ exportFilterOptions: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
22
+ queryString: z.ZodMiniOptional<z.ZodMiniString<string>>;
23
+ includeInactive: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
24
24
  }, z.core.$strip>;
25
25
  };
26
26
  export default exportFiltersHandler;
@@ -1,11 +1,11 @@
1
1
  import generateCSVFileAndURL from "./generateCSVFileAndUrl.js";
2
- import { z } from 'zod';
2
+ import { z } from 'zod/v4-mini';
3
3
  import { EXPORTS_DIRECTORY } from "../createBulkExporter.js";
4
4
  export const FilterExportPayloadSchema = z.object({
5
- exportFilters: z.boolean().optional(),
6
- exportFilterOptions: z.boolean().optional(),
7
- queryString: z.string().optional(),
8
- includeInactive: z.boolean().optional(),
5
+ exportFilters: z.optional(z.boolean()),
6
+ exportFilterOptions: z.optional(z.boolean()),
7
+ queryString: z.optional(z.string()),
8
+ includeInactive: z.optional(z.boolean()),
9
9
  });
10
10
  const FILTER_CSV_SCHEMA = {
11
11
  filterFields: ['_id', 'key', 'type', 'isActive'],
@@ -1,14 +1,14 @@
1
1
  import type { UnchainedCore } from '../../core-index.ts';
2
- import { z } from 'zod';
3
- export declare const ProductExportPayloadSchema: z.ZodObject<{
4
- exportProducts: z.ZodOptional<z.ZodBoolean>;
5
- exportBundleItems: z.ZodOptional<z.ZodBoolean>;
6
- exportPrices: z.ZodOptional<z.ZodBoolean>;
7
- exportVariations: z.ZodOptional<z.ZodBoolean>;
8
- exportVariationOptions: z.ZodOptional<z.ZodBoolean>;
9
- queryString: z.ZodOptional<z.ZodString>;
10
- includeDrafts: z.ZodOptional<z.ZodBoolean>;
11
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
2
+ import { z } from 'zod/v4-mini';
3
+ export declare const ProductExportPayloadSchema: z.ZodMiniObject<{
4
+ exportProducts: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
5
+ exportBundleItems: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
6
+ exportPrices: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
7
+ exportVariations: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
8
+ exportVariationOptions: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
9
+ queryString: z.ZodMiniOptional<z.ZodMiniString<string>>;
10
+ includeDrafts: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
11
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
12
12
  }, z.core.$strip>;
13
13
  export interface ProductExportParams {
14
14
  exportProducts?: boolean;
@@ -26,15 +26,15 @@ declare const exportProductsHandler: {
26
26
  variations: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
27
27
  variationOptions: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
28
28
  }>;
29
- payloadSchema: z.ZodObject<{
30
- exportProducts: z.ZodOptional<z.ZodBoolean>;
31
- exportBundleItems: z.ZodOptional<z.ZodBoolean>;
32
- exportPrices: z.ZodOptional<z.ZodBoolean>;
33
- exportVariations: z.ZodOptional<z.ZodBoolean>;
34
- exportVariationOptions: z.ZodOptional<z.ZodBoolean>;
35
- queryString: z.ZodOptional<z.ZodString>;
36
- includeDrafts: z.ZodOptional<z.ZodBoolean>;
37
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
29
+ payloadSchema: z.ZodMiniObject<{
30
+ exportProducts: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
31
+ exportBundleItems: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
32
+ exportPrices: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
33
+ exportVariations: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
34
+ exportVariationOptions: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
35
+ queryString: z.ZodMiniOptional<z.ZodMiniString<string>>;
36
+ includeDrafts: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
37
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
38
38
  }, z.core.$strip>;
39
39
  };
40
40
  export default exportProductsHandler;
@@ -1,15 +1,15 @@
1
1
  import generateCSVFileAndURL from "./generateCSVFileAndUrl.js";
2
- import { z } from 'zod';
2
+ import { z } from 'zod/v4-mini';
3
3
  import { EXPORTS_DIRECTORY } from "../createBulkExporter.js";
4
4
  export const ProductExportPayloadSchema = z.object({
5
- exportProducts: z.boolean().optional(),
6
- exportBundleItems: z.boolean().optional(),
7
- exportPrices: z.boolean().optional(),
8
- exportVariations: z.boolean().optional(),
9
- exportVariationOptions: z.boolean().optional(),
10
- queryString: z.string().optional(),
11
- includeDrafts: z.boolean().optional(),
12
- tags: z.array(z.string()).optional(),
5
+ exportProducts: z.optional(z.boolean()),
6
+ exportBundleItems: z.optional(z.boolean()),
7
+ exportPrices: z.optional(z.boolean()),
8
+ exportVariations: z.optional(z.boolean()),
9
+ exportVariationOptions: z.optional(z.boolean()),
10
+ queryString: z.optional(z.string()),
11
+ includeDrafts: z.optional(z.boolean()),
12
+ tags: z.optional(z.array(z.string())),
13
13
  });
14
14
  const PRODUCT_CSV_SCHEMA = {
15
15
  base: ['_id', 'sku', 'baseUnit', 'sequence', 'status', 'tags', 'updated', 'published', 'type'],
@@ -1,13 +1,13 @@
1
1
  import type { UnchainedCore } from '../../core-index.ts';
2
- import { z } from 'zod';
3
- export declare const UserExportPayloadSchema: z.ZodObject<{
4
- exportReviews: z.ZodOptional<z.ZodBoolean>;
5
- exportOrders: z.ZodOptional<z.ZodBoolean>;
6
- exportBookmarks: z.ZodOptional<z.ZodBoolean>;
7
- exportEvents: z.ZodOptional<z.ZodBoolean>;
8
- exportQuotations: z.ZodOptional<z.ZodBoolean>;
9
- exportEnrollments: z.ZodOptional<z.ZodBoolean>;
10
- userId: z.ZodOptional<z.ZodString>;
2
+ import { z } from 'zod/v4-mini';
3
+ export declare const UserExportPayloadSchema: z.ZodMiniObject<{
4
+ exportReviews: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
5
+ exportOrders: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
6
+ exportBookmarks: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
7
+ exportEvents: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
8
+ exportQuotations: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
9
+ exportEnrollments: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
10
+ userId: z.ZodMiniOptional<z.ZodMiniString<string>>;
11
11
  }, z.core.$strip>;
12
12
  export interface UserExportParams {
13
13
  exportReviews?: boolean;
@@ -27,14 +27,14 @@ declare const exportUsersHandler: {
27
27
  quotations: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
28
28
  enrollments: import("./generateCSVFileAndUrl.ts").CSVFileResult | null;
29
29
  }>;
30
- payloadSchema: z.ZodObject<{
31
- exportReviews: z.ZodOptional<z.ZodBoolean>;
32
- exportOrders: z.ZodOptional<z.ZodBoolean>;
33
- exportBookmarks: z.ZodOptional<z.ZodBoolean>;
34
- exportEvents: z.ZodOptional<z.ZodBoolean>;
35
- exportQuotations: z.ZodOptional<z.ZodBoolean>;
36
- exportEnrollments: z.ZodOptional<z.ZodBoolean>;
37
- userId: z.ZodOptional<z.ZodString>;
30
+ payloadSchema: z.ZodMiniObject<{
31
+ exportReviews: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
32
+ exportOrders: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
33
+ exportBookmarks: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
34
+ exportEvents: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
35
+ exportQuotations: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
36
+ exportEnrollments: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
37
+ userId: z.ZodMiniOptional<z.ZodMiniString<string>>;
38
38
  }, z.core.$strip>;
39
39
  };
40
40
  export default exportUsersHandler;
@@ -1,14 +1,14 @@
1
1
  import generateCSVFileAndURL from "./generateCSVFileAndUrl.js";
2
- import { z } from 'zod';
2
+ import { z } from 'zod/v4-mini';
3
3
  import { EXPORTS_DIRECTORY } from "../createBulkExporter.js";
4
4
  export const UserExportPayloadSchema = z.object({
5
- exportReviews: z.boolean().optional(),
6
- exportOrders: z.boolean().optional(),
7
- exportBookmarks: z.boolean().optional(),
8
- exportEvents: z.boolean().optional(),
9
- exportQuotations: z.boolean().optional(),
10
- exportEnrollments: z.boolean().optional(),
11
- userId: z.string().optional(),
5
+ exportReviews: z.optional(z.boolean()),
6
+ exportOrders: z.optional(z.boolean()),
7
+ exportBookmarks: z.optional(z.boolean()),
8
+ exportEvents: z.optional(z.boolean()),
9
+ exportQuotations: z.optional(z.boolean()),
10
+ exportEnrollments: z.optional(z.boolean()),
11
+ userId: z.optional(z.string()),
12
12
  });
13
13
  const USER_CSV_SCHEMA = {
14
14
  userFields: [
@@ -1,4 +1,4 @@
1
- import { z } from 'zod';
1
+ import { z } from 'zod/v4-mini';
2
2
  import { Readable } from 'node:stream';
3
3
  import { mongodb } from '@unchainedshop/mongodb';
4
4
  import * as AssortmentHandlers from './handlers/assortment/index.ts';
@@ -12,7 +12,7 @@ export interface BulkImportOperationResult {
12
12
  success: boolean;
13
13
  }
14
14
  export type BulkImportOperation<T> = {
15
- payloadSchema?: z.ZodObject;
15
+ payloadSchema?: z.ZodMiniObject;
16
16
  } & ((payload: any, options: {
17
17
  bulk: (collection: string) => typeof mongodb.BulkOperationBase;
18
18
  createShouldUpsertIfIDExists?: boolean;
@@ -1,4 +1,4 @@
1
- import { z } from 'zod';
1
+ import { z } from 'zod/v4-mini';
2
2
  import JSONStream from 'minipass-json-stream';
3
3
  import { PassThrough, Readable } from 'node:stream';
4
4
  import { pipeline } from 'node:stream/promises';
@@ -59,7 +59,12 @@ export default function createBulkImporterFactory(db, bulkImporterOptions) {
59
59
  }
60
60
  }
61
61
  catch (e) {
62
- throw new Error(`🤧 ${entity}.${operation}.${event.payload?._id || '*'} (${e.message})`);
62
+ const prefix = `🤧 ${entity}.${operation}.${event.payload?._id || '*'}`;
63
+ if (e.issues) {
64
+ const summary = e.issues.map((issue) => issue.message).join(', ');
65
+ throw new Error(`${prefix} (${summary})`, { cause: e });
66
+ }
67
+ throw new Error(`${prefix} (${e.message})`, { cause: e });
63
68
  }
64
69
  },
65
70
  prepare: async (event, unchainedAPI) => {
@@ -1,56 +1,56 @@
1
1
  import type { Modules } from '../../../modules.ts';
2
2
  import type { Services } from '../../../services/index.ts';
3
- import { z } from 'zod';
4
- export declare const AssortmentCreatePayloadSchema: z.ZodObject<{
5
- _id: z.ZodString;
6
- specification: z.ZodObject<{
7
- isActive: z.ZodBoolean;
8
- isRoot: z.ZodOptional<z.ZodBoolean>;
9
- sequence: z.ZodNumber;
10
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
11
- meta: z.ZodOptional<z.ZodRecord<z.ZodAny, z.ZodAny>>;
12
- content: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
13
- title: z.ZodOptional<z.ZodString>;
14
- subtitle: z.ZodOptional<z.ZodString>;
15
- slug: z.ZodOptional<z.ZodString>;
3
+ import { z } from 'zod/v4-mini';
4
+ export declare const AssortmentCreatePayloadSchema: z.ZodMiniObject<{
5
+ _id: z.ZodMiniString<string>;
6
+ specification: z.ZodMiniObject<{
7
+ isActive: z.ZodMiniBoolean<boolean>;
8
+ isRoot: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
9
+ sequence: z.ZodMiniNumber<number>;
10
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
11
+ meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
12
+ content: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
13
+ title: z.ZodMiniOptional<z.ZodMiniString<string>>;
14
+ subtitle: z.ZodMiniOptional<z.ZodMiniString<string>>;
15
+ slug: z.ZodMiniOptional<z.ZodMiniString<string>>;
16
16
  }, z.core.$strip>>>;
17
17
  }, z.core.$strip>;
18
- media: z.ZodOptional<z.ZodArray<z.ZodObject<{
19
- _id: z.ZodOptional<z.ZodString>;
20
- asset: z.ZodObject<{
21
- _id: z.ZodOptional<z.ZodString>;
22
- url: z.ZodString;
23
- meta: z.ZodOptional<z.ZodRecord<z.ZodAny, z.ZodAny>>;
24
- fileName: z.ZodString;
25
- headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
18
+ media: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
19
+ _id: z.ZodMiniOptional<z.ZodMiniString<string>>;
20
+ asset: z.ZodMiniObject<{
21
+ _id: z.ZodMiniOptional<z.ZodMiniString<string>>;
22
+ url: z.ZodMiniString<string>;
23
+ meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
24
+ fileName: z.ZodMiniString<string>;
25
+ headers: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniAny>>;
26
26
  }, z.core.$strip>;
27
- content: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
28
- title: z.ZodOptional<z.ZodString>;
29
- subtitle: z.ZodOptional<z.ZodString>;
27
+ content: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
28
+ title: z.ZodMiniOptional<z.ZodMiniString<string>>;
29
+ subtitle: z.ZodMiniOptional<z.ZodMiniString<string>>;
30
30
  }, z.core.$strip>>>;
31
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
32
- sortKey: z.ZodOptional<z.ZodNumber>;
31
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
32
+ sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
33
33
  }, z.core.$strip>>>;
34
- products: z.ZodOptional<z.ZodArray<z.ZodObject<{
35
- _id: z.ZodOptional<z.ZodString>;
36
- productId: z.ZodString;
37
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
38
- sortKey: z.ZodOptional<z.ZodNumber>;
39
- meta: z.ZodOptional<z.ZodRecord<z.ZodAny, z.ZodAny>>;
34
+ products: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
35
+ _id: z.ZodMiniOptional<z.ZodMiniString<string>>;
36
+ productId: z.ZodMiniString<string>;
37
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
38
+ sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
39
+ meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
40
40
  }, z.core.$strip>>>;
41
- children: z.ZodOptional<z.ZodArray<z.ZodObject<{
42
- _id: z.ZodOptional<z.ZodString>;
43
- assortmentId: z.ZodString;
44
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
45
- sortKey: z.ZodOptional<z.ZodNumber>;
46
- meta: z.ZodOptional<z.ZodRecord<z.ZodAny, z.ZodAny>>;
41
+ children: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
42
+ _id: z.ZodMiniOptional<z.ZodMiniString<string>>;
43
+ assortmentId: z.ZodMiniString<string>;
44
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
45
+ sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
46
+ meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
47
47
  }, z.core.$strip>>>;
48
- filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
49
- _id: z.ZodOptional<z.ZodString>;
50
- filterId: z.ZodString;
51
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
52
- sortKey: z.ZodOptional<z.ZodNumber>;
53
- meta: z.ZodOptional<z.ZodRecord<z.ZodAny, z.ZodAny>>;
48
+ filters: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
49
+ _id: z.ZodMiniOptional<z.ZodMiniString<string>>;
50
+ filterId: z.ZodMiniString<string>;
51
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
52
+ sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
53
+ meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
54
54
  }, z.core.$strip>>>;
55
55
  }, z.core.$strip>;
56
56
  declare function createAssortment(payload: z.infer<typeof AssortmentCreatePayloadSchema>, { logger, createShouldUpsertIfIDExists }: {
@@ -66,56 +66,56 @@ declare function createAssortment(payload: z.infer<typeof AssortmentCreatePayloa
66
66
  success: boolean;
67
67
  }>;
68
68
  declare namespace createAssortment {
69
- var payloadSchema: z.ZodObject<{
70
- _id: z.ZodString;
71
- specification: z.ZodObject<{
72
- isActive: z.ZodBoolean;
73
- isRoot: z.ZodOptional<z.ZodBoolean>;
74
- sequence: z.ZodNumber;
75
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
76
- meta: z.ZodOptional<z.ZodRecord<z.ZodAny, z.ZodAny>>;
77
- content: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
78
- title: z.ZodOptional<z.ZodString>;
79
- subtitle: z.ZodOptional<z.ZodString>;
80
- slug: z.ZodOptional<z.ZodString>;
69
+ var payloadSchema: z.ZodMiniObject<{
70
+ _id: z.ZodMiniString<string>;
71
+ specification: z.ZodMiniObject<{
72
+ isActive: z.ZodMiniBoolean<boolean>;
73
+ isRoot: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
74
+ sequence: z.ZodMiniNumber<number>;
75
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
76
+ meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
77
+ content: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
78
+ title: z.ZodMiniOptional<z.ZodMiniString<string>>;
79
+ subtitle: z.ZodMiniOptional<z.ZodMiniString<string>>;
80
+ slug: z.ZodMiniOptional<z.ZodMiniString<string>>;
81
81
  }, z.core.$strip>>>;
82
82
  }, z.core.$strip>;
83
- media: z.ZodOptional<z.ZodArray<z.ZodObject<{
84
- _id: z.ZodOptional<z.ZodString>;
85
- asset: z.ZodObject<{
86
- _id: z.ZodOptional<z.ZodString>;
87
- url: z.ZodString;
88
- meta: z.ZodOptional<z.ZodRecord<z.ZodAny, z.ZodAny>>;
89
- fileName: z.ZodString;
90
- headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
83
+ media: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
84
+ _id: z.ZodMiniOptional<z.ZodMiniString<string>>;
85
+ asset: z.ZodMiniObject<{
86
+ _id: z.ZodMiniOptional<z.ZodMiniString<string>>;
87
+ url: z.ZodMiniString<string>;
88
+ meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
89
+ fileName: z.ZodMiniString<string>;
90
+ headers: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniAny>>;
91
91
  }, z.core.$strip>;
92
- content: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
93
- title: z.ZodOptional<z.ZodString>;
94
- subtitle: z.ZodOptional<z.ZodString>;
92
+ content: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniObject<{
93
+ title: z.ZodMiniOptional<z.ZodMiniString<string>>;
94
+ subtitle: z.ZodMiniOptional<z.ZodMiniString<string>>;
95
95
  }, z.core.$strip>>>;
96
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
97
- sortKey: z.ZodOptional<z.ZodNumber>;
96
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
97
+ sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
98
98
  }, z.core.$strip>>>;
99
- products: z.ZodOptional<z.ZodArray<z.ZodObject<{
100
- _id: z.ZodOptional<z.ZodString>;
101
- productId: z.ZodString;
102
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
103
- sortKey: z.ZodOptional<z.ZodNumber>;
104
- meta: z.ZodOptional<z.ZodRecord<z.ZodAny, z.ZodAny>>;
99
+ products: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
100
+ _id: z.ZodMiniOptional<z.ZodMiniString<string>>;
101
+ productId: z.ZodMiniString<string>;
102
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
103
+ sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
104
+ meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
105
105
  }, z.core.$strip>>>;
106
- children: z.ZodOptional<z.ZodArray<z.ZodObject<{
107
- _id: z.ZodOptional<z.ZodString>;
108
- assortmentId: z.ZodString;
109
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
110
- sortKey: z.ZodOptional<z.ZodNumber>;
111
- meta: z.ZodOptional<z.ZodRecord<z.ZodAny, z.ZodAny>>;
106
+ children: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
107
+ _id: z.ZodMiniOptional<z.ZodMiniString<string>>;
108
+ assortmentId: z.ZodMiniString<string>;
109
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
110
+ sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
111
+ meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
112
112
  }, z.core.$strip>>>;
113
- filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
114
- _id: z.ZodOptional<z.ZodString>;
115
- filterId: z.ZodString;
116
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
117
- sortKey: z.ZodOptional<z.ZodNumber>;
118
- meta: z.ZodOptional<z.ZodRecord<z.ZodAny, z.ZodAny>>;
113
+ filters: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
114
+ _id: z.ZodMiniOptional<z.ZodMiniString<string>>;
115
+ filterId: z.ZodMiniString<string>;
116
+ tags: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniString<string>>>;
117
+ sortKey: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
118
+ meta: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniAny, z.ZodMiniAny>>;
119
119
  }, z.core.$strip>>>;
120
120
  }, z.core.$strip>;
121
121
  }
@@ -3,27 +3,25 @@ import upsertAssortmentChildren, { AssortmentLinkSchema } from "./upsertAssortme
3
3
  import upsertAssortmentFilters, { AssortmentFilterSchema } from "./upsertAssortmentFilters.js";
4
4
  import upsertAssortmentProducts, { AssortmentProductSchema } from "./upsertAssortmentProducts.js";
5
5
  import upsertMedia, { MediaSchema } from "./upsertMedia.js";
6
- import { z } from 'zod';
6
+ import { z } from 'zod/v4-mini';
7
7
  export const AssortmentCreatePayloadSchema = z.object({
8
8
  _id: z.string(),
9
9
  specification: z.object({
10
10
  isActive: z.boolean(),
11
- isRoot: z.boolean().optional(),
11
+ isRoot: z.optional(z.boolean()),
12
12
  sequence: z.number(),
13
- tags: z.array(z.string()).optional(),
14
- meta: z.record(z.any(), z.any()).optional(),
15
- content: z
16
- .record(z.string(), z.object({
17
- title: z.string().optional(),
18
- subtitle: z.string().optional(),
19
- slug: z.string().optional(),
20
- }))
21
- .optional(),
13
+ tags: z.optional(z.array(z.string())),
14
+ meta: z.optional(z.record(z.any(), z.any())),
15
+ content: z.optional(z.record(z.string(), z.object({
16
+ title: z.optional(z.string()),
17
+ subtitle: z.optional(z.string()),
18
+ slug: z.optional(z.string()),
19
+ }))),
22
20
  }),
23
- media: z.array(MediaSchema).optional(),
24
- products: z.array(AssortmentProductSchema).optional(),
25
- children: z.array(AssortmentLinkSchema).optional(),
26
- filters: z.array(AssortmentFilterSchema).optional(),
21
+ media: z.optional(z.array(MediaSchema)),
22
+ products: z.optional(z.array(AssortmentProductSchema)),
23
+ children: z.optional(z.array(AssortmentLinkSchema)),
24
+ filters: z.optional(z.array(AssortmentFilterSchema)),
27
25
  });
28
26
  export default async function createAssortment(payload, { logger, createShouldUpsertIfIDExists }, unchainedAPI) {
29
27
  const { modules } = unchainedAPI;